pages_core 3.12.0 → 3.12.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -1
  3. data/app/assets/builds/fonts/661557ef.ttf +0 -0
  4. data/app/assets/builds/fonts/a18fc2d2.woff2 +0 -0
  5. data/app/assets/builds/fonts/b2c7b78f.woff2 +0 -0
  6. data/app/assets/builds/fonts/ceddc204.ttf +0 -0
  7. data/app/assets/builds/pages_core/admin-dist.js +2 -1
  8. data/app/assets/builds/pages_core/admin.css +9233 -0
  9. data/app/assets/images/pages/admin/angle-down-solid.svg +1 -0
  10. data/app/assets/images/pages/admin/icon.svg +1 -0
  11. data/app/assets/stylesheets/pages_core/admin/components/archive.css +6 -0
  12. data/app/assets/stylesheets/{pages/admin/components/attachments.scss → pages_core/admin/components/attachments.css} +35 -28
  13. data/app/assets/stylesheets/{pages/admin.scss → pages_core/admin/components/base.css} +125 -123
  14. data/app/assets/stylesheets/pages_core/admin/components/forms.css +223 -0
  15. data/app/assets/stylesheets/{pages/admin/components/header.scss → pages_core/admin/components/header.css} +76 -46
  16. data/app/assets/stylesheets/{pages/admin/components/image_editor.scss → pages_core/admin/components/image_editor.css} +42 -31
  17. data/app/assets/stylesheets/{pages/admin/components/image_grid.scss → pages_core/admin/components/image_grid.css} +76 -64
  18. data/app/assets/stylesheets/{pages/admin/components/image_uploader.scss → pages_core/admin/components/image_uploader.css} +12 -12
  19. data/app/assets/stylesheets/{pages/admin/components/layout.scss → pages_core/admin/components/layout.css} +13 -9
  20. data/app/assets/stylesheets/pages_core/admin/components/links.css +40 -0
  21. data/app/assets/stylesheets/pages_core/admin/components/list_table.css +66 -0
  22. data/app/assets/stylesheets/{pages/admin/components/login.scss → pages_core/admin/components/login.css} +6 -5
  23. data/app/assets/stylesheets/{pages/admin/components/modal.scss → pages_core/admin/components/modal.css} +10 -12
  24. data/app/assets/stylesheets/{pages/admin/components/page_tree.scss → pages_core/admin/components/page_tree.css} +54 -55
  25. data/app/assets/stylesheets/{pages/admin/components/pagination.scss → pages_core/admin/components/pagination.css} +17 -17
  26. data/app/assets/stylesheets/{pages/admin/components/sidebar.scss → pages_core/admin/components/sidebar.css} +8 -7
  27. data/app/assets/stylesheets/{pages/admin/components/tag_editor.scss → pages_core/admin/components/tag_editor.css} +10 -15
  28. data/app/assets/stylesheets/{pages/admin/components/textarea.scss → pages_core/admin/components/textarea.css} +1 -1
  29. data/app/assets/stylesheets/{pages/admin/components/toast.scss → pages_core/admin/components/toast.css} +5 -3
  30. data/app/assets/stylesheets/{pages/admin/components/toolbar.scss → pages_core/admin/components/toolbar.css} +56 -29
  31. data/app/assets/stylesheets/{pages/admin/controllers/pages.scss → pages_core/admin/controllers/pages.css} +63 -52
  32. data/app/assets/stylesheets/pages_core/admin/controllers/users.css +3 -0
  33. data/app/assets/stylesheets/pages_core/admin/vars.css +34 -0
  34. data/app/assets/stylesheets/pages_core/admin.postcss.css +9 -0
  35. data/app/formatters/pages_core/image_embedder.rb +5 -27
  36. data/app/helpers/admin/calendars_helper.rb +8 -0
  37. data/app/helpers/admin/news_helper.rb +13 -0
  38. data/app/helpers/pages_core/admin/admin_helper.rb +11 -54
  39. data/app/helpers/pages_core/admin/deprecated_admin_helper.rb +40 -0
  40. data/app/helpers/pages_core/images_helper.rb +37 -0
  41. data/app/javascript/components/Attachments/Attachment.jsx +2 -2
  42. data/app/javascript/components/EditableImage.jsx +1 -1
  43. data/app/javascript/components/ImageCropper/Toolbar.jsx +3 -3
  44. data/app/javascript/components/PageTreeNode.jsx +9 -9
  45. data/app/javascript/components/RichTextToolbarButton.jsx +1 -1
  46. data/app/mailers/admin_mailer.rb +1 -0
  47. data/app/models/invite.rb +8 -0
  48. data/app/views/admin/calendars/_sidebar.html.erb +47 -0
  49. data/app/views/admin/calendars/show.html.erb +15 -53
  50. data/app/views/admin/invites/new.html.erb +2 -8
  51. data/app/views/admin/invites/show.html.erb +2 -4
  52. data/app/views/admin/news/_sidebar.html.erb +48 -0
  53. data/app/views/admin/news/index.html.erb +21 -56
  54. data/app/views/admin/pages/deleted.html.erb +10 -8
  55. data/app/views/admin/pages/edit.html.erb +20 -11
  56. data/app/views/admin/pages/index.html.erb +7 -8
  57. data/app/views/admin/pages/new.html.erb +10 -14
  58. data/app/views/admin/password_resets/show.html.erb +3 -5
  59. data/app/views/admin/users/deactivated.html.erb +6 -7
  60. data/app/views/admin/users/edit.html.erb +7 -9
  61. data/app/views/admin/users/index.html.erb +3 -6
  62. data/app/views/admin/users/login.html.erb +4 -5
  63. data/app/views/admin/users/new.html.erb +2 -4
  64. data/app/views/admin/users/new_password.html.erb +4 -5
  65. data/app/views/admin/users/show.html.erb +11 -9
  66. data/app/views/errors/401.html.erb +2 -1
  67. data/app/views/errors/403.html.erb +2 -1
  68. data/app/views/errors/404.html.erb +1 -3
  69. data/app/views/errors/405.html.erb +2 -1
  70. data/app/views/errors/422.html.erb +2 -1
  71. data/app/views/errors/500.html.erb +2 -3
  72. data/app/views/layouts/admin/_header.html.erb +1 -2
  73. data/app/views/layouts/admin/_page_header.html.erb +4 -4
  74. data/app/views/layouts/admin.html.erb +3 -3
  75. data/app/views/layouts/errors.html.erb +127 -4
  76. data/lib/pages_core/engine.rb +4 -3
  77. data/lib/pages_core.rb +0 -1
  78. metadata +39 -196
  79. data/app/assets/images/pages/admin/icon.png +0 -0
  80. data/app/assets/images/pages/admin/image-editor-bg.png +0 -0
  81. data/app/assets/images/pages/admin/list-table-pin-blue.gif +0 -0
  82. data/app/assets/images/pages/admin/list-table-pin-disabled.gif +0 -0
  83. data/app/assets/images/pages/admin/list-table-pin-green.gif +0 -0
  84. data/app/assets/images/pages/admin/list-table-pin-red.gif +0 -0
  85. data/app/assets/images/pages/admin/list-table-pin-yellow.gif +0 -0
  86. data/app/assets/images/pages/admin/loading-modal.gif +0 -0
  87. data/app/assets/images/pages/feed-icon-14x14.png +0 -0
  88. data/app/assets/stylesheets/pages/admin/components/archive.scss +0 -6
  89. data/app/assets/stylesheets/pages/admin/components/buttons.scss +0 -23
  90. data/app/assets/stylesheets/pages/admin/components/forms.scss +0 -169
  91. data/app/assets/stylesheets/pages/admin/components/links.scss +0 -43
  92. data/app/assets/stylesheets/pages/admin/components/list_table.scss +0 -61
  93. data/app/assets/stylesheets/pages/admin/controllers/users.scss +0 -3
  94. data/app/assets/stylesheets/pages/admin/mixins/breakpoints.scss +0 -21
  95. data/app/assets/stylesheets/pages/admin/mixins/clearfix.scss +0 -7
  96. data/app/assets/stylesheets/pages/admin/mixins/gradients.scss +0 -7
  97. data/app/assets/stylesheets/pages/admin/vars.scss +0 -30
  98. data/app/assets/stylesheets/pages/errors.css +0 -128
  99. data/vendor/assets/stylesheets/ReactCrop.css +0 -167
  100. /data/app/assets/stylesheets/{pages/admin/components/tabs.scss → pages_core/admin/components/tabs.css} +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5dc79b680d268a1d40e677f2b077ffeb7d855fd1520f039c47da6391bbc68c8c
4
- data.tar.gz: f8920b6bf1479146243484b98188cd7cd6bb9f1e631db1ecf3289f49a28db9cc
3
+ metadata.gz: 369b6f2c539db8481e8c6a6d194da1219a4948d9acd71bf8b4e7308b38005285
4
+ data.tar.gz: 56a0984ee7c47456527485970140b86dad405b94bfca2316461573666402c114
5
5
  SHA512:
6
- metadata.gz: de5a0ecb454522d4fc736a1f88ed021a08ce633b0390165d789b1be62b07d75043d4a9eb8a5cdf682531b6c83fb42588bec0345e1b1efb60f39916e19418e4b7
7
- data.tar.gz: 6e787316e91ae8736bdc74bf07a216b99fa08af1be3554788397966719a6c3bca1e2d3ac4eab3230821d89775b3dd69335fcff49a4beaf5f7921de415e951076
6
+ metadata.gz: 1a5a49a9214b496bbd1f79d85431f7e696e5969fe1206764ce73d12ba971b7a6bb2100cb6474fa63d57e674fec0f4c6c82490009966f7a977af5bba9bd1ca337
7
+ data.tar.gz: 62f2c10460ac4ee4da583c3f6395b6f4224bb16b734b93e86e843a45507dae836b303ef9dc7785fd3399db75f5b1c5dc89d2587cfb9f971d45d7e893a32a4638
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.12.0
1
+ 3.12.1
@@ -13,7 +13,7 @@ Add a <Suspense fallback=...> component higher in the tree to provide a loading
13
13
 
14
14
  %o
15
15
 
