From 65950a6d7ce231132d26d58b9466d6cb7ddf92ac Mon Sep 17 00:00:00 2001 From: Steve Boyd Date: Wed, 30 Jun 2021 12:28:14 +1200 Subject: [PATCH] API Enable support for extensions to get anchor links --- client/dist/js/SilverStripeNavigator.js | 121 +- client/dist/js/TinyMCE_sslink-anchor.js | 382 ++- client/dist/js/TinyMCE_sslink-internal.js | 318 ++- client/dist/js/bundle.js | 2424 ++++++++++++++++- client/dist/styles/SilverStripeNavigator.css | 3 +- client/dist/styles/bundle.css | 3 +- .../AnchorSelectorField.js | 89 +- .../anchorSelector/AnchorSelectorReducer.js | 1 + code/Model/SiteTree.php | 27 +- 9 files changed, 3298 insertions(+), 70 deletions(-) diff --git a/client/dist/js/SilverStripeNavigator.js b/client/dist/js/SilverStripeNavigator.js index c237de7823..d4cec94be9 100644 --- a/client/dist/js/SilverStripeNavigator.js +++ b/client/dist/js/SilverStripeNavigator.js @@ -1 +1,120 @@ -!function(e){function t(n){if(r[n])return r[n].exports;var i=r[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var r={};t.m=e,t.c=r,t.i=function(e){return e},t.d=function(e,r,n){t.o(e,r)||Object.defineProperty(e,r,{configurable:!1,enumerable:!0,get:n})},t.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(r,"a",r),r},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s="./client/src/legacy/SilverStripeNavigator.js")}({"./client/src/legacy/SilverStripeNavigator.js":function(e,t,r){"use strict";function n(e){return document.getElementsByTagName("base")[0].href.replace("http://","").replace(/\//g,"_").replace(/\./g,"_")+e}var i=r(0),o=function(e){return e&&e.__esModule?e:{default:e}}(i);(0,o.default)(document).ready(function(){(0,o.default)("#switchView a.newWindow").on("click",function(e){return window.open(this.href,n(this.target)).focus(),!1}),(0,o.default)("#SilverStripeNavigatorLink").on("click",function(e){return(0,o.default)("#SilverStripeNavigatorLinkPopup").toggle(),!1}),(0,o.default)("#SilverStripeNavigatorLinkPopup a.close").on("click",function(e){return(0,o.default)("#SilverStripeNavigatorLinkPopup").hide(),!1}),(0,o.default)("#SilverStripeNavigatorLinkPopup input").on("focus",function(e){this.select()})})},0:function(e,t){e.exports=jQuery}}); \ No newline at end of file +/******/ (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] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = 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; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./client/src/legacy/SilverStripeNavigator.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./client/src/legacy/SilverStripeNavigator.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function windowName(suffix) { + var base = document.getElementsByTagName('base')[0].href.replace('http://', '').replace(/\//g, '_').replace(/\./g, '_'); + return base + suffix; +} + +(0, _jquery2.default)(document).ready(function () { + (0, _jquery2.default)('#switchView a.newWindow').on('click', function (e) { + var w = window.open(this.href, windowName(this.target)); + w.focus(); + return false; + }); + + (0, _jquery2.default)('#SilverStripeNavigatorLink').on('click', function (e) { + (0, _jquery2.default)('#SilverStripeNavigatorLinkPopup').toggle(); + return false; + }); + + (0, _jquery2.default)('#SilverStripeNavigatorLinkPopup a.close').on('click', function (e) { + (0, _jquery2.default)('#SilverStripeNavigatorLinkPopup').hide(); + return false; + }); + + (0, _jquery2.default)('#SilverStripeNavigatorLinkPopup input').on('focus', function (e) { + this.select(); + }); +}); + +/***/ }), + +/***/ 0: +/***/ (function(module, exports) { + +module.exports = jQuery; + +/***/ }) + +/******/ }); +//# sourceMappingURL=SilverStripeNavigator.js.map \ No newline at end of file diff --git a/client/dist/js/TinyMCE_sslink-anchor.js b/client/dist/js/TinyMCE_sslink-anchor.js index c79040a5bb..7fe36fc0e3 100644 --- a/client/dist/js/TinyMCE_sslink-anchor.js +++ b/client/dist/js/TinyMCE_sslink-anchor.js @@ -1 +1,381 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s="./client/src/legacy/TinyMCE_sslink-anchor.js")}({"./client/src/legacy/TinyMCE_sslink-anchor.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),o=r(i),a=n(9),c=r(a),l=n(2),s=r(l),u=n(5),d=r(u),p=n(4),f=n(6),A=n(0),_=r(A),h=n(8),g=r(h),E=n(7),C=n(3),m=n("./client/src/state/anchorSelector/AnchorSelectorActions.js");c.default.addAction("sslink",{text:o.default._t("CMS.LINKLABEL_ANCHOR","Anchor on a page"),onclick:function(e){return e.execCommand("sslinkanchor")},priority:60},editorIdentifier).addCommandWithUrlTest("sslinkanchor",/^\[sitetree_link.+]#[^#\]]+$/);var O={init:function(e){e.addCommand("sslinkanchor",function(){var t=(0,_.default)("#"+e.id).entwine("ss"),n=Number((0,_.default)("#Form_EditForm_ID").val()||0),r=e.$("[id],[name]",e.getBody()).toArray().map(function(e){return e.id||e.name});ss.store.dispatch((0,m.updated)(n,r,!0)),t.openLinkAnchorDialog()})}},y="insert-link__dialog-wrapper--anchor",R=(0,C.provideInjector)((0,E.createInsertLinkModal)("SilverStripe\\CMS\\Controllers\\CMSPageEditController","editorAnchorLink"));_.default.entwine("ss",function(e){e("textarea.htmleditor").entwine({openLinkAnchorDialog:function(){var t=e("#"+y);t.length||(t=e('
'),e("body").append(t)),t.addClass("insert-link__dialog-wrapper"),t.setElement(this),t.open()}}),e("#"+y).entwine({renderModal:function(t){var n=this,r=ss.store,i=ss.apolloClient,a=function(){return n.close()},c=function(){return n.handleInsert.apply(n,arguments)},l=this.getOriginalAttributes(),u=tinymce.activeEditor.selection,A=u.getContent()||"",_=u.getNode().tagName,h="A"!==_&&""===A.trim(),g=Number(e("#Form_EditForm_ID").val()||0);d.default.render(s.default.createElement(p.ApolloProvider,{client:i},s.default.createElement(f.Provider,{store:r},s.default.createElement(R,{isOpen:t,onInsert:c,onClosed:a,title:o.default._t("CMS.LINK_ANCHOR","Link to an anchor on a page"),bodyClassName:"modal__dialog",className:"insert-link__dialog-wrapper--anchor",fileAttributes:l,identifier:"Admin.InsertLinkAnchorModal",requireLinkText:h,currentPageID:g}))),this[0])},buildAttributes:function(e){return{href:g.default.serialise({name:"sitetree_link",properties:{id:e.PageID}},!0)+(e.Anchor&&e.Anchor.length?"#"+e.Anchor:""),target:e.TargetBlank?"_blank":"",title:e.Description}},getOriginalAttributes:function(){var t=this.getElement().getEditor(),n=e(t.getSelectedNode()),r=(n.attr("href")||"").split("#");if(!r[0])return{};var i=g.default.match("sitetree_link",!1,r[0]);return i?{PageID:i.properties.id?parseInt(i.properties.id,10):0,Anchor:r[1]||"",Description:n.attr("title"),TargetBlank:!!n.attr("target")}:{}}})}),tinymce.PluginManager.add("sslinkanchor",function(e){return O.init(e)}),t.default=O},"./client/src/state/anchorSelector/AnchorSelectorActionTypes.js":function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={ANCHORSELECTOR_UPDATED:"ANCHORSELECTOR_UPDATED",ANCHORSELECTOR_UPDATING:"ANCHORSELECTOR_UPDATING",ANCHORSELECTOR_UPDATE_FAILED:"ANCHORSELECTOR_UPDATE_FAILED"}},"./client/src/state/anchorSelector/AnchorSelectorActions.js":function(e,t,n){"use strict";function r(e){return{type:c.default.ANCHORSELECTOR_UPDATING,payload:{pageId:e}}}function i(e,t){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return{type:c.default.ANCHORSELECTOR_UPDATED,payload:{pageId:e,anchors:t,cacheResult:n}}}function o(e){return{type:c.default.ANCHORSELECTOR_UPDATE_FAILED,payload:{pageId:e}}}Object.defineProperty(t,"__esModule",{value:!0}),t.beginUpdating=r,t.updated=i,t.updateFailed=o;var a=n("./client/src/state/anchorSelector/AnchorSelectorActionTypes.js"),c=function(e){return e&&e.__esModule?e:{default:e}}(a)},0:function(e,t){e.exports=jQuery},1:function(e,t){e.exports=i18n},2:function(e,t){e.exports=React},3:function(e,t){e.exports=Injector},4:function(e,t){e.exports=ReactApollo},5:function(e,t){e.exports=ReactDom},6:function(e,t){e.exports=ReactRedux},7:function(e,t){e.exports=InsertLinkModal},8:function(e,t){e.exports=ShortcodeSerialiser},9:function(e,t){e.exports=TinyMCEActionRegistrar}}); \ No newline at end of file +/******/ (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] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = 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; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./client/src/legacy/TinyMCE_sslink-anchor.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./client/src/legacy/TinyMCE_sslink-anchor.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _i18n = __webpack_require__(1); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _TinyMCEActionRegistrar = __webpack_require__(9); + +var _TinyMCEActionRegistrar2 = _interopRequireDefault(_TinyMCEActionRegistrar); + +var _react = __webpack_require__(2); + +var _react2 = _interopRequireDefault(_react); + +var _reactDom = __webpack_require__(5); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _reactApollo = __webpack_require__(4); + +var _reactRedux = __webpack_require__(6); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _ShortcodeSerialiser = __webpack_require__(8); + +var _ShortcodeSerialiser2 = _interopRequireDefault(_ShortcodeSerialiser); + +var _InsertLinkModal = __webpack_require__(7); + +var _Injector = __webpack_require__(3); + +var _AnchorSelectorActions = __webpack_require__("./client/src/state/anchorSelector/AnchorSelectorActions.js"); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var commandName = 'sslinkanchor'; + +_TinyMCEActionRegistrar2.default.addAction('sslink', { + text: _i18n2.default._t('CMS.LINKLABEL_ANCHOR', 'Anchor on a page'), + onclick: function onclick(activeEditor) { + return activeEditor.execCommand(commandName); + }, + priority: 60 +}, editorIdentifier).addCommandWithUrlTest(commandName, /^\[sitetree_link.+]#[^#\]]+$/); + +var plugin = { + init: function init(editor) { + editor.addCommand(commandName, function () { + var field = (0, _jquery2.default)('#' + editor.id).entwine('ss'); + var currentPageID = Number((0, _jquery2.default)('#Form_EditForm_ID').val() || 0); + var validTargets = editor.$('[id],[name]', editor.getBody()).toArray().map(function (element) { + return element.id || element.name; + }); + ss.store.dispatch((0, _AnchorSelectorActions.updated)(currentPageID, validTargets, true)); + field.openLinkAnchorDialog(); + }); + } +}; + +var modalId = 'insert-link__dialog-wrapper--anchor'; +var sectionConfigKey = 'SilverStripe\\CMS\\Controllers\\CMSPageEditController'; +var formName = 'editorAnchorLink'; +var InsertLinkInternalModal = (0, _Injector.provideInjector)((0, _InsertLinkModal.createInsertLinkModal)(sectionConfigKey, formName)); + +_jquery2.default.entwine('ss', function ($) { + $('textarea.htmleditor').entwine({ + openLinkAnchorDialog: function openLinkAnchorDialog() { + var dialog = $('#' + modalId); + + if (!dialog.length) { + dialog = $('
'); + $('body').append(dialog); + } + dialog.addClass('insert-link__dialog-wrapper'); + + dialog.setElement(this); + dialog.open(); + } + }); + + $('#' + modalId).entwine({ + renderModal: function renderModal(isOpen) { + var _this = this; + + var store = ss.store; + var client = ss.apolloClient; + var handleHide = function handleHide() { + return _this.close(); + }; + var handleInsert = function handleInsert() { + return _this.handleInsert.apply(_this, arguments); + }; + var attrs = this.getOriginalAttributes(); + var selection = tinymce.activeEditor.selection; + var selectionContent = selection.getContent() || ''; + var tagName = selection.getNode().tagName; + var requireLinkText = tagName !== 'A' && selectionContent.trim() === ''; + var currentPageID = Number($('#Form_EditForm_ID').val() || 0); + + _reactDom2.default.render(_react2.default.createElement( + _reactApollo.ApolloProvider, + { client: client }, + _react2.default.createElement( + _reactRedux.Provider, + { store: store }, + _react2.default.createElement(InsertLinkInternalModal, { + isOpen: isOpen, + onInsert: handleInsert, + onClosed: handleHide, + title: _i18n2.default._t('CMS.LINK_ANCHOR', 'Link to an anchor on a page'), + bodyClassName: 'modal__dialog', + className: 'insert-link__dialog-wrapper--anchor', + fileAttributes: attrs, + identifier: 'Admin.InsertLinkAnchorModal', + requireLinkText: requireLinkText, + currentPageID: currentPageID + }) + ) + ), this[0]); + }, + buildAttributes: function buildAttributes(data) { + var shortcode = _ShortcodeSerialiser2.default.serialise({ + name: 'sitetree_link', + properties: { id: data.PageID } + }, true); + + var anchor = data.Anchor && data.Anchor.length ? '#' + data.Anchor : ''; + var href = '' + shortcode + anchor; + + return { + href: href, + target: data.TargetBlank ? '_blank' : '', + title: data.Description + }; + }, + getOriginalAttributes: function getOriginalAttributes() { + var editor = this.getElement().getEditor(); + var node = $(editor.getSelectedNode()); + + var hrefParts = (node.attr('href') || '').split('#'); + if (!hrefParts[0]) { + return {}; + } + + var shortcode = _ShortcodeSerialiser2.default.match('sitetree_link', false, hrefParts[0]); + if (!shortcode) { + return {}; + } + + return { + PageID: shortcode.properties.id ? parseInt(shortcode.properties.id, 10) : 0, + Anchor: hrefParts[1] || '', + Description: node.attr('title'), + TargetBlank: !!node.attr('target') + }; + } + }); +}); + +tinymce.PluginManager.add(commandName, function (editor) { + return plugin.init(editor); +}); + +exports.default = plugin; + +/***/ }), + +/***/ "./client/src/state/anchorSelector/AnchorSelectorActionTypes.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = { + ANCHORSELECTOR_UPDATED: 'ANCHORSELECTOR_UPDATED', + ANCHORSELECTOR_UPDATING: 'ANCHORSELECTOR_UPDATING', + ANCHORSELECTOR_UPDATE_FAILED: 'ANCHORSELECTOR_UPDATE_FAILED' +}; + +/***/ }), + +/***/ "./client/src/state/anchorSelector/AnchorSelectorActions.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.beginUpdating = beginUpdating; +exports.updated = updated; +exports.updateFailed = updateFailed; + +var _AnchorSelectorActionTypes = __webpack_require__("./client/src/state/anchorSelector/AnchorSelectorActionTypes.js"); + +var _AnchorSelectorActionTypes2 = _interopRequireDefault(_AnchorSelectorActionTypes); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function beginUpdating(pageId) { + return { + type: _AnchorSelectorActionTypes2.default.ANCHORSELECTOR_UPDATING, + payload: { pageId: pageId } + }; +} + +function updated(pageId, anchors) { + var cacheResult = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + + return { + type: _AnchorSelectorActionTypes2.default.ANCHORSELECTOR_UPDATED, + payload: { pageId: pageId, anchors: anchors, cacheResult: cacheResult } + }; +} + +function updateFailed(pageId) { + return { + type: _AnchorSelectorActionTypes2.default.ANCHORSELECTOR_UPDATE_FAILED, + payload: { pageId: pageId } + }; +} + +/***/ }), + +/***/ 0: +/***/ (function(module, exports) { + +module.exports = jQuery; + +/***/ }), + +/***/ 1: +/***/ (function(module, exports) { + +module.exports = i18n; + +/***/ }), + +/***/ 2: +/***/ (function(module, exports) { + +module.exports = React; + +/***/ }), + +/***/ 3: +/***/ (function(module, exports) { + +module.exports = Injector; + +/***/ }), + +/***/ 4: +/***/ (function(module, exports) { + +module.exports = ReactApollo; + +/***/ }), + +/***/ 5: +/***/ (function(module, exports) { + +module.exports = ReactDom; + +/***/ }), + +/***/ 6: +/***/ (function(module, exports) { + +module.exports = ReactRedux; + +/***/ }), + +/***/ 7: +/***/ (function(module, exports) { + +module.exports = InsertLinkModal; + +/***/ }), + +/***/ 8: +/***/ (function(module, exports) { + +module.exports = ShortcodeSerialiser; + +/***/ }), + +/***/ 9: +/***/ (function(module, exports) { + +module.exports = TinyMCEActionRegistrar; + +/***/ }) + +/******/ }); +//# sourceMappingURL=TinyMCE_sslink-anchor.js.map \ No newline at end of file diff --git a/client/dist/js/TinyMCE_sslink-internal.js b/client/dist/js/TinyMCE_sslink-internal.js index 7ab403aa4f..787b05ae49 100644 --- a/client/dist/js/TinyMCE_sslink-internal.js +++ b/client/dist/js/TinyMCE_sslink-internal.js @@ -1 +1,317 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s="./client/src/legacy/TinyMCE_sslink-internal.js")}({"./client/src/legacy/TinyMCE_sslink-internal.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var i=n(1),o=r(i),a=n(9),l=r(a),s=n(2),u=r(s),c=n(5),d=r(c),f=n(4),p=n(6),g=n(0),k=r(g),m=n(8),_=r(m),h=n(7),x=n(3);l.default.addAction("sslink",{text:o.default._t("CMS.LINKLABEL_PAGE","Page on this site"),onclick:function(e){return e.execCommand("sslinkinternal")},priority:90},editorIdentifier).addCommandWithUrlTest("sslinkinternal",/^\[sitetree_link.+]$/);var I={init:function(e){e.addCommand("sslinkinternal",function(){(0,k.default)("#"+e.id).entwine("ss").openLinkInternalDialog()})}},A="insert-link__dialog-wrapper--internal",C=(0,x.provideInjector)((0,h.createInsertLinkModal)("SilverStripe\\CMS\\Controllers\\CMSPageEditController","editorInternalLink"));k.default.entwine("ss",function(e){e("textarea.htmleditor").entwine({openLinkInternalDialog:function(){var t=e("#"+A);t.length||(t=e('
'),e("body").append(t)),t.addClass("insert-link__dialog-wrapper"),t.setElement(this),t.open()}}),e("#"+A).entwine({renderModal:function(e){var t=this,n=ss.store,r=ss.apolloClient,i=function(){return t.close()},a=function(){return t.handleInsert.apply(t,arguments)},l=this.getOriginalAttributes(),s=this.getRequireLinkText();d.default.render(u.default.createElement(f.ApolloProvider,{client:r},u.default.createElement(p.Provider,{store:n},u.default.createElement(C,{isOpen:e,onInsert:a,onClosed:i,title:o.default._t("CMS.LINK_PAGE","Link to a page"),bodyClassName:"modal__dialog",className:"insert-link__dialog-wrapper--internal",fileAttributes:l,identifier:"Admin.InsertLinkInternalModal",requireLinkText:s}))),this[0])},getRequireLinkText:function(){var e=this.getElement().getEditor().getInstance().selection,t=e.getContent()||"";return"A"!==e.getNode().tagName&&""===t.trim()},buildAttributes:function(e){return{href:_.default.serialise({name:"sitetree_link",properties:{id:e.PageID}},!0)+(e.Anchor&&e.Anchor.length?"#"+e.Anchor:""),target:e.TargetBlank?"_blank":"",title:e.Description}},getOriginalAttributes:function(){var t=this.getElement().getEditor(),n=e(t.getSelectedNode()),r=(n.attr("href")||"").split("#");if(!r[0])return{};var i=_.default.match("sitetree_link",!1,r[0]);return i?{PageID:i.properties.id?parseInt(i.properties.id,10):0,Anchor:r[1]||"",Description:n.attr("title"),TargetBlank:!!n.attr("target")}:{}}})}),tinymce.PluginManager.add("sslinkinternal",function(e){return I.init(e)}),t.default=I},0:function(e,t){e.exports=jQuery},1:function(e,t){e.exports=i18n},2:function(e,t){e.exports=React},3:function(e,t){e.exports=Injector},4:function(e,t){e.exports=ReactApollo},5:function(e,t){e.exports=ReactDom},6:function(e,t){e.exports=ReactRedux},7:function(e,t){e.exports=InsertLinkModal},8:function(e,t){e.exports=ShortcodeSerialiser},9:function(e,t){e.exports=TinyMCEActionRegistrar}}); \ No newline at end of file +/******/ (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] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = 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; +/******/ +/******/ // identity function for calling harmony imports with the correct context +/******/ __webpack_require__.i = function(value) { return value; }; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = "./client/src/legacy/TinyMCE_sslink-internal.js"); +/******/ }) +/************************************************************************/ +/******/ ({ + +/***/ "./client/src/legacy/TinyMCE_sslink-internal.js": +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _i18n = __webpack_require__(1); + +var _i18n2 = _interopRequireDefault(_i18n); + +var _TinyMCEActionRegistrar = __webpack_require__(9); + +var _TinyMCEActionRegistrar2 = _interopRequireDefault(_TinyMCEActionRegistrar); + +var _react = __webpack_require__(2); + +var _react2 = _interopRequireDefault(_react); + +var _reactDom = __webpack_require__(5); + +var _reactDom2 = _interopRequireDefault(_reactDom); + +var _reactApollo = __webpack_require__(4); + +var _reactRedux = __webpack_require__(6); + +var _jquery = __webpack_require__(0); + +var _jquery2 = _interopRequireDefault(_jquery); + +var _ShortcodeSerialiser = __webpack_require__(8); + +var _ShortcodeSerialiser2 = _interopRequireDefault(_ShortcodeSerialiser); + +var _InsertLinkModal = __webpack_require__(7); + +var _Injector = __webpack_require__(3); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var commandName = 'sslinkinternal'; + +_TinyMCEActionRegistrar2.default.addAction('sslink', { + text: _i18n2.default._t('CMS.LINKLABEL_PAGE', 'Page on this site'), + onclick: function onclick(activeEditor) { + return activeEditor.execCommand(commandName); + }, + priority: 90 +}, editorIdentifier).addCommandWithUrlTest(commandName, /^\[sitetree_link.+]$/); + +var plugin = { + init: function init(editor) { + editor.addCommand(commandName, function () { + var field = (0, _jquery2.default)('#' + editor.id).entwine('ss'); + + field.openLinkInternalDialog(); + }); + } +}; + +var modalId = 'insert-link__dialog-wrapper--internal'; +var sectionConfigKey = 'SilverStripe\\CMS\\Controllers\\CMSPageEditController'; +var formName = 'editorInternalLink'; +var InsertLinkInternalModal = (0, _Injector.provideInjector)((0, _InsertLinkModal.createInsertLinkModal)(sectionConfigKey, formName)); + +_jquery2.default.entwine('ss', function ($) { + $('textarea.htmleditor').entwine({ + openLinkInternalDialog: function openLinkInternalDialog() { + var dialog = $('#' + modalId); + + if (!dialog.length) { + dialog = $('
'); + $('body').append(dialog); + } + dialog.addClass('insert-link__dialog-wrapper'); + + dialog.setElement(this); + dialog.open(); + } + }); + + $('#' + modalId).entwine({ + renderModal: function renderModal(isOpen) { + var _this = this; + + var store = ss.store; + var client = ss.apolloClient; + var handleHide = function handleHide() { + return _this.close(); + }; + var handleInsert = function handleInsert() { + return _this.handleInsert.apply(_this, arguments); + }; + var attrs = this.getOriginalAttributes(); + var requireLinkText = this.getRequireLinkText(); + + _reactDom2.default.render(_react2.default.createElement( + _reactApollo.ApolloProvider, + { client: client }, + _react2.default.createElement( + _reactRedux.Provider, + { store: store }, + _react2.default.createElement(InsertLinkInternalModal, { + isOpen: isOpen, + onInsert: handleInsert, + onClosed: handleHide, + title: _i18n2.default._t('CMS.LINK_PAGE', 'Link to a page'), + bodyClassName: 'modal__dialog', + className: 'insert-link__dialog-wrapper--internal', + fileAttributes: attrs, + identifier: 'Admin.InsertLinkInternalModal', + requireLinkText: requireLinkText + }) + ) + ), this[0]); + }, + getRequireLinkText: function getRequireLinkText() { + var selection = this.getElement().getEditor().getInstance().selection; + var selectionContent = selection.getContent() || ''; + var tagName = selection.getNode().tagName; + var requireLinkText = tagName !== 'A' && selectionContent.trim() === ''; + + return requireLinkText; + }, + buildAttributes: function buildAttributes(data) { + var shortcode = _ShortcodeSerialiser2.default.serialise({ + name: 'sitetree_link', + properties: { id: data.PageID } + }, true); + + var anchor = data.Anchor && data.Anchor.length ? '#' + data.Anchor : ''; + var href = '' + shortcode + anchor; + + return { + href: href, + target: data.TargetBlank ? '_blank' : '', + title: data.Description + }; + }, + getOriginalAttributes: function getOriginalAttributes() { + var editor = this.getElement().getEditor(); + var node = $(editor.getSelectedNode()); + + var hrefParts = (node.attr('href') || '').split('#'); + if (!hrefParts[0]) { + return {}; + } + + var shortcode = _ShortcodeSerialiser2.default.match('sitetree_link', false, hrefParts[0]); + if (!shortcode) { + return {}; + } + + return { + PageID: shortcode.properties.id ? parseInt(shortcode.properties.id, 10) : 0, + Anchor: hrefParts[1] || '', + Description: node.attr('title'), + TargetBlank: !!node.attr('target') + }; + } + }); +}); + +tinymce.PluginManager.add(commandName, function (editor) { + return plugin.init(editor); +}); + +exports.default = plugin; + +/***/ }), + +/***/ 0: +/***/ (function(module, exports) { + +module.exports = jQuery; + +/***/ }), + +/***/ 1: +/***/ (function(module, exports) { + +module.exports = i18n; + +/***/ }), + +/***/ 2: +/***/ (function(module, exports) { + +module.exports = React; + +/***/ }), + +/***/ 3: +/***/ (function(module, exports) { + +module.exports = Injector; + +/***/ }), + +/***/ 4: +/***/ (function(module, exports) { + +module.exports = ReactApollo; + +/***/ }), + +/***/ 5: +/***/ (function(module, exports) { + +module.exports = ReactDom; + +/***/ }), + +/***/ 6: +/***/ (function(module, exports) { + +module.exports = ReactRedux; + +/***/ }), + +/***/ 7: +/***/ (function(module, exports) { + +module.exports = InsertLinkModal; + +/***/ }), + +/***/ 8: +/***/ (function(module, exports) { + +module.exports = ShortcodeSerialiser; + +/***/ }), + +/***/ 9: +/***/ (function(module, exports) { + +module.exports = TinyMCEActionRegistrar; + +/***/ }) + +/******/ }); +//# sourceMappingURL=TinyMCE_sslink-internal.js.map \ No newline at end of file diff --git a/client/dist/js/bundle.js b/client/dist/js/bundle.js index 93f845f43c..1b6942df68 100644 --- a/client/dist/js/bundle.js +++ b/client/dist/js/bundle.js @@ -1 +1,2423 @@ -!function(e){function t(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,t),a.l=!0,a.exports}var n={};t.m=e,t.c=n,t.i=function(e){return e},t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s="./client/src/bundles/bundle.js")}({"./client/src/boot/index.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}var a=n("./client/src/boot/registerReducers.js"),i=r(a),o=n("./client/src/boot/registerComponents.js"),s=r(o);window.document.addEventListener("DOMContentLoaded",function(){(0,s.default)(),(0,i.default)()})},"./client/src/boot/registerComponents.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(3),i=r(a),o=n("./client/src/components/AnchorSelectorField/AnchorSelectorField.js"),s=r(o),l=n("./client/src/state/history/readOnePageQuery.js"),d=r(l),c=n("./client/src/state/history/rollbackPageMutation.js"),u=r(c);t.default=function(){i.default.component.register("AnchorSelectorField",s.default),i.default.transform("pages-history",function(e){e.component("HistoryViewer.pages-controller-cms-content",d.default,"PageHistoryViewer")}),i.default.transform("pages-history-revert",function(e){e.component("HistoryViewerToolbar.VersionedAdmin.HistoryViewer.SiteTree.HistoryViewerVersionDetail",u.default,"PageRevertMutation")})}},"./client/src/boot/registerReducers.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=n(3),i=r(a),o=n(12),s=n("./client/src/state/anchorSelector/AnchorSelectorReducer.js"),l=r(s);t.default=function(){i.default.reducer.register("cms",(0,o.combineReducers)({anchorSelector:l.default}))}},"./client/src/bundles/bundle.js":function(e,t,n){"use strict";n("./client/src/legacy/CMSMain.AddForm.js"),n("./client/src/legacy/CMSMain.EditForm.js"),n("./client/src/legacy/CMSMain.js"),n("./client/src/legacy/CMSMain.Tree.js"),n("./client/src/legacy/CMSPageHistoryController.js"),n("./client/src/legacy/RedirectorPage.js"),n("./client/src/legacy/SiteTreeURLSegmentField.js"),n("./client/src/boot/index.js")},"./client/src/components/AnchorSelectorField/AnchorSelectorField.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function s(e,t){var n=(0,_.formValueSelector)(t.formid,j.default),r=t&&t.data&&t.data.targetFieldName||"PageID",a=Number(n(e,r)||0),i=[],o=a?e.cms.anchorSelector.pages.find(function(e){return e.id===a}):null;!o||o.loadingState!==P.default.SUCCESS&&o.loadingState!==P.default.DIRTY||(i=o.anchors);var s=null;return s=o?o.loadingState:a?P.default.DIRTY:P.default.SUCCESS,{pageId:a,anchors:i,loadingState:s}}function l(e){return{actions:{anchorSelector:(0,v.bindActionCreators)(y,e)}}}Object.defineProperty(t,"__esModule",{value:!0}),t.ConnectedAnchorSelectorField=t.Component=void 0;var d=function(){function e(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:this.props;if(t.loadingState===P.default.UPDATING||t.loadingState===P.default.SUCCESS||!t.pageId)return Promise.resolve();t.actions.anchorSelector.beginUpdating(t.pageId);var n=t.data.endpoint.replace(/:id/,t.pageId);return(0,m.default)(n,{credentials:"same-origin"}).then(function(e){return e.json()}).then(function(e){return t.actions.anchorSelector.updated(t.pageId,e),e}).catch(function(n){t.actions.anchorSelector.updateFailed(t.pageId),e.handleLoadingError(n,t)})}},{key:"getDropdownOptions",value:function(){var e=this,t=this.props.anchors.map(function(e){return{value:e}});return this.props.value&&!this.props.anchors.find(function(t){return t===e.props.value})&&t.unshift({value:this.props.value}),t}},{key:"handleChange",value:function(e){"function"==typeof this.props.onChange&&this.props.onChange(e?e.value:"")}},{key:"handleLoadingError",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.props;if(t.onLoadingError===D)throw e;return t.onLoadingError({errors:[{value:e.message,type:"error"}]})}},{key:"render",value:function(){var e={id:this.props.id},t=(0,T.default)("anchorselectorfield",this.props.extraClass),n=this.getDropdownOptions(),r=this.props.value||"",a=u.default._t("CMS.ANCHOR_SELECT_OR_TYPE","Select or enter anchor");return p.default.createElement(A.Creatable,{searchable:!0,options:n,className:t,name:this.props.name,inputProps:e,onChange:this.handleChange,onBlurResetsInput:!0,value:r,placeholder:a,labelKey:"value"})}}]),t}(C.default);L.propTypes={extraClass:O.default.string,id:O.default.string,name:O.default.string.isRequired,onChange:O.default.func,value:O.default.string,attributes:O.default.oneOfType([O.default.object,O.default.array]),pageId:O.default.number,anchors:O.default.array,loadingState:O.default.oneOf(Object.keys(P.default).map(function(e){return P.default[e]})),onLoadingError:O.default.func,data:O.default.shape({endpoint:O.default.string,targetFieldName:O.default.string})},L.defaultProps={value:"",extraClass:"",onLoadingError:D,attributes:{}};var k=(0,g.connect)(s,l)(L);t.Component=L,t.ConnectedAnchorSelectorField=k,t.default=(0,F.default)(k)},"./client/src/legacy/CMSMain.AddForm.js":function(e,t,n){"use strict";var r=n(0);(function(e){return e&&e.__esModule?e:{default:e}})(r).default.entwine("ss",function(e){e(".TreeDropdownField").entwine({OldValue:null}),e("#Form_AddForm_ParentID_Holder .treedropdownfield").entwine({onmatch:function(){this._super(),e(".cms-add-form").updateTypeList()}}),e(".cms-add-form .parent-mode :input").entwine({onclick:function(e){var t=this.closest("form").find("#Form_AddForm_ParentID_Holder .TreeDropdownField");"top"==this.val()?(t.setOldValue(t.getValue()),t.setValue(0)):(t.setValue(t.getOldValue()||0),t.setOldValue(null)),t.refresh(),t.trigger("change")}}),e(".cms-add-form").entwine({ParentCache:{},onadd:function(){var t=this;this.find("#Form_AddForm_ParentID_Holder .TreeDropdownField").bind("change",function(){t.updateTypeList()}),this.find(".SelectionGroup.parent-mode").bind("change",function(){t.updateTypeList()}),"top"==e(".cms-add-form .parent-mode :input").val()&&this.updateTypeList()},loadCachedChildren:function(e){var t=this.getParentCache();return void 0!==t[e]?t[e]:null},saveCachedChildren:function(e,t){var n=this.getParentCache();n[e]=t,this.setParentCache(n)},updateTypeList:function(){var t=this.data("hints"),n=this.find("#Form_AddForm_ParentID"),r=this.find("input[name=ParentModeField]:checked").val(),a=n.data("metadata"),i="child"===r?n.getValue():null,o=a?a.ClassName:null,s=o&&"child"===r&&i?o:"Root",l=void 0!==t[s]?t[s]:null,d=this,c=l&&void 0!==l.defaultChild?l.defaultChild:null,u=[];if(i){if(this.hasClass("loading"))return;return this.addClass("loading"),null!==(u=this.loadCachedChildren(i))?(this.updateSelectionFilter(u,c),void this.removeClass("loading")):(e.ajax({url:d.data("childfilter"),data:{ParentID:i},success:function(e){d.saveCachedChildren(i,e),d.updateSelectionFilter(e,c)},complete:function(){d.removeClass("loading")}}),!1)}u=l&&void 0!==l.disallowedChildren?l.disallowedChildren:[],this.updateSelectionFilter(u,c)},updateSelectionFilter:function(t,n){var r=this.find("#Form_AddForm_PageType div.radio.selected")[0],a=!1,i=null;if(this.find("#Form_AddForm_PageType div.radio").each(function(n,o){var s=e(this).find("input").val(),l=-1===e.inArray(s,t);o===r&&l&&(a=!0),e(this).setEnabled(l),l||e(this).setSelected(!1),i=null===i?l:i&&l}),a)var o=e(r).parents("li:first");else if(n)var o=this.find("#Form_AddForm_PageType div.radio input[value="+n+"]").parents("li:first");else var o=this.find("#Form_AddForm_PageType div.radio:not(.disabled):first");o.setSelected(!0),o.siblings().setSelected(!1),this.find("#Form_AddForm_PageType div.radio:not(.disabled)").length?this.find("button[name=action_doAdd]").removeAttr("disabled"):this.find("button[name=action_doAdd]").attr("disabled","disabled"),this.find(".message-restricted")[i?"hide":"show"]()}}),e(".cms-add-form #Form_AddForm_PageType div.radio").entwine({onclick:function(e){this.setSelected(!0)},setSelected:function(e){var t=this.find("input");e&&!t.is(":disabled")?(this.siblings().setSelected(!1),this.toggleClass("selected",!0),t.prop("checked",!0)):(this.toggleClass("selected",!1),t.prop("checked",!1))},setEnabled:function(t){e(this).toggleClass("disabled",!t),t?e(this).find("input").removeAttr("disabled"):e(this).find("input").attr("disabled","disabled").removeAttr("checked")}}),e(".cms-content-addpage-button").entwine({onclick:function(t){var n,r=e(".cms-tree"),a=e(".cms-list"),i=0;if(r.is(":visible")){var o=r.jstree("get_selected");i=o?e(o[0]).data("id"):null}else{var s=a.find('input[name="Page[GridState]"]').val();s&&(i=parseInt(JSON.parse(s).ParentID,10))}var l,d={selector:this.data("targetPanel"),pjax:this.data("pjax")};i?(n=this.data("extraParams")?this.data("extraParams"):"",l=e.path.addSearchParams(i18n.sprintf(this.data("urlAddpage"),i),n)):l=this.attr("href"),e(".cms-container").loadPanel(l,null,d),t.preventDefault(),this.blur()}})})},"./client/src/legacy/CMSMain.EditForm.js":function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function a(e){return function(){var t=e.apply(this,arguments);return new Promise(function(e,n){function r(a,i){try{var o=t[a](i),s=o.value}catch(e){return void n(e)}if(!o.done)return Promise.resolve(s).then(function(e){r("next",e)},function(e){r("throw",e)});e(s)}return r("next")})}}var i=n(0),o=r(i),s=n(1),l=r(s),d=n("./node_modules/@silverstripe/reactstrap-confirm/dist/index.js"),c=r(d);o.default.entwine("ss",function(e){e(".cms-edit-form :input#Form_EditForm_ClassName").entwine({onchange:function(){alert(l.default._t("CMS.ALERTCLASSNAME"))}}),e(".cms-edit-form input[name=Title]").entwine({onmatch:function(){var t=this;t.data("OrigVal",t.val());var n=t.closest("form"),r=e("input:text[name=URLSegment]",n),a=e("input[name=LiveLink]",n);r.length>0&&(t._addActions(),this.bind("change",function(n){var i=t.data("OrigVal"),o=t.val();t.data("OrigVal",o),0===r.val().indexOf(r.data("defaultUrl"))&&""==a.val()?t.updateURLSegment(o):e(".update",t.parent()).show().parent(".form__field-holder").addClass("input-group"),t.updateRelatedFields(o,i),t.updateBreadcrumbLabel(o)})),this._super()},onunmatch:function(){this._super()},updateRelatedFields:function(t,n){this.parents("form").find("input[name=MetaTitle], input[name=MenuTitle]").each(function(){var r=e(this);r.val()==n&&(r.val(t),r.updatedRelatedFields&&r.updatedRelatedFields())})},updateURLSegment:function(t){var n=e("input:text[name=URLSegment]",this.closest("form")),r=n.closest(".field.urlsegment"),a=e(".update",this.parent());r.update(t),a.is(":visible")&&a.hide().parent(".form__field-holder").removeClass("input-group")},updateBreadcrumbLabel:function(t){var n=(e(".cms-edit-form input[name=ID]").val(),e("span.cms-panel-link.crumb"));t&&""!=t&&n.text(t)},_addActions:function(){var t,n=this;t=e("