@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
334 lines (261 loc) • 11.5 kB
JavaScript
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ exports: {},
/******/ id: moduleId,
/******/ loaded: false
/******/ };
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.loaded = true;
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(0);
/******/ })
/************************************************************************/
/******/ ({
/***/ 0:
/***/ (function(module, exports, __webpack_require__) {
module.exports = __webpack_require__(958);
/***/ }),
/***/ 3:
/***/ (function(module, exports) {
module.exports = function() { throw new Error("define cannot be used indirect"); };
/***/ }),
/***/ 946:
/***/ (function(module, exports) {
module.exports = require("../command");
/***/ }),
/***/ 958:
/***/ (function(module, exports, __webpack_require__) {
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function(f, define){
!(__WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(959), __webpack_require__(946) ], __WEBPACK_AMD_DEFINE_FACTORY__ = (f), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
})(function(){
(function($, undefined) {
var kendo = window.kendo,
extend = $.extend,
Editor = kendo.ui.editor,
EditorUtils = Editor.EditorUtils,
dom = Editor.Dom,
registerTool = EditorUtils.registerTool,
ToolTemplate = Editor.ToolTemplate,
RangeUtils = Editor.RangeUtils,
Command = Editor.Command,
keys = kendo.keys,
KEDITORIMAGEURL = "#k-editor-image-url",
KEDITORIMAGETITLE = "#k-editor-image-title",
KEDITORIMAGEWIDTH = "#k-editor-image-width",
KEDITORIMAGEHEIGHT = "#k-editor-image-height";
var ImageCommand = Command.extend({
init: function(options) {
var that = this;
Command.fn.init.call(that, options);
that.async = true;
that.attributes = {};
},
insertImage: function(img, range) {
var attributes = this.attributes;
var doc = RangeUtils.documentFromRange(range);
if (attributes.src && attributes.src != "http://") {
var removeIEAttributes = function() {
setTimeout(function(){
if (!attributes.width) {
img.removeAttribute("width");
}
if (!attributes.height) {
img.removeAttribute("height");
}
img.removeAttribute("complete");
});
};
if (!img) {
img = dom.create(doc, "img", attributes);
img.onload = img.onerror = removeIEAttributes;
range.deleteContents();
range.insertNode(img);
if (!img.nextSibling) {
dom.insertAfter(doc.createTextNode("\ufeff"), img);
}
removeIEAttributes();
range.setStartAfter(img);
range.setEndAfter(img);
RangeUtils.selectRange(range);
return true;
} else {
img.onload = img.onerror = removeIEAttributes;
dom.attr(img, attributes);
removeIEAttributes();
}
}
return false;
},
_dialogTemplate: function(showBrowser) {
return kendo.template(
'<div class="k-editor-dialog k-popup-edit-form">' +
'<div class="k-edit-form-container">' +
'<div class="k-edit-form-content">' +
'# if (showBrowser) { #' +
'<div class="k-filebrowser k-imagebrowser"></div>' +
'# } #' +
"<div class='k-edit-label'>" +
'<label for="k-editor-image-url">#: messages.imageWebAddress #</label>' +
"</div>" +
"<div class='k-edit-field'>" +
'<input type="text" class="k-textbox" id="k-editor-image-url">' +
"</div>" +
"<div class='k-edit-label'>" +
'<label for="k-editor-image-title">#: messages.imageAltText #</label>' +
"</div>" +
"<div class='k-edit-field'>" +
'<input type="text" class="k-textbox" id="k-editor-image-title">' +
"</div>" +
"<div class='k-edit-label'>" +
'<label for="k-editor-image-width">#: messages.imageWidth #</label>' +
"</div>" +
"<div class='k-edit-field'>" +
'<input type="text" class="k-textbox" id="k-editor-image-width">' +
"</div>" +
"<div class='k-edit-label'>" +
'<label for="k-editor-image-height">#: messages.imageHeight #</label>' +
"</div>" +
"<div class='k-edit-field'>" +
'<input type="text" class="k-textbox" id="k-editor-image-height">' +
"</div>" +
'</div>' +
'<div class="k-edit-buttons k-state-default">' +
'<button class="k-dialog-insert k-button k-primary">#: messages.dialogInsert #</button>' +
'<button class="k-dialog-close k-button">#: messages.dialogCancel #</button>' +
'</div>' +
'</div>' +
'</div>'
)({
messages: this.editor.options.messages,
showBrowser: showBrowser
});
},
redo: function () {
var that = this,
range = that.lockRange();
if (!that.insertImage(RangeUtils.image(range), range)) {
that.releaseRange(range);
}
},
exec: function () {
var that = this,
range = that.lockRange(),
applied = false,
img = RangeUtils.image(range),
imageWidth = img && img.getAttribute("width") || "",
imageHeight = img && img.getAttribute("height") || "",
dialog,
isIE = kendo.support.browser.msie,
options = that.editor.options,
messages = options.messages,
imageBrowser = options.imageBrowser,
showBrowser = !!(kendo.ui.ImageBrowser && imageBrowser && imageBrowser.transport && imageBrowser.transport.read !== undefined),
dialogOptions = {
title: messages.insertImage,
visible: false,
resizable: showBrowser
};
this.expandImmutablesIn(range);
function apply(e) {
var element = dialog.element,
w = parseInt(element.find(KEDITORIMAGEWIDTH).val(), 10),
h = parseInt(element.find(KEDITORIMAGEHEIGHT).val(), 10);
that.attributes = {
src: element.find(KEDITORIMAGEURL).val().replace(/ /g, "%20"),
alt: element.find(KEDITORIMAGETITLE).val()
};
that.attributes.width = null;
that.attributes.height = null;
if (!isNaN(w) && w > 0) {
that.attributes.width = w;
}
if (!isNaN(h) && h > 0) {
that.attributes.height = h;
}
applied = that.insertImage(img, range);
close(e);
if (that.change) {
that.change();
}
}
function close(e) {
e.preventDefault();
dialog.destroy();
dom.windowFromDocument(RangeUtils.documentFromRange(range)).focus();
if (!applied) {
that.releaseRange(range);
}
}
function keyDown(e) {
if (e.keyCode == keys.ENTER) {
apply(e);
} else if (e.keyCode == keys.ESC) {
close(e);
}
}
dialogOptions.close = close;
if (showBrowser) {
dialogOptions.width = 750;
}
dialog = this.createDialog(that._dialogTemplate(showBrowser), dialogOptions)
.toggleClass("k-filebrowser-dialog", showBrowser)
.find(".k-dialog-insert").click(apply).end()
.find(".k-dialog-close").click(close).end()
.find(".k-edit-field input").keydown(keyDown).end()
// IE < 8 returns absolute url if getAttribute is not used
.find(KEDITORIMAGEURL).val(img ? img.getAttribute("src", 2) : "http://").end()
.find(KEDITORIMAGETITLE).val(img ? img.alt : "").end()
.find(KEDITORIMAGEWIDTH).val(imageWidth).end()
.find(KEDITORIMAGEHEIGHT).val(imageHeight).end()
.data("kendoWindow");
var element = dialog.element;
if (showBrowser) {
this._imageBrowser = new kendo.ui.ImageBrowser(
element.find(".k-imagebrowser"),
extend({}, imageBrowser)
);
this._imageBrowser.bind("change", function (ev) {
if (ev.selected.get("type") === "f") {
element.find(KEDITORIMAGEURL).val(this.value());
}
});
this._imageBrowser.bind("apply", apply);
}
if(isIE) {
var dialogHeight = element.closest(".k-window").height();
element.css("max-height", dialogHeight);
}
dialog.center().open();
element.find(KEDITORIMAGEURL).focus().select();
}
});
kendo.ui.editor.ImageCommand = ImageCommand;
registerTool("insertImage", new Editor.Tool({ command: ImageCommand, template: new ToolTemplate({template: EditorUtils.buttonTemplate, title: "Insert Image" }) }));
})(window.kendo.jQuery);
}, __webpack_require__(3));
/***/ }),
/***/ 959:
/***/ (function(module, exports) {
module.exports = require("../../kendo.imagebrowser");
/***/ })
/******/ });