16
- %o`,n,e,r),(i=window.onerror)===null||i===void 0||i.call(window,n,"",0,0,e)}logFormattedMessage(e,n,r={}){r=Object.assign({application:this},r),this.logger.groupCollapsed(`${e} #${n}`),this.logger.log("details:",Object.assign({},r)),this.logger.groupEnd()}};function iv(){return new Promise(t=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>t()):t()})}function ov(t){return Os(t,"classes").reduce((n,r)=>Object.assign(n,av(r)),{})}function av(t){return{[`${t}Class`]:{get(){let{classes:e}=this;if(e.has(t))return e.get(t);{let n=e.getAttributeName(t);throw new Error(`Missing attribute "${n}"`)}}},[`${t}Classes`]:{get(){return this.classes.getAll(t)}},[`has${vo(t)}Class`]:{get(){return this.classes.has(t)}}}}function sv(t){return Os(t,"targets").reduce((n,r)=>Object.assign(n,lv(r)),{})}function lv(t){return{[`${t}Target`]:{get(){let e=this.targets.find(t);if(e)return e;throw new Error(`Missing target element "${t}" for "${this.identifier}" controller`)}},[`${t}Targets`]:{get(){return this.targets.findAll(t)}},[`has${vo(t)}Target`]:{get(){return this.targets.has(t)}}}}function uv(t){let e=Kg(t,"values"),n={valueDescriptorMap:{get(){return e.reduce((r,i)=>{let o=Gc(i,this.identifier),a=this.data.getAttributeNameForKey(o.key);return Object.assign(r,{[a]:o})},{})}}};return e.reduce((r,i)=>Object.assign(r,cv(i)),n)}function cv(t,e){let n=Gc(t,e),{key:r,name:i,reader:o,writer:a}=n;return{[i]:{get(){let s=this.data.get(r);return s!==null?o(s):n.defaultValue},set(s){s===void 0?this.data.delete(r):this.data.set(r,a(s))}},[`has${vo(i)}`]:{get(){return this.data.has(r)||n.hasCustomDefaultValue}}}}function Gc([t,e],n){return hv({controller:n,token:t,typeDefinition:e})}function Ns(t){switch(t){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Hr(t){switch(typeof t){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(t))return"array";if(Object.prototype.toString.call(t)==="[object Object]")return"object"}function dv(t){let e=Ns(t.typeObject.type);if(!e)return;let n=Hr(t.typeObject.default);if(e!==n){let r=t.controller?`${t.controller}.${t.token}`:t.token;throw new Error(`The specified default value for the Stimulus Value "${r}" must match the defined type "${e}". The provided default value of "${t.typeObject.default}" is of type "${n}".`)}return e}function fv(t){let e=dv({controller:t.controller,token:t.token,typeObject:t.typeDefinition}),n=Hr(t.typeDefinition),r=Ns(t.typeDefinition),i=e||n||r;if(i)return i;let o=t.controller?`${t.controller}.${t.typeDefinition}`:t.token;throw new Error(`Unknown value type "${o}" for "${t.token}" value`)}function pv(t){let e=Ns(t);if(e)return mv[e];let n=t.default;return n!==void 0?n:t}function hv(t){let e=`${Pc(t.token)}-value`,n=fv(t);return{type:n,key:e,name:Dc(e),get defaultValue(){return pv(t.typeDefinition)},get hasCustomDefaultValue(){return Hr(t.typeDefinition)!==void 0},reader:gv[n],writer:Tc[n]||Tc.default}}var mv={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},gv={array(t){let e=JSON.parse(t);if(!Array.isArray(e))throw new TypeError(`expected value of type "array" but instead got value "${t}" of type "${Hr(e)}"`);return e},boolean(t){return!(t=="0"||String(t).toLowerCase()=="false")},number(t){return Number(t)},object(t){let e=JSON.parse(t);if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError(`expected value of type "object" but instead got value "${t}" of type "${Hr(e)}"`);return e},string(t){return t}},Tc={default:vv,array:Oc,object:Oc};function Oc(t){return JSON.stringify(t)}function vv(t){return`${t}`}var Ze=class{constructor(e){this.context=e}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(e,{target:n=this.element,detail:r={},prefix:i=this.identifier,bubbles:o=!0,cancelable:a=!0}={}){let s=i?`${i}:${e}`:e,l=new CustomEvent(s,{detail:r,bubbles:o,cancelable:a});return n.dispatchEvent(l),l}};Ze.blessings=[ov,sv,uv];Ze.targets=[];Ze.values={};var Jo={};_g(Jo,{Attachments:()=>Qn,DateRangeSelect:()=>yn,EditableImage:()=>Bt,FileUploadButton:()=>ct,ImageCropper:()=>rr,ImageGrid:()=>sr,ImageUploader:()=>Fo,Modal:()=>Ro,PageDates:()=>ii,PageFiles:()=>oi,PageImages:()=>ai,PageTree:()=>li,RichTextArea:()=>Cn,TagEditor:()=>Go,Toast:()=>di});var $e=D(H()),Xn=D(J());var Se=D(H()),tt=D(J());function Yr(){return document.queryCommandSupported&&document.queryCommandSupported("copy")}function vt(t){let e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}var ie=D(H()),Qr=D(J());function et(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var bd=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),Is=function(){return Math.random().toString(36).substring(7).split("").join(".")},kd={INIT:"@@redux/INIT"+Is(),REPLACE:"@@redux/REPLACE"+Is(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Is()}};function _v(t){if(typeof t!="object"||t===null)return!1;for(var e=t;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Xr(t,e,n){var r;if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(et(0));if(typeof e=="function"&&typeof n>"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(et(1));return n(Xr)(t,e)}if(typeof t!="function")throw new Error(et(2));var i=t,o=e,a=[],s=a,l=!1;function u(){s===a&&(s=a.slice())}function p(){if(l)throw new Error(et(3));return o}function m(y){if(typeof y!="function")throw new Error(et(4));if(l)throw new Error(et(5));var f=!0;return u(),s.push(y),function(){if(!!f){if(l)throw new Error(et(6));f=!1,u();var c=s.indexOf(y);s.splice(c,1),a=null}}}function h(y){if(!_v(y))throw new Error(et(7));if(typeof y.type>"u")throw new Error(et(8));if(l)throw new Error(et(9));try{l=!0,o=i(o,y)}finally{l=!1}for(var f=a=s,d=0;d<f.length;d++){var c=f[d];c()}return y}function E(y){if(typeof y!="function")throw new Error(et(10));i=y,h({type:kd.REPLACE})}function v(){var y,f=m;return y={subscribe:function(c){if(typeof c!="object"||c===null)throw new Error(et(11));function g(){c.next&&c.next(p())}g();var w=f(g);return{unsubscribe:w}}},y[bd]=function(){return this},y}return h({type:kd.INIT}),r={dispatch:h,subscribe:m,getState:p,replaceReducer:E},r[bd]=v,r}var je=Xr((t={},e)=>{switch(e.type){case"OPEN":return ne(j({},t),{component:e.payload});case"CLOSE":return ne(j({},t),{component:null});default:return t}});var Fe=Xr((t=[],e)=>{switch(e.type){case"ERROR":return[...t,{message:e.message,type:"error"}];case"NOTICE":return[...t,{message:e.message,type:"notice"}];case"NEXT":return t.slice(1);default:return t}});function Td(){return document.querySelector("[name=csrf-token]").content}function Od(){return{method:"POST",headers:{"Content-Type":"application/json; charset=utf-8","X-CSRF-Token":Td()}}}async function Nd(t,e){let n=ne(j({},Od()),{method:"POST"});return e&&(n.body=JSON.stringify(e)),(await fetch(t,n)).json()}async function Wn(t,e){let n=ne(j({},Od()),{method:"PUT"});return e&&(n.body=JSON.stringify(e)),(await fetch(t,n)).json()}async function Hn(t,e){return(await fetch(t,{method:"POST",body:e,headers:{"X-CSRF-Token":Td()}})).json()}function So(t){let{attachment:e,locales:n}=t,[r,i]=(0,ie.useState)(t.locale),[o,a]=(0,ie.useState)({name:e.name||{},description:e.description||{}}),s=m=>h=>{a(ne(j({},o),{[m]:ne(j({},o[m]),{[r]:h.target.value})}))},l=m=>{m.preventDefault(),vt(`[attachment:${e.id}]`),Fe.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},u=m=>{m.preventDefault(),m.stopPropagation();let h=j({},o);Wn(`/admin/attachments/${e.id}`,{attachment:h}),t.onUpdate&&t.onUpdate(h),je.dispatch({type:"CLOSE"})},p=n&&n[r]&&n[r].dir||"ltr";return ie.default.createElement("div",{className:"attachment-editor"},ie.default.createElement("form",null,t.locales&&Object.keys(n).length>1&&ie.default.createElement("div",{className:"field"},ie.default.createElement("label",null,"Locale"),ie.default.createElement("select",{name:"locale",value:r,onChange:m=>i(m.target.value)},Object.keys(n).map(m=>ie.default.createElement("option",{key:`locale-${m}`,value:m},n[m].name)))),ie.default.createElement("div",{className:"field"},ie.default.createElement("label",null,"Name"),ie.default.createElement("input",{type:"text",className:"name",lang:r,dir:p,value:o.name[r]||"",onChange:s("name")})),ie.default.createElement("div",{className:"field"},ie.default.createElement("label",null,"Description"),ie.default.createElement("textarea",{className:"description",value:o.description[r]||"",lang:r,dir:p,onChange:s("description")})),ie.default.createElement("div",{className:"field embed-code"},ie.default.createElement("label",null,"Embed code"),ie.default.createElement("input",{type:"text",value:`[attachment:${e.id}]`,disabled:!0}),Yr()&&ie.default.createElement("button",{onClick:l},"Copy")),ie.default.createElement("div",{className:"field"},ie.default.createElement("label",null,"File"),ie.default.createElement("a",{href:e.url,rel:"noreferrer",target:"_blank"},e.filename)),ie.default.createElement("div",{className:"buttons"},ie.default.createElement("button",{onClick:u},"Save"),ie.default.createElement("button",{onClick:()=>je.dispatch({type:"CLOSE"})},"Cancel"))))}So.propTypes={attachment:Qr.default.object,locale:Qr.default.string,locales:Qr.default.object,onUpdate:Qr.default.func};var Rt=D(H()),uf=D(lf());function uy(t){return t.ref.current?t.ref.current.getBoundingClientRect():null}function cy(t,e){if(t&&t.ref&&t.ref.current){let n=t.ref.current.style.display;t.ref.current.style.display="none";let r=e();return t.ref.current.style.display=n,r}else return e()}function dy(t,e){switch(e.type){case"append":return[...t,...e.payload];case"prepend":return[...e.payload,...t];case"insertFiles":var n=t.indexOf("Files");return n===-1||!e.payload?t:[...t.slice(0,n),...e.payload,...t.slice(n+1)];case"update":return t.map(r=>r.handle===e.payload.handle?e.payload:r);case"updatePositions":return cy(e.payload,()=>t.map(r=>ne(j({},r),{rect:uy(r)})));case"remove":return t.filter(r=>r.handle!==e.payload.handle);case"replace":return e.payload;case"reorder":return e.payload;default:return t}}function Kn(t){return{record:t,rect:null,ref:Rt.default.createRef(),handle:(0,uf.default)("draggable")}}function vn(t){let e=(0,Rt.useRef)(),[n,r]=(0,Rt.useReducer)(dy,[],()=>t.map(i=>Kn(i)));return(0,Rt.useEffect)(()=>{r({type:"updatePositions"})},[]),{ref:e,draggables:n,dispatch:r}}var bo=D(H());function fy(t){if(!t.dataTransfer||!t.dataTransfer.types)return!1;let e=t.dataTransfer.types;for(var n=0;n<e.length;n++)if(e[n]==="Files"||e[n]==="application/x-moz-file")return!0;return!1}function py(t){var e=[];if(t.items)for(let n=0;n<t.items.length;n++)t.items[n].kind=="file"&&e.push(t.items[n].getAsFile());else for(let n=0;n<t.files.length;n++)e.push(t.files[n]);return e}function cf(t){var e,n;return t.type=="touchmove"?(e=t.touches[0].clientX,n=t.touches[0].clientY):(e=t.clientX,n=t.clientY),{x:e,y:n}}function qn(t,e){let[n,r]=(0,bo.useState)({dragging:!1,x:null,y:null}),i=u=>{t.forEach(p=>{p.dispatch({type:"updatePositions",payload:u})})},o=(u,p)=>{i(p),r(j({dragging:p},cf(u)))},a=u=>{n.dragging?(u.stopPropagation(),u.preventDefault(),r(j(j({},n),cf(u)))):fy(u)&&o(u,"Files")},s=u=>{if(n.dragging){let m=n;var p=[];u.preventDefault(),u.stopPropagation(),n.dragging=="Files"&&(p=py(u.dataTransfer)),r({dragging:!1,x:null,y:null}),e(m,p),i()}},l=u=>{n.dragging==="Files"&&(u.preventDefault(),u.stopPropagation(),r({dragging:!1,x:null,y:null}))};return(0,bo.useEffect)(()=>(window.addEventListener("mousemove",a),window.addEventListener("touchmove",a),window.addEventListener("mouseup",s),window.addEventListener("touchend",s),window.addEventListener("mouseout",l),function(){window.removeEventListener("mousemove",a),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",s),window.removeEventListener("touchend",s),window.removeEventListener("mouseout",l)})),[n,o,{onDragOver:a,onDrop:s}]}var ko=D(H());function Yn(t,e){let n=(0,ko.useRef)(),r=i=>{i.preventDefault(),i.stopPropagation(),e(i,t)};return(0,ko.useEffect)(()=>{t.ref.current=n.current},[]),{ref:n,onDragStart:r,draggable:!0}}function df(t,e){let{x:n,y:r}=t;var i;if(e.rect)i=e.rect;else if(e.current)i=e.current.getBoundingClientRect();else return!1;return n>=i.left&&n<=i.right&&r>=i.top&&r<=i.bottom}function Zr(t,e){let{draggables:n,ref:r}=t,{dragging:i}=e;if(!i)return n;let o=n.filter(a=>a.handle!==i.handle);if(df(e,r)){let a=o.filter(s=>df(e,s))[0];if(a){let s=o.indexOf(a);o=[...o.slice(0,s),i,...o.slice(s)]}else o=[...o,i]}return o}function Jr(t,e){let n=Zr(t,e);return e.dragging&&n.indexOf(e.dragging)===-1&&(e.y<t.ref.current.getBoundingClientRect().top?n=[e.dragging,...n]:n.push(e.dragging)),n}function To(t){let{attributeName:e,draggable:n,locales:r,locale:i}=t,{record:o}=n,{attachment:a,uploading:s}=o,l=Yn(n,t.startDrag),u=d=>{d.preventDefault(),vt(`[attachment:${a.id}]`),Fe.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},p=d=>{d.preventDefault(),t.deleteRecord&&t.deleteRecord()},m=()=>a.description&&a.description[i]?a.description[i]:null,h=()=>a.name&&a.name[i]?a.name[i]:null,E=d=>{d.preventDefault(),je.dispatch({type:"OPEN",payload:Se.default.createElement(So,{attachment:a,locale:i,locales:r,onUpdate:t.onUpdate})})},v=["attachment"];t.placeholder&&v.push("placeholder"),o.uploading&&v.push("uploading");let y=s?"cloud-upload":"paperclip",f=r&&r[i]&&r[i].dir||"ltr";return Se.default.createElement("div",j({className:v.join(" ")},l),Se.default.createElement("input",{name:`${e}[id]`,type:"hidden",value:o.id||""}),Se.default.createElement("input",{name:`${e}[attachment_id]`,type:"hidden",value:a&&a.id||""}),Se.default.createElement("input",{name:`${e}[position]`,type:"hidden",value:t.position}),!s&&Se.default.createElement("div",{className:"actions"},Se.default.createElement("button",{onClick:E},"Edit"),t.showEmbed&&Se.default.createElement("button",{onClick:u},"Embed"),t.deleteRecord&&Se.default.createElement("button",{onClick:p},"Remove")),a&&Se.default.createElement("div",{className:"attachment-info"},Se.default.createElement("h3",null,Se.default.createElement("i",{className:`fa fa-${y} icon`}),h()||Se.default.createElement("em",null,"Untitled"),Se.default.createElement("br",null)),!s&&Se.default.createElement("a",{href:a.url,rel:"noreferrer",target:"_blank"},a.filename),!s&&m()&&Se.default.createElement("p",{dir:f},m())))}To.propTypes={locale:tt.default.string,locales:tt.default.object,draggable:tt.default.object,deleteRecord:tt.default.func,startDrag:tt.default.func,showEmbed:tt.default.bool,onUpdate:tt.default.func,attributeName:tt.default.string,placeholder:tt.default.bool,position:tt.default.number,ref:tt.default.object};var ff=D(H());function js(){return ff.default.createElement("div",{className:"attachment drop-placeholder",key:"file-placeholder"},"Upload files here")}var Ut=D(H()),ei=D(J());function ct(t){let e=(0,Ut.useRef)(),n=i=>{let o=i.target.files,a=[];for(var s=0;s<o.length;s++)a.push(o[s]);a.length>0&&t.callback(a)},r=i=>{i.preventDefault(),e.current.click()};return Ut.default.createElement("div",{className:"upload-button"},Ut.default.createElement("span",null,"Drag and drop ",t.type||"file",t.multiple&&"s"," here, or",t.multiline&&Ut.default.createElement("br",null),Ut.default.createElement("button",{onClick:r},"choose a file")),Ut.default.createElement("input",{type:"file",onChange:n,ref:e,style:{display:"none"},multiple:t.multiple||!1}))}ct.propTypes={callback:ei.default.func,type:ei.default.string,multiple:ei.default.bool,multiline:ei.default.bool};function hy(t){return t.replace(/\.[\w\d]+$/,"").replace(/_/g," ")}function Qn(t){let e=vn(t.records),n=t.locales&&t.locales.length>0?Object.keys(t.locales):[t.locale],[r,i]=(0,$e.useState)([]),o=c=>{let g={};n.forEach(O=>g[O]=c.name);let w=Kn({attachment:{filename:c.name,name:g},uploading:!0}),M=new FormData;return M.append("attachment[file]",c),n.forEach(O=>{M.append(`attachment[name][${O}]`,hy(c.name))}),Hn("/admin/attachments.json",M).then(O=>{e.dispatch({type:"update",payload:ne(j({},w),{record:{attachment:O,uploading:!1}})})}),w},a=c=>{e.dispatch({type:"append",payload:c.map(g=>o(g))})},s=(c,g)=>{e.dispatch({type:"reorder",payload:Jr(e,c)}),e.dispatch({type:"insertFiles",payload:g.map(w=>o(w))})},[l,u,p]=qn([e],s),m=c=>[...e.draggables.map(g=>g.record),...r].indexOf(c)+1,h=c=>`${t.attribute}[${m(c)}]`,E=c=>g=>{let{record:w}=c,M=ne(j({},c),{record:ne(j({},w),{attachment:j(j({},w.attachment),g)})});e.dispatch({type:"update",payload:M})},v=c=>()=>{e.dispatch({type:"remove",payload:c}),c.record.id&&i([...r,c.record])},y=c=>{let{dragging:g}=l;return c==="Files"?$e.default.createElement(js,{key:"placeholder"}):$e.default.createElement(To,{key:c.handle,draggable:c,locale:t.locale,locales:t.locales,showEmbed:t.showEmbed,startDrag:u,position:m(c.record),onUpdate:E(c),deleteRecord:v(c),attributeName:h(c.record),placeholder:g&&g==c})},f=Jr(e,l),d=["attachments"];return l.dragging&&d.push("dragover"),$e.default.createElement("div",j({className:d.join(" "),ref:e.ref},p),$e.default.createElement("div",{className:"files"},f.map(c=>y(c))),$e.default.createElement("div",{className:"deleted"},r.map(c=>$e.default.createElement("span",{className:"deleted-attachment",key:c.id},$e.default.createElement("input",{name:`${h(c)}[id]`,type:"hidden",value:c.id}),$e.default.createElement("input",{name:`${h(c)}[attachment_id]`,type:"hidden",value:c.attachment&&c.attachment.id||""}),$e.default.createElement("input",{name:`${h(c)}[_destroy]`,type:"hidden",value:!0})))),$e.default.createElement("div",{className:"drop-target"},$e.default.createElement(ct,{multiple:!0,multiline:!0,callback:a})))}Qn.propTypes={attribute:Xn.default.string,locale:Xn.default.string,locales:Xn.default.object,records:Xn.default.array,showEmbed:Xn.default.bool};var Ce=D(H()),Gn=D(J()),yn=class extends Ce.default.Component{constructor(e){super(e);this.state={startsAt:this.parseDate(e.startsAt)||this.defaultDate(),endsAt:this.parseDate(e.endsAt)||this.defaultDate(60),startTime:"",endTime:""},this.state.startTime=this.timeToString(this.state.startsAt),this.state.endTime=this.timeToString(this.state.endsAt),this.changeStartsAt=this.changeStartsAt.bind(this),this.changeEndsAt=this.changeEndsAt.bind(this)}changeStartsAt(e={}){let n=this.modifyDate(this.state.startsAt,e);this.setDates(n,new Date(this.state.endsAt.getTime()+(n-this.state.startsAt)))}changeEndsAt(e={}){let n=this.modifyDate(this.state.endsAt,e);this.setDates(this.state.startsAt,n)}defaultDate(e=0){let n=36e5;return new Date(Math.round(new Date().getTime()/n)*n+n+1e3*60*e)}modifyDate(e,n={}){var r=new Date(e);return Object.prototype.hasOwnProperty.call(n,"year")&&r.setFullYear(n.year),Object.prototype.hasOwnProperty.call(n,"month")&&r.setMonth(n.month),Object.prototype.hasOwnProperty.call(n,"date")&&r.setDate(n.date),Object.prototype.hasOwnProperty.call(n,"time")&&n.time.match(/^[\d]{1,2}(:[\d]{1,2})?$/)&&(r.setHours(n.time.split(":")[0]),r.setMinutes(n.time.split(":")[1]||0)),r}parseDate(e){if(!!e)return new Date(e)}setDates(e,n){n<e&&(n=e),this.setState({startsAt:e,endsAt:n,startTime:this.timeToString(e),endTime:this.timeToString(n)})}startsAtToString(){return this.props.disabled?"":this.state.startsAt.toJSON()}endsAtToString(){return this.props.disabled?"":this.state.endsAt.toJSON()}renderDateSelect(e,n,r){return Ce.default.createElement("div",{className:"date-select"},Ce.default.createElement("select",{value:n.getMonth(),onChange:i=>r({month:i.target.value}),disabled:this.props.disabled},this.monthOptions().map((i,o)=>Ce.default.createElement("option",{key:e+"-month-"+o,value:o},i))),Ce.default.createElement("select",{value:n.getDate(),onChange:i=>r({date:i.target.value}),disabled:this.props.disabled},this.dayOptions().map(i=>Ce.default.createElement("option",{key:e+"-date-"+i,value:i},i))),Ce.default.createElement("select",{value:n.getFullYear(),onChange:i=>r({year:i.target.value}),disabled:this.props.disabled},this.yearOptions().map(i=>Ce.default.createElement("option",{key:e+"-year-"+i,value:i},i))))}render(){return Ce.default.createElement("div",{className:"date-range-select"},Ce.default.createElement("input",{type:"hidden",name:this.props.objectName+"[starts_at]",value:this.startsAtToString()}),Ce.default.createElement("input",{type:"hidden",name:this.props.objectName+"[ends_at]",value:this.endsAtToString()}),Ce.default.createElement("div",{className:"date"},this.renderDateSelect("starts-at",this.state.startsAt,this.changeStartsAt),!this.props.disableTime&&Ce.default.createElement("input",{type:"text",size:"5",value:this.state.startTime,disabled:this.props.disabled,onChange:e=>this.setState({startTime:e.target.value}),onBlur:e=>this.changeStartsAt({time:e.target.value})})),Ce.default.createElement("span",{className:"to"},"to"),Ce.default.createElement("div",{className:"date"},this.renderDateSelect("ends-at",this.state.endsAt,this.changeEndsAt),!this.props.disableTime&&Ce.default.createElement("input",{type:"text",size:"5",value:this.state.endTime,disabled:this.props.disabled,onChange:e=>this.setState({endTime:e.target.value}),onBlur:e=>this.changeEndsAt({time:e.target.value})})))}timeToString(e){return e.toTimeString().slice(0,5)}yearOptions(){let e=2e3;return Array.apply(null,Array(new Date().getFullYear()-e+11)).map((n,r)=>r+e)}monthOptions(){return["January","February","March","April","May","June","July","August","September","October","November","December"]}dayOptions(){return Array.apply(null,Array(31)).map((e,n)=>n+1)}};yn.propTypes={startsAt:Gn.default.string,endsAt:Gn.default.string,disabled:Gn.default.bool,disableTime:Gn.default.bool,objectName:Gn.default.string};var _t=D(H()),zt=D(J());var En=D(H()),ir=D(J());var Ye=D(H()),Po=D(J());var tr=D(H()),wn=D(J()),yf=D(mf());var Zn=D(H());function my(t,e){let n=No(t),r=t.image,i=r.real_width/r.real_height;return e?(n.aspect=e,n.width=100,n.height=100/e*i,n.height>100&&(n.height=100,n.width=100*e/i),n.x=(100-n.width)/2,n.y=(100-n.height)/2):delete n.aspect,gf(t,n)}function gf(t,e){let{image:n}=t;return(e.width<5||e.height<5)&&(e={x:0,y:0,width:100,height:100}),e.aspect===null&&delete e.aspect,{aspect:e.aspect,crop_start_x:n.real_width*(e.x/100),crop_start_y:n.real_height*(e.y/100),crop_width:n.real_width*(e.width/100),crop_height:n.real_height*(e.height/100)}}function vf(t,e){let{crop_start_x:n,crop_start_y:r,crop_width:i,crop_height:o,crop_gravity_x:a,crop_gravity_y:s}=t;switch(e.type){case"completeCrop":return a<n||a>n+i||s<r||s>r+o?ne(j({},t),{cropping:!1,crop_gravity_x:null,crop_gravity_y:null}):ne(j({},t),{cropping:!1});case"setCrop":return j(j({},t),gf(t,e.payload));case"setAspect":return j(j({},t),my(t,e.payload));case"setFocal":return ne(j({},t),{crop_gravity_x:i*(e.payload.x/100)+n,crop_gravity_y:o*(e.payload.y/100)+r});case"startCrop":return ne(j({},t),{cropping:!0});case"toggleFocal":return a===null?vf(t,{type:"setFocal",payload:{x:50,y:50}}):ne(j({},t),{crop_gravity_x:null,crop_gravity_y:null});default:return t}}function gy(t,e){let n=document.createElement("canvas");n.width=t.naturalWidth*(e.width/100),n.height=t.naturalHeight*(e.height/100);let r=n.getContext("2d");return r.drawImage(t,t.naturalWidth*(e.x/100),t.naturalHeight*(e.y/100),t.naturalWidth*(e.width/100),t.naturalHeight*(e.height/100),0,0,t.naturalWidth*(e.width/100),t.naturalHeight*(e.height/100)),[n,r]}function vy(t,e){let n=e.getImageData(0,0,t.width,t.height).data;for(var r=0;r<n.length/4;r++)if(n[r*4+3]!==255)return t.toDataURL("image/png");return t.toDataURL("image/jpeg")}function Oo(t){let e=o=>a=>a===null?a:o(a),n=e(Math.round),r=e(Math.ceil),i={crop_start_x:n(t.crop_start_x),crop_start_y:n(t.crop_start_y),crop_width:r(t.crop_width),crop_height:r(t.crop_height),crop_gravity_x:n(t.crop_gravity_x),crop_gravity_y:n(t.crop_gravity_y)};return i.crop_start_x+i.crop_width>t.image.real_width&&(i.crop_width=t.image.real_width-i.crop_start_x),i.crop_start_y+i.crop_height>t.image.real_height&&(i.crop_height=t.image.real_height-i.crop_start_y),i}function No(t){let{image:e,aspect:n,crop_start_x:r,crop_start_y:i,crop_width:o,crop_height:a}=t,s=e.real_width/e.real_height,l=r/e.real_width*100,u=i/e.real_height*100;var p=o/e.real_width*100,m=a/e.real_height*100;return n&&p?m=p/n*s:n&&m&&(p=m*n/s),n===null?{x:l,y:u,width:p,height:m}:{x:l,y:u,width:p,height:m,aspect:n}}function ni(t){let[e,n]=(0,Zn.useReducer)(vf,{aspect:null,cropping:!1,crop_start_x:t.crop_start_x||0,crop_start_y:t.crop_start_y||0,crop_width:t.crop_width||t.real_width,crop_height:t.crop_height||t.real_height,crop_gravity_x:t.crop_gravity_x,crop_gravity_y:t.crop_gravity_y,image:t}),[r,i]=(0,Zn.useState)(null);async function o(){let a=new Image;a.src=e.image.uncropped_url,await a.decode();let[s,l]=gy(a,No(e));i(vy(s,l))}return(0,Zn.useEffect)(()=>{e.cropping||o()},[e.cropping]),[e,n,r]}var Jn=D(H()),er=D(J()),ri=class extends Jn.default.Component{constructor(e){super(e);this.state={dragging:!1,x:e.x,y:e.y},this.dragStart=this.dragStart.bind(this),this.dragEnd=this.dragEnd.bind(this),this.drag=this.drag.bind(this),this.container=Jn.default.createRef(),this.point=Jn.default.createRef()}clamp(e,n,r){return e<n?n:e>r?r:e}dragStart(e){e.preventDefault(),e.stopPropagation(),e.target==this.point.current&&this.setState({dragging:!0})}dragEnd(){this.state.dragging&&(this.setState({dragging:!1}),this.props.onChange({x:this.state.x,y:this.state.y}))}drag(e){if(this.state.dragging){let i=this.container.current.getBoundingClientRect();var n,r;e.preventDefault(),e.type=="touchmove"?(n=e.touches[0].clientX-(i.x||i.left),r=e.touches[0].clientY-(i.y||i.top)):(n=e.clientX-(i.x||i.left),r=e.clientY-(i.y||i.top)),n=this.clamp(n,0,this.props.width),r=this.clamp(r,0,this.props.height),this.setState({x:n/this.props.width*100,y:r/this.props.height*100})}}render(){let e=this.props.width*(this.state.x/100),n=this.props.height*(this.state.y/100),r={transform:`translate3d(${e}px, ${n}px, 0)`};return Jn.default.createElement("div",{className:"focal-editor",ref:this.container,onTouchStart:this.dragStart,onTouchEnd:this.dragEnd,onTouchMove:this.drag,onMouseDown:this.dragStart,onMouseUp:this.dragEnd,onMouseMove:this.drag},Jn.default.createElement("div",{className:"focal-point",style:r,ref:this.point}))}};ri.propTypes={x:er.default.number,y:er.default.number,onChange:er.default.func,width:er.default.number,height:er.default.number};function _o(t){let e=()=>{let{image:l,cropping:u,crop_width:p,crop_height:m}=t.cropState;return u?{width:l.real_width,height:l.real_height}:{width:p,height:m}},n=t.containerSize.width,r=t.containerSize.height,i=e().width/e().height;var o=n,a=n/i;a>r&&(a=r,o=r*i);let s={width:`${o}px`,height:`${a}px`};return t.cropState.cropping?tr.default.createElement("div",{className:"image-wrapper",style:s},tr.default.createElement(yf.default,{src:t.cropState.image.uncropped_url,crop:No(t.cropState),minWidth:10,minHeight:10,onChange:t.setCrop})):tr.default.createElement("div",{className:"image-wrapper",style:s},t.focalPoint&&tr.default.createElement(ri,{width:o,height:a,x:t.focalPoint.x,y:t.focalPoint.y,onChange:t.setFocal}),tr.default.createElement("img",{src:t.croppedImage}))}_o.propTypes={containerSize:wn.default.object,croppedImage:wn.default.string,cropState:wn.default.object,focalPoint:wn.default.object,setCrop:wn.default.func,setFocal:wn.default.func};var Ve=D(H()),nr=D(J());function Do(t){let{cropping:e}=t.cropState,n=[["Free",null],["1:1",1],["3:2",3/2],["2:3",2/3],["4:3",4/3],["3:4",3/4],["5:4",5/4],["4:5",4/5],["16:9",16/9]],r=s=>l=>{l.preventDefault(),t.setAspect(s)},i=Math.ceil(t.cropState.crop_width),o=Math.ceil(t.cropState.crop_height),a=t.image.content_type.split("/")[1].toUpperCase();return Ve.default.createElement("div",{className:"toolbars"},Ve.default.createElement("div",{className:"toolbar"},Ve.default.createElement("div",{className:"info"},Ve.default.createElement("span",{className:"format"},i,"x",o," ",a)),Ve.default.createElement("button",{title:"Crop image",onClick:t.toggleCrop,className:e?"active":""},Ve.default.createElement("i",{className:"fa fa-crop"})),Ve.default.createElement("button",{disabled:e,title:"Toggle focal point",onClick:t.toggleFocal},Ve.default.createElement("i",{className:"fa fa-bullseye"})),Ve.default.createElement("a",{href:t.image.original_url,className:"button",title:"Download original image",disabled:e,download:t.image.filename,onClick:s=>e&&s.preventDefault()},Ve.default.createElement("i",{className:"fa fa-download"}))),e&&Ve.default.createElement("div",{className:"aspect-ratios toolbar"},Ve.default.createElement("div",{className:"label"},"Lock aspect ratio:"),n.map(s=>Ve.default.createElement("button",{key:"ratio-"+s[1],className:s[1]==t.cropState.aspect?"active":"",onClick:r(s[1])},s[0]))))}Do.propTypes={cropState:nr.default.object,image:nr.default.object,setAspect:nr.default.func,toggleCrop:nr.default.func,toggleFocal:nr.default.func};function yy(t){return t.crop_gravity_x===null||t.crop_gravity_y===null?null:{x:(t.crop_gravity_x-t.crop_start_x)/t.crop_width*100,y:(t.crop_gravity_y-t.crop_start_y)/t.crop_height*100}}function rr(t){let e=(0,Ye.useRef)(),[n,r]=(0,Ye.useState)(null),i=()=>{let u=e.current;u&&r({width:u.offsetWidth-2,height:u.offsetHeight-2})};(0,Ye.useEffect)(()=>(window.addEventListener("resize",i),function(){window.removeEventListener("resize",i)})),(0,Ye.useEffect)(i,[]);let o=u=>{t.dispatch({type:"setAspect",payload:u})},a=u=>{t.dispatch({type:"setCrop",payload:u})},s=u=>{t.dispatch({type:"setFocal",payload:u})},l=()=>{t.cropState.cropping?t.dispatch({type:"completeCrop"}):t.dispatch({type:"startCrop"})};return Ye.default.createElement("div",{className:"visual"},Ye.default.createElement(Do,{cropState:t.cropState,image:t.cropState.image,setAspect:o,toggleCrop:l,toggleFocal:()=>t.dispatch({type:"toggleFocal"})}),Ye.default.createElement("div",{className:"image-container",ref:e},!t.croppedImage&&Ye.default.createElement("div",{className:"loading"},"Loading image\u2026"),t.croppedImage&&n&&Ye.default.createElement(_o,{cropState:t.cropState,containerSize:n,croppedImage:t.croppedImage,focalPoint:yy(t.cropState),setCrop:a,setFocal:s})))}rr.propTypes={croppedImage:Po.default.string,cropState:Po.default.object,dispatch:Po.default.func};var ye=D(H()),yt=D(J());function Ao(t){let{alternative:e,caption:n,image:r,locale:i,locales:o}=t,a=u=>{u.preventDefault(),vt(`[image:${r.id}]`),Fe.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},s=u=>{t.setLocale(u.target.value)},l=o&&o[i]&&o[i].dir||"ltr";return ye.default.createElement("form",null,ye.default.createElement("div",{className:"field embed-code"},ye.default.createElement("label",null,"Embed code"),ye.default.createElement("input",{type:"text",value:`[image:${r.id}]`,disabled:!0}),Yr()&&ye.default.createElement("button",{onClick:a},"Copy")),o&&Object.keys(o).length>1&&ye.default.createElement("div",{className:"field"},ye.default.createElement("label",null,"Locale"),ye.default.createElement("select",{name:"locale",value:i,onChange:s},Object.keys(o).map(u=>ye.default.createElement("option",{key:`locale-${u}`,value:u},o[u].name)))),ye.default.createElement("div",{className:"field "+(e[i]?"":"field-with-warning")},ye.default.createElement("label",null,"Alternative text"),ye.default.createElement("span",{className:"description"},"For visually impaired users and search engines."),ye.default.createElement("textarea",{className:"alternative",lang:i,dir:l,value:e[i]||"",onChange:u=>t.updateLocalization("alternative",u.target.value)})),t.showCaption&&ye.default.createElement("div",{className:"field"},ye.default.createElement("label",null,"Caption"),ye.default.createElement("textarea",{lang:i,dir:l,onChange:u=>t.updateLocalization("caption",u.target.value),value:n[i]||"",className:"caption"})),ye.default.createElement("div",{className:"buttons"},ye.default.createElement("button",{onClick:t.save},"Save"),ye.default.createElement("button",{onClick:()=>je.dispatch({type:"CLOSE"})},"Cancel")))}Ao.propTypes={alternative:yt.default.object,caption:yt.default.object,image:yt.default.object,locale:yt.default.string,locales:yt.default.object,setLocale:yt.default.func,save:yt.default.func,showCaption:yt.default.bool,updateLocalization:yt.default.func};function Lo(t){let[e,n,r]=ni(t.image),[i,o]=(0,En.useState)(t.locale),[a,s]=(0,En.useState)({caption:t.image.caption||{},alternative:t.image.alternative||{}}),l=(p,m)=>{s(ne(j({},a),{[p]:ne(j({},a[p]),{[i]:m})}))},u=p=>{p.preventDefault(),p.stopPropagation();let m=j(j({},a),Oo(e));Wn(`/admin/images/${t.image.id}`,{image:m}),t.onUpdate&&t.onUpdate(m,r),je.dispatch({type:"CLOSE"})};return En.default.createElement("div",{className:"image-editor"},En.default.createElement(rr,{croppedImage:r,cropState:e,dispatch:n}),!e.cropping&&En.default.createElement(Ao,{alternative:a.alternative,caption:a.caption,image:t.image,locale:i,locales:t.locales,setLocale:o,save:u,showCaption:t.caption,updateLocalization:l}))}Lo.propTypes={image:ir.default.object,locale:ir.default.string,locales:ir.default.object,caption:ir.default.bool,onUpdate:ir.default.func};function Bt(t){let[e,n]=(0,_t.useState)(t.image),[r,i]=(0,_t.useState)(t.src),o=()=>{let u=e.crop_width||e.real_width,p=e.crop_height||e.real_height;return Math.round(p/u*t.width)},a=(u,p)=>{let m=j(j({},e),u);i(p),n(m),t.onUpdate&&t.onUpdate(m,p)},s=u=>{u.preventDefault(),je.dispatch({type:"OPEN",payload:_t.default.createElement(Lo,{image:e,caption:t.caption,locale:t.locale,locales:t.locales,onUpdate:a})})},l=!e.alternative[t.locale];return _t.default.createElement("div",{className:"editable-image"},l&&_t.default.createElement("span",{className:"alt-warning",title:"Alternative text is missing"},_t.default.createElement("i",{className:"fa fa-exclamation-triangle icon"})),_t.default.createElement("img",{src:r,width:t.width,height:o(),onClick:s}))}Bt.propTypes={image:zt.default.object,src:zt.default.string,caption:zt.default.bool,locale:zt.default.string,locales:zt.default.object,width:zt.default.number,onUpdate:zt.default.func};var oe=D(H()),$t=D(J());var Rs=D(H()),or=D(J());function Mo(t){let{draggable:e,dragState:n,container:r}=t;if(e==="Files")return"";{let i=r.current.getBoundingClientRect(),o=n.x-(i.x||i.left),a=n.y-(i.y||i.top),s={transform:`translate3d(${o}px, ${a}px, 0)`};return Rs.default.createElement("div",{className:"drag-image",style:s},e.record.image&&Rs.default.createElement("img",{src:e.record.src||e.record.image.thumbnail_url}))}}Mo.propTypes={draggable:or.default.oneOfType([or.default.object,or.default.string]),dragState:or.default.object,container:or.default.object};var Us=D(H());function zs(){return Us.default.createElement("div",{className:"grid-image",key:"file-placeholder"},Us.default.createElement("div",{className:"file-placeholder"}))}var be=D(H()),Xe=D(J());var ar=D(H()),wf=D(J());function Io(t){return t.src?ar.default.createElement("div",{className:"temp-image"},ar.default.createElement("img",{src:t.src}),ar.default.createElement("span",null,"Uploading...")):ar.default.createElement("div",{className:"file-placeholder"},ar.default.createElement("span",null,"Uploading..."))}Io.propTypes={src:wf.default.string};function jo(t){let{attributeName:e,draggable:n}=t,r=n.record,i=r.image,[o,a]=(0,be.useState)(r.src||null),s=Yn(n,t.startDrag);(0,be.useEffect)(()=>{if(r.file){let m=new FileReader;m.onload=()=>a(m.result),m.readAsDataURL(r.file)}},[]);let l=m=>{m.preventDefault(),vt(`[image:${i.id}]`),Fe.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},u=m=>{m.preventDefault(),t.deleteImage&&t.deleteImage()},p=["grid-image"];return t.placeholder&&p.push("placeholder"),r.file&&p.push("uploading"),be.default.createElement("div",j({className:p.join(" ")},s),be.default.createElement("input",{name:`${e}[id]`,type:"hidden",value:r.id||""}),be.default.createElement("input",{name:`${e}[image_id]`,type:"hidden",value:i&&i.id||""}),be.default.createElement("input",{name:`${e}[position]`,type:"hidden",value:t.position}),t.enablePrimary&&be.default.createElement("input",{name:`${e}[primary]`,type:"hidden",value:t.primary}),!i&&be.default.createElement(Io,{src:o}),i&&be.default.createElement(be.default.Fragment,null,be.default.createElement(Bt,{image:i,src:o||i.thumbnail_url,width:250,caption:!0,locale:t.locale,locales:t.locales,onUpdate:t.onUpdate}),be.default.createElement("div",{className:"actions"},t.showEmbed&&be.default.createElement("button",{onClick:l},"Embed"),t.deleteImage&&be.default.createElement("button",{onClick:u},"Remove"))))}jo.propTypes={draggable:Xe.default.object,deleteImage:Xe.default.func,startDrag:Xe.default.func,locale:Xe.default.string,locales:Xe.default.object,onUpdate:Xe.default.func,attributeName:Xe.default.string,placeholder:Xe.default.bool,enablePrimary:Xe.default.bool,showEmbed:Xe.default.bool,primary:Xe.default.bool,position:Xe.default.number};function Bs(t){let e=["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"];return t.filter(n=>e.indexOf(n.type)!==-1)}function Ef(t,e,n){let[r,...i]=Zr(t,n),o=[...i,...Zr(e,n)];return n.dragging&&[r,...o].indexOf(n.dragging)===-1&&(n.y<e.ref.current.getBoundingClientRect().top?o=[n.dragging,...o]:o.push(n.dragging)),[r,o]}function wy(t){let e=t.enablePrimary?t.records.filter(n=>n.primary).slice(0,1):[];return[e,t.records.filter(n=>e.indexOf(n)===-1)]}function sr(t){let[e,n]=wy(t),r=vn(e),i=vn(n),[o,a]=(0,oe.useState)([]),s=(0,oe.useRef)(),l=T=>{r.dispatch(T),i.dispatch(T)},u=(T,P)=>{let[Q,k]=Ef(r,i,T);if(r.dispatch({type:"reorder",payload:Q?[Q]:[]}),i.dispatch({type:"reorder",payload:k}),P){let b=Bs(P).map(I=>y(I));l({type:"insertFiles",payload:b})}},[p,m,h]=qn([r,i],u),E=T=>[...r.draggables.map(P=>P.record),...i.draggables.map(P=>P.record),...o].indexOf(T)+1,v=T=>`${t.attribute}[${E(T)}]`,y=T=>{let P=Kn({image:null,file:T}),Q=new FormData;return Q.append("image[file]",T),Hn("/admin/images.json",Q).then(k=>{k.status==="error"?(Fe.dispatch({type:"ERROR",message:"Error uploading image: "+k.error}),l({type:"remove",payload:P})):l({type:"update",payload:ne(j({},P),{record:{image:k}})})}),P},f=T=>P=>{let{record:Q}=T,k=ne(j({},T),{record:ne(j({},Q),{image:j(j({},Q.image),P)})});l({type:"update",payload:k})},d=T=>()=>{l({type:"remove",payload:T}),T.record.id&&a([...o,T.record])},c=(T,P)=>{let{dragging:Q}=p;return T==="Files"?oe.default.createElement(zs,{key:"placeholder"}):oe.default.createElement(jo,{key:T.handle,draggable:T,locale:t.locale,locales:t.locales,showEmbed:t.showEmbed,startDrag:m,position:E(T.record),primary:P,onUpdate:f(T),enablePrimary:t.enablePrimary,deleteImage:d(T),attributeName:v(T.record),placeholder:Q&&Q==T})},g=T=>{let[P,...Q]=Bs(T).map(k=>y(k));P&&(i.dispatch({type:"prepend",payload:[...r.draggables,...Q]}),r.dispatch({type:"replace",payload:[P]}))},w=T=>{i.dispatch({type:"append",payload:Bs(T).map(P=>y(P))})},M=["image-grid"];t.enablePrimary&&M.push("with-primary-image");let[O,R]=Ef(r,i,p);return oe.default.createElement("div",j({className:M.join(" "),ref:s},h),p.dragging&&oe.default.createElement(Mo,{draggable:p.dragging,dragState:p,container:s}),t.enablePrimary&&oe.default.createElement("div",{className:"primary-image",ref:r.ref},oe.default.createElement("h3",null,"Main image"),O&&oe.default.createElement(oe.default.Fragment,null,c(O,!0),t.primaryAttribute&&oe.default.createElement("input",{type:"hidden",name:t.primaryAttribute,value:O.record&&O.record.image&&O.record.image.id||""})),!O&&oe.default.createElement("div",{className:"drop-target"},oe.default.createElement(ct,{multiple:!0,type:"image",multiline:!0,callback:g}))),oe.default.createElement("div",{className:"grid",ref:i.ref},oe.default.createElement("h3",null,t.enablePrimary?"More images":"Images"),oe.default.createElement("div",{className:"drop-target"},oe.default.createElement(ct,{multiple:!0,type:"image",callback:w})),oe.default.createElement("div",{className:"images"},R.map(T=>c(T,!1)))),oe.default.createElement("div",{className:"deleted"},o.map(T=>oe.default.createElement("span",{className:"deleted-image",key:T.id},oe.default.createElement("input",{name:`${v(T)}[id]`,type:"hidden",value:T.id}),oe.default.createElement("input",{name:`${v(T)}[attachment_id]`,type:"hidden",value:T.image&&T.image.id||""}),oe.default.createElement("input",{name:`${v(T)}[_destroy]`,type:"hidden",value:!0})))))}sr.propTypes={attribute:$t.default.string,locale:$t.default.string,locales:$t.default.object,records:$t.default.array,enablePrimary:$t.default.bool,primaryAttribute:$t.default.string,showEmbed:$t.default.bool};var Re=D(H()),Dt=D(J());function Ey(t){var e=[];if(t.items)for(let n=0;n<t.items.length;n++)t.items[n].kind=="file"&&e.push(t.items[n].getAsFile());else for(let n=0;n<t.files.length;n++)e.push(t.files[n]);return e}function Fo(t){let[e,n]=(0,Re.useState)(!1),[r,i]=(0,Re.useState)(!1),[o,a]=(0,Re.useState)(t.image),[s,l]=(0,Re.useState)(t.src),u=d=>{d.preventDefault(),i(!0)},p=()=>{i(!1)},m=d=>{if(d.dataTransfer.items)for(var c=0;c<d.dataTransfer.items.length;c++)d.dataTransfer.items.remove(c);else d.dataTransfer.clearData();i(!1)},h=d=>{let c=Ey(d.dataTransfer);d.preventDefault(),c.length>0&&y(c[0])},E=d=>{d.preventDefault(),a(null),l(null)},v=d=>{d.length>0&&y(d[0])},y=d=>{if(["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"].indexOf(d.type)==-1){alert("Invalid file type, only images in JPEG, PNG or GIF formats are supported");return}let g=t.locale,w=t.locales?Object.keys(t.locales):[g],M=new FormData;a(null),l(null),i(!1),n(!0),M.append("image[file]",d),w.forEach(O=>{M.append(`image[alternative][${O}]`,t.alternative||"")}),Hn("/admin/images.json",M).then(O=>{n(!1),O.status==="error"?Fe.dispatch({type:"ERROR",message:"Error uploading image: "+O.error}):(l(O.thumbnail_url),a(O))})},f=["image-uploader"];return e?f.push("uploading"):r&&f.push("dragover"),Re.default.createElement("div",{className:f.join(" "),onDragOver:u,onDragLeave:p,onDragEnd:m,onDrop:h},Re.default.createElement("input",{type:"hidden",name:t.attr,value:o?o.id:""}),o&&Re.default.createElement("div",{className:"image"},Re.default.createElement(Bt,{image:o,src:s,width:t.width,caption:t.caption,locale:t.locale,locales:t.locales})),Re.default.createElement("div",{className:"ui-wrapper"},e&&Re.default.createElement("div",{className:"ui"},"Uploading image..."),!e&&Re.default.createElement("div",{className:"ui"},Re.default.createElement(ct,{type:"image",multiline:!0,callback:v}),o&&Re.default.createElement("a",{className:"delete remove-image",href:"#",onClick:E},"Remove image"))))}Fo.propTypes={locale:Dt.default.string,locales:Dt.default.object,image:Dt.default.object,src:Dt.default.string,width:Dt.default.number,caption:Dt.default.bool,attr:Dt.default.string,alternative:Dt.default.string};var lr=D(H());var Ro=class extends lr.default.Component{constructor(e){super(e);this.state={component:null},this.store=je,this.closeModal=this.closeModal.bind(this),this.handleChange=this.handleChange.bind(this),this.handleKeypress=this.handleKeypress.bind(this)}componentDidMount(){this.unsubscribe=this.store.subscribe(this.handleChange),window.addEventListener("keypress",this.handleKeypress)}componentWillUnmount(){this.unsubscribe(),window.removeEventListener("keypress",this.handleKeypress)}closeModal(e){e.stopPropagation(),e.preventDefault(),je.dispatch({type:"CLOSE"})}handleChange(){this.setState(j({},this.store.getState()))}handleKeypress(e){this.state.component&&(e.key=="Escape"||e.keyCode===27)&&this.closeModal(e)}render(){let e=this.state.component;if(e)document.body.classList.add("modal");else return document.body.classList.remove("modal"),lr.default.createElement("div",{className:"modal-wrapper"});return lr.default.createElement("div",{className:"modal-wrapper open"},lr.default.createElement("div",{className:"background",onClick:this.closeModal}),lr.default.createElement("div",{className:"modal"},e))}};var dt=D(H()),Uo=D(J());var ii=class extends dt.default.Component{constructor(e){super(e);this.state={has_dates:!!e.starts_at,all_day:!!e.all_day},this.toggleAllDay=this.toggleAllDay.bind(this),this.toggleHasDates=this.toggleHasDates.bind(this)}toggleHasDates(){this.setState({has_dates:!this.state.has_dates})}toggleAllDay(){this.setState({all_day:!this.state.all_day})}timeToString(e){return e.toTimeString().slice(0,5)}render(){return dt.default.createElement("div",{className:"page-dates field"},dt.default.createElement("input",{type:"hidden",name:"page[all_day]",value:this.state.has_dates&&this.state.all_day?"1":"0"}),dt.default.createElement("label",null,"Dates"),dt.default.createElement("div",{className:"toggles"},dt.default.createElement("label",{className:"has-dates-toggle"},dt.default.createElement("input",{type:"checkbox",checked:this.state.has_dates,onChange:this.toggleHasDates}),"Enabled"),dt.default.createElement("label",{className:!this.state.has_dates&&"disabled"},dt.default.createElement("input",{type:"checkbox",disabled:!this.state.has_dates,checked:this.state.all_day,onChange:this.toggleAllDay}),"All day event")),dt.default.createElement(yn,{objectName:"page",startsAt:this.props.starts_at,endsAt:this.props.ends_at,disabled:!this.state.has_dates,disableTime:this.state.all_day}))}};ii.propTypes={starts_at:Uo.default.string,ends_at:Uo.default.string,all_day:Uo.default.bool};var zo=D(H()),Bo=D(J());var oi=class extends zo.default.Component{render(){return zo.default.createElement("div",{className:"page-files"},zo.default.createElement(Qn,{attribute:"page[page_files_attributes]",showEmbed:!0,locale:this.props.locale,locales:this.props.locales,records:this.props.records}))}};oi.propTypes={locale:Bo.default.string,locales:Bo.default.object,records:Bo.default.array};var $o=D(H()),Vo=D(J());var ai=class extends $o.default.Component{render(){return $o.default.createElement("div",{className:"page-images"},$o.default.createElement(sr,{attribute:"page[page_images_attributes]",primaryAttribute:"page[image_id]",enablePrimary:!0,showEmbed:!0,locale:this.props.locale,locales:this.props.locales,records:this.props.records}))}};ai.propTypes={locale:Vo.default.string,locales:Vo.default.object,records:Vo.default.array};var $s=D(H()),si=D(J());var xn=D(H()),wt=D(J());var re=D(H()),ft=D(J()),Vt=class extends re.default.Component{constructor(e){super(e);this.state={newName:e.index.node.name},this.innerRef=re.default.createRef()}permitted(e){return this.node().permissions&&this.node().permissions.indexOf(e)!=-1}actions(){let e=this.node().status!=2?"Publish":"Hide",n=this.node().status!=2?"check":"ban";return this.node().editing?null:this.props.index.id===1?re.default.createElement("span",{className:"actions"},re.default.createElement("button",{type:"button",className:"add",onClick:()=>this.props.addChild(this.props.index)},re.default.createElement("i",{className:"fa fa-plus icon"}),"Add child")):re.default.createElement("span",{className:"actions"},this.permitted("edit")&&this.button(e,{className:"toggle-status",icon:n,onClick:()=>this.toggleStatus()}),this.permitted("edit")&&this.button("Rename",{className:"edit",icon:"pencil",onClick:()=>this.edit()}),this.permitted("edit")&&this.button("Delete",{className:"delete",icon:"trash",onClick:()=>this.deletePage()}),this.permitted("create")&&this.button("Add child",{className:"add",icon:"plus",onClick:()=>this.props.addChild(this.props.index)}))}addButton(){let e=this,n=this.node(),r=function(){e.props.addChild&&e.props.addChild(e.props.index)};if(!n.collapsed&&this.permitted("create")&&(n.root||this.visibleChildren().length>0))return this.button("Add page here",{className:"add add-inline",icon:"plus",onClick:r})}button(e,n){let r="fa fa-"+n.icon+" icon";return re.default.createElement("button",{type:"button",className:n.className,onClick:n.onClick},re.default.createElement("i",{className:r}),e)}childNodes(){let{index:e,tree:n,dragging:r,dir:i,locale:o}=this.props;if(e.children&&e.children.length&&!e.node.collapsed){var a={};return e.node.collapsed&&(a.display="none"),a.paddingLeft=this.props.paddingLeft+"px",re.default.createElement("div",{className:"children",style:a},e.children.map(s=>{var l=n.getIndex(s);return re.default.createElement(Vt,{tree:n,index:l,key:l.id,dragging:r,paddingLeft:this.props.paddingLeft,addChild:this.props.addChild,onCollapse:this.props.onCollapse,onDragStart:this.props.onDragStart,updatePage:this.props.updatePage,dir:i,locale:o})}))}return null}collapseArrow(){let e=this.props.index,n=this;if(!e.parent)return null;let r=function(o){o.stopPropagation();let a=n.props.index.id;n.props.onCollapse&&n.props.onCollapse(a)};if(this.visibleChildren().length>0){let o=e.node.collapsed;var i=null;return o?i="collapse fa fa-caret-right":i="collapse fa fa-caret-down",re.default.createElement("i",{className:i,onMouseDown:function(a){a.stopPropagation()},onClick:r})}return null}collapsedLabel(){if(this.node().collapsed&&this.node().children&&this.node().children.length>0){let e=this.node().children.length==1?"item":"items";return re.default.createElement("span",{className:"collapsed-label"},"(",this.node().children.length," ",e,")")}else return null}deletePage(){confirm("Are you sure you want to delete this page?")&&this.updatePage({status:4})}edit(){this.updatePage({editing:!0})}editUrl(e){return`/admin/${e.locale}/pages/${e.param}/edit`}node(){return this.props.index.node}pageName(){let e=this.node().name||re.default.createElement("i",{className:"untitled"},"Untitled");return re.default.createElement("span",{dir:this.props.dir,lang:this.props.locale},e)}render(){let e=this,n=this.props,r=n.index,i=n.dragging,o=this.node().editing;var a="node",s=o?this.renderEditNode():this.renderNode();r.id===i&&(a="node placeholder");let l=function(u){e.permitted("edit")&&!o&&n.onDragStart&&n.onDragStart(n.index.id,e.innerRef.current,u)};return this.node().status!=4?re.default.createElement("div",{className:a},re.default.createElement("div",{className:"inner",ref:this.innerRef,onMouseDown:l},this.collapseArrow(),s),this.childNodes(),this.addButton()):null}renderEditNode(){let{dir:e,locale:n}=this.props,r=this,i=function(s){r.setState({newName:s.target.value})},o=function(s){s.preventDefault(),r.updatePage({name:r.state.newName,editing:!1})},a=function(){r.setState({newName:r.node().name}),r.updatePage({editing:!1})};return re.default.createElement("div",{className:"page edit"},re.default.createElement("i",{className:"fa fa-file-o icon"}),re.default.createElement("form",{onSubmit:o},re.default.createElement("input",{type:"text",value:this.state.newName,dir:e,lang:n,autoFocus:!0,onChange:i}),re.default.createElement("button",{className:"save",type:"submit"},re.default.createElement("i",{className:"fa fa-cloud icon"}),"Save"),this.button("Cancel",{className:"cancel",icon:"ban",onClick:a})))}renderNode(){let n=this.props.index.node;var r=re.default.createElement("span",{className:"name"},this.pageName()),i="page",o="fa fa-file-o icon";return typeof n.status<"u"&&(i=`page status-${this.node().status}`),n.id&&n.locale&&this.permitted("edit")&&(r=re.default.createElement("a",{href:this.editUrl(n),className:"name"},this.pageName())),n.news_page?o="fa fa-newspaper-o icon":n.pinned&&(o="fa fa-flag-o icon"),re.default.createElement("div",{className:i},re.default.createElement("i",{className:o}),r,this.statusLabel(),this.collapsedLabel(),this.actions())}statusLabel(){let e=["Draft","Reviewed","Published","Hidden","Deleted"];return typeof this.node().status<"u"&&this.node().status!=2?re.default.createElement("span",{className:"status-label"},"(",e[this.node().status],")"):""}toggleStatus(){this.node().status!=2?this.updatePage({status:2}):this.updatePage({status:3})}updatePage(e){if(this.props.updatePage)return this.props.updatePage(this.props.index,e)}visibleChildren(){return this.node().children?this.node().children.filter(e=>e.status!=4):[]}};Vt.propTypes={addChild:ft.default.func,dragging:ft.default.number,index:ft.default.object,onCollapse:ft.default.func,onDragStart:ft.default.func,paddingLeft:ft.default.number,tree:ft.default.object,updatePage:ft.default.func,locale:ft.default.string,dir:ft.default.string};var ur=class extends xn.default.Component{constructor(e){super(e);this.state={dragging:this.initDragging()}}initDragging(){return{id:null,x:null,y:null,w:null,h:null,scrollTop:null,scrollLeft:null}}getDraggingDom(){var e=this.props.tree,n=this.state.dragging;if(n&&n.id){var r=e.getIndex(n.id),i={top:n.y,left:n.x,width:n.w};return xn.default.createElement("div",{className:"draggable",style:i},xn.default.createElement(Vt,{tree:e,index:r,paddingLeft:this.props.paddingLeft}))}return null}render(){let{tree:e,dir:n,locale:r}=this.props;var i=this.state.dragging;if(e){var o=e.getIndex(1);return xn.default.createElement("div",{className:"page-tree"},this.getDraggingDom(),xn.default.createElement(Vt,{tree:e,index:o,key:o.id,paddingLeft:this.props.paddingLeft,addChild:a=>this.addChild(a),onDragStart:(a,s,l)=>this.dragStart(a,s,l),onCollapse:a=>this.toggleCollapse(a),updatePage:(a,s)=>this.updatePage(a,s),dragging:i&&i.id,dir:n,locale:r}))}else return xn.default.createElement("div",{className:"page-tree"},this.getDraggingDom())}addChild(e){let n={name:"",status:0,editing:!0,children:[],published_at:new Date,pinned:!1,locale:e.node.locale,parent_page_id:e.node.id};this.props.addChild(e.id,n)}prevAddButtonCount(e,n){let r=0,i=[],o=e.getIndex(n.parent);for(;o;)i.push(o),o=e.getIndex(o.parent);for(o=n,o=e.getNodeByTop(n.top-1);o;)i.indexOf(o)==-1&&!o.node.collapsed&&o.node.children.filter(a=>a.status!=4).length>0&&(r+=1),o=e.getNodeByTop(o.top-1);return r}scrollOffset(){let e=this.state.dragging;return{top:document.body.scrollTop-e.scrollTop,left:document.body.scrollLeft-e.scrollLeft}}drag(e){if(this._start){var n=Math.abs(e.clientX-this._offsetX)+Math.abs(e.clientY-this._offsetY);if(n>=15)this.setState({dragging:this.dragging}),this._start=!1;else return null}var r=this.props.tree,i=this.state.dragging,o=this.props.paddingLeft,a=null,s=r.getIndex(i.id),l=s.node.collapsed,u=this._startX,p=this._startY,m=this._offsetX,h=this._offsetY,E={x:u+e.clientX-m+this.scrollOffset().left,y:p+e.clientY-h+this.scrollOffset().top};i.x=E.x,i.y=E.y;var v=i.x-o/2-(s.left-2)*o,y=i.y-i.h/2-(s.top-2+this.prevAddButtonCount(r,s))*i.h;if(v<0)s.parent&&!s.next&&(a=r.move(s.id,s.parent,"after"));else if(v>o&&s.prev){var f=r.getIndex(s.prev);!f.node.leaf&&!f.node.collapsed&&(a=r.move(s.id,s.prev,"append"))}if(a&&(s=a,a.node.collapsed=l,i.id=a.id),y<0-i.h*.5){var d=r.getNodeByTop(s.top-1);a=r.move(s.id,d.id,"before")}else if(y>i.h*1.5){let c=s.next?r.getIndex(s.next):r.getNodeByTop(s.top+s.height);c&&c.parent!==s.id&&(c.children&&c.children.length&&!c.node.collapsed?a=r.move(s.id,c.id,"prepend"):a=r.move(s.id,c.id,"after"))}a&&(a.node.collapsed=l,i.id=a.id),this.setState({dragging:i})}dragStart(e,n,r){if(r.button===0){this.dragging={id:e,w:n.offsetWidth,h:n.offsetHeight,x:n.offsetLeft,y:n.offsetTop,scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft},this._startX=n.offsetLeft,this._startY=n.offsetTop,this._offsetX=r.clientX,this._offsetY=r.clientY,this._start=!0;var i=this;this._dragListener=o=>i.drag(o),this._dragEndListener=()=>i.dragEnd(),window.addEventListener("mousemove",this._dragListener),window.addEventListener("mouseup",this._dragEndListener)}}dragEnd(){this._start||(this.props.updateTree(this.props.tree),this.props.movedPage(this.state.dragging.id)),this.setState({dragging:this.initDragging()}),window.removeEventListener("mousemove",this._dragListener),window.removeEventListener("mouseup",this._dragEndListener)}toggleCollapse(e){this.props.toggleCollapsed(e)}updatePage(e,n){this.props.updatePage(e.id,n)}};ur.defaultProps={paddingLeft:15};ur.propTypes={tree:wt.default.object,addChild:wt.default.func,movedPage:wt.default.func,toggleCollapsed:wt.default.func,paddingLeft:wt.default.number,updatePage:wt.default.func,updateTree:wt.default.func,locale:wt.default.string,dir:wt.default.string};var Wo=class{constructor(e){this.cnt=1,this.obj=e||{children:[]},this.indexes={},this.build(this.obj)}build(e){var n=this.indexes,r=this.cnt,i=this,o={id:r,node:e};n[this.cnt+""]=o,this.cnt++,e.children&&e.children.length&&a(e.children,o);function a(s,l){var u=[];s.forEach(function(p){var m={};m.id=i.cnt,m.node=p,l&&(m.parent=l.id),n[i.cnt+""]=m,u.push(i.cnt),i.cnt++,p.children&&p.children.length&&a(p.children,m)}),l.children=u,u.forEach(function(p,m){var h=n[p+""];m>0&&(h.prev=u[m-1]),m<u.length-1&&(h.next=u[m+1])})}return o}getIndex(e){var n=this.indexes[e+""];if(n)return n}removeIndex(e){var n=this;r(e);function r(i){delete n.indexes[i.id+""],i.children&&i.children.length&&i.children.forEach(function(o){r(n.getIndex(o))})}}get(e){var n=this.getIndex(e);return n&&n.node?n.node:null}remove(e){var n=this.getIndex(e),r=this.get(e),i=this.getIndex(n.parent),o=this.get(n.parent);return o.children.splice(o.children.indexOf(r),1),i.children.splice(i.children.indexOf(e),1),this.removeIndex(n),this.updateChildren(i.children),r}updateChildren(e){e.forEach(function(n,r){var i=this.getIndex(n);i.prev=i.next=null,r>0&&(i.prev=e[r-1]),r<e.length-1&&(i.next=e[r+1])}.bind(this))}insert(e,n,r){var i=this.getIndex(n),o=this.get(n),a=this.build(e);return a.parent=n,o.children=o.children||[],i.children=i.children||[],o.children.splice(r,0,e),i.children.splice(r,0,a.id),this.updateChildren(i.children),i.parent&&this.updateChildren(this.getIndex(i.parent).children),a}insertBefore(e,n){var r=this.getIndex(n),i=r.parent,o=this.getIndex(i).children.indexOf(n);return this.insert(e,i,o)}insertAfter(e,n){var r=this.getIndex(n),i=r.parent,o=this.getIndex(i).children.indexOf(n);return this.insert(e,i,o+1)}prepend(e,n){return this.insert(e,n,0)}append(e,n){var r=this.getIndex(n);return r.children=r.children||[],this.insert(e,n,r.children.length)}updateNodesPosition(){var e=1,n=1,r=this.getIndex(1),i=this;r.top=e++,r.left=n++,r.children&&r.children.length&&o(r.children,r,n,r.node.collapsed);function o(a,s,l,u){var p=1;return a.forEach(function(m){var h=i.getIndex(m);u?(h.top=null,h.left=null):(h.top=e++,h.left=l),h.children&&h.children.length?p+=o(h.children,h,l+1,u||h.node.collapsed):(h.height=1,p+=1)}),s.node.collapsed?s.height=1:s.height=p,s.height}}move(e,n,r){if(!(e===n||n===1)){var i=this.remove(e),o=null;return r==="before"?o=this.insertBefore(i,n):r==="after"?o=this.insertAfter(i,n):r==="prepend"?o=this.prepend(i,n):r==="append"&&(o=this.append(i,n)),this.updateNodesPosition(),o}}getParent(e){var n=this.indexes;if(Object.prototype.hasOwnProperty.call(n,e))return this.getIndex(n[e].parent)}getNodeByTop(e){var n=this.indexes;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)&&n[r].top===e)return n[r]}};var li=class extends $s.default.Component{constructor(e){super(e);this.state={tree:this.buildTree(e.pages)},this.addChild=this.addChild.bind(this),this.movedPage=this.movedPage.bind(this),this.toggleCollapsed=this.toggleCollapsed.bind(this),this.updatePage=this.updatePage.bind(this),this.updateTree=this.updateTree.bind(this)}addChild(e,n){let r=this.state.tree;var i=r.append(n,e);this.reorderChildren(e),this.setCollapsed(e,!1),this.createPage(i,n),this.setState({tree:r})}movedPage(e){let n=this.state.tree,r=n.getIndex(e);this.reorderChildren(r.parent);let i=n.getIndex(r.parent),o=i.children.indexOf(e)+1;this.movePage(r,i,o),this.setState({tree:n})}toggleCollapsed(e){let n=this.state.tree;var r=n.getIndex(e).node;this.setCollapsed(e,!r.collapsed),this.setState({tree:n})}updatePage(e,n){let i=this.state.tree.getIndex(e),o=`/admin/${i.node.locale}/pages/${i.node.id}.json`;this.updateNode(i,n),this.performUpdate(i,o,{page:n})}updateTree(e){this.setState({tree:e})}applyCollapsed(e){let n=(o,a)=>{var s=0;let l=o.getIndex(a.parent);for(;l;)s+=1,l=o.getIndex(l.parent);return s},r=this.collapsedState(),i=function(o){var a=e.getIndex(o),s=a.node;Object.prototype.hasOwnProperty.call(r,s.id)?s.collapsed=r[s.id]:(s.news_page||n(e,a)>1)&&(s.collapsed=!0),a.children&&a.children.length&&a.children.forEach(l=>i(l))};i(1)}collapsedState(){return window&&window.localStorage&&typeof window.localStorage.collapsedPages<"u"?JSON.parse(window.localStorage.collapsedPages):{}}createPage(e,n){Nd(`/admin/${e.node.locale}/pages.json`,{page:n}).then(r=>this.updateNode(e,r))}buildTree(e){let n=e.reduce((i,o)=>{let a=o.parent_page_id;return i[a]=[...i[a]||[],o],i},{});e.forEach(i=>i.children=n[i.id]||[]);let r=new Wo({name:"All Pages",locale:this.props.locale,permissions:this.props.permissions,root:!0,children:n[null]});return this.applyCollapsed(r),r.updateNodesPosition(),r}movePage(e,n,r){let i={parent_id:n.node.id,position:r},o=`/admin/${e.node.locale}/pages/${e.node.id}/move.json`;this.performUpdate(e,o,i)}performUpdate(e,n,r){Wn(n,r).then(i=>this.updateNode(e,i))}render(){return $s.default.createElement(ur,{tree:this.state.tree,addChild:this.addChild,movedPage:this.movedPage,toggleCollapsed:this.toggleCollapsed,updatePage:this.updatePage,updateTree:this.updateTree,locale:this.props.locale,dir:this.props.dir})}reorderChildren(e){let n=this.state.tree;var r=this.state.tree.getIndex(e),i=r.node;!i.news_page||(r.children=r.children.sort(function(o,a){var s=n.getIndex(o).node,l=n.getIndex(a).node;return s.pinned==l.pinned?new Date(l.published_at)-new Date(s.published_at):s.pinned?-1:1}),n.updateNodesPosition())}setCollapsed(e,n){var r=this.state.tree.getIndex(e).node;r.collapsed=n,this.storeCollapsed(e,r.collapsed),this.state.tree.updateNodesPosition()}storeCollapsed(e,n){let r=this.state.tree.getIndex(e).node;var i=this.collapsedState();i[r.id]=n,window.localStorage.collapsedPages=JSON.stringify(i)}updateNode(e,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e.node[r]=n[r]);this.setState({tree:this.state.tree})}};li.propTypes={pages:si.default.array,locale:si.default.string,dir:si.default.string,permissions:si.default.array};var Sn=D(H()),Wt=D(J());var Ho=D(H()),Ko=D(J()),ui=class extends Ho.default.Component{render(){return Ho.default.createElement("a",{title:this.props.name,className:"button "+this.props.className,onClick:this.props.onClick},Ho.default.createElement("i",{className:"fa fa-"+this.props.className}))}};ui.propTypes={className:Ko.default.string,name:Ko.default.string,onClick:Ko.default.func};var Cn=class extends Sn.default.Component{constructor(e){super(e);this.state={value:e.value||"",rows:e.rows||5},this.inputRef=Sn.default.createRef(),this.handleChange=this.handleChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.getSelection=this.getSelection.bind(this),this.link=this.link.bind(this),this.replaceSelection=this.replaceSelection.bind(this)}actions(){let e=[{name:"bold",className:"bold",hotkey:"b",fn:r=>["<b>",r,"</b>"]},{name:"italic",className:"italic",hotkey:"i",fn:r=>["<i>",r,"</i>"]}],n=[{name:"Heading 2",className:"header h2",fn:r=>["h2. ",r,""]},{name:"Heading 3",className:"header h3",fn:r=>["h3. ",r,""]},{name:"Heading 4",className:"header h4",fn:r=>["h4. ",r,""]},{name:"Blockquote",className:"quote-left",fn:r=>["bq. ",r,""]},{name:"List",className:"list-ul",fn:r=>["",this.strToList(r,"*"),""]},{name:"Ordered list",className:"list-ol",fn:r=>["",this.strToList(r,"#"),""]},{name:"Link",className:"link",fn:this.link},{name:"Email link",className:"envelope",fn:this.emailLink}];return this.props.simple?e:[...e,...n]}applyAction(e){let[n,r,i]=e(this.getSelection());this.replaceSelection(n,r,i)}emailLink(e){var n=prompt("Enter email address","");let r=e.length>0?e:n;return['"',r,`":mailto:${n}`]}getSelection(){let{selectionStart:e,selectionEnd:n,value:r}=this.inputRef.current;return r.substr(e,n-e)}handleChange(e){this.setState({value:e.target.value})}handleKeyPress(e){let n;e.which>=65&&e.which<=90?n=String.fromCharCode(e.keyCode).toLowerCase():e.keyCode===13&&(n="enter");let r={};this.actions().forEach(i=>{i.hotkey&&(r[i.hotkey]=i.fn)}),(e.metaKey||e.ctrlKey)&&Object.prototype.hasOwnProperty.call(r,n)&&(e.preventDefault(),this.applyAction(r[n]))}link(e){let n=e.length>0?e:"Link text";var r=prompt("Enter link URL","");return r?['"',n,`":${this.relativeUrl(r)}`]:["",n,""]}localeOptions(){let e={};return this.props.lang&&(e.lang=this.props.lang),this.props.dir&&(e.dir=this.props.dir),e}relativeUrl(e){let n=null;if(!e.match(/^https:\/\//)||!document||!document.location)return e;try{n=new URL(e)}catch(r){console.log("Error parsing URL: ",r)}return n&&n.hostname==document.location.hostname&&(document.location.port||"80")==(n.port||"80")?n.pathname:e}render(){let{value:e,rows:n}=this.state,{id:r,name:i}=this.props,o=a=>s=>{s.preventDefault(),this.applyAction(a)};return Sn.default.createElement("div",{className:"rich-text-area"},Sn.default.createElement("div",{className:"rich-text toolbar"},this.actions().map(a=>Sn.default.createElement(ui,{key:a.name,name:a.name,className:a.className,onClick:o(a.fn)}))),Sn.default.createElement("textarea",j({className:"rich",ref:this.inputRef,id:r,name:i,value:e,rows:n,onChange:this.handleChange,onKeyDown:this.handleKeyPress},this.localeOptions())))}replaceSelection(e,n,r){let i=this.inputRef.current,{selectionStart:o,selectionEnd:a,value:s}=i;i.value=s.substr(0,o)+e+n+r+s.substr(a,s.length),i.focus({preventScroll:!0}),i.setSelectionRange(o+e.length,o+e.length+n.length),this.setState({value:i.value})}strToList(e,n){return e.split(`
16
+ %o`,n,e,r),(i=window.onerror)===null||i===void 0||i.call(window,n,"",0,0,e)}logFormattedMessage(e,n,r={}){r=Object.assign({application:this},r),this.logger.groupCollapsed(`${e} #${n}`),this.logger.log("details:",Object.assign({},r)),this.logger.groupEnd()}};function iv(){return new Promise(t=>{document.readyState=="loading"?document.addEventListener("DOMContentLoaded",()=>t()):t()})}function ov(t){return Os(t,"classes").reduce((n,r)=>Object.assign(n,av(r)),{})}function av(t){return{[`${t}Class`]:{get(){let{classes:e}=this;if(e.has(t))return e.get(t);{let n=e.getAttributeName(t);throw new Error(`Missing attribute "${n}"`)}}},[`${t}Classes`]:{get(){return this.classes.getAll(t)}},[`has${vo(t)}Class`]:{get(){return this.classes.has(t)}}}}function sv(t){return Os(t,"targets").reduce((n,r)=>Object.assign(n,lv(r)),{})}function lv(t){return{[`${t}Target`]:{get(){let e=this.targets.find(t);if(e)return e;throw new Error(`Missing target element "${t}" for "${this.identifier}" controller`)}},[`${t}Targets`]:{get(){return this.targets.findAll(t)}},[`has${vo(t)}Target`]:{get(){return this.targets.has(t)}}}}function uv(t){let e=Kg(t,"values"),n={valueDescriptorMap:{get(){return e.reduce((r,i)=>{let o=Gc(i,this.identifier),a=this.data.getAttributeNameForKey(o.key);return Object.assign(r,{[a]:o})},{})}}};return e.reduce((r,i)=>Object.assign(r,cv(i)),n)}function cv(t,e){let n=Gc(t,e),{key:r,name:i,reader:o,writer:a}=n;return{[i]:{get(){let s=this.data.get(r);return s!==null?o(s):n.defaultValue},set(s){s===void 0?this.data.delete(r):this.data.set(r,a(s))}},[`has${vo(i)}`]:{get(){return this.data.has(r)||n.hasCustomDefaultValue}}}}function Gc([t,e],n){return hv({controller:n,token:t,typeDefinition:e})}function Ns(t){switch(t){case Array:return"array";case Boolean:return"boolean";case Number:return"number";case Object:return"object";case String:return"string"}}function Hr(t){switch(typeof t){case"boolean":return"boolean";case"number":return"number";case"string":return"string"}if(Array.isArray(t))return"array";if(Object.prototype.toString.call(t)==="[object Object]")return"object"}function dv(t){let e=Ns(t.typeObject.type);if(!e)return;let n=Hr(t.typeObject.default);if(e!==n){let r=t.controller?`${t.controller}.${t.token}`:t.token;throw new Error(`The specified default value for the Stimulus Value "${r}" must match the defined type "${e}". The provided default value of "${t.typeObject.default}" is of type "${n}".`)}return e}function fv(t){let e=dv({controller:t.controller,token:t.token,typeObject:t.typeDefinition}),n=Hr(t.typeDefinition),r=Ns(t.typeDefinition),i=e||n||r;if(i)return i;let o=t.controller?`${t.controller}.${t.typeDefinition}`:t.token;throw new Error(`Unknown value type "${o}" for "${t.token}" value`)}function pv(t){let e=Ns(t);if(e)return mv[e];let n=t.default;return n!==void 0?n:t}function hv(t){let e=`${Pc(t.token)}-value`,n=fv(t);return{type:n,key:e,name:Dc(e),get defaultValue(){return pv(t.typeDefinition)},get hasCustomDefaultValue(){return Hr(t.typeDefinition)!==void 0},reader:gv[n],writer:Tc[n]||Tc.default}}var mv={get array(){return[]},boolean:!1,number:0,get object(){return{}},string:""},gv={array(t){let e=JSON.parse(t);if(!Array.isArray(e))throw new TypeError(`expected value of type "array" but instead got value "${t}" of type "${Hr(e)}"`);return e},boolean(t){return!(t=="0"||String(t).toLowerCase()=="false")},number(t){return Number(t)},object(t){let e=JSON.parse(t);if(e===null||typeof e!="object"||Array.isArray(e))throw new TypeError(`expected value of type "object" but instead got value "${t}" of type "${Hr(e)}"`);return e},string(t){return t}},Tc={default:vv,array:Oc,object:Oc};function Oc(t){return JSON.stringify(t)}function vv(t){return`${t}`}var Ze=class{constructor(e){this.context=e}static get shouldLoad(){return!0}get application(){return this.context.application}get scope(){return this.context.scope}get element(){return this.scope.element}get identifier(){return this.scope.identifier}get targets(){return this.scope.targets}get classes(){return this.scope.classes}get data(){return this.scope.data}initialize(){}connect(){}disconnect(){}dispatch(e,{target:n=this.element,detail:r={},prefix:i=this.identifier,bubbles:o=!0,cancelable:a=!0}={}){let s=i?`${i}:${e}`:e,l=new CustomEvent(s,{detail:r,bubbles:o,cancelable:a});return n.dispatchEvent(l),l}};Ze.blessings=[ov,sv,uv];Ze.targets=[];Ze.values={};var Jo={};_g(Jo,{Attachments:()=>Qn,DateRangeSelect:()=>yn,EditableImage:()=>Bt,FileUploadButton:()=>ct,ImageCropper:()=>rr,ImageGrid:()=>sr,ImageUploader:()=>Fo,Modal:()=>Ro,PageDates:()=>ii,PageFiles:()=>oi,PageImages:()=>ai,PageTree:()=>li,RichTextArea:()=>Cn,TagEditor:()=>Go,Toast:()=>di});var $e=D(H()),Xn=D(J());var Se=D(H()),tt=D(J());function Yr(){return document.queryCommandSupported&&document.queryCommandSupported("copy")}function vt(t){let e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}var ie=D(H()),Qr=D(J());function et(t){return"Minified Redux error #"+t+"; visit https://redux.js.org/Errors?code="+t+" for the full message or use the non-minified dev environment for full errors. "}var bd=function(){return typeof Symbol=="function"&&Symbol.observable||"@@observable"}(),Is=function(){return Math.random().toString(36).substring(7).split("").join(".")},kd={INIT:"@@redux/INIT"+Is(),REPLACE:"@@redux/REPLACE"+Is(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Is()}};function _v(t){if(typeof t!="object"||t===null)return!1;for(var e=t;Object.getPrototypeOf(e)!==null;)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}function Xr(t,e,n){var r;if(typeof e=="function"&&typeof n=="function"||typeof n=="function"&&typeof arguments[3]=="function")throw new Error(et(0));if(typeof e=="function"&&typeof n>"u"&&(n=e,e=void 0),typeof n<"u"){if(typeof n!="function")throw new Error(et(1));return n(Xr)(t,e)}if(typeof t!="function")throw new Error(et(2));var i=t,o=e,a=[],s=a,l=!1;function u(){s===a&&(s=a.slice())}function p(){if(l)throw new Error(et(3));return o}function m(y){if(typeof y!="function")throw new Error(et(4));if(l)throw new Error(et(5));var f=!0;return u(),s.push(y),function(){if(!!f){if(l)throw new Error(et(6));f=!1,u();var c=s.indexOf(y);s.splice(c,1),a=null}}}function h(y){if(!_v(y))throw new Error(et(7));if(typeof y.type>"u")throw new Error(et(8));if(l)throw new Error(et(9));try{l=!0,o=i(o,y)}finally{l=!1}for(var f=a=s,d=0;d<f.length;d++){var c=f[d];c()}return y}function E(y){if(typeof y!="function")throw new Error(et(10));i=y,h({type:kd.REPLACE})}function v(){var y,f=m;return y={subscribe:function(c){if(typeof c!="object"||c===null)throw new Error(et(11));function g(){c.next&&c.next(p())}g();var w=f(g);return{unsubscribe:w}}},y[bd]=function(){return this},y}return h({type:kd.INIT}),r={dispatch:h,subscribe:m,getState:p,replaceReducer:E},r[bd]=v,r}var je=Xr((t={},e)=>{switch(e.type){case"OPEN":return ne(j({},t),{component:e.payload});case"CLOSE":return ne(j({},t),{component:null});default:return t}});var Fe=Xr((t=[],e)=>{switch(e.type){case"ERROR":return[...t,{message:e.message,type:"error"}];case"NOTICE":return[...t,{message:e.message,type:"notice"}];case"NEXT":return t.slice(1);default:return t}});function Td(){return document.querySelector("[name=csrf-token]").content}function Od(){return{method:"POST",headers:{"Content-Type":"application/json; charset=utf-8","X-CSRF-Token":Td()}}}async function Nd(t,e){let n=ne(j({},Od()),{method:"POST"});return e&&(n.body=JSON.stringify(e)),(await fetch(t,n)).json()}async function Wn(t,e){let n=ne(j({},Od()),{method:"PUT"});return e&&(n.body=JSON.stringify(e)),(await fetch(t,n)).json()}async function Hn(t,e){return(await fetch(t,{method:"POST",body:e,headers:{"X-CSRF-Token":Td()}})).json()}function So(t){let{attachment:e,locales:n}=t,[r,i]=(0,ie.useState)(t.locale),[o,a]=(0,ie.useState)({name:e.name||{},description:e.description||{}}),s=m=>h=>{a(ne(j({},o),{[m]:ne(j({},o[m]),{[r]:h.target.value})}))},l=m=>{m.preventDefault(),vt(`[attachment:${e.id}]`),Fe.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},u=m=>{m.preventDefault(),m.stopPropagation();let h=j({},o);Wn(`/admin/attachments/${e.id}`,{attachment:h}),t.onUpdate&&t.onUpdate(h),je.dispatch({type:"CLOSE"})},p=n&&n[r]&&n[r].dir||"ltr";return ie.default.createElement("div",{className:"attachment-editor"},ie.default.createElement("form",null,t.locales&&Object.keys(n).length>1&&ie.default.createElement("div",{className:"field"},ie.default.createElement("label",null,"Locale"),ie.default.createElement("select",{name:"locale",value:r,onChange:m=>i(m.target.value)},Object.keys(n).map(m=>ie.default.createElement("option",{key:`locale-${m}`,value:m},n[m].name)))),ie.default.createElement("div",{className:"field"},ie.default.createElement("label",null,"Name"),ie.default.createElement("input",{type:"text",className:"name",lang:r,dir:p,value:o.name[r]||"",onChange:s("name")})),ie.default.createElement("div",{className:"field"},ie.default.createElement("label",null,"Description"),ie.default.createElement("textarea",{className:"description",value:o.description[r]||"",lang:r,dir:p,onChange:s("description")})),ie.default.createElement("div",{className:"field embed-code"},ie.default.createElement("label",null,"Embed code"),ie.default.createElement("input",{type:"text",value:`[attachment:${e.id}]`,disabled:!0}),Yr()&&ie.default.createElement("button",{onClick:l},"Copy")),ie.default.createElement("div",{className:"field"},ie.default.createElement("label",null,"File"),ie.default.createElement("a",{href:e.url,rel:"noreferrer",target:"_blank"},e.filename)),ie.default.createElement("div",{className:"buttons"},ie.default.createElement("button",{onClick:u},"Save"),ie.default.createElement("button",{onClick:()=>je.dispatch({type:"CLOSE"})},"Cancel"))))}So.propTypes={attachment:Qr.default.object,locale:Qr.default.string,locales:Qr.default.object,onUpdate:Qr.default.func};var Rt=D(H()),uf=D(lf());function uy(t){return t.ref.current?t.ref.current.getBoundingClientRect():null}function cy(t,e){if(t&&t.ref&&t.ref.current){let n=t.ref.current.style.display;t.ref.current.style.display="none";let r=e();return t.ref.current.style.display=n,r}else return e()}function dy(t,e){switch(e.type){case"append":return[...t,...e.payload];case"prepend":return[...e.payload,...t];case"insertFiles":var n=t.indexOf("Files");return n===-1||!e.payload?t:[...t.slice(0,n),...e.payload,...t.slice(n+1)];case"update":return t.map(r=>r.handle===e.payload.handle?e.payload:r);case"updatePositions":return cy(e.payload,()=>t.map(r=>ne(j({},r),{rect:uy(r)})));case"remove":return t.filter(r=>r.handle!==e.payload.handle);case"replace":return e.payload;case"reorder":return e.payload;default:return t}}function Kn(t){return{record:t,rect:null,ref:Rt.default.createRef(),handle:(0,uf.default)("draggable")}}function vn(t){let e=(0,Rt.useRef)(),[n,r]=(0,Rt.useReducer)(dy,[],()=>t.map(i=>Kn(i)));return(0,Rt.useEffect)(()=>{r({type:"updatePositions"})},[]),{ref:e,draggables:n,dispatch:r}}var bo=D(H());function fy(t){if(!t.dataTransfer||!t.dataTransfer.types)return!1;let e=t.dataTransfer.types;for(var n=0;n<e.length;n++)if(e[n]==="Files"||e[n]==="application/x-moz-file")return!0;return!1}function py(t){var e=[];if(t.items)for(let n=0;n<t.items.length;n++)t.items[n].kind=="file"&&e.push(t.items[n].getAsFile());else for(let n=0;n<t.files.length;n++)e.push(t.files[n]);return e}function cf(t){var e,n;return t.type=="touchmove"?(e=t.touches[0].clientX,n=t.touches[0].clientY):(e=t.clientX,n=t.clientY),{x:e,y:n}}function qn(t,e){let[n,r]=(0,bo.useState)({dragging:!1,x:null,y:null}),i=u=>{t.forEach(p=>{p.dispatch({type:"updatePositions",payload:u})})},o=(u,p)=>{i(p),r(j({dragging:p},cf(u)))},a=u=>{n.dragging?(u.stopPropagation(),u.preventDefault(),r(j(j({},n),cf(u)))):fy(u)&&o(u,"Files")},s=u=>{if(n.dragging){let m=n;var p=[];u.preventDefault(),u.stopPropagation(),n.dragging=="Files"&&(p=py(u.dataTransfer)),r({dragging:!1,x:null,y:null}),e(m,p),i()}},l=u=>{n.dragging==="Files"&&(u.preventDefault(),u.stopPropagation(),r({dragging:!1,x:null,y:null}))};return(0,bo.useEffect)(()=>(window.addEventListener("mousemove",a),window.addEventListener("touchmove",a),window.addEventListener("mouseup",s),window.addEventListener("touchend",s),window.addEventListener("mouseout",l),function(){window.removeEventListener("mousemove",a),window.removeEventListener("touchmove",a),window.removeEventListener("mouseup",s),window.removeEventListener("touchend",s),window.removeEventListener("mouseout",l)})),[n,o,{onDragOver:a,onDrop:s}]}var ko=D(H());function Yn(t,e){let n=(0,ko.useRef)(),r=i=>{i.preventDefault(),i.stopPropagation(),e(i,t)};return(0,ko.useEffect)(()=>{t.ref.current=n.current},[]),{ref:n,onDragStart:r,draggable:!0}}function df(t,e){let{x:n,y:r}=t;var i;if(e.rect)i=e.rect;else if(e.current)i=e.current.getBoundingClientRect();else return!1;return n>=i.left&&n<=i.right&&r>=i.top&&r<=i.bottom}function Zr(t,e){let{draggables:n,ref:r}=t,{dragging:i}=e;if(!i)return n;let o=n.filter(a=>a.handle!==i.handle);if(df(e,r)){let a=o.filter(s=>df(e,s))[0];if(a){let s=o.indexOf(a);o=[...o.slice(0,s),i,...o.slice(s)]}else o=[...o,i]}return o}function Jr(t,e){let n=Zr(t,e);return e.dragging&&n.indexOf(e.dragging)===-1&&(e.y<t.ref.current.getBoundingClientRect().top?n=[e.dragging,...n]:n.push(e.dragging)),n}function To(t){let{attributeName:e,draggable:n,locales:r,locale:i}=t,{record:o}=n,{attachment:a,uploading:s}=o,l=Yn(n,t.startDrag),u=d=>{d.preventDefault(),vt(`[attachment:${a.id}]`),Fe.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},p=d=>{d.preventDefault(),t.deleteRecord&&t.deleteRecord()},m=()=>a.description&&a.description[i]?a.description[i]:null,h=()=>a.name&&a.name[i]?a.name[i]:null,E=d=>{d.preventDefault(),je.dispatch({type:"OPEN",payload:Se.default.createElement(So,{attachment:a,locale:i,locales:r,onUpdate:t.onUpdate})})},v=["attachment"];t.placeholder&&v.push("placeholder"),o.uploading&&v.push("uploading");let y=s?"cloud-arrow-up":"paperclip",f=r&&r[i]&&r[i].dir||"ltr";return Se.default.createElement("div",j({className:v.join(" ")},l),Se.default.createElement("input",{name:`${e}[id]`,type:"hidden",value:o.id||""}),Se.default.createElement("input",{name:`${e}[attachment_id]`,type:"hidden",value:a&&a.id||""}),Se.default.createElement("input",{name:`${e}[position]`,type:"hidden",value:t.position}),!s&&Se.default.createElement("div",{className:"actions"},Se.default.createElement("button",{onClick:E},"Edit"),t.showEmbed&&Se.default.createElement("button",{onClick:u},"Embed"),t.deleteRecord&&Se.default.createElement("button",{onClick:p},"Remove")),a&&Se.default.createElement("div",{className:"attachment-info"},Se.default.createElement("h3",null,Se.default.createElement("i",{className:`fa-solid fa-${y} icon`}),h()||Se.default.createElement("em",null,"Untitled"),Se.default.createElement("br",null)),!s&&Se.default.createElement("a",{href:a.url,rel:"noreferrer",target:"_blank"},a.filename),!s&&m()&&Se.default.createElement("p",{dir:f},m())))}To.propTypes={locale:tt.default.string,locales:tt.default.object,draggable:tt.default.object,deleteRecord:tt.default.func,startDrag:tt.default.func,showEmbed:tt.default.bool,onUpdate:tt.default.func,attributeName:tt.default.string,placeholder:tt.default.bool,position:tt.default.number,ref:tt.default.object};var ff=D(H());function js(){return ff.default.createElement("div",{className:"attachment drop-placeholder",key:"file-placeholder"},"Upload files here")}var Ut=D(H()),ei=D(J());function ct(t){let e=(0,Ut.useRef)(),n=i=>{let o=i.target.files,a=[];for(var s=0;s<o.length;s++)a.push(o[s]);a.length>0&&t.callback(a)},r=i=>{i.preventDefault(),e.current.click()};return Ut.default.createElement("div",{className:"upload-button"},Ut.default.createElement("span",null,"Drag and drop ",t.type||"file",t.multiple&&"s"," here, or",t.multiline&&Ut.default.createElement("br",null),Ut.default.createElement("button",{onClick:r},"choose a file")),Ut.default.createElement("input",{type:"file",onChange:n,ref:e,style:{display:"none"},multiple:t.multiple||!1}))}ct.propTypes={callback:ei.default.func,type:ei.default.string,multiple:ei.default.bool,multiline:ei.default.bool};function hy(t){return t.replace(/\.[\w\d]+$/,"").replace(/_/g," ")}function Qn(t){let e=vn(t.records),n=t.locales&&t.locales.length>0?Object.keys(t.locales):[t.locale],[r,i]=(0,$e.useState)([]),o=c=>{let g={};n.forEach(O=>g[O]=c.name);let w=Kn({attachment:{filename:c.name,name:g},uploading:!0}),M=new FormData;return M.append("attachment[file]",c),n.forEach(O=>{M.append(`attachment[name][${O}]`,hy(c.name))}),Hn("/admin/attachments.json",M).then(O=>{e.dispatch({type:"update",payload:ne(j({},w),{record:{attachment:O,uploading:!1}})})}),w},a=c=>{e.dispatch({type:"append",payload:c.map(g=>o(g))})},s=(c,g)=>{e.dispatch({type:"reorder",payload:Jr(e,c)}),e.dispatch({type:"insertFiles",payload:g.map(w=>o(w))})},[l,u,p]=qn([e],s),m=c=>[...e.draggables.map(g=>g.record),...r].indexOf(c)+1,h=c=>`${t.attribute}[${m(c)}]`,E=c=>g=>{let{record:w}=c,M=ne(j({},c),{record:ne(j({},w),{attachment:j(j({},w.attachment),g)})});e.dispatch({type:"update",payload:M})},v=c=>()=>{e.dispatch({type:"remove",payload:c}),c.record.id&&i([...r,c.record])},y=c=>{let{dragging:g}=l;return c==="Files"?$e.default.createElement(js,{key:"placeholder"}):$e.default.createElement(To,{key:c.handle,draggable:c,locale:t.locale,locales:t.locales,showEmbed:t.showEmbed,startDrag:u,position:m(c.record),onUpdate:E(c),deleteRecord:v(c),attributeName:h(c.record),placeholder:g&&g==c})},f=Jr(e,l),d=["attachments"];return l.dragging&&d.push("dragover"),$e.default.createElement("div",j({className:d.join(" "),ref:e.ref},p),$e.default.createElement("div",{className:"files"},f.map(c=>y(c))),$e.default.createElement("div",{className:"deleted"},r.map(c=>$e.default.createElement("span",{className:"deleted-attachment",key:c.id},$e.default.createElement("input",{name:`${h(c)}[id]`,type:"hidden",value:c.id}),$e.default.createElement("input",{name:`${h(c)}[attachment_id]`,type:"hidden",value:c.attachment&&c.attachment.id||""}),$e.default.createElement("input",{name:`${h(c)}[_destroy]`,type:"hidden",value:!0})))),$e.default.createElement("div",{className:"drop-target"},$e.default.createElement(ct,{multiple:!0,multiline:!0,callback:a})))}Qn.propTypes={attribute:Xn.default.string,locale:Xn.default.string,locales:Xn.default.object,records:Xn.default.array,showEmbed:Xn.default.bool};var Ce=D(H()),Gn=D(J()),yn=class extends Ce.default.Component{constructor(e){super(e);this.state={startsAt:this.parseDate(e.startsAt)||this.defaultDate(),endsAt:this.parseDate(e.endsAt)||this.defaultDate(60),startTime:"",endTime:""},this.state.startTime=this.timeToString(this.state.startsAt),this.state.endTime=this.timeToString(this.state.endsAt),this.changeStartsAt=this.changeStartsAt.bind(this),this.changeEndsAt=this.changeEndsAt.bind(this)}changeStartsAt(e={}){let n=this.modifyDate(this.state.startsAt,e);this.setDates(n,new Date(this.state.endsAt.getTime()+(n-this.state.startsAt)))}changeEndsAt(e={}){let n=this.modifyDate(this.state.endsAt,e);this.setDates(this.state.startsAt,n)}defaultDate(e=0){let n=36e5;return new Date(Math.round(new Date().getTime()/n)*n+n+1e3*60*e)}modifyDate(e,n={}){var r=new Date(e);return Object.prototype.hasOwnProperty.call(n,"year")&&r.setFullYear(n.year),Object.prototype.hasOwnProperty.call(n,"month")&&r.setMonth(n.month),Object.prototype.hasOwnProperty.call(n,"date")&&r.setDate(n.date),Object.prototype.hasOwnProperty.call(n,"time")&&n.time.match(/^[\d]{1,2}(:[\d]{1,2})?$/)&&(r.setHours(n.time.split(":")[0]),r.setMinutes(n.time.split(":")[1]||0)),r}parseDate(e){if(!!e)return new Date(e)}setDates(e,n){n<e&&(n=e),this.setState({startsAt:e,endsAt:n,startTime:this.timeToString(e),endTime:this.timeToString(n)})}startsAtToString(){return this.props.disabled?"":this.state.startsAt.toJSON()}endsAtToString(){return this.props.disabled?"":this.state.endsAt.toJSON()}renderDateSelect(e,n,r){return Ce.default.createElement("div",{className:"date-select"},Ce.default.createElement("select",{value:n.getMonth(),onChange:i=>r({month:i.target.value}),disabled:this.props.disabled},this.monthOptions().map((i,o)=>Ce.default.createElement("option",{key:e+"-month-"+o,value:o},i))),Ce.default.createElement("select",{value:n.getDate(),onChange:i=>r({date:i.target.value}),disabled:this.props.disabled},this.dayOptions().map(i=>Ce.default.createElement("option",{key:e+"-date-"+i,value:i},i))),Ce.default.createElement("select",{value:n.getFullYear(),onChange:i=>r({year:i.target.value}),disabled:this.props.disabled},this.yearOptions().map(i=>Ce.default.createElement("option",{key:e+"-year-"+i,value:i},i))))}render(){return Ce.default.createElement("div",{className:"date-range-select"},Ce.default.createElement("input",{type:"hidden",name:this.props.objectName+"[starts_at]",value:this.startsAtToString()}),Ce.default.createElement("input",{type:"hidden",name:this.props.objectName+"[ends_at]",value:this.endsAtToString()}),Ce.default.createElement("div",{className:"date"},this.renderDateSelect("starts-at",this.state.startsAt,this.changeStartsAt),!this.props.disableTime&&Ce.default.createElement("input",{type:"text",size:"5",value:this.state.startTime,disabled:this.props.disabled,onChange:e=>this.setState({startTime:e.target.value}),onBlur:e=>this.changeStartsAt({time:e.target.value})})),Ce.default.createElement("span",{className:"to"},"to"),Ce.default.createElement("div",{className:"date"},this.renderDateSelect("ends-at",this.state.endsAt,this.changeEndsAt),!this.props.disableTime&&Ce.default.createElement("input",{type:"text",size:"5",value:this.state.endTime,disabled:this.props.disabled,onChange:e=>this.setState({endTime:e.target.value}),onBlur:e=>this.changeEndsAt({time:e.target.value})})))}timeToString(e){return e.toTimeString().slice(0,5)}yearOptions(){let e=2e3;return Array.apply(null,Array(new Date().getFullYear()-e+11)).map((n,r)=>r+e)}monthOptions(){return["January","February","March","April","May","June","July","August","September","October","November","December"]}dayOptions(){return Array.apply(null,Array(31)).map((e,n)=>n+1)}};yn.propTypes={startsAt:Gn.default.string,endsAt:Gn.default.string,disabled:Gn.default.bool,disableTime:Gn.default.bool,objectName:Gn.default.string};var _t=D(H()),zt=D(J());var En=D(H()),ir=D(J());var Ye=D(H()),Po=D(J());var tr=D(H()),wn=D(J()),yf=D(mf());var Zn=D(H());function my(t,e){let n=No(t),r=t.image,i=r.real_width/r.real_height;return e?(n.aspect=e,n.width=100,n.height=100/e*i,n.height>100&&(n.height=100,n.width=100*e/i),n.x=(100-n.width)/2,n.y=(100-n.height)/2):delete n.aspect,gf(t,n)}function gf(t,e){let{image:n}=t;return(e.width<5||e.height<5)&&(e={x:0,y:0,width:100,height:100}),e.aspect===null&&delete e.aspect,{aspect:e.aspect,crop_start_x:n.real_width*(e.x/100),crop_start_y:n.real_height*(e.y/100),crop_width:n.real_width*(e.width/100),crop_height:n.real_height*(e.height/100)}}function vf(t,e){let{crop_start_x:n,crop_start_y:r,crop_width:i,crop_height:o,crop_gravity_x:a,crop_gravity_y:s}=t;switch(e.type){case"completeCrop":return a<n||a>n+i||s<r||s>r+o?ne(j({},t),{cropping:!1,crop_gravity_x:null,crop_gravity_y:null}):ne(j({},t),{cropping:!1});case"setCrop":return j(j({},t),gf(t,e.payload));case"setAspect":return j(j({},t),my(t,e.payload));case"setFocal":return ne(j({},t),{crop_gravity_x:i*(e.payload.x/100)+n,crop_gravity_y:o*(e.payload.y/100)+r});case"startCrop":return ne(j({},t),{cropping:!0});case"toggleFocal":return a===null?vf(t,{type:"setFocal",payload:{x:50,y:50}}):ne(j({},t),{crop_gravity_x:null,crop_gravity_y:null});default:return t}}function gy(t,e){let n=document.createElement("canvas");n.width=t.naturalWidth*(e.width/100),n.height=t.naturalHeight*(e.height/100);let r=n.getContext("2d");return r.drawImage(t,t.naturalWidth*(e.x/100),t.naturalHeight*(e.y/100),t.naturalWidth*(e.width/100),t.naturalHeight*(e.height/100),0,0,t.naturalWidth*(e.width/100),t.naturalHeight*(e.height/100)),[n,r]}function vy(t,e){let n=e.getImageData(0,0,t.width,t.height).data;for(var r=0;r<n.length/4;r++)if(n[r*4+3]!==255)return t.toDataURL("image/png");return t.toDataURL("image/jpeg")}function Oo(t){let e=o=>a=>a===null?a:o(a),n=e(Math.round),r=e(Math.ceil),i={crop_start_x:n(t.crop_start_x),crop_start_y:n(t.crop_start_y),crop_width:r(t.crop_width),crop_height:r(t.crop_height),crop_gravity_x:n(t.crop_gravity_x),crop_gravity_y:n(t.crop_gravity_y)};return i.crop_start_x+i.crop_width>t.image.real_width&&(i.crop_width=t.image.real_width-i.crop_start_x),i.crop_start_y+i.crop_height>t.image.real_height&&(i.crop_height=t.image.real_height-i.crop_start_y),i}function No(t){let{image:e,aspect:n,crop_start_x:r,crop_start_y:i,crop_width:o,crop_height:a}=t,s=e.real_width/e.real_height,l=r/e.real_width*100,u=i/e.real_height*100;var p=o/e.real_width*100,m=a/e.real_height*100;return n&&p?m=p/n*s:n&&m&&(p=m*n/s),n===null?{x:l,y:u,width:p,height:m}:{x:l,y:u,width:p,height:m,aspect:n}}function ni(t){let[e,n]=(0,Zn.useReducer)(vf,{aspect:null,cropping:!1,crop_start_x:t.crop_start_x||0,crop_start_y:t.crop_start_y||0,crop_width:t.crop_width||t.real_width,crop_height:t.crop_height||t.real_height,crop_gravity_x:t.crop_gravity_x,crop_gravity_y:t.crop_gravity_y,image:t}),[r,i]=(0,Zn.useState)(null);async function o(){let a=new Image;a.src=e.image.uncropped_url,await a.decode();let[s,l]=gy(a,No(e));i(vy(s,l))}return(0,Zn.useEffect)(()=>{e.cropping||o()},[e.cropping]),[e,n,r]}var Jn=D(H()),er=D(J()),ri=class extends Jn.default.Component{constructor(e){super(e);this.state={dragging:!1,x:e.x,y:e.y},this.dragStart=this.dragStart.bind(this),this.dragEnd=this.dragEnd.bind(this),this.drag=this.drag.bind(this),this.container=Jn.default.createRef(),this.point=Jn.default.createRef()}clamp(e,n,r){return e<n?n:e>r?r:e}dragStart(e){e.preventDefault(),e.stopPropagation(),e.target==this.point.current&&this.setState({dragging:!0})}dragEnd(){this.state.dragging&&(this.setState({dragging:!1}),this.props.onChange({x:this.state.x,y:this.state.y}))}drag(e){if(this.state.dragging){let i=this.container.current.getBoundingClientRect();var n,r;e.preventDefault(),e.type=="touchmove"?(n=e.touches[0].clientX-(i.x||i.left),r=e.touches[0].clientY-(i.y||i.top)):(n=e.clientX-(i.x||i.left),r=e.clientY-(i.y||i.top)),n=this.clamp(n,0,this.props.width),r=this.clamp(r,0,this.props.height),this.setState({x:n/this.props.width*100,y:r/this.props.height*100})}}render(){let e=this.props.width*(this.state.x/100),n=this.props.height*(this.state.y/100),r={transform:`translate3d(${e}px, ${n}px, 0)`};return Jn.default.createElement("div",{className:"focal-editor",ref:this.container,onTouchStart:this.dragStart,onTouchEnd:this.dragEnd,onTouchMove:this.drag,onMouseDown:this.dragStart,onMouseUp:this.dragEnd,onMouseMove:this.drag},Jn.default.createElement("div",{className:"focal-point",style:r,ref:this.point}))}};ri.propTypes={x:er.default.number,y:er.default.number,onChange:er.default.func,width:er.default.number,height:er.default.number};function _o(t){let e=()=>{let{image:l,cropping:u,crop_width:p,crop_height:m}=t.cropState;return u?{width:l.real_width,height:l.real_height}:{width:p,height:m}},n=t.containerSize.width,r=t.containerSize.height,i=e().width/e().height;var o=n,a=n/i;a>r&&(a=r,o=r*i);let s={width:`${o}px`,height:`${a}px`};return t.cropState.cropping?tr.default.createElement("div",{className:"image-wrapper",style:s},tr.default.createElement(yf.default,{src:t.cropState.image.uncropped_url,crop:No(t.cropState),minWidth:10,minHeight:10,onChange:t.setCrop})):tr.default.createElement("div",{className:"image-wrapper",style:s},t.focalPoint&&tr.default.createElement(ri,{width:o,height:a,x:t.focalPoint.x,y:t.focalPoint.y,onChange:t.setFocal}),tr.default.createElement("img",{src:t.croppedImage}))}_o.propTypes={containerSize:wn.default.object,croppedImage:wn.default.string,cropState:wn.default.object,focalPoint:wn.default.object,setCrop:wn.default.func,setFocal:wn.default.func};var Ve=D(H()),nr=D(J());function Do(t){let{cropping:e}=t.cropState,n=[["Free",null],["1:1",1],["3:2",3/2],["2:3",2/3],["4:3",4/3],["3:4",3/4],["5:4",5/4],["4:5",4/5],["16:9",16/9]],r=s=>l=>{l.preventDefault(),t.setAspect(s)},i=Math.ceil(t.cropState.crop_width),o=Math.ceil(t.cropState.crop_height),a=t.image.content_type.split("/")[1].toUpperCase();return Ve.default.createElement("div",{className:"toolbars"},Ve.default.createElement("div",{className:"toolbar"},Ve.default.createElement("div",{className:"info"},Ve.default.createElement("span",{className:"format"},i,"x",o," ",a)),Ve.default.createElement("button",{title:"Crop image",onClick:t.toggleCrop,className:e?"active":""},Ve.default.createElement("i",{className:"fa-solid fa-crop"})),Ve.default.createElement("button",{disabled:e,title:"Toggle focal point",onClick:t.toggleFocal},Ve.default.createElement("i",{className:"fa-solid fa-bullseye"})),Ve.default.createElement("a",{href:t.image.original_url,className:"button",title:"Download original image",disabled:e,download:t.image.filename,onClick:s=>e&&s.preventDefault()},Ve.default.createElement("i",{className:"fa-solid fa-download"}))),e&&Ve.default.createElement("div",{className:"aspect-ratios toolbar"},Ve.default.createElement("div",{className:"label"},"Lock aspect ratio:"),n.map(s=>Ve.default.createElement("button",{key:"ratio-"+s[1],className:s[1]==t.cropState.aspect?"active":"",onClick:r(s[1])},s[0]))))}Do.propTypes={cropState:nr.default.object,image:nr.default.object,setAspect:nr.default.func,toggleCrop:nr.default.func,toggleFocal:nr.default.func};function yy(t){return t.crop_gravity_x===null||t.crop_gravity_y===null?null:{x:(t.crop_gravity_x-t.crop_start_x)/t.crop_width*100,y:(t.crop_gravity_y-t.crop_start_y)/t.crop_height*100}}function rr(t){let e=(0,Ye.useRef)(),[n,r]=(0,Ye.useState)(null),i=()=>{let u=e.current;u&&r({width:u.offsetWidth-2,height:u.offsetHeight-2})};(0,Ye.useEffect)(()=>(window.addEventListener("resize",i),function(){window.removeEventListener("resize",i)})),(0,Ye.useEffect)(i,[]);let o=u=>{t.dispatch({type:"setAspect",payload:u})},a=u=>{t.dispatch({type:"setCrop",payload:u})},s=u=>{t.dispatch({type:"setFocal",payload:u})},l=()=>{t.cropState.cropping?t.dispatch({type:"completeCrop"}):t.dispatch({type:"startCrop"})};return Ye.default.createElement("div",{className:"visual"},Ye.default.createElement(Do,{cropState:t.cropState,image:t.cropState.image,setAspect:o,toggleCrop:l,toggleFocal:()=>t.dispatch({type:"toggleFocal"})}),Ye.default.createElement("div",{className:"image-container",ref:e},!t.croppedImage&&Ye.default.createElement("div",{className:"loading"},"Loading image\u2026"),t.croppedImage&&n&&Ye.default.createElement(_o,{cropState:t.cropState,containerSize:n,croppedImage:t.croppedImage,focalPoint:yy(t.cropState),setCrop:a,setFocal:s})))}rr.propTypes={croppedImage:Po.default.string,cropState:Po.default.object,dispatch:Po.default.func};var ye=D(H()),yt=D(J());function Ao(t){let{alternative:e,caption:n,image:r,locale:i,locales:o}=t,a=u=>{u.preventDefault(),vt(`[image:${r.id}]`),Fe.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},s=u=>{t.setLocale(u.target.value)},l=o&&o[i]&&o[i].dir||"ltr";return ye.default.createElement("form",null,ye.default.createElement("div",{className:"field embed-code"},ye.default.createElement("label",null,"Embed code"),ye.default.createElement("input",{type:"text",value:`[image:${r.id}]`,disabled:!0}),Yr()&&ye.default.createElement("button",{onClick:a},"Copy")),o&&Object.keys(o).length>1&&ye.default.createElement("div",{className:"field"},ye.default.createElement("label",null,"Locale"),ye.default.createElement("select",{name:"locale",value:i,onChange:s},Object.keys(o).map(u=>ye.default.createElement("option",{key:`locale-${u}`,value:u},o[u].name)))),ye.default.createElement("div",{className:"field "+(e[i]?"":"field-with-warning")},ye.default.createElement("label",null,"Alternative text"),ye.default.createElement("span",{className:"description"},"For visually impaired users and search engines."),ye.default.createElement("textarea",{className:"alternative",lang:i,dir:l,value:e[i]||"",onChange:u=>t.updateLocalization("alternative",u.target.value)})),t.showCaption&&ye.default.createElement("div",{className:"field"},ye.default.createElement("label",null,"Caption"),ye.default.createElement("textarea",{lang:i,dir:l,onChange:u=>t.updateLocalization("caption",u.target.value),value:n[i]||"",className:"caption"})),ye.default.createElement("div",{className:"buttons"},ye.default.createElement("button",{onClick:t.save},"Save"),ye.default.createElement("button",{onClick:()=>je.dispatch({type:"CLOSE"})},"Cancel")))}Ao.propTypes={alternative:yt.default.object,caption:yt.default.object,image:yt.default.object,locale:yt.default.string,locales:yt.default.object,setLocale:yt.default.func,save:yt.default.func,showCaption:yt.default.bool,updateLocalization:yt.default.func};function Lo(t){let[e,n,r]=ni(t.image),[i,o]=(0,En.useState)(t.locale),[a,s]=(0,En.useState)({caption:t.image.caption||{},alternative:t.image.alternative||{}}),l=(p,m)=>{s(ne(j({},a),{[p]:ne(j({},a[p]),{[i]:m})}))},u=p=>{p.preventDefault(),p.stopPropagation();let m=j(j({},a),Oo(e));Wn(`/admin/images/${t.image.id}`,{image:m}),t.onUpdate&&t.onUpdate(m,r),je.dispatch({type:"CLOSE"})};return En.default.createElement("div",{className:"image-editor"},En.default.createElement(rr,{croppedImage:r,cropState:e,dispatch:n}),!e.cropping&&En.default.createElement(Ao,{alternative:a.alternative,caption:a.caption,image:t.image,locale:i,locales:t.locales,setLocale:o,save:u,showCaption:t.caption,updateLocalization:l}))}Lo.propTypes={image:ir.default.object,locale:ir.default.string,locales:ir.default.object,caption:ir.default.bool,onUpdate:ir.default.func};function Bt(t){let[e,n]=(0,_t.useState)(t.image),[r,i]=(0,_t.useState)(t.src),o=()=>{let u=e.crop_width||e.real_width,p=e.crop_height||e.real_height;return Math.round(p/u*t.width)},a=(u,p)=>{let m=j(j({},e),u);i(p),n(m),t.onUpdate&&t.onUpdate(m,p)},s=u=>{u.preventDefault(),je.dispatch({type:"OPEN",payload:_t.default.createElement(Lo,{image:e,caption:t.caption,locale:t.locale,locales:t.locales,onUpdate:a})})},l=!e.alternative[t.locale];return _t.default.createElement("div",{className:"editable-image"},l&&_t.default.createElement("span",{className:"alt-warning",title:"Alternative text is missing"},_t.default.createElement("i",{className:"fa-solid fa-triangle-exclamation icon"})),_t.default.createElement("img",{src:r,width:t.width,height:o(),onClick:s}))}Bt.propTypes={image:zt.default.object,src:zt.default.string,caption:zt.default.bool,locale:zt.default.string,locales:zt.default.object,width:zt.default.number,onUpdate:zt.default.func};var oe=D(H()),$t=D(J());var Rs=D(H()),or=D(J());function Mo(t){let{draggable:e,dragState:n,container:r}=t;if(e==="Files")return"";{let i=r.current.getBoundingClientRect(),o=n.x-(i.x||i.left),a=n.y-(i.y||i.top),s={transform:`translate3d(${o}px, ${a}px, 0)`};return Rs.default.createElement("div",{className:"drag-image",style:s},e.record.image&&Rs.default.createElement("img",{src:e.record.src||e.record.image.thumbnail_url}))}}Mo.propTypes={draggable:or.default.oneOfType([or.default.object,or.default.string]),dragState:or.default.object,container:or.default.object};var Us=D(H());function zs(){return Us.default.createElement("div",{className:"grid-image",key:"file-placeholder"},Us.default.createElement("div",{className:"file-placeholder"}))}var be=D(H()),Xe=D(J());var ar=D(H()),wf=D(J());function Io(t){return t.src?ar.default.createElement("div",{className:"temp-image"},ar.default.createElement("img",{src:t.src}),ar.default.createElement("span",null,"Uploading...")):ar.default.createElement("div",{className:"file-placeholder"},ar.default.createElement("span",null,"Uploading..."))}Io.propTypes={src:wf.default.string};function jo(t){let{attributeName:e,draggable:n}=t,r=n.record,i=r.image,[o,a]=(0,be.useState)(r.src||null),s=Yn(n,t.startDrag);(0,be.useEffect)(()=>{if(r.file){let m=new FileReader;m.onload=()=>a(m.result),m.readAsDataURL(r.file)}},[]);let l=m=>{m.preventDefault(),vt(`[image:${i.id}]`),Fe.dispatch({type:"NOTICE",message:"Embed code copied to clipboard"})},u=m=>{m.preventDefault(),t.deleteImage&&t.deleteImage()},p=["grid-image"];return t.placeholder&&p.push("placeholder"),r.file&&p.push("uploading"),be.default.createElement("div",j({className:p.join(" ")},s),be.default.createElement("input",{name:`${e}[id]`,type:"hidden",value:r.id||""}),be.default.createElement("input",{name:`${e}[image_id]`,type:"hidden",value:i&&i.id||""}),be.default.createElement("input",{name:`${e}[position]`,type:"hidden",value:t.position}),t.enablePrimary&&be.default.createElement("input",{name:`${e}[primary]`,type:"hidden",value:t.primary}),!i&&be.default.createElement(Io,{src:o}),i&&be.default.createElement(be.default.Fragment,null,be.default.createElement(Bt,{image:i,src:o||i.thumbnail_url,width:250,caption:!0,locale:t.locale,locales:t.locales,onUpdate:t.onUpdate}),be.default.createElement("div",{className:"actions"},t.showEmbed&&be.default.createElement("button",{onClick:l},"Embed"),t.deleteImage&&be.default.createElement("button",{onClick:u},"Remove"))))}jo.propTypes={draggable:Xe.default.object,deleteImage:Xe.default.func,startDrag:Xe.default.func,locale:Xe.default.string,locales:Xe.default.object,onUpdate:Xe.default.func,attributeName:Xe.default.string,placeholder:Xe.default.bool,enablePrimary:Xe.default.bool,showEmbed:Xe.default.bool,primary:Xe.default.bool,position:Xe.default.number};function Bs(t){let e=["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"];return t.filter(n=>e.indexOf(n.type)!==-1)}function Ef(t,e,n){let[r,...i]=Zr(t,n),o=[...i,...Zr(e,n)];return n.dragging&&[r,...o].indexOf(n.dragging)===-1&&(n.y<e.ref.current.getBoundingClientRect().top?o=[n.dragging,...o]:o.push(n.dragging)),[r,o]}function wy(t){let e=t.enablePrimary?t.records.filter(n=>n.primary).slice(0,1):[];return[e,t.records.filter(n=>e.indexOf(n)===-1)]}function sr(t){let[e,n]=wy(t),r=vn(e),i=vn(n),[o,a]=(0,oe.useState)([]),s=(0,oe.useRef)(),l=T=>{r.dispatch(T),i.dispatch(T)},u=(T,P)=>{let[Q,k]=Ef(r,i,T);if(r.dispatch({type:"reorder",payload:Q?[Q]:[]}),i.dispatch({type:"reorder",payload:k}),P){let b=Bs(P).map(I=>y(I));l({type:"insertFiles",payload:b})}},[p,m,h]=qn([r,i],u),E=T=>[...r.draggables.map(P=>P.record),...i.draggables.map(P=>P.record),...o].indexOf(T)+1,v=T=>`${t.attribute}[${E(T)}]`,y=T=>{let P=Kn({image:null,file:T}),Q=new FormData;return Q.append("image[file]",T),Hn("/admin/images.json",Q).then(k=>{k.status==="error"?(Fe.dispatch({type:"ERROR",message:"Error uploading image: "+k.error}),l({type:"remove",payload:P})):l({type:"update",payload:ne(j({},P),{record:{image:k}})})}),P},f=T=>P=>{let{record:Q}=T,k=ne(j({},T),{record:ne(j({},Q),{image:j(j({},Q.image),P)})});l({type:"update",payload:k})},d=T=>()=>{l({type:"remove",payload:T}),T.record.id&&a([...o,T.record])},c=(T,P)=>{let{dragging:Q}=p;return T==="Files"?oe.default.createElement(zs,{key:"placeholder"}):oe.default.createElement(jo,{key:T.handle,draggable:T,locale:t.locale,locales:t.locales,showEmbed:t.showEmbed,startDrag:m,position:E(T.record),primary:P,onUpdate:f(T),enablePrimary:t.enablePrimary,deleteImage:d(T),attributeName:v(T.record),placeholder:Q&&Q==T})},g=T=>{let[P,...Q]=Bs(T).map(k=>y(k));P&&(i.dispatch({type:"prepend",payload:[...r.draggables,...Q]}),r.dispatch({type:"replace",payload:[P]}))},w=T=>{i.dispatch({type:"append",payload:Bs(T).map(P=>y(P))})},M=["image-grid"];t.enablePrimary&&M.push("with-primary-image");let[O,R]=Ef(r,i,p);return oe.default.createElement("div",j({className:M.join(" "),ref:s},h),p.dragging&&oe.default.createElement(Mo,{draggable:p.dragging,dragState:p,container:s}),t.enablePrimary&&oe.default.createElement("div",{className:"primary-image",ref:r.ref},oe.default.createElement("h3",null,"Main image"),O&&oe.default.createElement(oe.default.Fragment,null,c(O,!0),t.primaryAttribute&&oe.default.createElement("input",{type:"hidden",name:t.primaryAttribute,value:O.record&&O.record.image&&O.record.image.id||""})),!O&&oe.default.createElement("div",{className:"drop-target"},oe.default.createElement(ct,{multiple:!0,type:"image",multiline:!0,callback:g}))),oe.default.createElement("div",{className:"grid",ref:i.ref},oe.default.createElement("h3",null,t.enablePrimary?"More images":"Images"),oe.default.createElement("div",{className:"drop-target"},oe.default.createElement(ct,{multiple:!0,type:"image",callback:w})),oe.default.createElement("div",{className:"images"},R.map(T=>c(T,!1)))),oe.default.createElement("div",{className:"deleted"},o.map(T=>oe.default.createElement("span",{className:"deleted-image",key:T.id},oe.default.createElement("input",{name:`${v(T)}[id]`,type:"hidden",value:T.id}),oe.default.createElement("input",{name:`${v(T)}[attachment_id]`,type:"hidden",value:T.image&&T.image.id||""}),oe.default.createElement("input",{name:`${v(T)}[_destroy]`,type:"hidden",value:!0})))))}sr.propTypes={attribute:$t.default.string,locale:$t.default.string,locales:$t.default.object,records:$t.default.array,enablePrimary:$t.default.bool,primaryAttribute:$t.default.string,showEmbed:$t.default.bool};var Re=D(H()),Dt=D(J());function Ey(t){var e=[];if(t.items)for(let n=0;n<t.items.length;n++)t.items[n].kind=="file"&&e.push(t.items[n].getAsFile());else for(let n=0;n<t.files.length;n++)e.push(t.files[n]);return e}function Fo(t){let[e,n]=(0,Re.useState)(!1),[r,i]=(0,Re.useState)(!1),[o,a]=(0,Re.useState)(t.image),[s,l]=(0,Re.useState)(t.src),u=d=>{d.preventDefault(),i(!0)},p=()=>{i(!1)},m=d=>{if(d.dataTransfer.items)for(var c=0;c<d.dataTransfer.items.length;c++)d.dataTransfer.items.remove(c);else d.dataTransfer.clearData();i(!1)},h=d=>{let c=Ey(d.dataTransfer);d.preventDefault(),c.length>0&&y(c[0])},E=d=>{d.preventDefault(),a(null),l(null)},v=d=>{d.length>0&&y(d[0])},y=d=>{if(["image/gif","image/jpeg","image/pjpeg","image/png","image/tiff"].indexOf(d.type)==-1){alert("Invalid file type, only images in JPEG, PNG or GIF formats are supported");return}let g=t.locale,w=t.locales?Object.keys(t.locales):[g],M=new FormData;a(null),l(null),i(!1),n(!0),M.append("image[file]",d),w.forEach(O=>{M.append(`image[alternative][${O}]`,t.alternative||"")}),Hn("/admin/images.json",M).then(O=>{n(!1),O.status==="error"?Fe.dispatch({type:"ERROR",message:"Error uploading image: "+O.error}):(l(O.thumbnail_url),a(O))})},f=["image-uploader"];return e?f.push("uploading"):r&&f.push("dragover"),Re.default.createElement("div",{className:f.join(" "),onDragOver:u,onDragLeave:p,onDragEnd:m,onDrop:h},Re.default.createElement("input",{type:"hidden",name:t.attr,value:o?o.id:""}),o&&Re.default.createElement("div",{className:"image"},Re.default.createElement(Bt,{image:o,src:s,width:t.width,caption:t.caption,locale:t.locale,locales:t.locales})),Re.default.createElement("div",{className:"ui-wrapper"},e&&Re.default.createElement("div",{className:"ui"},"Uploading image..."),!e&&Re.default.createElement("div",{className:"ui"},Re.default.createElement(ct,{type:"image",multiline:!0,callback:v}),o&&Re.default.createElement("a",{className:"delete remove-image",href:"#",onClick:E},"Remove image"))))}Fo.propTypes={locale:Dt.default.string,locales:Dt.default.object,image:Dt.default.object,src:Dt.default.string,width:Dt.default.number,caption:Dt.default.bool,attr:Dt.default.string,alternative:Dt.default.string};var lr=D(H());var Ro=class extends lr.default.Component{constructor(e){super(e);this.state={component:null},this.store=je,this.closeModal=this.closeModal.bind(this),this.handleChange=this.handleChange.bind(this),this.handleKeypress=this.handleKeypress.bind(this)}componentDidMount(){this.unsubscribe=this.store.subscribe(this.handleChange),window.addEventListener("keypress",this.handleKeypress)}componentWillUnmount(){this.unsubscribe(),window.removeEventListener("keypress",this.handleKeypress)}closeModal(e){e.stopPropagation(),e.preventDefault(),je.dispatch({type:"CLOSE"})}handleChange(){this.setState(j({},this.store.getState()))}handleKeypress(e){this.state.component&&(e.key=="Escape"||e.keyCode===27)&&this.closeModal(e)}render(){let e=this.state.component;if(e)document.body.classList.add("modal");else return document.body.classList.remove("modal"),lr.default.createElement("div",{className:"modal-wrapper"});return lr.default.createElement("div",{className:"modal-wrapper open"},lr.default.createElement("div",{className:"background",onClick:this.closeModal}),lr.default.createElement("div",{className:"modal"},e))}};var dt=D(H()),Uo=D(J());var ii=class extends dt.default.Component{constructor(e){super(e);this.state={has_dates:!!e.starts_at,all_day:!!e.all_day},this.toggleAllDay=this.toggleAllDay.bind(this),this.toggleHasDates=this.toggleHasDates.bind(this)}toggleHasDates(){this.setState({has_dates:!this.state.has_dates})}toggleAllDay(){this.setState({all_day:!this.state.all_day})}timeToString(e){return e.toTimeString().slice(0,5)}render(){return dt.default.createElement("div",{className:"page-dates field"},dt.default.createElement("input",{type:"hidden",name:"page[all_day]",value:this.state.has_dates&&this.state.all_day?"1":"0"}),dt.default.createElement("label",null,"Dates"),dt.default.createElement("div",{className:"toggles"},dt.default.createElement("label",{className:"has-dates-toggle"},dt.default.createElement("input",{type:"checkbox",checked:this.state.has_dates,onChange:this.toggleHasDates}),"Enabled"),dt.default.createElement("label",{className:!this.state.has_dates&&"disabled"},dt.default.createElement("input",{type:"checkbox",disabled:!this.state.has_dates,checked:this.state.all_day,onChange:this.toggleAllDay}),"All day event")),dt.default.createElement(yn,{objectName:"page",startsAt:this.props.starts_at,endsAt:this.props.ends_at,disabled:!this.state.has_dates,disableTime:this.state.all_day}))}};ii.propTypes={starts_at:Uo.default.string,ends_at:Uo.default.string,all_day:Uo.default.bool};var zo=D(H()),Bo=D(J());var oi=class extends zo.default.Component{render(){return zo.default.createElement("div",{className:"page-files"},zo.default.createElement(Qn,{attribute:"page[page_files_attributes]",showEmbed:!0,locale:this.props.locale,locales:this.props.locales,records:this.props.records}))}};oi.propTypes={locale:Bo.default.string,locales:Bo.default.object,records:Bo.default.array};var $o=D(H()),Vo=D(J());var ai=class extends $o.default.Component{render(){return $o.default.createElement("div",{className:"page-images"},$o.default.createElement(sr,{attribute:"page[page_images_attributes]",primaryAttribute:"page[image_id]",enablePrimary:!0,showEmbed:!0,locale:this.props.locale,locales:this.props.locales,records:this.props.records}))}};ai.propTypes={locale:Vo.default.string,locales:Vo.default.object,records:Vo.default.array};var $s=D(H()),si=D(J());var xn=D(H()),wt=D(J());var re=D(H()),ft=D(J()),Vt=class extends re.default.Component{constructor(e){super(e);this.state={newName:e.index.node.name},this.innerRef=re.default.createRef()}permitted(e){return this.node().permissions&&this.node().permissions.indexOf(e)!=-1}actions(){let e=this.node().status!=2?"Publish":"Hide",n=this.node().status!=2?"check":"ban";return this.node().editing?null:this.props.index.id===1?re.default.createElement("span",{className:"actions"},re.default.createElement("button",{type:"button",className:"add",onClick:()=>this.props.addChild(this.props.index)},re.default.createElement("i",{className:"fa-solid fa-plus icon"}),"Add child")):re.default.createElement("span",{className:"actions"},this.permitted("edit")&&this.button(e,{className:"toggle-status",icon:n,onClick:()=>this.toggleStatus()}),this.permitted("edit")&&this.button("Rename",{className:"edit",icon:"pencil",onClick:()=>this.edit()}),this.permitted("edit")&&this.button("Delete",{className:"delete",icon:"trash",onClick:()=>this.deletePage()}),this.permitted("create")&&this.button("Add child",{className:"add",icon:"plus",onClick:()=>this.props.addChild(this.props.index)}))}addButton(){let e=this,n=this.node(),r=function(){e.props.addChild&&e.props.addChild(e.props.index)};if(!n.collapsed&&this.permitted("create")&&(n.root||this.visibleChildren().length>0))return this.button("Add page here",{className:"add add-inline",icon:"plus",onClick:r})}button(e,n){let r="fa-solid fa-"+n.icon+" icon";return re.default.createElement("button",{type:"button",className:n.className,onClick:n.onClick},re.default.createElement("i",{className:r}),e)}childNodes(){let{index:e,tree:n,dragging:r,dir:i,locale:o}=this.props;if(e.children&&e.children.length&&!e.node.collapsed){var a={};return e.node.collapsed&&(a.display="none"),a.paddingLeft=this.props.paddingLeft+"px",re.default.createElement("div",{className:"children",style:a},e.children.map(s=>{var l=n.getIndex(s);return re.default.createElement(Vt,{tree:n,index:l,key:l.id,dragging:r,paddingLeft:this.props.paddingLeft,addChild:this.props.addChild,onCollapse:this.props.onCollapse,onDragStart:this.props.onDragStart,updatePage:this.props.updatePage,dir:i,locale:o})}))}return null}collapseArrow(){let e=this.props.index,n=this;if(!e.parent)return null;let r=function(o){o.stopPropagation();let a=n.props.index.id;n.props.onCollapse&&n.props.onCollapse(a)};if(this.visibleChildren().length>0){let o=e.node.collapsed;var i=null;return o?i="collapse fa-solid fa-caret-right":i="collapse fa-solid fa-caret-down",re.default.createElement("i",{className:i,onMouseDown:function(a){a.stopPropagation()},onClick:r})}return null}collapsedLabel(){if(this.node().collapsed&&this.node().children&&this.node().children.length>0){let e=this.node().children.length==1?"item":"items";return re.default.createElement("span",{className:"collapsed-label"},"(",this.node().children.length," ",e,")")}else return null}deletePage(){confirm("Are you sure you want to delete this page?")&&this.updatePage({status:4})}edit(){this.updatePage({editing:!0})}editUrl(e){return`/admin/${e.locale}/pages/${e.param}/edit`}node(){return this.props.index.node}pageName(){let e=this.node().name||re.default.createElement("i",{className:"untitled"},"Untitled");return re.default.createElement("span",{dir:this.props.dir,lang:this.props.locale},e)}render(){let e=this,n=this.props,r=n.index,i=n.dragging,o=this.node().editing;var a="node",s=o?this.renderEditNode():this.renderNode();r.id===i&&(a="node placeholder");let l=function(u){e.permitted("edit")&&!o&&n.onDragStart&&n.onDragStart(n.index.id,e.innerRef.current,u)};return this.node().status!=4?re.default.createElement("div",{className:a},re.default.createElement("div",{className:"inner",ref:this.innerRef,onMouseDown:l},this.collapseArrow(),s),this.childNodes(),this.addButton()):null}renderEditNode(){let{dir:e,locale:n}=this.props,r=this,i=function(s){r.setState({newName:s.target.value})},o=function(s){s.preventDefault(),r.updatePage({name:r.state.newName,editing:!1})},a=function(){r.setState({newName:r.node().name}),r.updatePage({editing:!1})};return re.default.createElement("div",{className:"page edit"},re.default.createElement("i",{className:"fa-regular fa-file icon"}),re.default.createElement("form",{onSubmit:o},re.default.createElement("input",{type:"text",value:this.state.newName,dir:e,lang:n,autoFocus:!0,onChange:i}),re.default.createElement("button",{className:"save",type:"submit"},re.default.createElement("i",{className:"fa-solid fa-cloud icon"}),"Save"),this.button("Cancel",{className:"cancel",icon:"ban",onClick:a})))}renderNode(){let n=this.props.index.node;var r=re.default.createElement("span",{className:"name"},this.pageName()),i="page",o="fa-regular fa-file icon";return typeof n.status<"u"&&(i=`page status-${this.node().status}`),n.id&&n.locale&&this.permitted("edit")&&(r=re.default.createElement("a",{href:this.editUrl(n),className:"name"},this.pageName())),n.news_page?o="fa-regular fa-file-lines icon":n.pinned&&(o="fa-regular fa-flag icon"),re.default.createElement("div",{className:i},re.default.createElement("i",{className:o}),r,this.statusLabel(),this.collapsedLabel(),this.actions())}statusLabel(){let e=["Draft","Reviewed","Published","Hidden","Deleted"];return typeof this.node().status<"u"&&this.node().status!=2?re.default.createElement("span",{className:"status-label"},"(",e[this.node().status],")"):""}toggleStatus(){this.node().status!=2?this.updatePage({status:2}):this.updatePage({status:3})}updatePage(e){if(this.props.updatePage)return this.props.updatePage(this.props.index,e)}visibleChildren(){return this.node().children?this.node().children.filter(e=>e.status!=4):[]}};Vt.propTypes={addChild:ft.default.func,dragging:ft.default.number,index:ft.default.object,onCollapse:ft.default.func,onDragStart:ft.default.func,paddingLeft:ft.default.number,tree:ft.default.object,updatePage:ft.default.func,locale:ft.default.string,dir:ft.default.string};var ur=class extends xn.default.Component{constructor(e){super(e);this.state={dragging:this.initDragging()}}initDragging(){return{id:null,x:null,y:null,w:null,h:null,scrollTop:null,scrollLeft:null}}getDraggingDom(){var e=this.props.tree,n=this.state.dragging;if(n&&n.id){var r=e.getIndex(n.id),i={top:n.y,left:n.x,width:n.w};return xn.default.createElement("div",{className:"draggable",style:i},xn.default.createElement(Vt,{tree:e,index:r,paddingLeft:this.props.paddingLeft}))}return null}render(){let{tree:e,dir:n,locale:r}=this.props;var i=this.state.dragging;if(e){var o=e.getIndex(1);return xn.default.createElement("div",{className:"page-tree"},this.getDraggingDom(),xn.default.createElement(Vt,{tree:e,index:o,key:o.id,paddingLeft:this.props.paddingLeft,addChild:a=>this.addChild(a),onDragStart:(a,s,l)=>this.dragStart(a,s,l),onCollapse:a=>this.toggleCollapse(a),updatePage:(a,s)=>this.updatePage(a,s),dragging:i&&i.id,dir:n,locale:r}))}else return xn.default.createElement("div",{className:"page-tree"},this.getDraggingDom())}addChild(e){let n={name:"",status:0,editing:!0,children:[],published_at:new Date,pinned:!1,locale:e.node.locale,parent_page_id:e.node.id};this.props.addChild(e.id,n)}prevAddButtonCount(e,n){let r=0,i=[],o=e.getIndex(n.parent);for(;o;)i.push(o),o=e.getIndex(o.parent);for(o=n,o=e.getNodeByTop(n.top-1);o;)i.indexOf(o)==-1&&!o.node.collapsed&&o.node.children.filter(a=>a.status!=4).length>0&&(r+=1),o=e.getNodeByTop(o.top-1);return r}scrollOffset(){let e=this.state.dragging;return{top:document.body.scrollTop-e.scrollTop,left:document.body.scrollLeft-e.scrollLeft}}drag(e){if(this._start){var n=Math.abs(e.clientX-this._offsetX)+Math.abs(e.clientY-this._offsetY);if(n>=15)this.setState({dragging:this.dragging}),this._start=!1;else return null}var r=this.props.tree,i=this.state.dragging,o=this.props.paddingLeft,a=null,s=r.getIndex(i.id),l=s.node.collapsed,u=this._startX,p=this._startY,m=this._offsetX,h=this._offsetY,E={x:u+e.clientX-m+this.scrollOffset().left,y:p+e.clientY-h+this.scrollOffset().top};i.x=E.x,i.y=E.y;var v=i.x-o/2-(s.left-2)*o,y=i.y-i.h/2-(s.top-2+this.prevAddButtonCount(r,s))*i.h;if(v<0)s.parent&&!s.next&&(a=r.move(s.id,s.parent,"after"));else if(v>o&&s.prev){var f=r.getIndex(s.prev);!f.node.leaf&&!f.node.collapsed&&(a=r.move(s.id,s.prev,"append"))}if(a&&(s=a,a.node.collapsed=l,i.id=a.id),y<0-i.h*.5){var d=r.getNodeByTop(s.top-1);a=r.move(s.id,d.id,"before")}else if(y>i.h*1.5){let c=s.next?r.getIndex(s.next):r.getNodeByTop(s.top+s.height);c&&c.parent!==s.id&&(c.children&&c.children.length&&!c.node.collapsed?a=r.move(s.id,c.id,"prepend"):a=r.move(s.id,c.id,"after"))}a&&(a.node.collapsed=l,i.id=a.id),this.setState({dragging:i})}dragStart(e,n,r){if(r.button===0){this.dragging={id:e,w:n.offsetWidth,h:n.offsetHeight,x:n.offsetLeft,y:n.offsetTop,scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft},this._startX=n.offsetLeft,this._startY=n.offsetTop,this._offsetX=r.clientX,this._offsetY=r.clientY,this._start=!0;var i=this;this._dragListener=o=>i.drag(o),this._dragEndListener=()=>i.dragEnd(),window.addEventListener("mousemove",this._dragListener),window.addEventListener("mouseup",this._dragEndListener)}}dragEnd(){this._start||(this.props.updateTree(this.props.tree),this.props.movedPage(this.state.dragging.id)),this.setState({dragging:this.initDragging()}),window.removeEventListener("mousemove",this._dragListener),window.removeEventListener("mouseup",this._dragEndListener)}toggleCollapse(e){this.props.toggleCollapsed(e)}updatePage(e,n){this.props.updatePage(e.id,n)}};ur.defaultProps={paddingLeft:15};ur.propTypes={tree:wt.default.object,addChild:wt.default.func,movedPage:wt.default.func,toggleCollapsed:wt.default.func,paddingLeft:wt.default.number,updatePage:wt.default.func,updateTree:wt.default.func,locale:wt.default.string,dir:wt.default.string};var Wo=class{constructor(e){this.cnt=1,this.obj=e||{children:[]},this.indexes={},this.build(this.obj)}build(e){var n=this.indexes,r=this.cnt,i=this,o={id:r,node:e};n[this.cnt+""]=o,this.cnt++,e.children&&e.children.length&&a(e.children,o);function a(s,l){var u=[];s.forEach(function(p){var m={};m.id=i.cnt,m.node=p,l&&(m.parent=l.id),n[i.cnt+""]=m,u.push(i.cnt),i.cnt++,p.children&&p.children.length&&a(p.children,m)}),l.children=u,u.forEach(function(p,m){var h=n[p+""];m>0&&(h.prev=u[m-1]),m<u.length-1&&(h.next=u[m+1])})}return o}getIndex(e){var n=this.indexes[e+""];if(n)return n}removeIndex(e){var n=this;r(e);function r(i){delete n.indexes[i.id+""],i.children&&i.children.length&&i.children.forEach(function(o){r(n.getIndex(o))})}}get(e){var n=this.getIndex(e);return n&&n.node?n.node:null}remove(e){var n=this.getIndex(e),r=this.get(e),i=this.getIndex(n.parent),o=this.get(n.parent);return o.children.splice(o.children.indexOf(r),1),i.children.splice(i.children.indexOf(e),1),this.removeIndex(n),this.updateChildren(i.children),r}updateChildren(e){e.forEach(function(n,r){var i=this.getIndex(n);i.prev=i.next=null,r>0&&(i.prev=e[r-1]),r<e.length-1&&(i.next=e[r+1])}.bind(this))}insert(e,n,r){var i=this.getIndex(n),o=this.get(n),a=this.build(e);return a.parent=n,o.children=o.children||[],i.children=i.children||[],o.children.splice(r,0,e),i.children.splice(r,0,a.id),this.updateChildren(i.children),i.parent&&this.updateChildren(this.getIndex(i.parent).children),a}insertBefore(e,n){var r=this.getIndex(n),i=r.parent,o=this.getIndex(i).children.indexOf(n);return this.insert(e,i,o)}insertAfter(e,n){var r=this.getIndex(n),i=r.parent,o=this.getIndex(i).children.indexOf(n);return this.insert(e,i,o+1)}prepend(e,n){return this.insert(e,n,0)}append(e,n){var r=this.getIndex(n);return r.children=r.children||[],this.insert(e,n,r.children.length)}updateNodesPosition(){var e=1,n=1,r=this.getIndex(1),i=this;r.top=e++,r.left=n++,r.children&&r.children.length&&o(r.children,r,n,r.node.collapsed);function o(a,s,l,u){var p=1;return a.forEach(function(m){var h=i.getIndex(m);u?(h.top=null,h.left=null):(h.top=e++,h.left=l),h.children&&h.children.length?p+=o(h.children,h,l+1,u||h.node.collapsed):(h.height=1,p+=1)}),s.node.collapsed?s.height=1:s.height=p,s.height}}move(e,n,r){if(!(e===n||n===1)){var i=this.remove(e),o=null;return r==="before"?o=this.insertBefore(i,n):r==="after"?o=this.insertAfter(i,n):r==="prepend"?o=this.prepend(i,n):r==="append"&&(o=this.append(i,n)),this.updateNodesPosition(),o}}getParent(e){var n=this.indexes;if(Object.prototype.hasOwnProperty.call(n,e))return this.getIndex(n[e].parent)}getNodeByTop(e){var n=this.indexes;for(var r in n)if(Object.prototype.hasOwnProperty.call(n,r)&&n[r].top===e)return n[r]}};var li=class extends $s.default.Component{constructor(e){super(e);this.state={tree:this.buildTree(e.pages)},this.addChild=this.addChild.bind(this),this.movedPage=this.movedPage.bind(this),this.toggleCollapsed=this.toggleCollapsed.bind(this),this.updatePage=this.updatePage.bind(this),this.updateTree=this.updateTree.bind(this)}addChild(e,n){let r=this.state.tree;var i=r.append(n,e);this.reorderChildren(e),this.setCollapsed(e,!1),this.createPage(i,n),this.setState({tree:r})}movedPage(e){let n=this.state.tree,r=n.getIndex(e);this.reorderChildren(r.parent);let i=n.getIndex(r.parent),o=i.children.indexOf(e)+1;this.movePage(r,i,o),this.setState({tree:n})}toggleCollapsed(e){let n=this.state.tree;var r=n.getIndex(e).node;this.setCollapsed(e,!r.collapsed),this.setState({tree:n})}updatePage(e,n){let i=this.state.tree.getIndex(e),o=`/admin/${i.node.locale}/pages/${i.node.id}.json`;this.updateNode(i,n),this.performUpdate(i,o,{page:n})}updateTree(e){this.setState({tree:e})}applyCollapsed(e){let n=(o,a)=>{var s=0;let l=o.getIndex(a.parent);for(;l;)s+=1,l=o.getIndex(l.parent);return s},r=this.collapsedState(),i=function(o){var a=e.getIndex(o),s=a.node;Object.prototype.hasOwnProperty.call(r,s.id)?s.collapsed=r[s.id]:(s.news_page||n(e,a)>1)&&(s.collapsed=!0),a.children&&a.children.length&&a.children.forEach(l=>i(l))};i(1)}collapsedState(){return window&&window.localStorage&&typeof window.localStorage.collapsedPages<"u"?JSON.parse(window.localStorage.collapsedPages):{}}createPage(e,n){Nd(`/admin/${e.node.locale}/pages.json`,{page:n}).then(r=>this.updateNode(e,r))}buildTree(e){let n=e.reduce((i,o)=>{let a=o.parent_page_id;return i[a]=[...i[a]||[],o],i},{});e.forEach(i=>i.children=n[i.id]||[]);let r=new Wo({name:"All Pages",locale:this.props.locale,permissions:this.props.permissions,root:!0,children:n[null]});return this.applyCollapsed(r),r.updateNodesPosition(),r}movePage(e,n,r){let i={parent_id:n.node.id,position:r},o=`/admin/${e.node.locale}/pages/${e.node.id}/move.json`;this.performUpdate(e,o,i)}performUpdate(e,n,r){Wn(n,r).then(i=>this.updateNode(e,i))}render(){return $s.default.createElement(ur,{tree:this.state.tree,addChild:this.addChild,movedPage:this.movedPage,toggleCollapsed:this.toggleCollapsed,updatePage:this.updatePage,updateTree:this.updateTree,locale:this.props.locale,dir:this.props.dir})}reorderChildren(e){let n=this.state.tree;var r=this.state.tree.getIndex(e),i=r.node;!i.news_page||(r.children=r.children.sort(function(o,a){var s=n.getIndex(o).node,l=n.getIndex(a).node;return s.pinned==l.pinned?new Date(l.published_at)-new Date(s.published_at):s.pinned?-1:1}),n.updateNodesPosition())}setCollapsed(e,n){var r=this.state.tree.getIndex(e).node;r.collapsed=n,this.storeCollapsed(e,r.collapsed),this.state.tree.updateNodesPosition()}storeCollapsed(e,n){let r=this.state.tree.getIndex(e).node;var i=this.collapsedState();i[r.id]=n,window.localStorage.collapsedPages=JSON.stringify(i)}updateNode(e,n){for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e.node[r]=n[r]);this.setState({tree:this.state.tree})}};li.propTypes={pages:si.default.array,locale:si.default.string,dir:si.default.string,permissions:si.default.array};var Sn=D(H()),Wt=D(J());var Ho=D(H()),Ko=D(J()),ui=class extends Ho.default.Component{render(){return Ho.default.createElement("a",{title:this.props.name,className:"button "+this.props.className,onClick:this.props.onClick},Ho.default.createElement("i",{className:"fa-solid fa-"+this.props.className}))}};ui.propTypes={className:Ko.default.string,name:Ko.default.string,onClick:Ko.default.func};var Cn=class extends Sn.default.Component{constructor(e){super(e);this.state={value:e.value||"",rows:e.rows||5},this.inputRef=Sn.default.createRef(),this.handleChange=this.handleChange.bind(this),this.handleKeyPress=this.handleKeyPress.bind(this),this.getSelection=this.getSelection.bind(this),this.link=this.link.bind(this),this.replaceSelection=this.replaceSelection.bind(this)}actions(){let e=[{name:"bold",className:"bold",hotkey:"b",fn:r=>["<b>",r,"</b>"]},{name:"italic",className:"italic",hotkey:"i",fn:r=>["<i>",r,"</i>"]}],n=[{name:"Heading 2",className:"header h2",fn:r=>["h2. ",r,""]},{name:"Heading 3",className:"header h3",fn:r=>["h3. ",r,""]},{name:"Heading 4",className:"header h4",fn:r=>["h4. ",r,""]},{name:"Blockquote",className:"quote-left",fn:r=>["bq. ",r,""]},{name:"List",className:"list-ul",fn:r=>["",this.strToList(r,"*"),""]},{name:"Ordered list",className:"list-ol",fn:r=>["",this.strToList(r,"#"),""]},{name:"Link",className:"link",fn:this.link},{name:"Email link",className:"envelope",fn:this.emailLink}];return this.props.simple?e:[...e,...n]}applyAction(e){let[n,r,i]=e(this.getSelection());this.replaceSelection(n,r,i)}emailLink(e){var n=prompt("Enter email address","");let r=e.length>0?e:n;return['"',r,`":mailto:${n}`]}getSelection(){let{selectionStart:e,selectionEnd:n,value:r}=this.inputRef.current;return r.substr(e,n-e)}handleChange(e){this.setState({value:e.target.value})}handleKeyPress(e){let n;e.which>=65&&e.which<=90?n=String.fromCharCode(e.keyCode).toLowerCase():e.keyCode===13&&(n="enter");let r={};this.actions().forEach(i=>{i.hotkey&&(r[i.hotkey]=i.fn)}),(e.metaKey||e.ctrlKey)&&Object.prototype.hasOwnProperty.call(r,n)&&(e.preventDefault(),this.applyAction(r[n]))}link(e){let n=e.length>0?e:"Link text";var r=prompt("Enter link URL","");return r?['"',n,`":${this.relativeUrl(r)}`]:["",n,""]}localeOptions(){let e={};return this.props.lang&&(e.lang=this.props.lang),this.props.dir&&(e.dir=this.props.dir),e}relativeUrl(e){let n=null;if(!e.match(/^https:\/\//)||!document||!document.location)return e;try{n=new URL(e)}catch(r){console.log("Error parsing URL: ",r)}return n&&n.hostname==document.location.hostname&&(document.location.port||"80")==(n.port||"80")?n.pathname:e}render(){let{value:e,rows:n}=this.state,{id:r,name:i}=this.props,o=a=>s=>{s.preventDefault(),this.applyAction(a)};return Sn.default.createElement("div",{className:"rich-text-area"},Sn.default.createElement("div",{className:"rich-text toolbar"},this.actions().map(a=>Sn.default.createElement(ui,{key:a.name,name:a.name,className:a.className,onClick:o(a.fn)}))),Sn.default.createElement("textarea",j({className:"rich",ref:this.inputRef,id:r,name:i,value:e,rows:n,onChange:this.handleChange,onKeyDown:this.handleKeyPress},this.localeOptions())))}replaceSelection(e,n,r){let i=this.inputRef.current,{selectionStart:o,selectionEnd:a,value:s}=i;i.value=s.substr(0,o)+e+n+r+s.substr(a,s.length),i.focus({preventScroll:!0}),i.setSelectionRange(o+e.length,o+e.length+n.length),this.setState({value:i.value})}strToList(e,n){return e.split(`
17
17
  `).map(r=>n+" "+r).join(`
