tocco-admin 0.5.36 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/changelog.md +43 -0
- package/dist/{chunk-252.a7a4e7dcb9a020fd9129.js → chunk-215.fff39767c95996b4de4d.js} +2 -2
- package/dist/chunk-215.fff39767c95996b4de4d.js.map +1 -0
- package/dist/chunk-404.9bc2425dfbf4ee21635e.js +2 -0
- package/dist/chunk-404.9bc2425dfbf4ee21635e.js.map +1 -0
- package/dist/chunk-817.46476531b6e7efc9219a.js +2 -0
- package/dist/chunk-817.46476531b6e7efc9219a.js.map +1 -0
- package/dist/chunk-82.856d20bcbc6eedcbd32f.js +2 -0
- package/dist/chunk-82.856d20bcbc6eedcbd32f.js.map +1 -0
- package/dist/chunk-872.a9273eaa81fc55df7a8b.js +2 -0
- package/dist/chunk-872.a9273eaa81fc55df7a8b.js.map +1 -0
- package/dist/chunk-actions.36f03e5e0bdd9b2974c7.js +2 -0
- package/dist/chunk-actions.36f03e5e0bdd9b2974c7.js.map +1 -0
- package/dist/chunk-code-editor.f6597326374cd04ca8c0.js +7 -0
- package/dist/chunk-code-editor.f6597326374cd04ca8c0.js.map +1 -0
- package/dist/chunk-docs-actions.04e0b787c292d57ebc24.js +2 -0
- package/dist/chunk-docs-actions.04e0b787c292d57ebc24.js.map +1 -0
- package/dist/chunk-vendor-icons.5d77807afe310d44ae38.js +1 -0
- package/dist/{chunk-vendor-quill.bcff7a1213d0e7ba09f1.js → chunk-vendor-quill.1789cce485c0fe1c2550.js} +1 -1
- package/dist/index.js +8 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-230.21fdce71dc0b88f90fb7.js +0 -2
- package/dist/chunk-230.21fdce71dc0b88f90fb7.js.map +0 -1
- package/dist/chunk-252.a7a4e7dcb9a020fd9129.js.map +0 -1
- package/dist/chunk-693.054c38747be49a688ab4.js +0 -2
- package/dist/chunk-693.054c38747be49a688ab4.js.map +0 -1
- package/dist/chunk-796.1fe921c33448dcec0a97.js +0 -2
- package/dist/chunk-796.1fe921c33448dcec0a97.js.map +0 -1
- package/dist/chunk-82.3247bc18e2ce1c9526c4.js +0 -2
- package/dist/chunk-82.3247bc18e2ce1c9526c4.js.map +0 -1
- package/dist/chunk-872.ee6a53c618c0363f03e5.js +0 -2
- package/dist/chunk-872.ee6a53c618c0363f03e5.js.map +0 -1
- package/dist/chunk-actions.adbdd7321401dd50d5f3.js +0 -2
- package/dist/chunk-actions.adbdd7321401dd50d5f3.js.map +0 -1
- package/dist/chunk-code-editor.3a23df0e5978cc2dc915.js +0 -7
- package/dist/chunk-code-editor.3a23df0e5978cc2dc915.js.map +0 -1
- package/dist/chunk-docs-actions.40480956435a5f959445.js +0 -2
- package/dist/chunk-docs-actions.40480956435a5f959445.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunktocco_admin=self.webpackChunktocco_admin||[]).push([[141],{25831:(e,t,n)=>{n.r(t),n.d(t,{default:()=>g});var r=n(37703),o=n(74806),a=n(27361),i=n.n(a),c=n(67154),s=n.n(c),u=n(63804),l=n.n(u),d=(n(22982),n(599)),f=n(53622),p=n(17563),m=n(31089),h=function(e){var t=e.entityName,n=e.entityKeys,r=e.children,o=n.map((function(e){return{entityName:t,key:e}}));return l().createElement(f.Z,{to:"/docs?rootNodes=".concat(JSON.stringify(o)),target:"_blank"},r)};const v=function(e){var t=p.parse(e.history.location.search);return l().createElement(d.default,s()({},e,{navigationStrategy:{ListLink:h,DetailLink:m.z2}},t.rootNodes&&{rootNodes:JSON.parse(t.rootNodes)},{searchFormCollapsed:e.searchFormCollapsed,onSearchFormCollapsedChange:function(t){var n=t.collapsed;e.saveUserPreferences({"admin.list.searchFormCollapsed":n})}}))};var y={saveUserPreferences:n(94844).RK};const g={container:(0,r.connect)((function(e,t){return{searchFormCollapsed:i()(e.preferences.userPreferences,"admin.list.searchFormCollapsed",null)}}),y)((0,o.ZP)(v))}},53285:(e,t,n)=>{n.r(t),n.d(t,{default:()=>u});var r=n(63804),o=n.n(r),a=(n(45697),n(39853)),i=n(74806),c=n(1662),s=n(84252);const u=(0,i.ZP)((function(e){var t=e.context,n=e.onSuccess,r=e.intl,i=e.emitAction,u=(0,c.Z)(t.history.location.pathname),l=u?[{id:"rel".concat(u.model),value:u.key}]:[],d=(0,s.Z)(t,"Domain");return o().createElement(a.Z,{entityName:"Domain",formName:d,mode:"create",defaultValues:l,onEntityCreated:function(e){var t=e.id,o=[{type:"entity-create-event",payload:{entities:[{entityName:"Docs_list_item",key:"Domain/".concat(t)}]}}];n({title:r.formatMessage({id:"client.docs-browser.createDomainSuccessful"}),remoteEvents:o})},emitAction:function(e){(function(e){var t,n;return"client.entity-detail.createSuccessfulTitle"===(null===(t=e.payload)||void 0===t||null===(n=t.toaster)||void 0===n?void 0:n.title)})(e)||i(e)}})}))},11625:(e,t,n)=>{n.r(t),n.d(t,{default:()=>u});var r=n(63804),o=n.n(r),a=(n(45697),n(39853)),i=n(74806),c=n(1662),s=n(84252);const u=(0,i.ZP)((function(e){var t=e.context,n=e.onSuccess,r=e.intl,i=e.emitAction,u=(0,c.Z)(t.history.location.pathname),l=u?[{id:"rel".concat(u.model),value:u.key}]:[],d=(0,s.Z)(t,"Folder");return o().createElement(a.Z,{entityName:"Folder",formName:d,mode:"create",defaultValues:l,onEntityCreated:function(e){var t=e.id,o=[{type:"entity-create-event",payload:{entities:[{entityName:"Docs_list_item",key:"Folder/".concat(t)}]}}];n({title:r.formatMessage({id:"client.docs-browser.createFolderSuccessful"}),remoteEvents:o})},emitAction:function(e){(function(e){var t,n;return"client.entity-detail.createSuccessfulTitle"===(null===(t=e.payload)||void 0===t||null===(n=t.toaster)||void 0===n?void 0:n.title)})(e)||i(e)}})}))},45052:(e,t,n)=>{n.r(t),n.d(t,{default:()=>s});var r=n(67154),o=n.n(r),a=n(63804),i=n.n(a),c=n(51346);const s=function(e){return i().createElement(c.Z,o()({},e,{customDeleteEndpoint:"documents/delete"}))}},65290:(e,t,n)=>{n.r(t),n.d(t,{default:()=>l});var r=n(63038),o=n.n(r),a=n(63804),i=n.n(a),c=(n(45697),n(74806)),s=n(39853),u=n(84252);const l=(0,c.ZP)((function(e){var t=e.selection,n=e.onSuccess,r=e.onCancel,a=(e.intl,e.context),c=e.emitAction,l=t.ids[0].split("/"),d=o()(l,2),f=d[0],p=d[1];"Resource"===f&&(a.history.push("/docs/doc/".concat(p,"/detail")),r());var m=(0,u.Z)(a,f);return i().createElement(s.Z,{entityName:f,formName:m,entityId:p,mode:"update",onEntityUpdated:function(){var e=[{type:"entity-update-event",payload:{entities:[{entityName:"Docs_list_item",key:t.ids[0]}]}}];n({title:null,remoteEvents:e})},onEntityDeleted:function(){var e=[{type:"entity-delete-event",payload:{entities:[{entityName:"Docs_list_item",key:t.ids[0]}]}}];n({title:null,remoteEvents:e})},emitAction:function(e){(function(e){var t,n;return"client.entity-detail.createSuccessfulTitle"===(null===(t=e.payload)||void 0===t||null===(n=t.toaster)||void 0===n?void 0:n.title)})(e)||c(e)}})}))},75517:(e,t,n)=>{n.r(t),n.d(t,{default:()=>k});var r=n(63804),o=n.n(r),a=n(37703),i=n(74806),c=n(30023),s=n(63038),u=n.n(s),l=n(28655),d=n.n(l),f=(n(45697),n(44012)),p=n(6697),m=n(44166),h=n(49245),v=n(18117),y=n(18446),g=n.n(y),b=n(599),E=n(1662);function w(){var e=d()(["\n display: flex;\n justify-content: flex-end;\n\n "," {\n margin-right: 0;\n }\n"]);return w=function(){return e},e}var P=v.ZP.div(w(),p.Z),S=o().createElement(f.Z,{id:"client.actions.dms-move.button"}),O={initialize:c.j2,moveElements:c.w6},x=(0,a.connect)((function(e){return{isWaiting:e.docs.move.isWaiting,domainTypes:e.input.domainTypes,rootNodes:e.input.rootNodes,businessUnit:e.input.businessUnit}}),O)((function(e){var t=e.selection,n=e.onSuccess,a=e.onError,i=e.context,c=e.initialize,s=e.moveElements,l=e.isWaiting,d=e.domainTypes,f=e.rootNodes,p=e.businessUnit,v=e.emitAction,y=(0,E.Z)(i.history.location.pathname),w={model:"Docs_list_item",key:"".concat(y.model,"/").concat(y.key)},O=(0,r.useState)(w),x=u()(O,2),k=x[0],C=x[1];(0,r.useEffect)((function(){c(t,n,a)}),[]);var A=function(e,t){switch(e){case"Domain":return"/docs/domain/".concat(t,"/list");case"Folder":return"/docs/folder/".concat(t,"/list");case"Resource":return;default:throw new Error("Unexpected model: ".concat(e))}};return o().createElement(m.Z,{required:[!l]},o().createElement(b.default,{memoryHistory:!0,initialLocation:function(){if(null===k)return null;var e=k.key.split("/"),t=u()(e,2),n=t[0],r=t[1];return A(n,r)}(),listLimit:10,selectionStyle:"none",searchFormType:"none",disableViewPersistor:!0,getListFormName:function(e){return null===e?"Move_root_docs_list_item":"Move_docs_list_item"},onListParentChange:function(e){return C(e)},getCustomLocation:A,navigationStrategy:{},embedded:!0,emitAction:v,noLeftPadding:!0,domainTypes:d,rootNodes:f,businessUnit:p,sortable:!1}),o().createElement(P,null,o().createElement(h.Z,{onClick:function(){return s(k.key,t.ids)},look:"raised",ink:"primary",disabled:null===k||g()(k,w)},S)))}));const k=(0,i.ZP)((function(e){return o().createElement(x,e)}))},39901:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r.Z});var r=n(230)},1388:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r.Z});var r=n(39853)},599:(e,t,n)=>{n.r(t),n.d(t,{default:()=>un});var r=n(34575),o=n.n(r),a=n(93913),i=n.n(a),c=n(2205),s=n.n(c),u=n(78585),l=n.n(u),d=n(29754),f=n.n(d),p=n(63804),m=n.n(p),h=(n(45697),n(28941)),v=n(89520),y=n(88892),g=n(76772),b=n(72048),E=n(22151),w=n(90904),P=n(52540),S=n(83682),O=n(29580),x=n(50872),k=n(35937),C=n.n(k),A=n(18446),Z=n.n(A),L=n(41609),F=n.n(L),D=n(14890),_=n(87757),N=n.n(_),R=n(34857),T=n(1662),j=function(e){return{type:"docs/path/SET_BREADCRUMBS",payload:{breadcrumbs:e}}},I=N().mark(G),M=N().mark(Y),U=N().mark(W),H=N().mark($),z=function(e,t){return e.intl.messages[t]||t},B=function(e){return e.docs.path},q=function(e){return e.input.rootNodes};function G(){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,R.Ys)(z,"client.docs-browser.breadcrumbs.start");case 2:return e.t0=e.sent,e.t1={display:e.t0,path:"",type:"list"},e.next=6,(0,R.Ys)(z,"client.docs-browser.breadcrumbs.searchResults");case 6:return e.t2=e.sent,e.t3={display:e.t2,path:"",type:"list"},e.abrupt("return",[e.t1,e.t3]);case 9:case"end":return e.stop()}}),I)}function Y(e){var t,n,r,o,a,i;return N().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:return t=e.payload.location,n=(0,T.Z)(t),c.next=4,(0,R.Ys)(B);case 4:if(!c.sent.searchMode||n){c.next=11;break}return c.next=8,(0,R.RE)(G);case 8:r=c.sent,c.next=21;break;case 11:return o=n?"documents/".concat(n.model,"/").concat(n.key,"/breadcrumbs"):"documents/breadcrumbs",c.next=14,(0,R.RE)(W);case 14:return c.t0=c.sent,c.t1={rootnodes:c.t0},a={queryParams:c.t1},c.next=19,(0,R.RE)(w.Z.requestSaga,o,a);case 19:i=c.sent,r=i.body.breadcrumbs;case 21:return c.next=23,(0,R.gz)(j(r));case 23:case"end":return c.stop()}}),M)}function W(){var e;return N().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.next=2,(0,R.Ys)(q);case 2:return e=t.sent,t.abrupt("return",Array.isArray(e)&&e.length>0?e.map((function(e){return"".concat(e.entityName,"/").concat(e.key)})).join(","):null);case 4:case"end":return t.stop()}}),U)}function $(){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,R.$6)([(0,R.Fm)("docs/path/LOAD_BREADCRUMBS",Y)]);case 2:case"end":return e.stop()}}),H)}var V,K=n(59713),J=n.n(K),Q=n(60954),X=(V={},J()(V,"docs/path/SET_BREADCRUMBS",Q.Z.singleTransferReducer("breadcrumbs")),J()(V,"docs/path/SET_SEARCH_MODE",Q.Z.singleTransferReducer("searchMode")),V),ee={breadcrumbs:[],searchMode:!1};var te=N().mark(ne);function ne(){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,R.$6)([(0,R.rM)($)]);case 2:case"end":return e.stop()}}),te)}const re=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ee,t=arguments.length>1?arguments[1]:void 0,n=X[t.type];return n?n(e,t):e};var oe=n(25450),ae=n(44586);function ie(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(!e)return;if("string"==typeof e)return ce(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ce(e,t)}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:o}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,i=!0,c=!1;return{s:function(){n=e[Symbol.iterator]()},n:function(){var e=n.next();return i=e.done,e},e:function(e){c=!0,a=e},f:function(){try{i||null==n.return||n.return()}finally{if(c)throw a}}}}function ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}var se=N().mark(pe),ue=N().mark(me),le=N().mark(he),de=function(e){return e.docs.create.dialog},fe=function(e,t){return e.intl.messages[t]};function pe(e){var t,n,r,o,a,i,c,s,u,l,d;return N().wrap((function(f){for(;;)switch(f.prev=f.next){case 0:return t=e.payload,n=t.files,r=t.isDirectory,f.next=3,(0,R.RE)(ae.Z);case 3:return o=f.sent,f.next=6,(0,R.gz)(E.Z.blockingInfo(o,r?"client.docs-browser.uploadInProgressDirectory":n.length>1?"client.docs-browser.uploadInProgressMultiple":"client.docs-browser.uploadInProgress",null));case 6:return f.next=8,(0,R.Ys)(de);case 8:return a=f.sent,i=a.location,c=a.onSuccess,s=a.onError,f.prev=12,f.next=15,(0,R.RE)(me,i,n);case 15:if(403!==(u=f.sent).status){f.next=30;break}return f.next=19,(0,R.gz)(E.Z.removeBlockingInfo(o));case 19:return f.t0=s,f.next=22,(0,R.Ys)(fe,"client.entity-detail.saveAbortedTitle");case 22:return f.t1=f.sent,f.next=25,(0,R.Ys)(fe,"client.docs-browser.failedNoPermission");case 25:f.t2=f.sent,f.t3={title:f.t1,message:f.t2},(0,f.t0)(f.t3),f.next=41;break;case 30:return l=[{type:"entity-create-event",payload:{entities:u.body.items.filter((function(e){return 201===e.status})).map((function(e){return{entityName:e.bean.model,key:e.bean.key}}))}}],f.next=33,(0,R.gz)(E.Z.removeBlockingInfo(o));case 33:return d=r?"client.docs-browser.uploadSuccessfulDirectory":"client.docs-browser.uploadSuccessful",f.t4=c,f.next=37,(0,R.Ys)(fe,d);case 37:f.t5=f.sent,f.t6=l,f.t7={title:f.t5,remoteEvents:f.t6},(0,f.t4)(f.t7);case 41:f.next=54;break;case 43:return f.prev=43,f.t8=f.catch(12),oe.Z.logError("Failed to upload files",f.t8),f.next=48,(0,R.gz)(E.Z.removeBlockingInfo(o));case 48:return f.t9=s,f.next=51,(0,R.Ys)(fe,"client.docs-browser.uploadFailed");case 51:f.t10=f.sent,f.t11={title:f.t10},(0,f.t9)(f.t11);case 54:case"end":return f.stop()}}),se,null,[[12,43]])}function me(e,t){var n,r,o,a,i,c,s;return N().wrap((function(u){for(;;)switch(u.prev=u.next){case 0:if(n=(0,T.Z)(e)){u.next=3;break}return u.abrupt("return");case 3:r=new FormData,o=ie(t);try{for(o.s();!(a=o.n()).done;)i=a.value,r.append("files",i)}catch(e){o.e(e)}finally{o.f()}return c="documents/".concat(n.model,"/").concat(n.key),s={method:"POST",body:r,acceptedStatusCodes:[403]},u.next=10,(0,R.RE)(w.Z.requestSaga,c,s);case 10:return u.abrupt("return",u.sent);case 11:case"end":return u.stop()}}),ue)}function he(){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,R.$6)([(0,R.ib)("docs/create/FILES_SELECTED",pe)]);case 2:case"end":return e.stop()}}),le)}function ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function ye(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ve(Object(n),!0).forEach((function(t){J()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ve(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var ge=J()({},"docs/create/OPEN_DIALOG",(function(e,t){var n=t.payload,r=n.location,o=n.directory,a=n.onSuccess,i=n.onError;return ye(ye({},e),{},{dialog:{instanceCount:e.dialog.instanceCount+1,directory:o,location:r,onSuccess:a,onError:i}})})),be={dialog:{instanceCount:0,directory:!1,location:null,onSuccess:null,onError:null}};var Ee=N().mark(we);function we(){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,R.$6)([(0,R.rM)(he)]);case 2:case"end":return e.stop()}}),Ee)}const Pe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:be,t=arguments.length>1?arguments[1]:void 0,n=ge[t.type];return n?n(e,t):e};var Se=J()({},"docs/list/SET_SEARCH_FORM_COLLAPSED",Q.Z.singleTransferReducer("searchFormCollapsed")),Oe={searchFormCollapsed:null};const xe=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Oe,t=arguments.length>1?arguments[1]:void 0,n=Se[t.type];return n?n(e,t):e};var ke=N().mark(Le),Ce=N().mark(Fe),Ae=N().mark(De),Ze=N().mark(_e);function Le(e){var t;return N().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=e.payload,n.next=3,(0,R.gz)(b.Z.fireExternalEvent("onListParentChange",t.parent));case 3:case"end":return n.stop()}}),ke)}function Fe(e){var t;return N().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=e.payload,n.next=3,(0,R.gz)(b.Z.fireExternalEvent("onSelectChange",t.selection));case 3:case"end":return n.stop()}}),Ce)}function De(e){var t;return N().wrap((function(n){for(;;)switch(n.prev=n.next){case 0:return t=e.payload,n.next=3,(0,R.gz)(b.Z.fireExternalEvent("onSearchFormCollapsedChange",t.collapsed));case 3:case"end":return n.stop()}}),Ae)}function _e(){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,R.$6)([(0,R.Fm)("docs/list/CHANGE_LIST_PARENT",Le),(0,R.Fm)("docs/list/CHANGE_SELECTION",Fe),(0,R.Fm)("docs/list/CHANGE_SEARCH_FORM_COLLAPSED",De)]);case 2:case"end":return e.stop()}}),Ze)}var Ne,Re=n(31167),Te=n(30023),je=N().mark(ze),Ie=N().mark(Be),Me=N().mark(qe),Ue=function(e){return e.docs.move.input},He=function(e,t){return e.intl.messages[t]};function ze(e){var t,n,r,o,a,i;return N().wrap((function(c){for(;;)switch(c.prev=c.next){case 0:return t=e.payload,n="documents/move",r={method:"POST",acceptedStatusCodes:[400,403],body:{targetEntityKey:t.target,selectedEntityKeys:t.selected}},c.next=5,(0,R.gz)(Te.p0(!0));case 5:return c.next=7,(0,R.RE)(w.Z.requestSaga,n,r);case 7:if(204!==(o=c.sent).status){c.next=13;break}return c.next=11,(0,R.RE)(Be);case 11:c.next=20;break;case 13:return c.next=15,(0,R.gz)(Te.p0(!1));case 15:return i="client.actions.dms-move.failed.message","VALIDATION_FAILED"===(null===(a=o.body)||void 0===a?void 0:a.errorCode)&&(i=Re.Z.getErrorCompact(o.body.errors)),403===o.status&&(i="client.docs-browser.failedNoPermission"),c.next=20,(0,R.gz)(E.Z.toaster({type:"error",title:"client.actions.dms-move.failed.title",body:i}));case 20:case"end":return c.stop()}}),je)}function Be(){var e,t,n,r;return N().wrap((function(o){for(;;)switch(o.prev=o.next){case 0:return o.next=2,(0,R.Ys)(Ue);case 2:return e=o.sent,t=e.selection,n=e.onSuccess,r=[{type:"entity-update-event",payload:{entities:t.ids.map((function(e){return{entityName:"Docs_list_item",key:e}}))}}],o.t0=n,o.next=9,(0,R.Ys)(He,"client.docs-browser.moveSuccessful");case 9:return o.t1=o.sent,o.t2=r,o.t3={title:o.t1,remoteEvents:o.t2},(0,o.t0)(o.t3),o.next=15,(0,R.gz)(Te.xv());case 15:case"end":return o.stop()}}),Ie)}function qe(){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,R.$6)([(0,R.Fm)(Te.uI,ze)]);case 2:case"end":return e.stop()}}),Me)}function Ge(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ye(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?Ge(Object(n),!0).forEach((function(t){J()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ge(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var We=(Ne={},J()(Ne,Te.qh,(function(e,t){var n=t.payload,r=n.selection,o=n.onSuccess,a=n.onError;return Ye(Ye({},e),{},{input:{selection:r,onSuccess:o,onError:a}})})),J()(Ne,Te.FV,Q.Z.singleTransferReducer("isWaiting")),J()(Ne,Te.F$,(function(){return Ye({},$e)})),Ne),$e={isWaiting:!1,input:{selection:null,onSuccess:null,onError:null}};var Ve=N().mark(Ke);function Ke(){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,R.$6)([(0,R.rM)(qe)]);case 2:case"end":return e.stop()}}),Ve)}const Je=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:$e,t=arguments.length>1?arguments[1]:void 0,n=We[t.type];return n?n(e,t):e},Qe={docs:(0,D.UY)({path:re,create:Pe,list:xe,move:Je})};var Xe=[ne,we,_e,Ke],et=n(37703),tt=n(74806),nt=n(67154),rt=n.n(nt),ot=n(63038),at=n.n(ot),it=n(18117),ct=n(93038),st=n(58239),ut=n(44166),lt=n(84187),dt={"dms-create-folder":(0,p.lazy)((function(){return Promise.all([n.e(817),n.e(614),n.e(404),n.e(85),n.e(141)]).then(n.bind(n,11625))})),"dms-create-domain":(0,p.lazy)((function(){return Promise.all([n.e(817),n.e(614),n.e(404),n.e(85),n.e(141)]).then(n.bind(n,53285))})),"dms-edit":(0,p.lazy)((function(){return Promise.all([n.e(817),n.e(614),n.e(404),n.e(85),n.e(141)]).then(n.bind(n,65290))})),"dms-move":(0,p.lazy)((function(){return Promise.all([n.e(817),n.e(614),n.e(404),n.e(85),n.e(141)]).then(n.bind(n,75517))})),delete:(0,p.lazy)((function(){return Promise.all([n.e(817),n.e(614),n.e(404),n.e(85),n.e(141)]).then(n.bind(n,45052))}))},ft=m().createElement(ut.Z,null);const pt=function(e){var t=e.appId,n=dt[t];if(!n)return oe.Z.logError("no action found with id: ".concat(t)),null;var r=(0,et.connect)(null,{emitAction:function(e){return h.Z.dispatchEmittedAction(e)}})(n);return m().createElement(p.Suspense,{fallback:ft},m().createElement(r,e))};const mt=function(e){var t,n,r=e.instanceCount,o=e.directory,a=e.onChange,i=(0,p.useRef)(),c=(t=r,n=(0,p.useRef)(),(0,p.useEffect)((function(){n.current=t})),n.current);(0,p.useEffect)((function(){i.current&&r>c&&i.current.click()}));return m().createElement("input",rt()({type:"file",ref:i,style:{display:"none"},onChange:function(e){var t=e.target.files;t&&t.length>0&&a&&a(t,o),e.target.value=null},multiple:!0},o?{webkitdirectory:"true",directory:"true"}:{}))};var ht={onChange:function(e,t){return{type:"docs/create/FILES_SELECTED",payload:{files:e,isDirectory:t}}}};const vt=(0,et.connect)((function(e){return{instanceCount:e.docs.create.dialog.instanceCount,directory:e.docs.create.dialog.directory}}),ht)(mt);var yt=n(28655),gt=n.n(yt),bt=n(41804);function Et(){var e=gt()(["\n font-size: ",";\n display: inline-block;\n margin-right: ",";\n"]);return Et=function(){return e},e}function wt(){var e=gt()(["\n display: flex;\n align-items: center;\n"]);return wt=function(){return e},e}var Pt=it.ZP.div(wt()),St=it.ZP.span(Et(),bt.Z.font(1),bt.Z.space(-2)),Ot=/^\/docs\/?$/;const xt=function(e){return Ot.test(e)};var kt=m().lazy((function(){return Promise.all([n.e(817),n.e(614),n.e(141)]).then(n.bind(n,39901))})),Ct=m().createElement(ut.Z,null),At=m().createElement(vt,null);const Zt=function(e){var t=e.history,n=e.match,r=e.domainTypes,o=e.rootNodes,a=e.navigationStrategy,i=e.changeListParent,c=e.onSearchChange,s=e.emitAction,u=e.openFileDialog,l=e.limit,d=e.searchFormType,f=e.selectionStyle,h=e.getCustomLocation,v=e.disableViewPersistor,y=e.getListFormName,g=e.domainDetailFormName,b=e.folderDetailFormName,E=e.showActions,w=e.sortable,P=e.searchMode,S=e.openResource,O=e.searchFormCollapsed,x=e.changeSelection,k=e.changeSearchFormCollapsed,C=(0,p.useReducer)((function(e){return e+1}),0),A=at()(C,2),Z=A[0],L=A[1],F="entity-list-".concat(Z),D=(0,p.useState)([]),_=at()(D,2),R=_[0],T=_[1],j=(0,p.useMemo)((function(){return function(e){if(e.params&&e.params.model){var t=e.params.model.charAt(0).toUpperCase()+e.params.model.slice(1),n=e.params.key;return{model:"Docs_list_item",key:"".concat(t,"/").concat(n)}}return null}(n)}),[n.params]),I=!j&&o?o.map((function(e){return"".concat(e.entityName,"/").concat(e.key)})):null,M=(0,p.useMemo)((function(){return y?y(j,I):function(e,t){return e?"Docs_list_item":t?"Root_docs_list_item_specific":"Root_docs_list_item"}(j,I)}),[n.params,y]),U=(0,p.useRef)(!1),H=(0,p.useRef)(P);H.current=P,(0,p.useEffect)((function(){return U.current=!0,function(){return U.current=!1}})),(0,p.useEffect)((function(){i(j),T([])}),[j]);var z=function(e){T(e),x(e)},B=j||I?null:function(e){return Array.isArray(e)&&e.length>0?"exists(relDomain_type where IN(unique_id, ".concat(e.map((function(e){return'"'.concat(e,'"')})).join(","),"))"):null}(r),q=N().mark((function e(n,r,o,a,i,c,s){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:!1,u(t.location.pathname,!1,c,s);case 2:case"end":return e.stop()}}),e)})),G=N().mark((function e(n,r,o,a,i,c,s){return N().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:!0,u(t.location.pathname,!0,c,s);case 2:case"end":return e.stop()}}),e)})),Y=v?void 0:xt(t.location.pathname)?st.Z.viewInfoSelector("search").store:null;return m().createElement(m().Fragment,null,m().createElement(p.Suspense,{fallback:Ct},m().createElement(kt,{key:F,id:"documents",entityName:"Docs_list_item",formName:M,limit:l||25,onRowClick:function(e){var n=e.id;if(z([n]),H.current&&xt(t.location.pathname)){if(!st.Z.viewInfoSelector("search").store){var r=st.Z.viewInfoSelector(F).store;st.Z.persistViewInfo("search",{store:r})}L()}var o=n.split("/"),a=at()(o,2),i=a[0],c=a[1],s=h?h(i,c):function(e,t){switch(e){case"Domain":return"/docs/domain/".concat(t,"/list");case"Folder":return"/docs/folder/".concat(t,"/list");case"Resource":return"/docs/doc/".concat(t,"/detail");default:throw new Error("Unexpected model: ".concat(e))}}(i,c);s&&(S&&"Resource"===i?S(s):t.push(s))},searchFormPosition:"left",searchFormType:d||"admin",parent:j,onSearchChange:function(e){U.current&&c(e)},store:Y,onStoreCreate:function(e){return v||st.Z.persistViewInfo(F,{store:e}),null}(Y),cellRenderers:{"dms-label-with-icon":function(e,t,n){return m().createElement(Pt,null,m().createElement(St,null,m().createElement(lt.Z,{icon:e.icon})),m().createElement("span",null,n(t.children[0])))},"dms-actions":function(e,t,n){return m().createElement(Pt,null,t.children.filter((function(t){return!t.dmsEntityModel||t.dmsEntityModel===e.type})).map((function(e){return n(e)})))}},emitAction:s,actionAppComponent:pt,contextParams:{history:t,detailFormNames:{Domain:g,Folder:b}},customActions:{"upload-document":q,"upload-directory":G},navigationStrategy:a,tql:B,keys:I,selectionStyle:f||"multi_explicit",onSelectChange:z,selection:R,showActions:E,sortable:w,searchFormCollapsed:O,onSearchFormCollapsedChange:k})),At)};var Lt={changeListParent:function(e){return{type:"docs/list/CHANGE_LIST_PARENT",payload:{parent:e}}},changeSelection:function(e){return{type:"docs/list/CHANGE_SELECTION",payload:{selection:e}}},changeSearchFormCollapsed:function(e){return{type:"docs/list/CHANGE_SEARCH_FORM_COLLAPSED",payload:{collapsed:e}}}};const Ft=(0,et.connect)((function(e){return{domainTypes:e.input.domainTypes,rootNodes:e.input.rootNodes,limit:e.input.listLimit,searchFormType:e.input.searchFormType,selectionStyle:e.input.selectionStyle,getCustomLocation:e.input.getCustomLocation,disableViewPersistor:e.input.disableViewPersistor,getListFormName:e.input.getListFormName,domainDetailFormName:e.input.domainDetailFormName,folderDetailFormName:e.input.folderDetailFormName,showActions:e.input.showActions,sortable:e.input.sortable,openResource:e.input.openResource,searchFormCollapsed:e.docs.list.searchFormCollapsed}}),Lt)((0,tt.ZP)(Zt));function Dt(){var e=gt()(["\n height: 100%;\n background-color: ",";\n padding-left: ",";\n overflow-y: hidden;\n"]);return Dt=function(){return e},e}var _t=it.ZP.div(Dt(),ct.Z.color("paper"),bt.Z.space(.5)),Nt=m().lazy((function(){return Promise.all([n.e(817),n.e(614),n.e(404),n.e(141)]).then(n.bind(n,1388))})),Rt=m().createElement(ut.Z,null);const Tt=function(e){var t=e.match,n=e.history,r=e.breadcrumbs,o=e.formName,a=e.navigationStrategy,i=e.emitAction;return m().createElement(_t,null,m().createElement(p.Suspense,{fallback:Rt},m().createElement(Nt,{entityName:"Resource",entityId:t.params.key,formName:o||"DmsResource",mode:"update",actionAppComponent:pt,navigationStrategy:a,emitAction:i,onEntityDeleted:function(){var e=r.slice().reverse().find((function(e){return"list"===e.type})),t="/docs/".concat(e.path);n.push(t)}})))};var jt={emitAction:function(e){return h.Z.dispatchEmittedAction(e)}};const It=(0,et.connect)((function(e){return{breadcrumbs:e.docs.path.breadcrumbs,formName:e.input.documentDetailFormName}}),jt)((0,tt.ZP)(Tt));var Mt=n(6300);const Ut=(0,et.connect)((function(e){return{pathPrefix:"/docs",breadcrumbsInfo:e.docs.path.breadcrumbs}}),{})((0,tt.ZP)(Mt.Z));var Ht=n(16828);function zt(){var e=gt()(["\n grid-area: breadcrumbs;\n ","\n"]);return zt=function(){return e},e}function Bt(){var e=gt()(["\n grid-area: content;\n overflow-x: hidden;\n ","\n"]);return Bt=function(){return e},e}function qt(){var e=gt()(["\n display: grid;\n grid-template-rows: auto 1fr;\n grid-template-areas:\n 'breadcrumbs'\n 'content';\n height: 100%;\n width: 100%;\n"]);return qt=function(){return e},e}var Gt=it.ZP.div(qt()),Yt=it.ZP.div(Bt(),Ht.C),Wt=it.ZP.div(zt(),(function(e){return e.noLeftPadding&&"\n > div {\n padding-left: 0;\n }\n "}));const $t=(0,it.Zz)((function(e){var t=e.history,n=e.searchMode,r=e.navigationStrategy,o=e.setSearchMode,a=e.loadBreadcrumbs,i=e.emitAction,c=e.openFileDialog,s=e.theme,u=e.embedded,l=e.noLeftPadding,d=(0,p.useReducer)((function(e){return e+1}),0),f=at()(d,2),h=f[0],v=f[1],y=(0,O.TH)(),g=(0,p.useRef)(n);g.current=n,(0,p.useEffect)((function(){a(y.pathname)}));var b=function(){g.current&&(st.Z.clearPersistedViews(),o(!1),a(y.pathname),v())},E=function(e){e.query&&e.query.hasUserChanges?(o(!0),t.push("/docs/"),a(y.pathname)):xt(t.location.pathname)&&b()},w="docs-view-".concat(h);return m().createElement(Gt,null,m().createElement(Wt,{noLeftPadding:l},m().createElement(Ut,rt()({},u?{backgroundColor:ct.Z.color("paper")({theme:s})}:{},{onClick:function(e){""===e.path&&b()}}))),m().createElement(Yt,null,m().createElement(O.rs,null,m().createElement(O.AW,{exact:!0,path:"/docs/doc/:key/detail",render:function(e){var n=e.match;return m().createElement(It,{match:n,history:t,navigationStrategy:r})}}),m().createElement(O.AW,{exact:!0,path:["/docs/:model/:key/list","/docs"],render:function(e){var o=e.match;return m().createElement(Ft,{key:w,history:t,match:o,navigationStrategy:r,onSearchChange:E,emitAction:i,openFileDialog:c,searchMode:n})}}))))}));var Vt={loadBreadcrumbs:function(e){return{type:"docs/path/LOAD_BREADCRUMBS",payload:{location:e}}},setSearchMode:function(e){return{type:"docs/path/SET_SEARCH_MODE",payload:{searchMode:e}}},emitAction:function(e){return h.Z.dispatchEmittedAction(e)},openFileDialog:function(e,t,n,r){return{type:"docs/create/OPEN_DIALOG",payload:{location:e,directory:t,onSuccess:n,onError:r}}}};const Kt=(0,et.connect)((function(e){return{searchMode:e.docs.path.searchMode,navigationStrategy:e.input.navigationStrategy,embedded:e.input.embedded,noLeftPadding:e.input.noLeftPadding}}),Vt)((0,tt.ZP)($t));var Jt=n(319),Qt=n.n(Jt),Xt=function(e){return en.reduce((function(t,n){return void 0!==e[n.name]&&t.push(n.action.apply(n,Qt()(n.argsFactory(e)))),t}),[])},en=[{name:"searchFormCollapsed",action:function(e){return{type:"docs/list/SET_SEARCH_FORM_COLLAPSED",payload:{searchFormCollapsed:e}}},argsFactory:function(e){return[e.searchFormCollapsed]}}];function tn(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],(function(){}))),!0}catch(e){return!1}}();return function(){var n,r=f()(e);if(t){var o=f()(this).constructor;n=Reflect.construct(r,arguments,o)}else n=r.apply(this,arguments);return l()(this,n)}}var nn=["onListParentChange","openResource","onSelectChange","onSearchFormCollapsedChange"],rn=function(e,t){return e.intl.messages[t]||t},on=function(e,t){return(t?S.Z:P.Z)({getUserConfirmation:function(t,n){var r=e.getState(),o=rn(r,"client.common.ok"),a=rn(r,"client.common.cancel"),i=E.Z.confirm("",t,o,a,(function(){return n(!0)}),(function(){return n(!1)}));e.dispatch(i)}})},an=m().createElement(E.Z.Notifications,null),cn=m().createElement(x.Z,null),sn=function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=arguments.length>3?arguments[3]:void 0,o=v.Z.createStore(Qe,Xe,t,"docs-browser");b.Z.addToStore(o,n),h.Z.addToStore(o),g.Z.addToStore(o,!0,["console","remote","notification"]);var a=!n.emitAction;E.Z.addToStore(o,a),y.Z.addToStore(o),t.businessUnit&&w.Z.setBusinessUnit(t.businessUnit);var i=t.history||on(o,t.memoryHistory);t.initialLocation&&i.push(t.initialLocation);var c=Array.isArray(t.rootNodes)&&1===t.rootNodes.length&&"Resource"!==t.rootNodes[0].entityName?t.rootNodes[0]:null,s=c?"/docs/".concat(c.entityName.toLowerCase(),"/").concat(c.key,"/list"):"/docs",u=m().createElement(O.F0,{history:i},a&&an,cn,m().createElement(Kt,{history:i}),m().createElement(O.AW,{exact:!0,path:"/"},m().createElement(O.l_,{to:s})),c&&m().createElement(O.AW,{exact:!0,path:"/docs"},m().createElement(O.l_,{to:s})));return v.Z.createApp("docs-browser",u,o,{input:t,events:n,actions:Xt(t),publicPath:r,textResourceModules:["component","common","actions","entity-list","entity-detail","docs-browser"]})};const un=function(e){s()(n,e);var t=tn(n);function n(e){var r;return o()(this,n),(r=t.call(this,e)).app=sn("docs-browser",e,function(e){return nn.reduce((function(t,n){return e[n]&&(t[n]=e[n]),t}),{})}(e)),r}return i()(n,[{key:"componentDidUpdate",value:function(e){var t=this,n=C()(this.props,(function(t,n){return!Z()(t,e[n])}));F()(n)||Xt(n).forEach((function(e){t.app.store.dispatch(e)}))}},{key:"render",value:function(){return this.app.component}}]),n}(m().Component)},30023:(e,t,n)=>{n.d(t,{qh:()=>r,uI:()=>o,FV:()=>a,F$:()=>i,j2:()=>c,w6:()=>s,p0:()=>u,xv:()=>l});var r="docs/move/INITIALIZE",o="docs/move/MOVE_ELEMENTS",a="docs/move/SET_WAITING",i="docs/move/CLOSE",c=function(e,t,n){return{type:r,payload:{selection:e,onSuccess:t,onError:n}}},s=function(e,t){return{type:o,payload:{target:e,selected:t}}},u=function(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return{type:a,payload:{isWaiting:e}}},l=function(){return{type:i}}},84252:(e,t,n)=>{n.d(t,{Z:()=>r});const r=function(e,t){return e.detailFormNames&&e.detailFormNames[t]?e.detailFormNames[t]:"Dms".concat(t)}},1662:(e,t,n)=>{n.d(t,{Z:()=>a});var r=/^\/docs\/doc\/(\d+)\/detail$/,o=/^\/docs\/(domain|folder)\/(\d+)\/list$/;const a=function(e){return function(e){var t=r.exec(e);return t&&t.length>=2?{model:"Resource",key:t[1]}:null}(e)||function(e){var t=o.exec(e);return t&&t.length>=3?{model:t[1].charAt(0).toUpperCase()+t[1].slice(1),key:t[2]}:null}(e)}},83760:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r});const r=n(79182).H},28255:(e,t,n)=>{n.r(t),n.d(t,{DatePicker:()=>m,default:()=>h});var r=n(63804),o=n.n(r),a=(n(35989),n(74806)),i=n(18117),c=n(93038),s=n(45978),u=n(80034),l=n.n(u),d=n(41804);function f(){var e=l()(["\n cursor: pointer;\n\n .flatpickr-calendar.open {\n margin-top: ",";\n }\n\n .flatpickr-calendar.arrowTop:before,\n .flatpickr-calendar.arrowTop:after {\n left: 83%;\n }\n"]);return f=function(){return e},e}var p=i.ZP.div(f(),d.Z.space(1.2)),m=function(e){var t,n=e.value,a=e.children,i=e.intl,u=e.onChange,l=(0,r.useRef)(null),d=i.locale,f=c.Z.fontFamily("regular")(e),m=(0,s.F)(l,{value:n,onChange:u,fontFamily:f,locale:d,flatpickrOptions:{},shouldAppend:!0});return(0,r.useEffect)((function(){l.current&&m()}),[]),o().createElement(o().Fragment,null,o().createElement(p,{"data-wrap":!0,ref:l},o().createElement("div",{"data-toggle":!0},o().createElement("input",{style:{display:"none"},type:"text","data-input":!0,"aria-label":(t="client.component.datePicker.label",i.formatMessage({id:t}))}),a)))};const h=(0,i.Zz)((0,a.ZP)(m))},45978:(e,t,n)=>{n.d(t,{F:()=>b});var r=n(87753),o=n.n(r),a=n(22482),i=n.n(a),c=(n(66650),n(69735)),s=n.n(c),u=n(99872),l=n(83206),d=n(49183),f=n(63804),p=n(40706),m=n(38007);function h(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function v(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?h(Object(n),!0).forEach((function(t){i()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}var y={"de-CH":u.German,de:u.German,fr:l.French,it:d.Italian},g=function(e){return function(t){t&&t.length>0?e(t[0].toISOString()):e(null)}},b=function(e,t){var n=t.value,r=t.locale,a=t.flatpickrOptions,i=(0,f.useRef)(null),c=p.Z.usePrevious(a);return(0,f.useEffect)((function(){return function(){i.current&&i.current.destroy()}}),[]),(0,f.useEffect)((function(){i.current&&(i.current.setDate(n,!1),i.current.redraw())}),[JSON.stringify(n)]),(0,f.useEffect)((function(){var e,t,n=y[r]||(null===(e=i.current)||void 0===e||null===(t=e.l10ns)||void 0===t?void 0:t.en);i.current&&n&&(i.current.localize(n),i.current.set("locale",n),i.current.redraw())}),[r]),(0,f.useEffect)((function(){if(i.current){var e=m.Z.difference(a,c);Object.keys(e).length>0&&(Object.entries(e).forEach((function(e){var t=o()(e,2),n=t[0],r=t[1];i.current.set(n,r)})),i.current.redraw())}}),[a]),function(){return i.current=function(e,t){var n=t.shouldAppend,r=t.onChange,o=t.value,a=t.fontFamily,i=t.locale,c=t.flatpickrOptions,u=y[i],l=v(v(v({wrap:!0,onChange:g(r),altInput:!1,enableTime:!1,defaultDate:o},n?{appendTo:e.current}:{}),u?{locale:u}:{}),c),d=s()(e.current,l);return a&&(d.calendarContainer.style.fontFamily=a),d}(e,t),i.current}}},66021:(e,t,n)=>{n.r(t),n.d(t,{default:()=>Z});var r=n(21661),o=n.n(r),a=n(22482),i=n.n(a),c=n(87753),s=n.n(c),u=n(63804),l=n.n(u),d=(n(35989),n(74806)),f=n(18117),p=n(80034),m=n.n(p),h=n(693);function v(){var e=m()(["\n && {\n ","\n\n input {\n display: ",";\n\n &:last-of-type {\n display: ",";\n }\n }\n }\n"]);return v=function(){return e},e}function y(){var e=m()(["\n outline: ",";\n"]);return y=function(){return e},e}function g(){var e=m()(["\n && {\n ","\n display: flex;\n align-items: center;\n }\n"]);return g=function(){return e},e}function b(){var e=m()(["\n &&& {\n ","\n margin: 0;\n }\n"]);return b=function(){return e},e}var E=f.ZP.input(b(),h.k9),w=f.ZP.div(g(),h.k9),P=f.ZP.div(y(),(function(e){return e.immutable?0:"initial"})),S=f.ZP.div(v(),h.yP,(function(e){return e.immutable?"none":"block"}),(function(e){return e.immutable?"block":"none"})),O=n(65919),x=n(45978),k=n(93038);function C(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}var A=function(e){var t=e.querySelector('input.flatpickr-input:not([type="hidden"])');t&&t.focus()};const Z=(0,f.Zz)((0,d.ZP)((function(e){var t,n,r=e.immutable,a=e.id,c=e.options,d=e.value,f=e.onChange,p=e.parseDate,m=e.formatDate,h=e.intl,v=(0,u.useState)(!1),y=s()(v,2),g=y[0],b=y[1],Z=(0,u.useRef)(null),L=(0,u.useRef)(null),F=h.locale,D=k.Z.fontFamily("regular")(e),_=function(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?C(Object(n),!0).forEach((function(t){i()(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):C(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}({altInput:!0,altInputClass:"",clickOpens:!r},c?c.flatpickrOptions:{}),N=(0,x.F)(L,{value:d,onChange:function(e){e&&f([e])},fontFamily:D,locale:F,flatpickrOptions:_}),R=(null===(t=Z.current)||void 0===t||null===(n=t.altInput)||void 0===n?void 0:n.value)||"",T=function(){var e=p(Z.current.altInput.value);Z.current.setDate(e,!0)},j=function(){g?A(L.current):(Z.current=N(),Z.current.calendarContainer.classList.add("tocco-ui-theme"),Z.current.calendarContainer.addEventListener("keydown",I),b(!0),setTimeout((function(){A(L.current)})))},I=function(e){(e.target.classList.contains("flatpickr-hour")||"Tab"!==e.key||e.shiftKey)&&"Enter"!==e.key||(T(),setTimeout((function(){Z.current.close()}))),"Enter"===e.key&&(e.preventDefault(),e.stopPropagation())},M=d&&d.length>0&&d.every((function(e){return e}));return l().createElement(l().Fragment,null,l().createElement(P,{immutable:r,id:a,tabIndex:"-1",onFocus:function(){j(),Z.current&&Z.current.open()},onKeyDown:I},l().createElement(S,{"data-wrap":!0,onBlur:T,immutable:r,ref:L},l().createElement(E,o()({},r?{disabled:"disabled"}:{},{type:"hidden","data-input":!0,immutable:r},c?{placeholder:c.placeholderText}:{})),!g&&l().createElement(w,{tabIndex:0},M?m(d[0]):""),l().createElement(E,{disabled:!0,immutable:r,value:R}),!r&&M&&l().createElement(O.Z,{icon:"times",tabIndex:-1,"aria-label":function(e){return h.formatMessage({id:e})}("client.component.dateAbstract.clearDateLabel"),onMouseDown:function(e){e.preventDefault(),f(null)}}))))})))},74077:(e,t,n)=>{n.r(t),n.d(t,{default:()=>u});var r=n(21661),o=n.n(r),a=(n(35989),n(63804)),i=n.n(a),c=n(72629),s=n(34716);const u=function(e){var t=e.size,n=e.style;return i().createElement(c.G,o()({},n,{style:{fontSize:t},spin:!0,icon:s.IJ7}))}},67092:(e,t)=>{t.__esModule=!0;t.canUseDOM=!("undefined"==typeof window||!window.document||!window.document.createElement),t.addEventListener=function(e,t,n){return e.addEventListener?e.addEventListener(t,n,!1):e.attachEvent("on"+t,n)},t.removeEventListener=function(e,t,n){return e.removeEventListener?e.removeEventListener(t,n,!1):e.detachEvent("on"+t,n)},t.getConfirmation=function(e,t){return t(window.confirm(e))},t.supportsHistory=function(){var e=window.navigator.userAgent;return(-1===e.indexOf("Android 2.")&&-1===e.indexOf("Android 4.0")||-1===e.indexOf("Mobile Safari")||-1!==e.indexOf("Chrome")||-1!==e.indexOf("Windows Phone"))&&(window.history&&"pushState"in window.history)},t.supportsPopStateOnHashChange=function(){return-1===window.navigator.userAgent.indexOf("Trident")},t.supportsGoWithoutReloadUsingHash=function(){return-1===window.navigator.userAgent.indexOf("Firefox")},t.isExtraneousPopstateEvent=function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")}},88536:(e,t,n)=>{t.__esModule=!0,t.locationsAreEqual=t.createLocation=void 0;var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=c(n(14149)),a=c(n(54545)),i=n(3074);function c(e){return e&&e.__esModule?e:{default:e}}t.createLocation=function(e,t,n,a){var c=void 0;"string"==typeof e?(c=(0,i.parsePath)(e)).state=t:(void 0===(c=r({},e)).pathname&&(c.pathname=""),c.search?"?"!==c.search.charAt(0)&&(c.search="?"+c.search):c.search="",c.hash?"#"!==c.hash.charAt(0)&&(c.hash="#"+c.hash):c.hash="",void 0!==t&&void 0===c.state&&(c.state=t));try{c.pathname=decodeURI(c.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+c.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(c.key=n),a?c.pathname?"/"!==c.pathname.charAt(0)&&(c.pathname=(0,o.default)(c.pathname,a.pathname)):c.pathname=a.pathname:c.pathname||(c.pathname="/"),c},t.locationsAreEqual=function(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&(0,a.default)(e.state,t.state)}},3074:(e,t)=>{t.__esModule=!0;t.addLeadingSlash=function(e){return"/"===e.charAt(0)?e:"/"+e},t.stripLeadingSlash=function(e){return"/"===e.charAt(0)?e.substr(1):e};var n=t.hasBasename=function(e,t){return new RegExp("^"+t+"(\\/|\\?|#|$)","i").test(e)};t.stripBasename=function(e,t){return n(e,t)?e.substr(t.length):e},t.stripTrailingSlash=function(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e},t.parsePath=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var a=t.indexOf("?");return-1!==a&&(n=t.substr(a),t=t.substr(0,a)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}},t.createPath=function(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}},52540:(e,t,n)=>{var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=l(n(30670)),a=l(n(41143)),i=n(88536),c=n(3074),s=l(n(3405)),u=n(67092);function l(e){return e&&e.__esModule?e:{default:e}}var d={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+(0,c.stripLeadingSlash)(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c.stripLeadingSlash,decodePath:c.addLeadingSlash},slash:{encodePath:c.addLeadingSlash,decodePath:c.addLeadingSlash}},f=function(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)},p=function(e){return window.location.hash=e},m=function(e){var t=window.location.href.indexOf("#");window.location.replace(window.location.href.slice(0,t>=0?t:0)+"#"+e)};t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(0,a.default)(u.canUseDOM,"Hash history needs a DOM");var t=window.history,n=(0,u.supportsGoWithoutReloadUsingHash)(),l=e.getUserConfirmation,h=void 0===l?u.getConfirmation:l,v=e.hashType,y=void 0===v?"slash":v,g=e.basename?(0,c.stripTrailingSlash)((0,c.addLeadingSlash)(e.basename)):"",b=d[y],E=b.encodePath,w=b.decodePath,P=function(){var e=w(f());return(0,o.default)(!g||(0,c.hasBasename)(e,g),'You are attempting to use a basename on a page whose URL path does not begin with the basename. Expected path "'+e+'" to begin with "'+g+'".'),g&&(e=(0,c.stripBasename)(e,g)),(0,i.createLocation)(e)},S=(0,s.default)(),O=function(e){r(G,e),G.length=t.length,S.notifyListeners(G.location,G.action)},x=!1,k=null,C=function(){var e=f(),t=E(e);if(e!==t)m(t);else{var n=P(),r=G.location;if(!x&&(0,i.locationsAreEqual)(r,n))return;if(k===(0,c.createPath)(n))return;k=null,A(n)}},A=function(e){if(x)x=!1,O();else{S.confirmTransitionTo(e,"POP",h,(function(t){t?O({action:"POP",location:e}):Z(e)}))}},Z=function(e){var t=G.location,n=_.lastIndexOf((0,c.createPath)(t));-1===n&&(n=0);var r=_.lastIndexOf((0,c.createPath)(e));-1===r&&(r=0);var o=n-r;o&&(x=!0,j(o))},L=f(),F=E(L);L!==F&&m(F);var D=P(),_=[(0,c.createPath)(D)],N=function(e){return"#"+E(g+(0,c.createPath)(e))},R=function(e,t){(0,o.default)(void 0===t,"Hash history cannot push state; it is ignored");var n=(0,i.createLocation)(e,void 0,void 0,G.location);S.confirmTransitionTo(n,"PUSH",h,(function(e){if(e){var t=(0,c.createPath)(n),r=E(g+t);if(f()!==r){k=t,p(r);var a=_.lastIndexOf((0,c.createPath)(G.location)),i=_.slice(0,-1===a?0:a+1);i.push(t),_=i,O({action:"PUSH",location:n})}else(0,o.default)(!1,"Hash history cannot PUSH the same path; a new entry will not be added to the history stack"),O()}}))},T=function(e,t){(0,o.default)(void 0===t,"Hash history cannot replace state; it is ignored");var n=(0,i.createLocation)(e,void 0,void 0,G.location);S.confirmTransitionTo(n,"REPLACE",h,(function(e){if(e){var t=(0,c.createPath)(n),r=E(g+t);f()!==r&&(k=t,m(r));var o=_.indexOf((0,c.createPath)(G.location));-1!==o&&(_[o]=t),O({action:"REPLACE",location:n})}}))},j=function(e){(0,o.default)(n,"Hash history go(n) causes a full page reload in this browser"),t.go(e)},I=function(){return j(-1)},M=function(){return j(1)},U=0,H=function(e){1===(U+=e)?(0,u.addEventListener)(window,"hashchange",C):0===U&&(0,u.removeEventListener)(window,"hashchange",C)},z=!1,B=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=S.setPrompt(e);return z||(H(1),z=!0),function(){return z&&(z=!1,H(-1)),t()}},q=function(e){var t=S.appendListener(e);return H(1),function(){H(-1),t()}},G={length:t.length,action:"POP",location:D,createHref:N,push:R,replace:T,go:j,goBack:I,goForward:M,block:B,listen:q};return G}},83682:(e,t,n)=>{var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},a=u(n(30670)),i=n(3074),c=n(88536),s=u(n(3405));function u(e){return e&&e.__esModule?e:{default:e}}var l=function(e,t,n){return Math.min(Math.max(e,t),n)};t.Z=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.getUserConfirmation,n=e.initialEntries,u=void 0===n?["/"]:n,d=e.initialIndex,f=void 0===d?0:d,p=e.keyLength,m=void 0===p?6:p,h=(0,s.default)(),v=function(e){o(Z,e),Z.length=Z.entries.length,h.notifyListeners(Z.location,Z.action)},y=function(){return Math.random().toString(36).substr(2,m)},g=l(f,0,u.length-1),b=u.map((function(e){return"string"==typeof e?(0,c.createLocation)(e,void 0,y()):(0,c.createLocation)(e,void 0,e.key||y())})),E=i.createPath,w=function(e,n){(0,a.default)(!("object"===(void 0===e?"undefined":r(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to push when the 1st argument is a location-like object that already has state; it is ignored");var o=(0,c.createLocation)(e,n,y(),Z.location);h.confirmTransitionTo(o,"PUSH",t,(function(e){if(e){var t=Z.index+1,n=Z.entries.slice(0);n.length>t?n.splice(t,n.length-t,o):n.push(o),v({action:"PUSH",location:o,index:t,entries:n})}}))},P=function(e,n){(0,a.default)(!("object"===(void 0===e?"undefined":r(e))&&void 0!==e.state&&void 0!==n),"You should avoid providing a 2nd state argument to replace when the 1st argument is a location-like object that already has state; it is ignored");var o=(0,c.createLocation)(e,n,y(),Z.location);h.confirmTransitionTo(o,"REPLACE",t,(function(e){e&&(Z.entries[Z.index]=o,v({action:"REPLACE",location:o}))}))},S=function(e){var n=l(Z.index+e,0,Z.entries.length-1),r=Z.entries[n];h.confirmTransitionTo(r,"POP",t,(function(e){e?v({action:"POP",location:r,index:n}):v()}))},O=function(){return S(-1)},x=function(){return S(1)},k=function(e){var t=Z.index+e;return t>=0&&t<Z.entries.length},C=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return h.setPrompt(e)},A=function(e){return h.appendListener(e)},Z={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:E,push:w,replace:P,go:S,goBack:O,goForward:x,canGo:k,block:C,listen:A};return Z}},3405:(e,t,n)=>{t.__esModule=!0;var r,o=n(30670),a=(r=o)&&r.__esModule?r:{default:r};t.default=function(){var e=null,t=[];return{setPrompt:function(t){return(0,a.default)(null==e,"A history supports only one prompt at a time"),e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,o):((0,a.default)(!1,"A history needs a getUserConfirmation function in order to use a prompt message"),o(!0)):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0,r=function(){n&&e.apply(void 0,arguments)};return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}}}]);
|
|
2
|
+
//# sourceMappingURL=chunk-docs-actions.04e0b787c292d57ebc24.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["webpack:///./packages/admin/src/routes/docs/components/DocsBrowserApp/DocsBrowserApp.js","webpack:///./packages/admin/src/routes/docs/components/DocsBrowserApp/DocsBrowserAppContainer.js","webpack:///./packages/admin/src/routes/docs/route.js","webpack:///./packages/docs-browser/src/components/Action/actions/CreateDomain.js","webpack:///./packages/docs-browser/src/components/Action/actions/CreateFolder.js","webpack:///./packages/docs-browser/src/components/Action/actions/Delete.js","webpack:///./packages/docs-browser/src/components/Action/actions/Edit.js","webpack:///./packages/docs-browser/src/components/Action/actions/Move.js","webpack:///./packages/docs-browser/src/components/Action/actions/MoveContainer.js","webpack:///./packages/docs-browser/src/modules/path/actions.js","webpack:///./packages/docs-browser/src/modules/path/sagas.js","webpack:///./packages/docs-browser/src/modules/path/reducer.js","webpack:///./packages/docs-browser/src/modules/path/index.js","webpack:///./packages/docs-browser/src/modules/create/sagas.js","webpack:///./packages/docs-browser/src/modules/create/actions.js","webpack:///./packages/docs-browser/src/modules/create/reducer.js","webpack:///./packages/docs-browser/src/modules/create/index.js","webpack:///./packages/docs-browser/src/modules/list/actions.js","webpack:///./packages/docs-browser/src/modules/list/reducer.js","webpack:///./packages/docs-browser/src/modules/list/index.js","webpack:///./packages/docs-browser/src/modules/list/sagas.js","webpack:///./packages/docs-browser/src/modules/move/sagas.js","webpack:///./packages/docs-browser/src/modules/move/reducer.js","webpack:///./packages/docs-browser/src/modules/move/index.js","webpack:///./packages/docs-browser/src/modules/reducers.js","webpack:///./packages/docs-browser/src/components/Action/LazyAction.js","webpack:///./packages/docs-browser/src/components/FileInput/FileInput.js","webpack:///./packages/docs-browser/src/components/FileInput/FileInputContainer.js","webpack:///./packages/docs-browser/src/components/DocsView/StyledComponents.js","webpack:///./packages/docs-browser/src/utils/isRootLocation.js","webpack:///./packages/docs-browser/src/components/DocsView/DocsView.js","webpack:///./packages/docs-browser/src/components/DocsView/DocsViewContainer.js","webpack:///./packages/docs-browser/src/components/DocumentView/StyledComponents.js","webpack:///./packages/docs-browser/src/components/DocumentView/DocumentView.js","webpack:///./packages/docs-browser/src/components/DocumentView/DocumentViewContainer.js","webpack:///./packages/docs-browser/src/containers/BreadcrumbsContainer.js","webpack:///./packages/docs-browser/src/components/DocsBrowser/StyledComponents.js","webpack:///./packages/docs-browser/src/components/DocsBrowser/DocsBrowser.js","webpack:///./packages/docs-browser/src/components/DocsBrowser/DocsBrowserContainer.js","webpack:///./packages/docs-browser/src/input.js","webpack:///./packages/docs-browser/src/main.js","webpack:///./packages/docs-browser/src/modules/move/actions.js","webpack:///./packages/docs-browser/src/utils/getDetailFormName.js","webpack:///./packages/docs-browser/src/utils/getNode.js","webpack:///./packages/tocco-ui/src/BurgerButton/framerMotionFeatures.js","webpack:///./packages/tocco-ui/src/DatePicker/StyledDatePicker.js","webpack:///./packages/tocco-ui/src/DatePicker/DatePicker.js","webpack:///./packages/tocco-ui/src/DatePicker/useDatePickr.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/StyledDatePicker.js","webpack:///./packages/tocco-ui/src/EditableValue/typeEditors/DatePicker.js","webpack:///./packages/tocco-ui/src/LoadingSpinner/LoadingSpinner.js","webpack:///./node_modules/history/DOMUtils.js","webpack:///./node_modules/history/LocationUtils.js","webpack:///./node_modules/history/PathUtils.js","webpack:///./node_modules/history/createHashHistory.js","webpack:///./node_modules/history/createMemoryHistory.js","webpack:///./node_modules/history/createTransitionManager.js"],"names":["ListLink","entityName","entityKeys","children","rootNodes","map","key","StyledLink","to","JSON","stringify","target","props","queryParams","queryString","history","location","search","navigationStrategy","DetailLink","parse","searchFormCollapsed","onSearchFormCollapsedChange","collapsed","saveUserPreferences","mapActionCreators","container","connect","state","_get","preferences","userPreferences","injectIntl","DocsBrowserApp","context","onSuccess","intl","emitAction","parent","getNode","pathname","defaultValues","id","model","value","formName","getDetailFormName","mode","onEntityCreated","remoteEvents","type","payload","entities","title","formatMessage","action","toaster","isActionBlocked","customDeleteEndpoint","selection","onCancel","ids","split","entityKey","push","entityId","onEntityUpdated","onEntityDeleted","StyledButtonsWrapper","styled","StyledButton","initialize","moveElements","MoveContainer","isWaiting","docs","move","domainTypes","input","businessUnit","onError","initialNode","initialParent","useState","setParent","useEffect","getCustomLocation","Error","LoadMask","required","memoryHistory","initialLocation","getInitialLocation","listLimit","selectionStyle","searchFormType","disableViewPersistor","getListFormName","onListParentChange","embedded","noLeftPadding","sortable","Button","onClick","look","ink","disabled","_isEqual","setBreadcrumbs","breadcrumbs","getSearchBreadcrumbs","loadBreadcrumbs","getRootNodesParam","mainSagas","textResourceSelector","messages","docsPathSelector","path","rootNodesSelector","select","display","node","searchMode","call","url","rootnodes","options","rest","result","body","put","actions","Array","isArray","length","join","all","takeLatest","ACTION_HANDLERS","reducerUtil","initialState","sagas","fork","moduleSagas","handler","handleFilesSelected","createDocuments","dialogSelector","create","dialog","files","isDirectory","uuid","blockingInfoId","notification","response","status","message","items","filter","item","bean","msgId","consoleLogger","formData","FormData","file","append","f","resource","method","acceptedStatusCodes","takeEvery","directory","instanceCount","changeListParent","changeSelection","changeSearchFormCollapsed","externalEvents","setDone","inputSelector","targetEntityKey","selectedEntityKeys","selected","errorCode","validation","errors","combineReducers","list","pathSagas","createSagas","listSagas","moveSagas","lazy","appId","LazyAction","ActionComponent","actionEmitter","Suspense","fallback","ref","onChange","fileInput","useRef","prevInstanceCount","current","click","style","e","multiple","webkitdirectory","FileInput","StyledContentWrapper","StyledIconWrapper","scale","ROOT_PATH_REGEX","test","LazyListApp","React","match","onSearchChange","openFileDialog","limit","domainDetailFormName","folderDetailFormName","showActions","openResource","useReducer","x","entityListNumber","forceEntityListUpdate","entityListKey","setSelection","useMemo","params","charAt","toUpperCase","slice","getParent","keys","getFormName","mounted","searchModeRef","onSelectChange","tql","getTql","handleUploadDocument","definition","config","handleUploadDirectory","store","undefined","isRootLocation","viewPersistor","onRowClick","searchStore","getDefaultLocation","searchFormPosition","onStoreCreate","handleStoreCreation","cellRenderers","rowData","column","cellRenderer","icon","c","dmsEntityModel","actionAppComponent","Action","contextParams","detailFormNames","Domain","Folder","customActions","DocsView","StyledDocumentViewWrapper","theme","LazyDetailApp","lastList","reverse","find","breadcrumb","lastListUrl","documentDetailFormName","DocumentView","pathPrefix","breadcrumbsInfo","Breadcrumbs","StyledWrapper","StyledContent","StyledScrollbar","StyledBreadcrumbs","withTheme","setSearchMode","docsViewNumber","forceDocsViewUpdate","useLocation","resetSearchMode","handleSearchChange","query","hasUserChanges","backgroundColor","themeUtil","breadcrumbsItem","exact","render","DocsBrowser","getDispatchActions","actionSettings","reduce","acc","actionSetting","name","argsFactory","EXTERNAL_EVENTS","createHistory","createMemoryHistory","createHashHistory","getUserConfirmation","confirmCallback","getState","okText","cancelText","dispatch","GlobalStyles","initApp","events","publicPath","appFactory","reducers","errorLogging","handleNotifications","cache","singleRootNode","startUrl","toLowerCase","content","textResourceModules","app","event","getEvents","prevProps","changedProps","_pickBy","this","_isEmpty","forEach","component","INITIALIZE","MOVE_ELEMENTS","SET_WAITING","CLOSE","setWaiting","close","DOC_PATH_REGEX","PARENT_PATH_REGEX","docMatches","exec","getResourceNode","parentMatches","getParentNode","DatePicker","wrapperElement","locale","fontFamily","initializeFlatPickr","useDatePickr","flatpickrOptions","shouldAppend","data-wrap","data-toggle","data-input","aria-label","localeMap","German","French","Italian","handleOnChange","selectedDates","toISOString","element","flatpickr","prevFlatpickrOptions","react","destroy","setDate","redraw","calendarLocale","l10ns","en","localize","set","optionsDiff","js","Object","entries","wrap","altInput","enableTime","defaultDate","appendTo","flatpickrInstance","calendarContainer","StyledDatePickerInput","StyledInputCss","StyledDatePickerValue","StyledDatePickerOuterWrapper","immutable","StyledDatePickerWrapper","StyledEditableWrapperCss","focusFlatpickrInput","wrapper","inputElement","querySelector","focus","parseDate","formatDate","initialized","setInitialized","altInputClass","clickOpens","val","handleOnBlur","parsed","focusInput","classList","add","addEventListener","handleConfirmKey","setTimeout","contains","shiftKey","preventDefault","stopPropagation","hasValue","every","v","tabIndex","onFocus","open","onKeyDown","onBlur","placeholder","placeholderText","Ball","msg","onMouseDown","size","fontSize","spin","faCircleNotch","exports","__esModule","canUseDOM","window","document","createElement","listener","attachEvent","removeEventListener","detachEvent","getConfirmation","callback","confirm","supportsHistory","ua","navigator","userAgent","indexOf","supportsPopStateOnHashChange","supportsGoWithoutReloadUsingHash","isExtraneousPopstateEvent","locationsAreEqual","createLocation","_extends","assign","i","arguments","source","prototype","hasOwnProperty","_resolvePathname2","_interopRequireDefault","_valueEqual2","_PathUtils","obj","default","currentLocation","parsePath","hash","decodeURI","URIError","a","b","addLeadingSlash","stripLeadingSlash","substr","hasBasename","prefix","RegExp","stripBasename","stripTrailingSlash","hashIndex","searchIndex","createPath","_warning2","_invariant2","_LocationUtils","_createTransitionManager2","_DOMUtils","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","getHashPath","href","substring","pushHashPath","replaceHashPath","replace","globalHistory","canGoWithoutReload","_props$getUserConfirm","_props$hashType","hashType","basename","_HashPathCoders$hashT","getDOMLocation","transitionManager","setState","nextState","notifyListeners","forceNextPop","ignorePath","handleHashChange","encodedPath","prevLocation","handlePop","confirmTransitionTo","ok","revertPop","fromLocation","toLocation","toIndex","allPaths","lastIndexOf","fromIndex","delta","go","createHref","prevIndex","nextPaths","n","goBack","goForward","listenerCount","checkDOMListeners","isBlocked","block","prompt","unblock","setPrompt","listen","unlisten","appendListener","_typeof","Symbol","iterator","constructor","clamp","lowerBound","upperBound","Math","min","max","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","_props$keyLength","keyLength","createKey","random","toString","index","entry","nextIndex","nextEntries","splice","canGo","_warning","listeners","nextPrompt","fn","isActive","apply","_len","args","_key"],"mappings":"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","file":"chunk-docs-actions.04e0b787c292d57ebc24.js","sourcesContent":["import React from 'react'\nimport PropTypes from 'prop-types'\nimport DocsBrowser from 'tocco-docs-browser/src/main'\nimport {AdminLink as StyledLink} from 'tocco-ui'\nimport queryString from 'query-string'\n\nimport {DetailLink} from '../../../entities/utils/navigationStrategy'\n\nexport const ListLink = ({entityName, entityKeys, children}) => {\n const rootNodes = entityKeys.map(key => ({entityName, key}))\n return <StyledLink to={`/docs?rootNodes=${JSON.stringify(rootNodes)}`} target=\"_blank\">{children}</StyledLink>\n}\n\nListLink.propTypes = {\n entityName: PropTypes.string.isRequired,\n children: PropTypes.any.isRequired,\n entityKeys: PropTypes.arrayOf(PropTypes.string)\n}\n\nconst DocsBrowserApp = props => {\n const queryParams = queryString.parse(props.history.location.search)\n\n return <DocsBrowser\n {...props}\n navigationStrategy={{\n ListLink,\n DetailLink\n }}\n {...queryParams.rootNodes && {rootNodes: JSON.parse(queryParams.rootNodes)}}\n searchFormCollapsed={props.searchFormCollapsed}\n onSearchFormCollapsedChange={({collapsed}) => {\n props.saveUserPreferences({'admin.list.searchFormCollapsed': collapsed})\n }}\n />\n}\n\nDocsBrowserApp.propTypes = {\n history: PropTypes.object.isRequired,\n searchFormCollapsed: PropTypes.bool,\n saveUserPreferences: PropTypes.func\n}\n\nexport default DocsBrowserApp\n","import {connect} from 'react-redux'\nimport {injectIntl} from 'react-intl'\nimport _get from 'lodash/get'\n\nimport DocsBrowserApp from './DocsBrowserApp'\nimport {saveUserPreferences} from '../../../../modules/preferences/actions'\n\nconst mapActionCreators = {\n saveUserPreferences\n}\n\nconst mapStateToProps = (state, props) => ({\n searchFormCollapsed: _get(state.preferences.userPreferences, 'admin.list.searchFormCollapsed', null)\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(DocsBrowserApp))\n","import DocsBrowserApp from './components/DocsBrowserApp'\n\nexport default {\n container: DocsBrowserApp\n}\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\nimport {injectIntl} from 'react-intl'\n\nimport getNode from '../../../utils/getNode'\nimport getDetailFormName from '../../../utils/getDetailFormName'\n\nconst CreateDomain = ({context, onSuccess, intl, emitAction}) => {\n const isActionBlocked = action =>\n action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const handleEntityCreated = ({id}) => {\n const remoteEvents = [{\n type: 'entity-create-event',\n payload: {\n entities: [{\n entityName: 'Docs_list_item',\n key: `Domain/${id}`\n }]\n }\n }]\n\n onSuccess({\n title: intl.formatMessage({id: 'client.docs-browser.createDomainSuccessful'}),\n remoteEvents\n })\n }\n\n const parent = getNode(context.history.location.pathname)\n const defaultValues = parent\n ? [\n {id: `rel${parent.model}`, value: parent.key}\n ]\n : []\n\n const formName = getDetailFormName(context, 'Domain')\n\n return <EntityDetailApp\n entityName=\"Domain\"\n formName={formName}\n mode=\"create\"\n defaultValues={defaultValues}\n onEntityCreated={handleEntityCreated}\n emitAction={emitActionBarrier}\n />\n}\n\nCreateDomain.propTypes = {\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(CreateDomain)\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\nimport {injectIntl} from 'react-intl'\n\nimport getNode from '../../../utils/getNode'\nimport getDetailFormName from '../../../utils/getDetailFormName'\n\nconst CreateFolder = ({context, onSuccess, intl, emitAction}) => {\n const isActionBlocked = action =>\n action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const handleEntityCreated = ({id}) => {\n const remoteEvents = [{\n type: 'entity-create-event',\n payload: {\n entities: [{\n entityName: 'Docs_list_item',\n key: `Folder/${id}`\n }]\n }\n }]\n\n onSuccess({\n title: intl.formatMessage({id: 'client.docs-browser.createFolderSuccessful'}),\n remoteEvents\n })\n }\n\n const parent = getNode(context.history.location.pathname)\n const defaultValues = parent\n ? [\n {id: `rel${parent.model}`, value: parent.key}\n ]\n : []\n\n const formName = getDetailFormName(context, 'Folder')\n\n return <EntityDetailApp\n entityName=\"Folder\"\n formName={formName}\n mode=\"create\"\n defaultValues={defaultValues}\n onEntityCreated={handleEntityCreated}\n emitAction={emitActionBarrier}\n />\n}\n\nCreateFolder.propTypes = {\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(CreateFolder)\n","import React from 'react'\nimport DeleteApp from 'tocco-delete/src/main'\n\nexport default props => <DeleteApp {...props} customDeleteEndpoint={'documents/delete'}/>\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {injectIntl} from 'react-intl'\nimport EntityDetailApp from 'tocco-entity-detail/src/main'\nimport {selection} from 'tocco-util'\n\nimport getDetailFormName from '../../../utils/getDetailFormName'\n\nconst EditAction = ({selection, onSuccess, onCancel, intl, context, emitAction}) => {\n const isActionBlocked = action =>\n action.payload?.toaster?.title === 'client.entity-detail.createSuccessfulTitle'\n\n const emitActionBarrier = action => {\n if (!isActionBlocked(action)) {\n emitAction(action)\n }\n }\n\n const [entityName, entityKey] = selection.ids[0].split('/')\n\n if (entityName === 'Resource') {\n context.history.push(`/docs/doc/${entityKey}/detail`)\n onCancel()\n }\n\n const handleEntityUpdated = () => {\n const remoteEvents = [{\n type: 'entity-update-event',\n payload: {\n entities: [{\n entityName: 'Docs_list_item',\n key: selection.ids[0]\n }]\n }\n }]\n\n onSuccess({\n title: null,\n remoteEvents\n })\n }\n\n const handleEntityDeleted = () => {\n const remoteEvents = [{\n type: 'entity-delete-event',\n payload: {\n entities: [{\n entityName: 'Docs_list_item',\n key: selection.ids[0]\n }]\n }\n }]\n\n onSuccess({\n title: null,\n remoteEvents\n })\n }\n\n const formName = getDetailFormName(context, entityName)\n\n return <EntityDetailApp\n entityName={entityName}\n formName={formName}\n entityId={entityKey}\n mode=\"update\"\n onEntityUpdated={handleEntityUpdated}\n onEntityDeleted={handleEntityDeleted}\n emitAction={emitActionBarrier}\n />\n}\n\nEditAction.propTypes = {\n selection: selection.propType,\n context: PropTypes.shape({\n history: PropTypes.shape({\n push: PropTypes.func.isRequired\n }).isRequired\n }).isRequired,\n onSuccess: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired,\n intl: PropTypes.object.isRequired,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default injectIntl(EditAction)\n","import React, {useEffect, useState} from 'react'\nimport PropTypes from 'prop-types'\nimport {FormattedMessage} from 'react-intl'\nimport {selection} from 'tocco-util'\nimport {Button, LoadMask, StyledButton} from 'tocco-ui'\nimport styled from 'styled-components'\nimport _isEqual from 'lodash/isEqual'\n\nimport DocsBrowser from '../../../main'\nimport getNode from '../../../utils/getNode'\n\nconst StyledButtonsWrapper = styled.div`\n display: flex;\n justify-content: flex-end;\n\n ${StyledButton} {\n margin-right: 0;\n }\n`\n\nexport const MoveAction = ({\n selection,\n onSuccess,\n onError,\n context,\n initialize,\n moveElements,\n isWaiting,\n domainTypes,\n rootNodes,\n businessUnit,\n emitAction\n}) => {\n const initialNode = getNode(context.history.location.pathname)\n const initialParent = {model: 'Docs_list_item', key: `${initialNode.model}/${initialNode.key}`}\n const [parent, setParent] = useState(initialParent)\n\n useEffect(() => {\n initialize(selection, onSuccess, onError)\n }, [])\n\n const getCustomLocation = (model, key) => {\n switch (model) {\n case 'Domain':\n return `/docs/domain/${key}/list`\n case 'Folder':\n return `/docs/folder/${key}/list`\n case 'Resource':\n return\n default:\n throw new Error(`Unexpected model: ${model}`)\n }\n }\n\n const getInitialLocation = () => {\n if (parent === null) {\n return null\n }\n const [model, key] = parent.key.split('/')\n return getCustomLocation(model, key)\n }\n\n return <LoadMask required={[!isWaiting]}>\n <DocsBrowser\n memoryHistory={true}\n initialLocation={getInitialLocation()}\n listLimit={10}\n selectionStyle=\"none\"\n searchFormType=\"none\"\n disableViewPersistor={true}\n getListFormName={parent => parent === null ? 'Move_root_docs_list_item' : 'Move_docs_list_item'}\n onListParentChange={parent => setParent(parent)}\n getCustomLocation={getCustomLocation}\n navigationStrategy={{}}\n embedded={true}\n emitAction={emitAction}\n noLeftPadding={true}\n domainTypes={domainTypes}\n rootNodes={rootNodes}\n businessUnit={businessUnit}\n sortable={false}\n />\n <StyledButtonsWrapper>\n <Button\n onClick={() => moveElements(parent.key, selection.ids)}\n look=\"raised\"\n ink=\"primary\"\n disabled={parent === null || _isEqual(parent, initialParent)}\n >\n <FormattedMessage id=\"client.actions.dms-move.button\"/>\n </Button>\n </StyledButtonsWrapper>\n </LoadMask>\n}\n\nMoveAction.propTypes = {\n selection: selection.propType,\n onSuccess: PropTypes.func.isRequired,\n onError: PropTypes.func.isRequired,\n context: PropTypes.shape({\n history: PropTypes.shape({\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired\n }).isRequired\n }).isRequired\n }).isRequired,\n initialize: PropTypes.func.isRequired,\n moveElements: PropTypes.func.isRequired,\n isWaiting: PropTypes.bool.isRequired,\n domainTypes: PropTypes.arrayOf(PropTypes.string),\n rootNodes: PropTypes.arrayOf(PropTypes.shape({\n entityName: PropTypes.string,\n key: PropTypes.string\n })),\n businessUnit: PropTypes.string,\n emitAction: PropTypes.func.isRequired\n}\n","import React from 'react'\nimport {connect} from 'react-redux'\nimport {injectIntl} from 'react-intl'\n\nimport {initialize, moveElements} from '../../../modules/move/actions'\nimport {MoveAction} from './Move'\n\nconst mapActionCreators = {\n initialize,\n moveElements\n}\n\nconst mapStateToProps = state => ({\n isWaiting: state.docs.move.isWaiting,\n domainTypes: state.input.domainTypes,\n rootNodes: state.input.rootNodes,\n businessUnit: state.input.businessUnit\n})\n\nconst MoveContainer = connect(mapStateToProps, mapActionCreators)(MoveAction)\n\nexport default injectIntl(props => <MoveContainer {...props}/>)\n","export const LOAD_BREADCRUMBS = 'docs/path/LOAD_BREADCRUMBS'\nexport const SET_BREADCRUMBS = 'docs/path/SET_BREADCRUMBS'\nexport const SET_SEARCH_MODE = 'docs/path/SET_SEARCH_MODE'\n\nexport const loadBreadcrumbs = location => ({\n type: LOAD_BREADCRUMBS,\n payload: {\n location\n }\n})\n\nexport const setBreadcrumbs = breadcrumbs => ({\n type: SET_BREADCRUMBS,\n payload: {\n breadcrumbs\n }\n})\n\nexport const setSearchMode = searchMode => ({\n type: SET_SEARCH_MODE,\n payload: {\n searchMode\n }\n})\n","import {rest} from 'tocco-app-extensions'\nimport {takeLatest, all, call, put, select} from 'redux-saga/effects'\n\nimport getNode from '../../utils/getNode'\nimport * as actions from './actions'\n\nexport const textResourceSelector = (state, key) => state.intl.messages[key] || key\nexport const docsPathSelector = state => state.docs.path\nexport const rootNodesSelector = state => state.input.rootNodes\n\nexport function* getSearchBreadcrumbs() {\n return [{\n display: yield select(textResourceSelector, 'client.docs-browser.breadcrumbs.start'),\n path: '',\n type: 'list'\n }, {\n display: yield select(textResourceSelector, 'client.docs-browser.breadcrumbs.searchResults'),\n path: '',\n type: 'list'\n }]\n}\n\nexport function* loadBreadcrumbs({payload: {location}}) {\n const node = getNode(location)\n const pathState = yield select(docsPathSelector)\n\n let breadcrumbs\n\n if (pathState.searchMode && !node) {\n breadcrumbs = yield call(getSearchBreadcrumbs)\n } else {\n const url = node ? `documents/${node.model}/${node.key}/breadcrumbs` : 'documents/breadcrumbs'\n const options = {\n queryParams: {\n rootnodes: yield call(getRootNodesParam)\n }\n }\n const result = yield call(rest.requestSaga, url, options)\n breadcrumbs = result.body.breadcrumbs\n }\n\n yield put(actions.setBreadcrumbs(breadcrumbs))\n}\n\nfunction* getRootNodesParam() {\n const rootNodes = yield select(rootNodesSelector)\n return Array.isArray(rootNodes) && rootNodes.length > 0\n ? rootNodes.map(node => `${node.entityName}/${node.key}`).join(',')\n : null\n}\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(actions.LOAD_BREADCRUMBS, loadBreadcrumbs)\n ])\n}\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_BREADCRUMBS]: reducerUtil.singleTransferReducer('breadcrumbs'),\n [actions.SET_SEARCH_MODE]: reducerUtil.singleTransferReducer('searchMode')\n}\n\nconst initialState = {\n breadcrumbs: [],\n searchMode: false\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {fork, all} from 'redux-saga/effects'\n\nimport moduleSagas from './sagas'\nimport reducer from './reducer'\n\nexport function* sagas() {\n yield all([\n fork(moduleSagas)\n ])\n}\n\nexport default reducer\n","import {all, takeEvery, call, put, select} from 'redux-saga/effects'\nimport {rest, notification} from 'tocco-app-extensions'\nimport {consoleLogger} from 'tocco-util'\nimport {v4 as uuid} from 'uuid'\n\nimport getNode from '../../utils/getNode'\nimport * as actions from './actions'\n\nexport const dialogSelector = state => state.docs.create.dialog\nexport const textResourceSelector = (state, key) => state.intl.messages[key]\n\nconst CREATED_STATUS = 201\n\nexport function* handleFilesSelected({payload: {files, isDirectory}}) {\n const blockingInfoId = yield call(uuid)\n yield put(notification.blockingInfo(\n blockingInfoId,\n isDirectory\n ? 'client.docs-browser.uploadInProgressDirectory'\n : files.length > 1\n ? 'client.docs-browser.uploadInProgressMultiple'\n : 'client.docs-browser.uploadInProgress',\n null\n ))\n\n const {location, onSuccess, onError} = yield select(dialogSelector)\n\n try {\n const response = yield call(createDocuments, location, files)\n\n if (response.status === 403) {\n yield put(notification.removeBlockingInfo(blockingInfoId))\n onError({\n title: yield select(textResourceSelector, 'client.entity-detail.saveAbortedTitle'),\n message: yield select(textResourceSelector, 'client.docs-browser.failedNoPermission')\n })\n } else {\n const remoteEvents = [{\n type: 'entity-create-event',\n payload: {\n entities: response.body.items\n .filter(item => item.status === CREATED_STATUS)\n .map(item => ({\n entityName: item.bean.model,\n key: item.bean.key\n }))\n }\n }]\n\n yield put(notification.removeBlockingInfo(blockingInfoId))\n\n const msgId = isDirectory\n ? 'client.docs-browser.uploadSuccessfulDirectory'\n : 'client.docs-browser.uploadSuccessful'\n onSuccess({\n title: yield select(textResourceSelector, msgId),\n remoteEvents\n })\n }\n } catch (e) {\n consoleLogger.logError('Failed to upload files', e)\n yield put(notification.removeBlockingInfo(blockingInfoId))\n onError({\n title: yield select(textResourceSelector, 'client.docs-browser.uploadFailed')\n })\n }\n}\n\nexport function* createDocuments(location, files) {\n const node = getNode(location)\n\n if (!node) {\n return\n }\n\n const formData = new FormData()\n for (const file of files) {\n formData.append('files', file)\n }\n\n const resource = `documents/${node.model}/${node.key}`\n const options = {\n method: 'POST',\n body: formData,\n acceptedStatusCodes: [403]\n }\n\n return yield call(rest.requestSaga, resource, options)\n}\n\nexport default function* mainSagas() {\n yield all([\n takeEvery(actions.FILES_SELECTED, handleFilesSelected)\n ])\n}\n","export const OPEN_DIALOG = 'docs/create/OPEN_DIALOG'\nexport const FILES_SELECTED = 'docs/create/FILES_SELECTED'\n\nexport const openDialog = (location, directory, onSuccess, onError) => ({\n type: OPEN_DIALOG,\n payload: {\n location,\n directory,\n onSuccess,\n onError\n }\n})\n\nexport const filesSelected = (files, isDirectory) => ({\n type: FILES_SELECTED,\n payload: {\n files,\n isDirectory\n }\n})\n","import * as actions from './actions'\n\nconst openDialog = (state, {payload: {location, directory, onSuccess, onError}}) => ({\n ...state,\n dialog: {\n instanceCount: state.dialog.instanceCount + 1,\n directory,\n location,\n onSuccess,\n onError\n }\n})\n\nconst ACTION_HANDLERS = {\n [actions.OPEN_DIALOG]: openDialog\n}\n\nconst initialState = {\n dialog: {\n instanceCount: 0,\n directory: false,\n location: null,\n onSuccess: null,\n onError: null\n }\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {fork, all} from 'redux-saga/effects'\n\nimport moduleSagas from './sagas'\nimport reducer from './reducer'\n\nexport function* sagas() {\n yield all([\n fork(moduleSagas)\n ])\n}\n\nexport default reducer\n","export const CHANGE_LIST_PARENT = 'docs/list/CHANGE_LIST_PARENT'\nexport const CHANGE_SELECTION = 'docs/list/CHANGE_SELECTION'\nexport const CHANGE_SEARCH_FORM_COLLAPSED = 'docs/list/CHANGE_SEARCH_FORM_COLLAPSED'\nexport const SET_SEARCH_FORM_COLLAPSED = 'docs/list/SET_SEARCH_FORM_COLLAPSED'\n\nexport const changeListParent = parent => ({\n type: CHANGE_LIST_PARENT,\n payload: {\n parent\n }\n})\n\nexport const changeSelection = selection => ({\n type: CHANGE_SELECTION,\n payload: {\n selection\n }\n})\n\nexport const changeSearchFormCollapsed = collapsed => ({\n type: CHANGE_SEARCH_FORM_COLLAPSED,\n payload: {\n collapsed\n }\n})\n\nexport const setSearchFormCollapsed = searchFormCollapsed => ({\n type: SET_SEARCH_FORM_COLLAPSED,\n payload: {\n searchFormCollapsed\n }\n})\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst ACTION_HANDLERS = {\n [actions.SET_SEARCH_FORM_COLLAPSED]: reducerUtil.singleTransferReducer('searchFormCollapsed')\n}\n\nconst initialState = {\n searchFormCollapsed: null\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import sagas from './sagas'\nimport reducer from './reducer'\n\nexport {sagas}\n\nexport default reducer\n","import {all, put, takeLatest} from 'redux-saga/effects'\nimport {externalEvents} from 'tocco-app-extensions'\n\nimport * as actions from './actions'\n\nexport function* changeListParent({payload}) {\n yield put(externalEvents.fireExternalEvent('onListParentChange', payload.parent))\n}\n\nexport function* changeSelection({payload}) {\n yield put(externalEvents.fireExternalEvent('onSelectChange', payload.selection))\n}\n\nexport function* changeSearchFormCollapsed({payload}) {\n yield put(externalEvents.fireExternalEvent('onSearchFormCollapsedChange', payload.collapsed))\n}\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(actions.CHANGE_LIST_PARENT, changeListParent),\n takeLatest(actions.CHANGE_SELECTION, changeSelection),\n takeLatest(actions.CHANGE_SEARCH_FORM_COLLAPSED, changeSearchFormCollapsed)\n ])\n}\n","import {takeLatest, all, call, put, select} from 'redux-saga/effects'\nimport {notification, rest} from 'tocco-app-extensions'\nimport {validation} from 'tocco-util'\n\nimport * as actions from './actions'\n\nexport const inputSelector = state => state.docs.move.input\nexport const textResourceSelector = (state, key) => state.intl.messages[key]\n\nexport function* moveElements({payload}) {\n const resource = 'documents/move'\n const options = {\n method: 'POST',\n acceptedStatusCodes: [400, 403],\n body: {\n targetEntityKey: payload.target,\n selectedEntityKeys: payload.selected\n }\n }\n\n yield put(actions.setWaiting(true))\n const response = yield call(rest.requestSaga, resource, options)\n\n if (response.status === 204) {\n yield call(setDone)\n } else {\n yield put(actions.setWaiting(false))\n let message = 'client.actions.dms-move.failed.message'\n if (response.body?.errorCode === 'VALIDATION_FAILED') {\n message = validation.getErrorCompact(response.body.errors)\n }\n if (response.status === 403) {\n message = 'client.docs-browser.failedNoPermission'\n }\n yield put(notification.toaster({type: 'error', title: 'client.actions.dms-move.failed.title', body: message}))\n }\n}\n\nexport function* setDone() {\n const {selection, onSuccess} = yield select(inputSelector)\n\n const remoteEvents = [{\n type: 'entity-update-event',\n payload: {\n entities: selection.ids.map(id => ({\n entityName: 'Docs_list_item',\n key: id\n }))\n }\n }]\n\n onSuccess({\n title: yield select(textResourceSelector, 'client.docs-browser.moveSuccessful'),\n remoteEvents\n })\n\n yield put(actions.close())\n}\n\nexport default function* mainSagas() {\n yield all([\n takeLatest(actions.MOVE_ELEMENTS, moveElements)\n ])\n}\n","import {reducer as reducerUtil} from 'tocco-util'\n\nimport * as actions from './actions'\n\nconst initialize = (state, {payload: {selection, onSuccess, onError}}) => ({\n ...state,\n input: {\n selection,\n onSuccess,\n onError\n }\n})\n\nconst close = () => ({\n ...initialState\n})\n\nconst ACTION_HANDLERS = {\n [actions.INITIALIZE]: initialize,\n [actions.SET_WAITING]: reducerUtil.singleTransferReducer('isWaiting'),\n [actions.CLOSE]: close\n}\n\nconst initialState = {\n isWaiting: false,\n input: {\n selection: null,\n onSuccess: null,\n onError: null\n }\n}\n\nexport default function reducer(state = initialState, action) {\n const handler = ACTION_HANDLERS[action.type]\n return handler ? handler(state, action) : state\n}\n","import {fork, all} from 'redux-saga/effects'\n\nimport moduleSagas from './sagas'\nimport reducer from './reducer'\n\nexport function* sagas() {\n yield all([\n fork(moduleSagas)\n ])\n}\n\nexport default reducer\n","import {combineReducers} from 'redux'\n\nimport path, {sagas as pathSagas} from './path'\nimport create, {sagas as createSagas} from './create'\nimport list, {sagas as listSagas} from './list'\nimport move, {sagas as moveSagas} from './move'\n\nexport default {\n docs: combineReducers({path, create, list, move})\n}\n\nexport const sagas = [pathSagas, createSagas, listSagas, moveSagas]\n","import React, {lazy, Suspense} from 'react'\nimport {connect} from 'react-redux'\nimport PropTypes from 'prop-types'\nimport {actionEmitter} from 'tocco-app-extensions'\nimport {LoadMask} from 'tocco-ui'\nimport {consoleLogger} from 'tocco-util'\n\nconst actions = {\n 'dms-create-folder': lazy(() => import(/* webpackChunkName: \"docs-actions\" */'./actions/CreateFolder')),\n 'dms-create-domain': lazy(() => import(/* webpackChunkName: \"docs-actions\" */'./actions/CreateDomain')),\n 'dms-edit': lazy(() => import(/* webpackChunkName: \"docs-actions\" */'./actions/Edit')),\n 'dms-move': lazy(() => import(/* webpackChunkName: \"docs-actions\" */'./actions/MoveContainer')),\n 'delete': lazy(() => import(/* webpackChunkName: \"docs-actions\" */'./actions/Delete'))\n}\n\nconst renderLoader = () => <LoadMask/>\n\nconst LazyAction = props => {\n const {appId} = props\n const LazyAction = actions[appId]\n\n if (!LazyAction) {\n consoleLogger.logError(`no action found with id: ${appId}`)\n return null\n }\n\n const ActionComponent = connect(null, {\n emitAction: action => actionEmitter.dispatchEmittedAction(action)\n })(LazyAction)\n\n return <Suspense fallback={renderLoader()}>\n <ActionComponent\n {...props}\n />\n </Suspense>\n}\n\nLazyAction.propTypes = {\n appId: PropTypes.string.isRequired\n}\n\nexport default LazyAction\n","import React, {useRef, useEffect} from 'react'\nimport PropTypes from 'prop-types'\n\nconst usePrevious = value => {\n const ref = useRef()\n useEffect(() => {\n ref.current = value\n })\n return ref.current\n}\n\nconst FileInput = ({instanceCount, directory, onChange}) => {\n const fileInput = useRef()\n\n const prevInstanceCount = usePrevious(instanceCount)\n\n useEffect(() => {\n if (fileInput.current && instanceCount > prevInstanceCount) {\n fileInput.current.click()\n }\n })\n\n const handleChange = e => {\n const files = e.target.files\n if (files && files.length > 0 && onChange) {\n onChange(files, directory)\n }\n e.target.value = null\n }\n \n return <input\n type=\"file\"\n ref={fileInput}\n style={{display: 'none'}}\n onChange={handleChange}\n multiple {...(directory ? {webkitdirectory: 'true', directory: 'true'} : {})}\n />\n}\n\nFileInput.propTypes = {\n instanceCount: PropTypes.number.isRequired,\n directory: PropTypes.bool,\n onChange: PropTypes.func\n}\n\nexport default FileInput\n","import {connect} from 'react-redux'\n\nimport FileInput from './FileInput'\nimport {filesSelected} from '../../modules/create/actions'\n\nconst mapActionCreators = {\n onChange: filesSelected\n}\n\nconst mapStateToProps = state => ({\n instanceCount: state.docs.create.dialog.instanceCount,\n directory: state.docs.create.dialog.directory\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(FileInput)\n","import styled from 'styled-components'\nimport {scale} from 'tocco-ui'\n\nexport const StyledContentWrapper = styled.div`\n display: flex;\n align-items: center;\n`\n\nexport const StyledIconWrapper = styled.span`\n font-size: ${scale.font(1)};\n display: inline-block;\n margin-right: ${scale.space(-2)};\n`\n","const ROOT_PATH_REGEX = /^\\/docs\\/?$/\n\nconst isRootLocation = pathname => ROOT_PATH_REGEX.test(pathname)\n\nexport default isRootLocation\n","import React, {Suspense, useEffect, useMemo, useReducer, useRef, useState} from 'react'\nimport PropTypes from 'prop-types'\nimport {viewPersistor} from 'tocco-util'\nimport {Icon, LoadMask} from 'tocco-ui'\nimport {searchFormTypePropTypes} from 'tocco-entity-list/src/util/searchFormTypes'\nimport {selectionStylePropType} from 'tocco-entity-list/src/util/selectionStyles'\n\nimport Action from '../Action'\nimport FileInput from '../FileInput'\nimport {StyledContentWrapper, StyledIconWrapper} from './StyledComponents'\nimport isRootLocation from '../../utils/isRootLocation'\n\nexport const getParent = match => {\n if (match.params && match.params.model) {\n const model = match.params.model.charAt(0).toUpperCase() + match.params.model.slice(1)\n const key = match.params.key\n const fullKey = `${model}/${key}`\n return {\n model: 'Docs_list_item',\n key: fullKey // e.g. \"Domain/118\"\n }\n }\n return null\n}\n\nexport const getTql = domainTypes =>\n Array.isArray(domainTypes)\n && domainTypes.length > 0\n ? `exists(relDomain_type where IN(unique_id, ${domainTypes.map(type => `\"${type}\"`).join(',')}))`\n : null\n\nexport const getFormName = (parent, keys) => parent\n ? 'Docs_list_item'\n : keys\n ? 'Root_docs_list_item_specific'\n : 'Root_docs_list_item'\n\nexport const getDefaultLocation = (model, key) => {\n switch (model) {\n case 'Domain':\n return `/docs/domain/${key}/list`\n case 'Folder':\n return `/docs/folder/${key}/list`\n case 'Resource':\n return `/docs/doc/${key}/detail`\n default:\n throw new Error(`Unexpected model: ${model}`)\n }\n}\n\nconst LazyListApp = React.lazy(() => import('./LazyListApp'))\n\nconst DocsView = props => {\n const {\n history,\n match,\n domainTypes,\n rootNodes,\n navigationStrategy,\n changeListParent,\n onSearchChange,\n emitAction,\n openFileDialog,\n limit,\n searchFormType,\n selectionStyle,\n getCustomLocation,\n disableViewPersistor,\n getListFormName,\n domainDetailFormName,\n folderDetailFormName,\n showActions,\n sortable,\n searchMode,\n openResource,\n searchFormCollapsed,\n changeSelection,\n changeSearchFormCollapsed\n } = props\n // eslint-disable-next-line no-unused-vars\n const [entityListNumber, forceEntityListUpdate] = useReducer(x => x + 1, 0)\n\n const entityListKey = `entity-list-${entityListNumber}`\n\n const [selection, setSelection] = useState([])\n const parent = useMemo(() => getParent(match), [match.params])\n\n const keys = !parent && rootNodes ? rootNodes.map(node => `${node.entityName}/${node.key}`) : null\n const formName = useMemo(() => getListFormName\n ? getListFormName(parent, keys)\n : getFormName(parent, keys)\n , [match.params, getListFormName])\n\n const mounted = useRef(false)\n const searchModeRef = useRef(searchMode)\n\n searchModeRef.current = searchMode\n\n useEffect(() => {\n mounted.current = true\n return () => (mounted.current = false)\n })\n\n useEffect(() => {\n changeListParent(parent)\n setSelection([])\n }, [parent])\n\n const onSelectChange = selection => {\n setSelection(selection)\n changeSelection(selection)\n }\n\n const handleRowClick = ({id}) => {\n onSelectChange([id])\n\n if (searchModeRef.current && isRootLocation(history.location.pathname)) {\n if (!viewPersistor.viewInfoSelector('search').store) {\n // persist search store to allow a \"go back to search\"\n const searchStore = viewPersistor.viewInfoSelector(entityListKey).store\n viewPersistor.persistViewInfo('search', {store: searchStore})\n }\n forceEntityListUpdate()\n }\n\n const [model, key] = id.split('/')\n const location = getCustomLocation ? getCustomLocation(model, key) : getDefaultLocation(model, key)\n\n if (location) {\n if (openResource && model === 'Resource') {\n openResource(location)\n } else {\n history.push(location)\n }\n }\n }\n\n const tql = !parent && !keys ? getTql(domainTypes) : null\n\n const handleUploadDocument = function* (definition, selection, parent, params, config, onSuccess, onError) {\n const directory = false\n openFileDialog(history.location.pathname, directory, onSuccess, onError)\n }\n\n const handleUploadDirectory = function* (definition, selection, parent, params, config, onSuccess, onError) {\n const directory = true\n openFileDialog(history.location.pathname, directory, onSuccess, onError)\n }\n\n const handleSearch = e => {\n if (mounted.current) {\n onSearchChange(e)\n }\n }\n\n const store = disableViewPersistor\n ? undefined\n : isRootLocation(history.location.pathname)\n ? viewPersistor.viewInfoSelector('search').store\n : null\n\n const handleStoreCreation = store => {\n if (!disableViewPersistor) {\n viewPersistor.persistViewInfo(entityListKey, {store})\n }\n return null\n }\n\n return (\n <>\n <Suspense fallback={<LoadMask/>}>\n <LazyListApp\n key={entityListKey}\n id=\"documents\"\n entityName=\"Docs_list_item\"\n formName={formName}\n limit={limit || 25}\n onRowClick={handleRowClick}\n searchFormPosition=\"left\"\n searchFormType={searchFormType || 'admin'}\n parent={parent}\n onSearchChange={handleSearch}\n store={store}\n onStoreCreate={handleStoreCreation(store)}\n cellRenderers={{\n 'dms-label-with-icon': (rowData, column, cellRenderer) => (\n <StyledContentWrapper>\n <StyledIconWrapper>\n <Icon icon={rowData.icon}/>\n </StyledIconWrapper>\n <span>{cellRenderer(column.children[0])}</span>\n </StyledContentWrapper>\n ),\n 'dms-actions': (rowData, column, cellRenderer) => (\n <StyledContentWrapper>\n {column.children\n .filter(c => !c.dmsEntityModel || c.dmsEntityModel === rowData.type)\n .map(c => cellRenderer(c))}\n </StyledContentWrapper>\n )\n }}\n emitAction={emitAction}\n actionAppComponent={Action}\n contextParams={{\n history,\n detailFormNames: {\n Domain: domainDetailFormName,\n Folder: folderDetailFormName\n }\n }}\n customActions={{\n 'upload-document': handleUploadDocument,\n 'upload-directory': handleUploadDirectory\n }}\n navigationStrategy={navigationStrategy}\n tql={tql}\n keys={keys}\n selectionStyle={selectionStyle || 'multi_explicit'}\n onSelectChange={onSelectChange}\n selection={selection}\n showActions={showActions}\n sortable={sortable}\n searchFormCollapsed={searchFormCollapsed}\n onSearchFormCollapsedChange={changeSearchFormCollapsed}\n />\n </Suspense>\n <FileInput/>\n </>\n )\n}\n\nDocsView.propTypes = {\n match: PropTypes.object.isRequired,\n history: PropTypes.object.isRequired,\n navigationStrategy: PropTypes.object,\n domainTypes: PropTypes.arrayOf(PropTypes.string),\n rootNodes: PropTypes.arrayOf(PropTypes.shape({\n entityName: PropTypes.string,\n key: PropTypes.string\n })),\n changeListParent: PropTypes.func.isRequired,\n onSearchChange: PropTypes.func.isRequired,\n emitAction: PropTypes.func.isRequired,\n openFileDialog: PropTypes.func.isRequired,\n limit: PropTypes.number,\n searchFormType: searchFormTypePropTypes,\n selectionStyle: selectionStylePropType,\n getCustomLocation: PropTypes.func,\n disableViewPersistor: PropTypes.bool,\n getListFormName: PropTypes.func,\n domainDetailFormName: PropTypes.string,\n folderDetailFormName: PropTypes.string,\n showActions: PropTypes.bool,\n sortable: PropTypes.bool,\n searchMode: PropTypes.bool,\n openResource: PropTypes.func,\n searchFormCollapsed: PropTypes.bool,\n changeSelection: PropTypes.func.isRequired,\n changeSearchFormCollapsed: PropTypes.func.isRequired\n}\n\nexport default DocsView\n","import {connect} from 'react-redux'\nimport {injectIntl} from 'react-intl'\n\nimport DocsView from './DocsView'\nimport {changeListParent, changeSearchFormCollapsed, changeSelection} from '../../modules/list/actions'\n\nconst mapStateToProps = state => ({\n domainTypes: state.input.domainTypes,\n rootNodes: state.input.rootNodes,\n limit: state.input.listLimit,\n searchFormType: state.input.searchFormType,\n selectionStyle: state.input.selectionStyle,\n getCustomLocation: state.input.getCustomLocation,\n disableViewPersistor: state.input.disableViewPersistor,\n getListFormName: state.input.getListFormName,\n domainDetailFormName: state.input.domainDetailFormName,\n folderDetailFormName: state.input.folderDetailFormName,\n showActions: state.input.showActions,\n sortable: state.input.sortable,\n openResource: state.input.openResource,\n searchFormCollapsed: state.docs.list.searchFormCollapsed\n})\n\nconst mapActionCreators = {\n changeListParent,\n changeSelection,\n changeSearchFormCollapsed\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(DocsView))\n","import styled from 'styled-components'\nimport {theme, scale} from 'tocco-ui'\n\nexport const StyledDocumentViewWrapper = styled.div`\n height: 100%;\n background-color: ${theme.color('paper')};\n padding-left: ${scale.space(0.5)};\n overflow-y: hidden;\n`\n","import React, {Suspense} from 'react'\nimport PropTypes from 'prop-types'\nimport {LoadMask} from 'tocco-ui'\n\nimport Action from '../Action/'\nimport {StyledDocumentViewWrapper} from './StyledComponents'\n\nconst LazyDetailApp = React.lazy(() => import('./LazyDetailApp'))\n\nconst DocumentView = ({match, history, breadcrumbs, formName, navigationStrategy, emitAction}) => {\n const handleEntityDeleted = () => {\n const lastList = breadcrumbs.slice().reverse()\n .find(breadcrumb => breadcrumb.type === 'list')\n const lastListUrl = `/docs/${lastList.path}`\n history.push(lastListUrl)\n }\n\n return (\n <StyledDocumentViewWrapper>\n <Suspense fallback={<LoadMask/>}>\n <LazyDetailApp\n entityName=\"Resource\"\n entityId={match.params.key}\n formName={formName || 'DmsResource'}\n mode=\"update\"\n actionAppComponent={Action}\n navigationStrategy={navigationStrategy}\n emitAction={emitAction}\n onEntityDeleted={handleEntityDeleted}\n />\n </Suspense>\n </StyledDocumentViewWrapper>\n )\n}\n\nDocumentView.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n key: PropTypes.string.isRequired\n }).isRequired\n }).isRequired,\n history: PropTypes.shape({\n push: PropTypes.func.isRequired\n }).isRequired,\n breadcrumbs: PropTypes.arrayOf(PropTypes.shape({\n path: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired\n })).isRequired,\n formName: PropTypes.string,\n navigationStrategy: PropTypes.object,\n emitAction: PropTypes.func.isRequired\n}\n\nexport default DocumentView\n","import {connect} from 'react-redux'\nimport {injectIntl} from 'react-intl'\nimport {actionEmitter} from 'tocco-app-extensions'\n\nimport DocumentView from './DocumentView'\n\nconst mapStateToProps = state => ({\n breadcrumbs: state.docs.path.breadcrumbs,\n formName: state.input.documentDetailFormName\n})\n\nconst mapActionCreators = {\n emitAction: action => actionEmitter.dispatchEmittedAction(action)\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(DocumentView))\n","import {connect} from 'react-redux'\nimport {injectIntl} from 'react-intl'\nimport {Breadcrumbs} from 'tocco-ui'\n\nconst mapActionCreators = {\n}\n\nconst mapStateToProps = state => ({\n pathPrefix: '/docs',\n breadcrumbsInfo: state.docs.path.breadcrumbs\n})\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(Breadcrumbs))\n","import styled from 'styled-components'\nimport {StyledScrollbar} from 'tocco-ui'\n\nexport const StyledWrapper = styled.div`\n display: grid;\n grid-template-rows: auto 1fr;\n grid-template-areas:\n 'breadcrumbs'\n 'content';\n height: 100%;\n width: 100%;\n`\n\nexport const StyledContent = styled.div`\n grid-area: content;\n overflow-x: hidden;\n ${StyledScrollbar}\n`\n\nexport const StyledBreadcrumbs = styled.div`\n grid-area: breadcrumbs;\n ${({noLeftPadding}) => noLeftPadding && `\n > div {\n padding-left: 0;\n }\n `}\n`\n","import React, {useEffect, useReducer, useRef} from 'react'\nimport PropTypes from 'prop-types'\nimport {Route, Switch, useLocation} from 'react-router-dom'\nimport {withTheme} from 'styled-components'\nimport {theme as themeUtil} from 'tocco-ui'\nimport {viewPersistor} from 'tocco-util'\n\nimport DocsView from '../DocsView'\nimport DocumentView from '../DocumentView'\nimport Breadcrumbs from '../../containers/BreadcrumbsContainer'\nimport {StyledWrapper, StyledBreadcrumbs, StyledContent} from './StyledComponents'\nimport isRootLocation from '../../utils/isRootLocation'\n\nconst DocsBrowser = ({\n history,\n searchMode,\n navigationStrategy,\n setSearchMode,\n loadBreadcrumbs,\n emitAction,\n openFileDialog,\n theme,\n embedded,\n noLeftPadding\n}) => {\n // eslint-disable-next-line no-unused-vars\n const [docsViewNumber, forceDocsViewUpdate] = useReducer(x => x + 1, 0)\n\n const location = useLocation()\n\n const searchModeRef = useRef(searchMode)\n searchModeRef.current = searchMode\n\n useEffect(() => {\n loadBreadcrumbs(location.pathname)\n })\n\n const resetSearchMode = () => {\n if (searchModeRef.current) {\n viewPersistor.clearPersistedViews()\n setSearchMode(false)\n loadBreadcrumbs(location.pathname)\n forceDocsViewUpdate()\n }\n }\n\n const handleSearchChange = e => {\n const hasUserChanges = e.query && e.query.hasUserChanges\n if (hasUserChanges) {\n setSearchMode(true)\n history.push('/docs/')\n loadBreadcrumbs(location.pathname)\n } else if (isRootLocation(history.location.pathname)) {\n resetSearchMode()\n }\n }\n\n const handleBreadcrumbsClick = breadcrumbsItem => {\n if (breadcrumbsItem.path === '') {\n resetSearchMode()\n }\n }\n\n const key = `docs-view-${docsViewNumber}`\n\n return (\n <StyledWrapper>\n <StyledBreadcrumbs noLeftPadding={noLeftPadding}>\n <Breadcrumbs\n {...embedded ? {backgroundColor: themeUtil.color('paper')({theme})} : {}}\n onClick={handleBreadcrumbsClick}\n />\n </StyledBreadcrumbs>\n <StyledContent>\n <Switch>\n <Route\n exact\n path={'/docs/doc/:key/detail'}\n render={({match}) => (\n <DocumentView\n match={match}\n history={history}\n navigationStrategy={navigationStrategy}\n />\n )}\n />\n <Route\n exact\n path={['/docs/:model/:key/list', '/docs']}\n render={({match}) => (\n <DocsView\n key={key}\n history={history}\n match={match}\n navigationStrategy={navigationStrategy}\n onSearchChange={handleSearchChange}\n emitAction={emitAction}\n openFileDialog={openFileDialog}\n searchMode={searchMode}\n />)}\n />\n </Switch>\n </StyledContent>\n </StyledWrapper>\n )\n}\n\nDocsBrowser.propTypes = {\n loadBreadcrumbs: PropTypes.func.isRequired,\n setSearchMode: PropTypes.func.isRequired,\n emitAction: PropTypes.func.isRequired,\n openFileDialog: PropTypes.func.isRequired,\n history: PropTypes.object.isRequired,\n searchMode: PropTypes.bool.isRequired,\n navigationStrategy: PropTypes.object,\n embedded: PropTypes.bool,\n theme: PropTypes.object,\n noLeftPadding: PropTypes.bool\n}\n\nexport default withTheme(DocsBrowser)\n","import {connect} from 'react-redux'\nimport {injectIntl} from 'react-intl'\nimport {actionEmitter} from 'tocco-app-extensions'\n\nimport DocsBrowser from './DocsBrowser'\nimport {loadBreadcrumbs, setSearchMode} from '../../modules/path/actions'\nimport {openDialog} from '../../modules/create/actions'\n\nconst mapStateToProps = state => ({\n searchMode: state.docs.path.searchMode,\n navigationStrategy: state.input.navigationStrategy,\n embedded: state.input.embedded,\n noLeftPadding: state.input.noLeftPadding\n})\n\nconst mapActionCreators = {\n loadBreadcrumbs,\n setSearchMode,\n emitAction: action => actionEmitter.dispatchEmittedAction(action),\n openFileDialog: openDialog\n}\n\nexport default connect(mapStateToProps, mapActionCreators)(injectIntl(DocsBrowser))\n","import {setSearchFormCollapsed} from './modules/list/actions'\n\nconst isDefined = value => value !== undefined\n\nexport const getDispatchActions = input =>\n actionSettings.reduce((acc, actionSetting) => {\n if (isDefined(input[actionSetting.name])) {\n acc.push(actionSetting.action(...actionSetting.argsFactory(input)))\n }\n return acc\n }, [])\n\nconst actionSettings = [\n {\n name: 'searchFormCollapsed',\n action: setSearchFormCollapsed,\n argsFactory: input => [input.searchFormCollapsed]\n }\n]\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {reducer as reducerUtil} from 'tocco-util'\nimport {actionEmitter, appFactory, cache, errorLogging, externalEvents, notification, rest} from 'tocco-app-extensions'\nimport {searchFormTypePropTypes} from 'tocco-entity-list/src/util/searchFormTypes'\nimport {selectionStylePropType} from 'tocco-entity-list/src/util/selectionStyles'\nimport createHashHistory from 'history/createHashHistory'\nimport createMemoryHistory from 'history/createMemoryHistory'\nimport {Redirect, Route, Router as ReactRouter} from 'react-router'\nimport {GlobalStyles} from 'tocco-ui'\nimport _pickBy from 'lodash/pickBy'\nimport _isEqual from 'lodash/isEqual'\nimport _isEmpty from 'lodash/isEmpty'\n\nimport reducers, {sagas} from './modules/reducers'\nimport DocsBrowser from './components/DocsBrowser'\nimport {getDispatchActions} from './input'\n\nconst packageName = 'docs-browser'\n\nconst EXTERNAL_EVENTS = [\n 'onListParentChange',\n 'openResource',\n 'onSelectChange',\n 'onSearchFormCollapsedChange'\n]\n\nconst textResourceSelector = (state, key) => state.intl.messages[key] || key\n\nconst createHistory = (store, memoryHistory) => {\n const historyFactory = memoryHistory ? createMemoryHistory : createHashHistory\n\n return historyFactory({\n getUserConfirmation: (message, confirmCallback) => {\n const state = store.getState()\n\n const okText = textResourceSelector(state, 'client.common.ok')\n const cancelText = textResourceSelector(state, 'client.common.cancel')\n\n const action = notification.confirm(\n '',\n message,\n okText,\n cancelText,\n () => confirmCallback(true),\n () => confirmCallback(false)\n )\n store.dispatch(action)\n }\n })\n}\nconst initApp = (id, input, events = {}, publicPath) => {\n const store = appFactory.createStore(reducers, sagas, input, packageName)\n\n externalEvents.addToStore(store, events)\n actionEmitter.addToStore(store)\n errorLogging.addToStore(store, true, ['console', 'remote', 'notification'])\n const handleNotifications = !events.emitAction\n notification.addToStore(store, handleNotifications)\n cache.addToStore(store)\n\n if (input.businessUnit) {\n rest.setBusinessUnit(input.businessUnit)\n }\n\n const history = input.history || createHistory(store, input.memoryHistory)\n\n if (input.initialLocation) {\n history.push(input.initialLocation)\n }\n\n const singleRootNode = Array.isArray(input.rootNodes) && input.rootNodes.length === 1\n && input.rootNodes[0].entityName !== 'Resource'\n ? input.rootNodes[0]\n : null\n\n const startUrl = singleRootNode\n ? `/docs/${singleRootNode.entityName.toLowerCase()}/${singleRootNode.key}/list`\n : '/docs'\n\n const content = (\n <ReactRouter history={history}>\n {handleNotifications && <notification.Notifications/>}\n <GlobalStyles/>\n <DocsBrowser history={history}/>\n <Route exact path=\"/\">\n <Redirect to={startUrl}/>\n </Route>\n {\n singleRootNode && (\n <Route exact path=\"/docs\">\n <Redirect to={startUrl}/>\n </Route>\n )\n }\n </ReactRouter>\n )\n\n return appFactory.createApp(\n packageName,\n content,\n store,\n {\n input,\n events,\n actions: getDispatchActions(input),\n publicPath,\n textResourceModules: ['component', 'common', 'actions', 'entity-list', 'entity-detail', packageName]\n }\n )\n}\n\n(() => {\n if (__PACKAGE_NAME__ === packageName) {\n appFactory.registerAppInRegistry(packageName, initApp)\n\n if (__DEV__) {\n const input = require('./dev/input.json')\n\n if (!__NO_MOCK__) {\n const fetchMock = require('fetch-mock').default\n fetchMock.config.overwriteRoutes = false\n const setupFetchMocks = require('./dev/fetchMocks').default\n setupFetchMocks(packageName, fetchMock)\n fetchMock.spy()\n }\n\n const app = initApp(packageName, input)\n\n if (module.hot) {\n module.hot.accept('./modules/reducers', () => {\n const reducers = require('./modules/reducers').default\n reducerUtil.hotReloadReducers(app.store, reducers)\n })\n }\n\n appFactory.renderApp(app.component)\n }\n }\n})()\n\nconst getEvents = props =>\n EXTERNAL_EVENTS.reduce((events, event) => {\n if (props[event]) {\n events[event] = props[event]\n }\n return events\n }, {})\n\nclass DocsBrowserApp extends React.Component {\n constructor(props) {\n super(props)\n\n this.app = initApp('docs-browser', props, getEvents(props))\n }\n\n componentDidUpdate(prevProps) {\n const changedProps = _pickBy(this.props, (value, key) => !_isEqual(value, prevProps[key]))\n if (!_isEmpty(changedProps)) {\n getDispatchActions(changedProps).forEach(action => {\n this.app.store.dispatch(action)\n })\n }\n }\n\n render() {\n return this.app.component\n }\n}\n\nDocsBrowserApp.propTypes = {\n history: PropTypes.object,\n navigationStrategy: PropTypes.object,\n domainTypes: PropTypes.arrayOf(PropTypes.string),\n rootNodes: PropTypes.arrayOf(PropTypes.shape({\n entityName: PropTypes.string,\n key: PropTypes.string\n })),\n initialLocation: PropTypes.string,\n listLimit: PropTypes.number,\n documentDetailFormName: PropTypes.string,\n searchFormType: searchFormTypePropTypes,\n selectionStyle: selectionStylePropType,\n getListFormName: PropTypes.func,\n memoryHistory: PropTypes.bool,\n disableViewPersistor: PropTypes.bool,\n getCustomLocation: PropTypes.func,\n businessUnit: PropTypes.string,\n searchFormCollapsed: PropTypes.bool,\n ...EXTERNAL_EVENTS.reduce((propTypes, event) => {\n propTypes[event] = PropTypes.func\n return propTypes\n }, {})\n}\n\nexport default DocsBrowserApp\n","export const INITIALIZE = 'docs/move/INITIALIZE'\nexport const INVALID_SELECTION = 'docs/move/INVALID_SELECTION'\nexport const MOVE_ELEMENTS = 'docs/move/MOVE_ELEMENTS'\nexport const SET_WAITING = 'docs/move/SET_WAITING'\nexport const SET_DONE = 'docs/move/SET_DONE'\nexport const CLOSE = 'docs/move/CLOSE'\n\nexport const initialize = (selection, onSuccess, onError) => ({\n type: INITIALIZE,\n payload: {\n selection,\n onSuccess,\n onError\n }\n})\n\nexport const invalidSelection = () => ({\n type: INVALID_SELECTION\n})\n\nexport const moveElements = (target, selected) => ({\n type: MOVE_ELEMENTS,\n payload: {\n target,\n selected\n }\n})\n\nexport const setWaiting = (isWaiting = true) => ({\n type: SET_WAITING,\n payload: {\n isWaiting\n }\n})\n\nexport const close = () => ({\n type: CLOSE\n})\n","const getDetailFormName = (context, entityName) =>\n context.detailFormNames && context.detailFormNames[entityName]\n ? context.detailFormNames[entityName]\n : `Dms${entityName}`\n\nexport default getDetailFormName\n","const DOC_PATH_REGEX = /^\\/docs\\/doc\\/(\\d+)\\/detail$/\nconst PARENT_PATH_REGEX = /^\\/docs\\/(domain|folder)\\/(\\d+)\\/list$/\n\nconst getResourceNode = pathname => {\n const docMatches = DOC_PATH_REGEX.exec(pathname)\n return docMatches && docMatches.length >= 2\n ? {\n model: 'Resource',\n key: docMatches[1]\n }\n : null\n}\n\nconst getParentNode = pathname => {\n const parentMatches = PARENT_PATH_REGEX.exec(pathname)\n if (parentMatches && parentMatches.length >= 3) {\n const model = parentMatches[1].charAt(0).toUpperCase() + parentMatches[1].slice(1)\n const key = parentMatches[2]\n return {\n model,\n key\n }\n }\n return null\n}\n\nconst getNode = pathname => getResourceNode(pathname) || getParentNode(pathname)\n\nexport default getNode\n","import {domAnimation} from 'framer-motion'\nexport default domAnimation\n","import styled from 'styled-components'\n\nimport {scale} from '../utilStyles'\n\nexport const StyledWrapper = styled.div`\n cursor: pointer;\n\n .flatpickr-calendar.open {\n margin-top: ${scale.space(1.2)};\n }\n\n .flatpickr-calendar.arrowTop:before,\n .flatpickr-calendar.arrowTop:after {\n left: 83%;\n }\n`\n","import React, {useEffect, useRef} from 'react'\nimport PropTypes from 'prop-types'\nimport {injectIntl} from 'react-intl'\nimport {withTheme} from 'styled-components'\n\nimport {theme} from '../utilStyles'\nimport {useDatePickr} from './useDatePickr'\nimport {StyledWrapper} from './StyledDatePicker'\n\nexport const DatePicker = props => {\n const {value, children, intl, onChange} = props\n const wrapperElement = useRef(null)\n const locale = intl.locale\n const msg = id => intl.formatMessage({id})\n\n const fontFamily = theme.fontFamily('regular')(props)\n\n const flatpickrOptions = {}\n const initializeFlatPickr = useDatePickr(wrapperElement,\n {value, onChange, fontFamily, locale, flatpickrOptions, shouldAppend: true})\n\n useEffect(() => {\n if (wrapperElement.current) {\n initializeFlatPickr()\n }\n }, []) // only on mount\n\n return (\n <>\n <StyledWrapper\n data-wrap\n ref={wrapperElement}\n >\n <div data-toggle>\n <input\n style={{display: 'none'}}\n type=\"text\"\n data-input\n aria-label={msg('client.component.datePicker.label')}\n />\n {children}\n </div>\n </StyledWrapper>\n </>\n )\n}\n\nDatePicker.propTypes = {\n /**\n * Any content to wrap a onclick around to open a calendar\n */\n children: PropTypes.node.isRequired,\n /**\n * Function triggered on every date selection. First parameter is the picked date as iso string.\n */\n onChange: PropTypes.func.isRequired,\n /**\n * To set the selected date from outside the component.\n */\n value: PropTypes.any,\n intl: PropTypes.object.isRequired\n}\n\nexport default withTheme(injectIntl(DatePicker))\n","import '!style-loader!css-loader!flatpickr/dist/themes/light.css'\nimport flatpickr from 'flatpickr'\nimport {German} from 'flatpickr/dist/l10n/de.js'\nimport {French} from 'flatpickr/dist/l10n/fr.js'\nimport {Italian} from 'flatpickr/dist/l10n/it.js'\nimport {useEffect, useRef} from 'react'\nimport {react, js} from 'tocco-util'\n\nconst localeMap = {\n 'de-CH': German,\n 'de': German,\n 'fr': French,\n 'it': Italian\n}\n\nconst handleOnChange = onChange => selectedDates => {\n if (selectedDates && selectedDates.length > 0) {\n onChange(selectedDates[0].toISOString())\n } else {\n onChange(null)\n }\n}\n\nconst initializeFlatPickr = (element, {shouldAppend, onChange, value, fontFamily, locale, flatpickrOptions}) => {\n const calendarLocale = localeMap[locale]\n\n const options = {\n wrap: true,\n onChange: handleOnChange(onChange),\n altInput: false,\n enableTime: false,\n defaultDate: value,\n \n ...(shouldAppend ? {appendTo: element.current} : {}),\n ...(calendarLocale ? {locale: calendarLocale} : {}),\n ...flatpickrOptions\n }\n\n const flatpickrInstance = flatpickr(element.current, options)\n\n if (fontFamily) {\n flatpickrInstance.calendarContainer.style.fontFamily = fontFamily\n }\n\n return flatpickrInstance\n}\n\nexport const useDatePickr = (element, config) => {\n const {value, locale, flatpickrOptions} = config\n const flatpickr = useRef(null)\n\n const prevFlatpickrOptions = react.usePrevious(flatpickrOptions)\n\n const init = () => {\n flatpickr.current = initializeFlatPickr(element, config)\n return flatpickr.current\n }\n\n useEffect(() => {\n return () => {\n if (flatpickr.current) {\n flatpickr.current.destroy()\n }\n }\n }, []) // only on unmount\n\n useEffect(() => {\n if (flatpickr.current) {\n flatpickr.current.setDate(value, false)\n flatpickr.current.redraw()\n }\n }, [JSON.stringify(value)]) // only trigger useEffect when value array changed (deep comparison workaround)\n\n useEffect(() => {\n const calendarLocale = localeMap[locale] || flatpickr.current?.l10ns?.en // fallback to english\n if (flatpickr.current && calendarLocale) {\n flatpickr.current.localize(calendarLocale)\n flatpickr.current.set('locale', calendarLocale)\n flatpickr.current.redraw()\n }\n }, [locale])\n\n useEffect(() => {\n if (flatpickr.current) {\n const optionsDiff = js.difference(flatpickrOptions, prevFlatpickrOptions)\n if (Object.keys(optionsDiff).length > 0) {\n Object.entries(optionsDiff).forEach(([key, value]) => {\n flatpickr.current.set(key, value)\n })\n flatpickr.current.redraw()\n }\n }\n }, [flatpickrOptions])\n\n return init\n}\n","import styled from 'styled-components'\n\nimport {\n StyledEditableWrapperCss,\n StyledInputCss\n} from '../StyledEditableValue'\n\nexport const StyledDatePickerInput = styled.input`\n &&& {\n ${StyledInputCss}\n margin: 0;\n }\n`\n\nexport const StyledDatePickerValue = styled.div`\n && {\n ${StyledInputCss}\n display: flex;\n align-items: center;\n }\n`\n\nexport const StyledDatePickerOuterWrapper = styled.div`\n outline: ${({immutable}) => immutable ? 0 : 'initial'};\n`\n\nexport const StyledDatePickerWrapper = styled.div`\n && {\n ${StyledEditableWrapperCss}\n\n input {\n display: ${({immutable}) => immutable ? 'none' : 'block'};\n\n &:last-of-type {\n display: ${({immutable}) => immutable ? 'block' : 'none'};\n }\n }\n }\n`\n","import React, {useRef, useState} from 'react'\nimport PropTypes from 'prop-types'\nimport {injectIntl} from 'react-intl'\nimport {withTheme} from 'styled-components'\n\nimport {\n StyledDatePickerInput,\n StyledDatePickerWrapper,\n StyledDatePickerOuterWrapper,\n StyledDatePickerValue\n} from './StyledDatePicker'\nimport Ball from '../../Ball'\nimport {useDatePickr} from '../../DatePicker/useDatePickr'\nimport {theme} from '../../utilStyles'\n\nconst focusFlatpickrInput = wrapper => {\n // flatpickr add two input in the DOM. One for the actual value (hidden) and one for the altInput\n const inputElement = wrapper.querySelector('input.flatpickr-input:not([type=\"hidden\"])')\n if (inputElement) {\n inputElement.focus()\n }\n}\n\nconst DatePicker = props => {\n const {immutable, id, options, value, onChange, parseDate, formatDate, intl} = props\n const [initialized, setInitialized] = useState(false)\n const flatpickr = useRef(null)\n const wrapper = useRef(null)\n const locale = intl.locale\n const msg = id => intl.formatMessage({id})\n\n const fontFamily = theme.fontFamily('regular')(props)\n\n const handleOnChange = val => {\n if (val) {\n onChange([val])\n }\n }\n\n const flatpickrOptions = {\n altInput: true,\n altInputClass: '',\n clickOpens: !immutable,\n ...(options ? options.flatpickrOptions : {})\n }\n const initializeFlatPickr = useDatePickr(wrapper,\n {value, onChange: handleOnChange, fontFamily, locale, flatpickrOptions})\n\n const init = () => {\n flatpickr.current = initializeFlatPickr()\n\n flatpickr.current.calendarContainer.classList.add('tocco-ui-theme')\n flatpickr.current.calendarContainer.addEventListener('keydown', handleConfirmKey)\n setInitialized(true)\n }\n\n const altInput = flatpickr.current?.altInput?.value || ''\n\n const handleOnBlur = () => {\n const parsed = parseDate(flatpickr.current.altInput.value)\n flatpickr.current.setDate(parsed, true)\n }\n\n const focusInput = () => {\n if (!initialized) {\n init()\n\n /**\n * Workaround:\n * To be sure that the initialized state has been updated\n * before we change the focus we delay this to the next tick.\n */\n setTimeout(() => {\n focusFlatpickrInput(wrapper.current)\n })\n } else {\n focusFlatpickrInput(wrapper.current)\n }\n }\n\n const handleConfirmKey = e => {\n if ((!e.target.classList.contains('flatpickr-hour') && e.key === 'Tab' && !e.shiftKey) || e.key === 'Enter') {\n handleOnBlur()\n setTimeout(() => {\n flatpickr.current.close()\n })\n }\n if (e.key === 'Enter') {\n e.preventDefault()\n e.stopPropagation()\n }\n }\n\n const hasValue = value && value.length > 0 && value.every(v => v)\n\n return <>\n <StyledDatePickerOuterWrapper\n immutable={immutable}\n id={id}\n tabIndex=\"-1\"\n onFocus={() => {\n focusInput()\n \n if (flatpickr.current) {\n flatpickr.current.open()\n }\n }}\n onKeyDown={handleConfirmKey}\n >\n <StyledDatePickerWrapper\n data-wrap\n onBlur={handleOnBlur}\n immutable={immutable}\n ref={wrapper}\n >\n <StyledDatePickerInput\n {...immutable ? {disabled: 'disabled'} : {}}\n type=\"hidden\"\n data-input\n immutable={immutable}\n {...(options ? {placeholder: options.placeholderText} : {})}\n />\n {!initialized && (\n <StyledDatePickerValue tabIndex={0}>\n {hasValue ? formatDate(value[0]) : ''}\n </StyledDatePickerValue>\n )}\n <StyledDatePickerInput\n disabled\n immutable={immutable}\n value={altInput}\n />\n {!immutable && hasValue && <Ball\n icon=\"times\"\n tabIndex={-1}\n aria-label={msg('client.component.dateAbstract.clearDateLabel')}\n onMouseDown={e => {\n e.preventDefault()\n onChange(null)\n }}/>}\n </StyledDatePickerWrapper>\n </StyledDatePickerOuterWrapper>\n </>\n}\n\nDatePicker.propTypes = {\n id: PropTypes.string,\n intl: PropTypes.object.isRequired,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.arrayOf(PropTypes.string),\n options: PropTypes.shape({\n placeholderText: PropTypes.string,\n flatpickrOptions: PropTypes.object\n }),\n parseDate: PropTypes.func,\n formatDate: PropTypes.func,\n immutable: PropTypes.bool,\n initialized: PropTypes.func,\n events: PropTypes.shape({\n onFocus: PropTypes.func\n })\n}\n\nexport default withTheme(injectIntl(DatePicker))\n","import PropTypes from 'prop-types'\nimport React from 'react'\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome'\nimport {faCircleNotch} from '@fortawesome/pro-solid-svg-icons'\n\n/**\n * Spinner that indicates a loading process\n */\nconst LoadingSpinner = ({size, style}) => (\n <FontAwesomeIcon\n {...style}\n style={{fontSize: size}}\n spin\n icon={faCircleNotch}\n />\n)\n\nLoadingSpinner.propTypes = {\n /**\n * Specify width and height.\n */\n size: PropTypes.string,\n /**\n * css properties object. color can be used to set the color of the spinner\n */\n style: PropTypes.object\n}\n\nexport default LoadingSpinner\n","'use strict';\n\nexports.__esModule = true;\nvar canUseDOM = exports.canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nvar addEventListener = exports.addEventListener = function addEventListener(node, event, listener) {\n return node.addEventListener ? node.addEventListener(event, listener, false) : node.attachEvent('on' + event, listener);\n};\n\nvar removeEventListener = exports.removeEventListener = function removeEventListener(node, event, listener) {\n return node.removeEventListener ? node.removeEventListener(event, listener, false) : node.detachEvent('on' + event, listener);\n};\n\nvar getConfirmation = exports.getConfirmation = function getConfirmation(message, callback) {\n return callback(window.confirm(message));\n}; // eslint-disable-line no-alert\n\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\nvar supportsHistory = exports.supportsHistory = function supportsHistory() {\n var ua = window.navigator.userAgent;\n\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n\n return window.history && 'pushState' in window.history;\n};\n\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\nvar supportsPopStateOnHashChange = exports.supportsPopStateOnHashChange = function supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n};\n\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\nvar supportsGoWithoutReloadUsingHash = exports.supportsGoWithoutReloadUsingHash = function supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n};\n\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\nvar isExtraneousPopstateEvent = exports.isExtraneousPopstateEvent = function isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n};","'use strict';\n\nexports.__esModule = true;\nexports.locationsAreEqual = exports.createLocation = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _resolvePathname = require('resolve-pathname');\n\nvar _resolvePathname2 = _interopRequireDefault(_resolvePathname);\n\nvar _valueEqual = require('value-equal');\n\nvar _valueEqual2 = _interopRequireDefault(_valueEqual);\n\nvar _PathUtils = require('./PathUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createLocation = exports.createLocation = function createLocation(path, state, key, currentLocation) {\n var location = void 0;\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = (0, _PathUtils.parsePath)(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = (0, _resolvePathname2.default)(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n};\n\nvar locationsAreEqual = exports.locationsAreEqual = function locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && (0, _valueEqual2.default)(a.state, b.state);\n};","'use strict';\n\nexports.__esModule = true;\nvar addLeadingSlash = exports.addLeadingSlash = function addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n};\n\nvar stripLeadingSlash = exports.stripLeadingSlash = function stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n};\n\nvar hasBasename = exports.hasBasename = function hasBasename(path, prefix) {\n return new RegExp('^' + prefix + '(\\\\/|\\\\?|#|$)', 'i').test(path);\n};\n\nvar stripBasename = exports.stripBasename = function stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n};\n\nvar stripTrailingSlash = exports.stripTrailingSlash = function stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n};\n\nvar parsePath = exports.parsePath = function parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n\n var hashIndex = pathname.indexOf('#');\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n};\n\nvar createPath = exports.createPath = function createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n\n\n var path = pathname || '/';\n\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : '?' + search;\n\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : '#' + hash;\n\n return path;\n};","'use strict';\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _invariant = require('invariant');\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _PathUtils = require('./PathUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nvar _DOMUtils = require('./DOMUtils');\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HashChangeEvent = 'hashchange';\n\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + (0, _PathUtils.stripLeadingSlash)(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: _PathUtils.stripLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n },\n slash: {\n encodePath: _PathUtils.addLeadingSlash,\n decodePath: _PathUtils.addLeadingSlash\n }\n};\n\nvar getHashPath = function getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n};\n\nvar pushHashPath = function pushHashPath(path) {\n return window.location.hash = path;\n};\n\nvar replaceHashPath = function replaceHashPath(path) {\n var hashIndex = window.location.href.indexOf('#');\n\n window.location.replace(window.location.href.slice(0, hashIndex >= 0 ? hashIndex : 0) + '#' + path);\n};\n\nvar createHashHistory = function createHashHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n (0, _invariant2.default)(_DOMUtils.canUseDOM, 'Hash history needs a DOM');\n\n var globalHistory = window.history;\n var canGoWithoutReload = (0, _DOMUtils.supportsGoWithoutReloadUsingHash)();\n\n var _props$getUserConfirm = props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === undefined ? _DOMUtils.getConfirmation : _props$getUserConfirm,\n _props$hashType = props.hashType,\n hashType = _props$hashType === undefined ? 'slash' : _props$hashType;\n\n var basename = props.basename ? (0, _PathUtils.stripTrailingSlash)((0, _PathUtils.addLeadingSlash)(props.basename)) : '';\n\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n\n var getDOMLocation = function getDOMLocation() {\n var path = decodePath(getHashPath());\n\n (0, _warning2.default)(!basename || (0, _PathUtils.hasBasename)(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".');\n\n if (basename) path = (0, _PathUtils.stripBasename)(path, basename);\n\n return (0, _LocationUtils.createLocation)(path);\n };\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var forceNextPop = false;\n var ignorePath = null;\n\n var handleHashChange = function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n\n if (!forceNextPop && (0, _LocationUtils.locationsAreEqual)(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === (0, _PathUtils.createPath)(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n\n handlePop(location);\n }\n };\n\n var handlePop = function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({ action: action, location: location });\n } else {\n revertPop(location);\n }\n });\n }\n };\n\n var revertPop = function revertPop(fromLocation) {\n var toLocation = history.location;\n\n // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(toLocation));\n\n if (toIndex === -1) toIndex = 0;\n\n var fromIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(fromLocation));\n\n if (fromIndex === -1) fromIndex = 0;\n\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n };\n\n // Ensure the hash is encoded properly before doing anything else.\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) replaceHashPath(encodedPath);\n\n var initialLocation = getDOMLocation();\n var allPaths = [(0, _PathUtils.createPath)(initialLocation)];\n\n // Public interface\n\n var createHref = function createHref(location) {\n return '#' + encodePath(basename + (0, _PathUtils.createPath)(location));\n };\n\n var push = function push(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot push state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n\n var prevIndex = allPaths.lastIndexOf((0, _PathUtils.createPath)(history.location));\n var nextPaths = allPaths.slice(0, prevIndex === -1 ? 0 : prevIndex + 1);\n\n nextPaths.push(path);\n allPaths = nextPaths;\n\n setState({ action: action, location: location });\n } else {\n (0, _warning2.default)(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack');\n\n setState();\n }\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(state === undefined, 'Hash history cannot replace state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, undefined, undefined, history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var path = (0, _PathUtils.createPath)(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf((0, _PathUtils.createPath)(history.location));\n\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n (0, _warning2.default)(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser');\n\n globalHistory.go(n);\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var listenerCount = 0;\n\n var checkDOMListeners = function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1) {\n (0, _DOMUtils.addEventListener)(window, HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n (0, _DOMUtils.removeEventListener)(window, HashChangeEvent, handleHashChange);\n }\n };\n\n var isBlocked = false;\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n };\n\n var listen = function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n };\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createHashHistory;","'use strict';\n\nexports.__esModule = true;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nvar _PathUtils = require('./PathUtils');\n\nvar _LocationUtils = require('./LocationUtils');\n\nvar _createTransitionManager = require('./createTransitionManager');\n\nvar _createTransitionManager2 = _interopRequireDefault(_createTransitionManager);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar clamp = function clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n};\n\n/**\n * Creates a history object that stores locations in memory.\n */\nvar createMemoryHistory = function createMemoryHistory() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var getUserConfirmation = props.getUserConfirmation,\n _props$initialEntries = props.initialEntries,\n initialEntries = _props$initialEntries === undefined ? ['/'] : _props$initialEntries,\n _props$initialIndex = props.initialIndex,\n initialIndex = _props$initialIndex === undefined ? 0 : _props$initialIndex,\n _props$keyLength = props.keyLength,\n keyLength = _props$keyLength === undefined ? 6 : _props$keyLength;\n\n\n var transitionManager = (0, _createTransitionManager2.default)();\n\n var setState = function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n\n transitionManager.notifyListeners(history.location, history.action);\n };\n\n var createKey = function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n };\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? (0, _LocationUtils.createLocation)(entry, undefined, createKey()) : (0, _LocationUtils.createLocation)(entry, undefined, entry.key || createKey());\n });\n\n // Public interface\n\n var createHref = _PathUtils.createPath;\n\n var push = function push(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'PUSH';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n\n var nextEntries = history.entries.slice(0);\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n };\n\n var replace = function replace(path, state) {\n (0, _warning2.default)(!((typeof path === 'undefined' ? 'undefined' : _typeof(path)) === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored');\n\n var action = 'REPLACE';\n var location = (0, _LocationUtils.createLocation)(path, state, createKey(), history.location);\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n\n history.entries[history.index] = location;\n\n setState({ action: action, location: location });\n });\n };\n\n var go = function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n\n var action = 'POP';\n var location = history.entries[nextIndex];\n\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n };\n\n var goBack = function goBack() {\n return go(-1);\n };\n\n var goForward = function goForward() {\n return go(1);\n };\n\n var canGo = function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n };\n\n var block = function block() {\n var prompt = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n return transitionManager.setPrompt(prompt);\n };\n\n var listen = function listen(listener) {\n return transitionManager.appendListener(listener);\n };\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n\n return history;\n};\n\nexports.default = createMemoryHistory;","'use strict';\n\nexports.__esModule = true;\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar createTransitionManager = function createTransitionManager() {\n var prompt = null;\n\n var setPrompt = function setPrompt(nextPrompt) {\n (0, _warning2.default)(prompt == null, 'A history supports only one prompt at a time');\n\n prompt = nextPrompt;\n\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n };\n\n var confirmTransitionTo = function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n (0, _warning2.default)(false, 'A history needs a getUserConfirmation function in order to use a prompt message');\n\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n };\n\n var listeners = [];\n\n var appendListener = function appendListener(fn) {\n var isActive = true;\n\n var listener = function listener() {\n if (isActive) fn.apply(undefined, arguments);\n };\n\n listeners.push(listener);\n\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n };\n\n var notifyListeners = function notifyListeners() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(undefined, args);\n });\n };\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n};\n\nexports.default = createTransitionManager;"],"sourceRoot":""}
|