@progress/kendo-react-editor
Version:
Kendo UI for React Editor package
85 lines • 5.9 kB
JavaScript
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var React = require("react");
var react_dom_1 = require("react-dom");
var kendo_react_dialogs_1 = require("@progress/kendo-react-dialogs");
var kendo_react_buttons_1 = require("@progress/kendo-react-buttons");
var kendo_editor_common_1 = require("@progress/kendo-editor-common");
var kendo_react_intl_1 = require("@progress/kendo-react-intl");
var messages_1 = require("./../messages");
/**
* @hidden
*/
var InsertLinkDialog = /** @class */ (function (_super) {
__extends(InsertLinkDialog, _super);
function InsertLinkDialog() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.href = null;
_this.title = null;
_this.target = null;
_this.onClose = function () {
_this.props.view.focus();
_this.props.onClose();
};
_this.onInsert = function () {
var view = _this.props.view;
var mark = _this.props.settings.mark;
var attrs = {
href: _this.href ? _this.href.value : undefined,
title: _this.title ? _this.title.value : undefined,
target: _this.target && _this.target.checked ? '_blank' : undefined
};
kendo_editor_common_1.applyLink({ mark: mark, attrs: attrs }, _this.props.settings.commandName)(view.state, view.dispatch);
_this.onClose();
};
return _this;
}
/**
* @hidden
*/
InsertLinkDialog.prototype.render = function () {
var _this = this;
var _a = this.props, view = _a.view, settings = _a.settings, dir = _a.dir, render = _a.render;
var localization = kendo_react_intl_1.provideLocalizationService(this);
var _b = settings.messages, insertHyperlinkDialogTitle = _b.insertHyperlinkDialogTitle, insertHyperlinkAddress = _b.insertHyperlinkAddress, insertHyperlinkTitle = _b.insertHyperlinkTitle, insertHyperlinkNewWindow = _b.insertHyperlinkNewWindow, insertHyperlinkCancel = _b.insertHyperlinkCancel, insertHyperlinkInsert = _b.insertHyperlinkInsert;
var linkMark = view ?
kendo_editor_common_1.getMark(view.state, view.state.schema.marks[settings.mark])
: false;
var content = (React.createElement("div", { className: "k-edit-form-container" },
React.createElement("div", { className: "k-edit-label" },
React.createElement("label", { htmlFor: "k-editor-link-url" }, localization.toLanguageString(insertHyperlinkAddress, messages_1.messages[insertHyperlinkAddress]))),
React.createElement("div", { className: "k-edit-field" },
React.createElement("input", { type: "text", className: "k-textbox", id: "k-editor-link-url", ref: function (e) { return _this.href = e; }, defaultValue: (linkMark && linkMark.attrs.href) || undefined, autoFocus: true })),
React.createElement("div", { className: "k-edit-label k-editor-link-text-row" },
React.createElement("label", { htmlFor: "k-editor-link-text" }, localization.toLanguageString(insertHyperlinkTitle, messages_1.messages[insertHyperlinkTitle]))),
React.createElement("div", { className: "k-edit-field k-editor-link-text-row" },
React.createElement("input", { type: "text", className: "k-textbox", id: "k-editor-link-text", ref: function (e) { return _this.title = e; }, defaultValue: (linkMark && linkMark.attrs.title) || undefined })),
settings.linkTarget !== false && React.createElement("div", { className: "k-edit-field" },
React.createElement("input", { type: "checkbox", className: "k-checkbox", id: "k-editor-link-target", ref: function (e) { return _this.target = e; }, defaultChecked: (linkMark && !!linkMark.attrs.target) || undefined }),
React.createElement("label", { htmlFor: "k-editor-link-target", className: "k-checkbox-label" }, localization.toLanguageString(insertHyperlinkNewWindow, messages_1.messages[insertHyperlinkNewWindow])))));
var actionButtons = [(React.createElement(kendo_react_buttons_1.Button, { onClick: this.onClose, dir: dir, key: "cancel" }, localization.toLanguageString(insertHyperlinkCancel, messages_1.messages[insertHyperlinkCancel]))), (React.createElement(kendo_react_buttons_1.Button, { onClick: this.onInsert, primary: true, dir: dir, key: "insert" }, localization.toLanguageString(insertHyperlinkInsert, messages_1.messages[insertHyperlinkInsert])))
];
var dialog = (React.createElement(kendo_react_dialogs_1.Dialog, { title: localization.toLanguageString(insertHyperlinkDialogTitle, messages_1.messages[insertHyperlinkDialogTitle]), onClose: this.onClose, closeIcon: true, dir: dir, style: dir === 'rtl' ? { textAlign: 'right' } : undefined },
content,
React.createElement(kendo_react_dialogs_1.DialogActionsBar, null, actionButtons)));
return render ? render(dialog, { content: content, actionButtons: actionButtons }) :
react_dom_1.createPortal(dialog, document.body);
};
return InsertLinkDialog;
}(React.Component));
exports.InsertLinkDialog = InsertLinkDialog;
kendo_react_intl_1.registerForLocalization(InsertLinkDialog);
//# sourceMappingURL=insertLink.js.map