18
18
  `)}};Cn.propTypes={id:Wt.default.string,name:Wt.default.string,value:Wt.default.string,rows:Wt.default.number,simple:Wt.default.bool,lang:Wt.default.string,dir:Wt.default.string};var Ht=D(H()),Qo=D(J());var cr=D(H()),xf=D(J());function qo(t){let[e,n]=(0,cr.useState)(""),r=a=>{a.preventDefault(),t.addTag(e),n("")};return cr.default.createElement("div",{className:"add-tag-form"},cr.default.createElement("input",{name:"add-tag",type:"text",className:"add-tag",value:e,onKeyDown:a=>{a.which===13&&r(a)},onChange:a=>{n(a.target.value)},placeholder:"Add tag..."}),cr.default.createElement("button",{onClick:r,disabled:!e},"Add"))}qo.propTypes={addTag:xf.default.func};var ci=D(H()),Yo=D(J());function Xo(t){let e=()=>{t.toggleEnabled(t.tag)},n=["tag"];return t.enabled&&n.push("enabled"),ci.default.createElement("span",{className:n.join(" ")},ci.default.createElement("label",{className:"check-box"},ci.default.createElement("input",{type:"checkbox",name:"tag-"+t.tag,value:"1",checked:t.enabled,onChange:e}),ci.default.createElement("span",{className:"name"},t.tag)))}Xo.propTypes={enabled:Yo.default.bool,tag:Yo.default.string,toggleEnabled:Yo.default.func};function Vs(t,e,n){return n.indexOf(t)===e}function Go(t){let[e,n]=(0,Ht.useState)(t.tags),[r,i]=(0,Ht.useState)(t.enabled),o=[...e,...r].filter(Vs),a=p=>o.filter(m=>m.toLowerCase()==p.toLowerCase())[0]||p,s=p=>r.map(m=>m.toLowerCase()).indexOf(p.toLowerCase())!==-1,l=p=>{let m=a(p);s(m)?i(r.filter(h=>h!==m)):i([...r,m])},u=p=>{let m=a(p);n([...e,m].filter(Vs)),i([...r,m].filter(Vs))};return Ht.default.createElement("div",{className:"tag-editor clearfix"},Ht.default.createElement("input",{type:"hidden",name:t.name,value:JSON.stringify(r)}),o.map(p=>Ht.default.createElement(Xo,{key:p,tag:p,enabled:s(p),toggleEnabled:l})),Ht.default.createElement(qo,{addTag:u}))}Go.propTypes={name:Qo.default.string,enabled:Qo.default.array,tags:Qo.default.array};var Zo=D(H()),Ws=D(J());var di=class extends Zo.default.Component{constructor(e){super(e);this.state={toast:void 0,fadeout:!1},this.store=Fe,this.timer=void 0,this.handleChange=this.handleChange.bind(this)}componentDidMount(){this.unsubscribe=this.store.subscribe(this.handleChange),this.props.error&&this.store.dispatch({type:"ERROR",message:this.props.error}),this.props.notice&&this.store.dispatch({type:"NOTICE",message:this.props.notice})}componentWillUnmount(){this.unsubscribe(),this.timer&&clearTimeout(this.timer)}handleChange(){this.setState({toast:this.store.getState()[0],fadeout:!1}),this.timer||(this.timer=setTimeout(()=>{this.setState({fadeout:!0}),this.timer=setTimeout(()=>{this.timer=void 0,this.setState({fadeout:!1}),this.store.dispatch({type:"NEXT"})},500)},4e3))}render(){let e=this.state.toast,n=["toast"];return e&&(n.push(e.type),this.state.fadeout&&n.push("fadeout")),Zo.default.createElement("div",{className:"toast-wrapper","aria-live":"polite"},e&&Zo.default.createElement("div",{className:n.join(" ")},e.message))}};di.propTypes={notice:Ws.default.string,error:Ws.default.string};var ea=class extends Ze{static get targets(){return["form"]}preview(){let e=this.formTarget,n=e.action,r=e.target;e.target="_blank",e.action=e.dataset.previewUrl,e.submit(),e.action=n,e.target=r}};var ta=class extends Ze{static get targets(){return["tab","link"]}connect(){let e=this.tabNames();if(e.length>0){let n=null,r=/#(.*)$/;if(document.location.toString().match(r)){let i=document.location.toString().match(r)[1];e.indexOf(i)!==-1&&(n=i)}this.showTab(n||e[0])}window.addEventListener("popstate",this.stateHandler.bind(this))}disconnect(){window.removeEventListener("popstate",this.stateHandler.bind(this))}stateHandler(e){e.state&&e.state.tabId&&this.showTab(e.state.tabId)}changeTab(e){e.preventDefault();let n=e.target.dataset.tab;this.showTab(n),history.pushState({tabId:n},"",`${window.location.pathname}#${n}`)}showTab(e){this.linkTargets.forEach(n=>{n.dataset.tab==e?n.classList.add("current"):n.classList.remove("current")}),this.tabTargets.forEach(n=>{n.dataset.tab==e?n.classList.remove("hidden"):n.classList.add("hidden")})}tabNames(){return this.linkTargets.map(e=>e.dataset.tab)}};var na=class extends Ze{static get targets(){return["tab"]}connect(){this.tabTargets.length>0&&this.showTab(this.tabTargets[0].dataset.tab)}changeTab(e){e.preventDefault(),this.showTab(e.target.dataset.tab)}showTab(e){this.tabTargets.forEach(n=>{n.dataset.tab==e?n.classList.remove("hidden"):n.classList.add("hidden")})}};var ra=class extends Ze{static get targets(){return["advancedOptions","autoPublishNotice","published","publishedDate"]}connect(){this.checkAutoPublish(),this.checkPublishedDate()}checkAutoPublish(){this.publishedDate()>new Date?this.show(this.autoPublishNoticeTarget):this.hide(this.autoPublishNoticeTarget)}checkPublishedDate(){this.publishedTarget.value==2?this.show(this.publishedDateTarget):this.hide(this.publishedDateTarget)}publishedDate(){let e=n=>this.publishedDateTarget.getElementsByClassName(n)[0].value;return new Date(e("year"),e("month")-1,e("day"),e("hour"),e("minute"))}show(e){e.classList.add("show")}hide(e){e.classList.remove("show")}toggle(e){e.classList.contains("show")?this.hide(e):this.show(e)}toggleAdvancedOptions(e){e.preventDefault(),this.toggle(this.advancedOptionsTarget)}};var xm=D(H()),Sm=D(tc());var nc=[],ym=()=>{if(["interactive","complete"].indexOf(document.readyState)>-1)for(;nc.length>0;)nc.shift()()},wm=class{constructor(){document.onreadystatechange=ym}ready(e){nc.push(e),ym()}},Em=new wm;var Cm=class{apply(){document.querySelectorAll("textarea.rich").forEach(n=>{this.enhance(n)})}enhance(e){let n=document.createElement("div");e.parentNode.appendChild(n),Sm.default.render(xm.default.createElement(Cn,{value:e.value,name:e.name,rows:e.rows,id:e.id}),n),e.parentNode.removeChild(e)}start(){Em.ready(()=>{this.apply()})}},bm=new Cm;wg();function Ww(t,e){window[t]=e}function yc(){Eg.default.start();for(var t in Jo)Ww(t,Jo[t]);bm.start();let e=Kr.start();e.register("edit-page",ea),e.register("main",ta),e.register("login",na),e.register("page-options",ra)}yc();})();
19
19
  /*
@@ -53,3 +53,4 @@ object-assign
53
53
  * This source code is licensed under the MIT license found in the
54
54
  * LICENSE file in the root directory of this source tree.
55
55
  */
56
+ //# sourceMappingURL=admin-dist.js.map