UNPKG

22.5 kBJavaScriptView Raw
1!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.cqSpaPageModelManager=t():e.cqSpaPageModelManager=t()}("undefined"!=typeof self?self:this,(function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=9)}([function(e,t,n){"use strict";var r=n(1),a={DEFAULT_SLING_MODEL_SELECTOR:"model",DEFAULT_MODEL_JSON_EXTENSION:".model.json"},i=n(3),o=n(7),s=n(8),u=n.n(s);function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.d(t,"a",(function(){return h}));var c=/^(.*)?(?:\/(?:content|conf|apps|libs|etc)\/.*)/g,f="(.+)/"+r.a.JCR_CONTENT+"/(.+)",h=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,s;return t=e,s=[{key:"isBrowser",value:function(){try{return"undefined"!=typeof window}catch(e){return!1}}},{key:"getContextPath",value:function(e){if(!(e=e||this.getCurrentPathname()))return"";var t=c.exec(e);return c.lastIndex=0,t&&t[1]?t[1]:""}},{key:"adaptPagePath",value:function(t,n){if(!t)return"";if(!n)return t;var r=e.internalize(t);return r===e.sanitize(n)?"":r}},{key:"externalize",value:function(e){var t=this.getContextPath();return!t||e.startsWith(t)?e:t+e}},{key:"internalize",value:function(e){if(!e)return e;var t=this.getContextPath();return e.startsWith(t.endsWith("/")?t:t+"/")?e.replace(t,""):e}},{key:"getMetaPropertyValue",value:function(e){if(this.isBrowser()){var t=document.head.querySelector('meta[property="'+e+'"]');return t&&t.content}}},{key:"convertToModelUrl",value:function(e){return e&&e.replace&&e.replace(/\.htm(l)?$/,a.DEFAULT_MODEL_JSON_EXTENSION)}},{key:"getCurrentPageModelUrl",value:function(){return this.convertToModelUrl(this.getCurrentPathname())}},{key:"getModelUrl",value:function(e){if(e&&e.replace)return this.convertToModelUrl(e);var t=this.getMetaPropertyValue(i.a.PAGE_MODEL_ROOT_URL);return t||this.getCurrentPageModelUrl()}},{key:"sanitize",value:function(e){if(e){var t=u.a.parse(e,!1,!0).pathname,n=(t=this.internalize(t)).indexOf(".");return n>-1&&(t=t.substr(0,n)),t=Object(o.normalize)(t)}}},{key:"addExtension",value:function(e,t){if(!t||t.length<1)return e;if(t.startsWith(".")||(t="."+t),!e||e.length<1||e.indexOf(t)>-1)return e;var n=e,r=/^((?:[/a-zA-Z0-9:_-]*)+)(?:\.?)([a-zA-Z0-9._-]*)(?:\/?)([a-zA-Z0-9/._-]*)(?:\??)([a-zA-Z0-9=&]*)$/g.exec(e),a="";return r&&r.length>2&&(a=r[3]?"/"+r[3]:"",a+=r[4]?"?"+r[4]:"",n=r[1]+"."+r[2].replace(/\.htm(l)?/,t)+a),n.indexOf(t)>-1?n:n+t+a}},{key:"addSelector",value:function(e,t){if(!t||t.length<1)return e;if(t.startsWith(".")||(t="."+t),!e||e.length<1||e.indexOf(t)>-1)return e;var n=e.indexOf(".")||e.length;return n<0?e+t:e.slice(0,n)+t+e.slice(n,e.length)}},{key:"getCurrentPathname",value:function(){return this.isBrowser()?window.location.pathname:void 0}},{key:"dispatchGlobalCustomEvent",value:function(e,t){this.isBrowser()&&window.dispatchEvent(new CustomEvent(e,t))}},{key:"join",value:function(e){return e?this.normalize(e.filter((function(e){return e})).join("/")):""}},{key:"normalize",value:function(e){return e&&e?e.replace(/(\/+)/g,"/"):""}},{key:"makeAbsolute",value:function(e){return e&&"string"==typeof e?e.startsWith("/")?e:"/"+e:""}},{key:"makeRelative",value:function(e){return e&&"string"==typeof e?e.startsWith("/")?e.slice(1):e:""}},{key:"getParentNodePath",value:function(e){var t=e.lastIndexOf("/")+1;return e&&"string"==typeof e&&t>0&&t<e.length&&e.substring(0,t-1)}},{key:"isItem",value:function(e){return new RegExp(f).test(e)}},{key:"getNodeName",value:function(e){var t=e.lastIndexOf("/")+1;return e&&"string"==typeof e&&t<e.length&&e.substring(t,e.length)}},{key:"subpath",value:function(t,n){if(!t)return"";var r,a=e.makeRelative(t).split("/"),i=e.makeRelative(n).split("/");if(a.length<i.length)return t;for(r=0;r<i.length&&a[r]===i[r];++r);return r===i.length?a.slice(r).join("/"):t}},{key:"splitByDelimitators",value:function(t,n){var r=[t];return n.forEach((function(t){var n=[],a=e.normalize(e.makeAbsolute(t)+"/");r.forEach((function(r){if(n=n.concat(r.split(a)),r.endsWith(t)){var i=n.splice(n.length-1,1)[0];i!==t&&(n=n.concat(i.split(e.makeAbsolute(t))))}n=n.filter((function(e){return e}))})),r=n})),r}},{key:"_getJCRPath",value:function(e,t){return e+"/"+r.a.JCR_CONTENT+"/"+t}},{key:"splitPageContentPaths",value:function(e){if(e||"string"==typeof e){var t=e.split("/"+r.a.JCR_CONTENT+"/"),n={pagePath:t[0]};return t.length>1&&(n.itemPath=t[1]),n}}},{key:"trimStrings",value:function(t,n){return n.forEach((function(n){for(;t.startsWith(n);)t=e.makeRelative(t.slice(n.length));for(;t.endsWith(n);)(t=t.slice(0,t.length-n.length)).endsWith("/")&&(t=t.slice(0,t.length-1))})),t}},{key:"_getStartStrings",value:function(t,n){var r="";return n.forEach((function(n){for(;t.startsWith(n);)t=e.makeRelative(t.slice(n.length)),r=r+"/"+n})),e.makeRelative(r)}}],(n=null)&&l(t.prototype,n),s&&l(t,s),e}()},function(e,t,n){"use strict";t.a={TYPE_PROP:":type",ITEMS_PROP:":items",ITEMS_ORDER_PROP:":itemsOrder",PATH_PROP:":path",CHILDREN_PROP:":children",HIERARCHY_TYPE_PROP:":hierarchyType",JCR_CONTENT:"jcr:content"}},function(e,t){e.exports=require("clone")},function(e,t,n){"use strict";t.a={PAGE_MODEL_ROOT_URL:"cq:pagemodel_root_url",PAGE_MODEL_ROUTE_FILTERS:"cq:pagemodel_route_filters",PAGE_MODEL_ROUTER:"cq:pagemodel_router"}},function(e,t,n){"use strict";var r=n(0),a=n(1),i=n(3),o=n(2),s=n.n(o),u=n(5);function l(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function c(e){r.a.dispatchGlobalCustomEvent(u.a.PAGE_MODEL_LOADED,{detail:{model:s()(e)}})}var f=function(){function e(t){var n=this;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._modelManager=t,this._windowListener=function(e){e&&e.detail&&e.detail.msg?n._updateModel(e.detail.msg):console.error("EditorService.js","No message passed to cq-pagemodel-update",e)},r.a.isBrowser()&&window.addEventListener(u.a.PAGE_MODEL_UPDATE,this._windowListener)}var t,n,a;return t=e,(n=[{key:"_updateModel",value:function(e){if(e&&e.cmd&&e.path){var t,n,a,i=e.path,o=e.cmd,u=s()(e.data);switch(o){case"replace":this._modelManager.modelStore.setData(i,u),this._modelManager._notifyListeners(i);break;case"delete":this._modelManager.modelStore.removeData(i),this._modelManager._notifyListeners(r.a.getParentNodePath(i));break;case"insertBefore":a=!0;case"insertAfter":t=r.a.getNodeName(i),n=r.a.getParentNodePath(i)+"/"+u.key,this._modelManager._modelStore.insertData(n,u.value,t,a),this._modelManager._notifyListeners(r.a.getParentNodePath(i));break;default:console.log("EditorClient","unsupported command:",o)}c(this._modelManager.modelStore._data)}else console.error("PageModelManager.js","Not enough data received to update the page model")}},{key:"destroy",value:function(){this._modelManager=null,delete this._modelManager,r.a.isBrowser()&&window.removeEventListener(u.a.PAGE_MODEL_UPDATE,this._windowListener)}}])&&l(t.prototype,n),a&&l(t,a),e}(),h=n(6);function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}var p=function(){function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.initialize(t,n),this._pageContentDelimiter=[a.a.JCR_CONTENT]}var t,n,i;return t=e,(n=[{key:"initialize",value:function(e,t){t&&(this._data=t),this._rootPath=e}},{key:"_getPageData",value:function(e){if(this._data)return""===e||e===this._data[a.a.PATH_PROP]||e===this.rootPath?this._data:this._data[a.a.CHILDREN_PROP]&&this._data[a.a.CHILDREN_PROP][e]}},{key:"_findItemData",value:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this._data,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"",o={parent:n,parentPath:i},s=t[a.a.ITEMS_PROP];if(!s)return o;for(var u in s)if(Object.prototype.hasOwnProperty.call(s,u)){var l=s[u];if(u===e)return o.data=s[u],o.key=u,o;var c=r.a.subpath(e,u),f=r.a._getStartStrings(c,this._pageContentDelimiter),h=r.a.join([i,u,f]);if((c=r.a.trimStrings(c,this._pageContentDelimiter))!==e&&(l=this._findItemData(c,l,l,h)))return l}return o}},{key:"setData",value:function(e,t){var n=r.a.getNodeName(e),i=this.getData(r.a.getParentNodePath(e),!1);if(i&&i[a.a.ITEMS_PROP]){var o=s()(t);i[a.a.ITEMS_PROP][n]=o.value}}},{key:"getData",value:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];if(!e&&"string"!=typeof e)return t?s()(this._data):this._data;if(e===this._rootPath||e===this._rootPath+"/"+a.a.JCR_CONTENT)return t?s()(this._data):this._data;var n=r.a.splitPageContentPaths(e),i=this._getPageData(n.pagePath);if(!i||!n.itemPath)return t?s()(i):i;var o=this._findItemData(n.itemPath,i);return o?t?s()(o.data):o.data:void 0}},{key:"insertData",value:function(e,t,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];if(t=s()(t),e){var o=r.a.isItem(e);if(o||!this._data[a.a.CHILDREN_PROP]){var u=r.a.splitPageContentPaths(e),l=this._getPageData(u.pagePath),c=this._findItemData(u.itemPath,l),f=c.parent||l||this._data,h=r.a.getNodeName(u.itemPath);if(f&&Object.prototype.hasOwnProperty.call(f,a.a.ITEMS_PROP)&&(f[a.a.ITEMS_PROP][h]=t,Object.prototype.hasOwnProperty.call(f,a.a.ITEMS_ORDER_PROP))){var d=f[a.a.ITEMS_ORDER_PROP].indexOf(n);d>-1?f[a.a.ITEMS_ORDER_PROP].splice(i?d:d+1,0,h):f[a.a.ITEMS_ORDER_PROP].push(h)}}else this._data[a.a.CHILDREN_PROP][e]=t}else console.warn("No path provided for data:",t)}},{key:"removeData",value:function(e){if(e)if(r.a.isItem(e)||!this._data[a.a.CHILDREN_PROP]){var t=r.a.splitPageContentPaths(e),n=this._getPageData(t.pagePath),i=this._findItemData(t.itemPath,n);if(i.data){if(i&&i.parent&&Object.prototype.hasOwnProperty.call(i.parent,a.a.ITEMS_PROP)){var o=i.parent,s=r.a.getNodeName(t.itemPath);if(delete o[a.a.ITEMS_PROP][s],delete i.data,delete i.parent,Object.prototype.hasOwnProperty.call(o,a.a.ITEMS_ORDER_PROP)){var u=o[a.a.ITEMS_ORDER_PROP].indexOf(s);o[a.a.ITEMS_ORDER_PROP].splice(u,1)}return i.parentPath}}else console.warn("Item for path ".concat(e," was not found! Nothing to remove then."))}else delete this._data[a.a.CHILDREN_PROP][e]}},{key:"destroy",value:function(){this._data=null,this._rootPath=null,this._pageContentDelimiter=null,delete this._data,delete this._rootPath,delete this._pageContentDelimiter}},{key:"rootPath",get:function(){return this._rootPath}}])&&d(t.prototype,n),i&&d(t,i),e}();function v(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function _(e){if(!e)return"";var t=r.a.internalize(e);return this.modelStore&&this.modelStore.rootPath&&t===r.a.sanitize(this.modelStore.rootPath)?"":t}function g(e){for(var t=function(){var e=r.a.getMetaPropertyValue(i.a.PAGE_MODEL_ROUTE_FILTERS);return e?e.split(","):[]}(),n=0,a=t.length;n<a;n++)if(new RegExp(t[n]).test(e))return!0;return!1}n.d(t,"b",(function(){return g}));var m=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e)}var t,n,o;return t=e,(n=[{key:"_checkDependencies",value:function(){return this.modelClient?this.modelStore?Promise.resolve():Promise.reject("No ModelManager registered"):Promise.reject("No ModelClient registered")}},{key:"_toModelPath",value:function(e){var t=r.a.addSelector(e,"model");return t=r.a.addExtension(t,"json"),t=r.a.externalize(t),r.a.makeAbsolute(t)}},{key:"initialize",value:function(e){var t,n,o=this;this.destroy(),e&&"string"!=typeof e?e&&(t=e.path,this._modelClient=e.modelClient,n=e.model):t=e,this._listenersMap={},this._fetchPromises={},this._initPromise=null;var s=r.a.internalize(r.a.getMetaPropertyValue(i.a.PAGE_MODEL_ROOT_URL)),u=r.a.sanitize(r.a.getCurrentPathname()),l=t||s||u;return l||console.error("ModelManager.js","Cannot initialize without an URL to fetch the root model"),this._modelClient||(this._modelClient=new h.a),this._editorClient=new f(this),this._modelStore=new p(l,n),this._initPromise=this._checkDependencies().then((function(){var e=r.a.sanitize(l),t=o.modelStore.getData(e);return t?(c(t),t):o._fetchData(l).then((function(t){if(o.modelStore.initialize(e,t),g(u)||(h=s,!(f=u)||!h||r.a.sanitize(f)===r.a.sanitize(h))||(l=u,(i=t)&&l&&i[a.a.CHILDREN_PROP]&&i[a.a.CHILDREN_PROP][r.a.sanitize(l)])){var n=o.modelStore.getData();return c(n),n}return o._fetchData(u).then((function(e){o.modelStore.insertData(r.a.sanitize(u),e);var t=o.modelStore.getData();return c(t),t}));var i,l,f,h}))})),this._initPromise}},{key:"_fetchData",value:function(e){var t=this;if(Object.prototype.hasOwnProperty.call(this._fetchPromises,e))return this._fetchPromises[e];var n=this.modelClient.fetch(this._toModelPath(e));return this._fetchPromises[e]=n,n.then((function(n){return delete t._fetchPromises[e],n})).catch((function(n){return delete t._fetchPromises[e],n})),n}},{key:"_storeData",value:function(e,t){var n=r.a.isItem(e);return this.modelStore.insertData(e,t),this._notifyListeners(e),n||this._notifyListeners(""),t}},{key:"getData",value:function(e){var t,n=this,r=!1;return"string"==typeof e?t=e:e&&(t=e.path,r=e.forceReload),(this._initPromise||Promise.resolve()).then((function(){return n._checkDependencies()})).then((function(){if(!r){var e=n.modelStore.getData(t);if(e)return Promise.resolve(e)}return n._fetchData(t).then((function(e){return n._storeData(t,e)}))}))}},{key:"_notifyListeners",value:function(e){e=r.a.adaptPagePath.call(this,e);var t=this._listenersMap[e];t&&t.length&&t.forEach((function(n){try{n()}catch(n){console.error("Error in listener "+t+" at path "+e+" : "+n)}}))}},{key:"addListener",value:function(e,t){if(e||"string"==typeof e){var n=_.call(this,e);this._listenersMap[n]=this._listenersMap[e]||[],this._listenersMap[n].push(t)}}},{key:"removeListener",value:function(e,t){if(e){var n=_.call(this,e),r=this._listenersMap[n];if(r){var a=r.indexOf(t);-1!==a&&r.splice(a,1)}}}},{key:"destroy",value:function(){this._fetchPromises=null,delete this._fetchPromises,this._listenersMap=null,delete this._listenersMap,this.modelClient&&this.modelClient.destroy&&this.modelClient.destroy(),this.modelStore&&this.modelStore.destroy&&this.modelStore.destroy(),this._editorClient&&this._editorClient.destroy&&this._editorClient.destroy()}},{key:"modelClient",get:function(){return this._modelClient}},{key:"modelStore",get:function(){return this._modelStore}},{key:"rootPath",get:function(){return this.modelStore.rootPath}}])&&v(t.prototype,n),o&&v(t,o),e}();t.a=new m},function(e,t,n){"use strict";t.a={PAGE_MODEL_INIT:"cq-pagemodel-init",PAGE_MODEL_LOADED:"cq-pagemodel-loaded",PAGE_MODEL_UPDATE:"cq-pagemodel-update",PAGE_MODEL_ROUTE_CHANGED:"cq-pagemodel-route-changed"}},function(e,t,n){"use strict";function r(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}n.d(t,"a",(function(){return a}));var a=function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._apiHost=t||"",this._fetchPromises={}}var t,n,a;return t=e,(n=[{key:"fetch",value:function(e){function t(t){return e.apply(this,arguments)}return t.toString=function(){return e.toString()},t}((function(e){if(!e){var t="Fetching model rejected for path: "+e;return Promise.reject(new Error(t))}var n="".concat(this._apiHost).concat(e);return fetch(n,{credentials:"same-origin"}).then((function(e){if(e.status>=200&&e.status<300)return e.json();throw{response:e}})).catch((function(e){return Promise.reject(e)}))}))},{key:"destroy",value:function(){this._apiHost=null,this._fetchPromises=null}}])&&r(t.prototype,n),a&&r(t,a),e}()},function(e,t,n){(function(e){function n(e,t){for(var n=0,r=e.length-1;r>=0;r--){var a=e[r];"."===a?e.splice(r,1):".."===a?(e.splice(r,1),n++):n&&(e.splice(r,1),n--)}if(t)for(;n--;n)e.unshift("..");return e}function r(e,t){if(e.filter)return e.filter(t);for(var n=[],r=0;r<e.length;r++)t(e[r],r,e)&&n.push(e[r]);return n}t.resolve=function(){for(var t="",a=!1,i=arguments.length-1;i>=-1&&!a;i--){var o=i>=0?arguments[i]:e.cwd();if("string"!=typeof o)throw new TypeError("Arguments to path.resolve must be strings");o&&(t=o+"/"+t,a="/"===o.charAt(0))}return(a?"/":"")+(t=n(r(t.split("/"),(function(e){return!!e})),!a).join("/"))||"."},t.normalize=function(e){var i=t.isAbsolute(e),o="/"===a(e,-1);return(e=n(r(e.split("/"),(function(e){return!!e})),!i).join("/"))||i||(e="."),e&&o&&(e+="/"),(i?"/":"")+e},t.isAbsolute=function(e){return"/"===e.charAt(0)},t.join=function(){var e=Array.prototype.slice.call(arguments,0);return t.normalize(r(e,(function(e,t){if("string"!=typeof e)throw new TypeError("Arguments to path.join must be strings");return e})).join("/"))},t.relative=function(e,n){function r(e){for(var t=0;t<e.length&&""===e[t];t++);for(var n=e.length-1;n>=0&&""===e[n];n--);return t>n?[]:e.slice(t,n-t+1)}e=t.resolve(e).substr(1),n=t.resolve(n).substr(1);for(var a=r(e.split("/")),i=r(n.split("/")),o=Math.min(a.length,i.length),s=o,u=0;u<o;u++)if(a[u]!==i[u]){s=u;break}var l=[];for(u=s;u<a.length;u++)l.push("..");return(l=l.concat(i.slice(s))).join("/")},t.sep="/",t.delimiter=":",t.dirname=function(e){if("string"!=typeof e&&(e+=""),0===e.length)return".";for(var t=e.charCodeAt(0),n=47===t,r=-1,a=!0,i=e.length-1;i>=1;--i)if(47===(t=e.charCodeAt(i))){if(!a){r=i;break}}else a=!1;return-1===r?n?"/":".":n&&1===r?"/":e.slice(0,r)},t.basename=function(e,t){var n=function(e){"string"!=typeof e&&(e+="");var t,n=0,r=-1,a=!0;for(t=e.length-1;t>=0;--t)if(47===e.charCodeAt(t)){if(!a){n=t+1;break}}else-1===r&&(a=!1,r=t+1);return-1===r?"":e.slice(n,r)}(e);return t&&n.substr(-1*t.length)===t&&(n=n.substr(0,n.length-t.length)),n},t.extname=function(e){"string"!=typeof e&&(e+="");for(var t=-1,n=0,r=-1,a=!0,i=0,o=e.length-1;o>=0;--o){var s=e.charCodeAt(o);if(47!==s)-1===r&&(a=!1,r=o+1),46===s?-1===t?t=o:1!==i&&(i=1):-1!==t&&(i=-1);else if(!a){n=o+1;break}}return-1===t||-1===r||0===i||1===i&&t===r-1&&t===n+1?"":e.slice(t,r)};var a="b"==="ab".substr(-1)?function(e,t,n){return e.substr(t,n)}:function(e,t,n){return t<0&&(t=e.length+t),e.substr(t,n)}}).call(this,n(11))},function(e,t){e.exports=require("url")},function(e,t,n){"use strict";n.r(t);var r=n(4);n.d(t,"ModelManager",(function(){return r.a}));var a=n(6);n.d(t,"ModelClient",(function(){return a.a}));var i=n(0);n.d(t,"PathUtils",(function(){return i.a}));var o=n(1);n.d(t,"Constants",(function(){return o.a})),n(10)},function(e,t,n){"use strict";n.r(t),n.d(t,"ROUTER_MODES",(function(){return s})),n.d(t,"getModelPath",(function(){return u})),n.d(t,"isModelRouterEnabled",(function(){return l})),n.d(t,"dispatchRouteChanged",(function(){return c})),n.d(t,"routeModel",(function(){return f}));var r=n(5),a=n(0),i=n(3),o=n(4),s={DISABLED:"disabled",CONTENT_PATH:"path"};function u(e){var t,n=(t=e||window.location.pathname).indexOf(".");if(n<0){var r=t.indexOf("?");n=r<0?t.length:r}return t.substr(0,n)}function l(){if(!a.a.isBrowser())return!1;var e=a.a.getMetaPropertyValue(i.a.PAGE_MODEL_ROUTER);return!e||s.DISABLED!==e}function c(e){o.a.getData({path:e}).then((function(e){a.a.dispatchGlobalCustomEvent(r.a.PAGE_MODEL_ROUTE_CHANGED,{detail:{model:e}})}))}function f(e){if(l()){var t=u(e);t&&"/"!==t&&!Object(o.b)(t)&&c(t)}}if(l()){var h=window.history.pushState,d=window.history.replaceState;window.history.pushState=function(e,t,n){return f(n),h.apply(history,arguments)},window.history.replaceState=function(e,t,n){return f(n),d.apply(history,arguments)}}},function(e,t){var n,r,a=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function o(){throw new Error("clearTimeout has not been defined")}function s(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"==typeof clearTimeout?clearTimeout:o}catch(e){r=o}}();var u,l=[],c=!1,f=-1;function h(){c&&u&&(c=!1,u.length?l=u.concat(l):f=-1,l.length&&d())}function d(){if(!c){var e=s(h);c=!0;for(var t=l.length;t;){for(u=l,l=[];++f<t;)u&&u[f].run();f=-1,t=l.length}u=null,c=!1,function(e){if(r===clearTimeout)return clearTimeout(e);if((r===o||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(e);try{r(e)}catch(t){try{return r.call(null,e)}catch(t){return r.call(this,e)}}}(e)}}function p(e,t){this.fun=e,this.array=t}function v(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new p(e,t)),1!==l.length||c||s(d)},p.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=v,a.addListener=v,a.once=v,a.off=v,a.removeListener=v,a.removeAllListeners=v,a.emit=v,a.prependListener=v,a.prependOnceListener=v,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}}])}));
2//# sourceMappingURL=cq-spa-page-model-manager.js.map
\No newline at end of file