The Ultimate Video Player For WordPress – by Presto Player - Version 1.9.8

Version Description

  • May 31, 2022
Download this release

Release Info

Developer patilvikasj
Plugin Icon 128x128 The Ultimate Video Player For WordPress – by Presto Player
Version 1.9.8
Comparing to
See all releases

Code changes from version 1.9.7 to 1.9.8

dist/blocks/admin-75e32e72.js ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*!
2
+ *
3
+ * Presto Player
4
+ *
5
+ * @author Presto Made, Inc
6
+ * @version 0.1.0
7
+ * @link undefined
8
+ * @license GPL
9
+ *
10
+ * Copyright (c) 2022 Presto Made, Inc
11
+ *
12
+ * This software is released under the GPL License
13
+ * https://opensource.org/licenses/GPL
14
+ *
15
+ * Compiled with the help of https://wpack.io
16
+ * A zero setup Webpack Bundler Script for WordPress
17
+ */
18
+ (window.wpackioprestoPlayerblocksJsonp=window.wpackioprestoPlayerblocksJsonp||[]).push([[0],[,,,function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=window.wp.components},,,,,function(e,t,r){"use strict";r.d(t,"f",(function(){return l})),r.d(t,"d",(function(){return c})),r.d(t,"e",(function(){return i})),r.d(t,"c",(function(){return s})),r.d(t,"b",(function(){return p})),r.d(t,"a",(function(){return u}));var n=wp.element,a=n.useRef,o=n.useEffect;function l(e){var t=a();return o((function(){t.current=e})),t.current}function c(e){var t=e.status,r=void 0===t?"success":t,n=e.message;wp.data.dispatch("core/notices").createNotice(r,n,{type:"snackbar"})}function i(e){var t,r=e.split(":");return r.length>1&&(t=60*parseInt(r[0])),parseInt(r[1])+parseInt(t)}function s(e){var t=parseInt(e,10),r=Math.floor(t/60);return t<10&&(t="0"+t),r+":"+t}function p(e){var t=e;if(!(t=t.replace(/[^\d\d:\d\d.-]/g,"")).includes(":"))return"".concat(t,":00");0===t.substr(0,t.indexOf(":")).length&&(t="0".concat(t));var r=t.indexOf(":");return t=t.substring(0,r+3)}function u(e){if(e){if(e.match(/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/))return"youtube";if(e.match(/(https?:\/\/)?(www\.)?(player\.)?vimeo\.com\/([a-z]*\/)*([‌​0-9]{6,11})[?]?.*/))return"vimeo";if(e.indexOf("https://vz-")>-1&&e.indexOf("b-cdn.net")>-1)return"bunny";if(e.indexOf(".mp3")>-1)return"audio"}return"self-hosted"}},,function(e,t,r){"use strict";var n=wp.i18n.__;t.a=function(){return React.createElement("div",{className:"presto-player__pro-badge"},n("Pro","presto-player"))}},function(e,t,r){"use strict";var n=r(1),a=r(0),o=wp.components,l=o.ColorPicker,c=o.ColorIndicator,i=o.Popover,s=o.Button,p=(o.Flex,wp.element),u=p.useState,d=p.useEffect,b=wp.i18n.__;t.a=function(e){var t=e.color,r=e.setColor,o=e.onFocus,p=u(!1),m=Object(n.a)(p,2),y=m[0],f=m[1],v=u(t),h=Object(n.a)(v,2),O=h[0],g=h[1];return d((function(){y&&t&&g(t)}),[y]),Object(a.c)("span",null,Object(a.c)(c,{css:{width:"25px",height:"25px",borderRadius:"9999px"},colorValue:t,onClick:function(){f(!y),o&&o()}}),!!y&&Object(a.c)(i,{position:"bottom left",focusOnMount:!0,onFocusOutside:function(e){f(!1)}},Object(a.c)(l,{color:t||"",onChangeComplete:function(e){return(null==e?void 0:e.hex)&&r(e)},disableAlpha:!0}),Object(a.c)("div",{css:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px"}},Object(a.c)(s,{css:{margin:"0 5px"},isTertiary:!0,onClick:function(){r({hex:null}),f(!1)}},b("Reset","presto-player")),Object(a.c)("div",{css:{display:"flex",justifyContent:"flex-end",padding:"10px"}},Object(a.c)(s,{css:{margin:"0 5px"},isTertiary:!0,onClick:function(){r({hex:O}),f(!1)}},b("Cancel","presto-player")),Object(a.c)(s,{isPrimary:!0,onClick:function(){return f(!1)}},b("Apply","presto-player"))))))}},function(e,t){e.exports=window.wp.element},function(e,t,r){"use strict";var n=r(5),a=r(26),o=r(9);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var i=wp.data.useSelect;t.a=function(e){var t,r,n,l=e.src,s=e.classes,p=e.preset,u=e.branding,d=e.attributes,b=e.adminPreview,m=e.currentTime,y=e.preload,f=void 0===y?"metadata":y,v=e.overlays,h=e.type,O=d.chapters,g=d.mutedOverlay,j=d.mutedPreview,w=i((function(e){var t;return null===(t=e("presto-player/player"))||void 0===t?void 0:t.youtube()})),_=i((function(e){var t;return null===(t=e("presto-player/player"))||void 0===t?void 0:t.playerCSS()}));return React.createElement("div",{className:"wp-block-video presto-block-video",style:"audio"===h?c(c(c({"--presto-player-border-radius":"".concat(null==p?void 0:p.border_radius,"px")},null!=p&&p.background_color?{"--plyr-audio-controls-background":p.background_color}:{"--plyr-audio-controls-background":null==u?void 0:u.color}),null!=p&&p.control_color?{"--plyr-audio-control-color":p.control_color,"--plyr-range-thumb-background":p.control_color,"--plyr-range-fill-background":p.control_color,"--plyr-audio-progress-buffered-background":function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=e.replace("#","");3===r.length&&(r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var n=parseInt(r.substring(0,2),16),a=parseInt(r.substring(2,4),16),o=parseInt(r.substring(4,6),16);return t>1&&t<=100&&(t/=100),"rgba("+n+","+a+","+o+","+t+")"}(p.control_color||(null==u?void 0:u.color)||"#00b3ff",.5)}:{"--plyr-audio-control-color":"#ffffff","--plyr-range-thumb-background":"#ffffff","--plyr-range-fill-background":"#ffffff"}),{},{"--plyr-range-thumb-shadow":"0px"}):c(c(c({"--presto-player-border-radius":"".concat(null==p?void 0:p.border_radius,"px")},null!=p&&p.caption_background?{"--plyr-captions-background":p.caption_background}:{}),null!=u&&u.color?{"--plyr-color-main":u.color}:{}),{},{"--presto-player-email-border-radius":"".concat((null==p||null===(t=p.email_collection)||void 0===t?void 0:t.border_radius)||0,"px"),"--presto-player-logo-width":"".concat((null==u?void 0:u.logo_width)||75,"px")})},React.createElement(a.c,{src:l,css:_,classes:s,currentTime:m,overlays:v,isAdmin:!0,preload:f,preset:p,bunny:{thumbnail:null==d?void 0:d.previewThumbnail,preview:null==d?void 0:d.preview},youtube:{channelId:null==w?void 0:w.channel_id},tracks:!(null==p||!p.captions)&&[{kind:"captions",label:"English",srclang:"en",src:"/path/to/captions.en.vtt",default:!0}],branding:u,chapters:O,blockAttributes:d,poster:d.poster,provider:"audio"===h?"audio":Object(o.a)(l),mediaTitle:d.title},React.createElement("div",{slot:"player-end"},(null==j?void 0:j.enabled)&&(null==g?void 0:g.enabled)&&React.createElement("div",{className:"presto-player__overlay is-image",style:{position:"absolute",width:"".concat((null==g?void 0:g.width)||100,"%"),left:"".concat(100*((null==g||null===(r=g.focalPoint)||void 0===r?void 0:r.x)||.5),"%"),top:"".concat(100*((null==g||null===(n=g.focalPoint)||void 0===n?void 0:n.y)||.5),"%")}},React.createElement("img",{src:null==g?void 0:g.src,style:{transform:"translateX(-50%) translateY(-50%)"}})),b)))}},function(e,t){e.exports=window.wp.data},function(e,t,r){"use strict";var n={setUrlPrivate:function(){var e=-1===window.location.href.indexOf("?")?"?":"&",t=window.location.href+e+"presto_video_type=private";window.history.pushState({path:t},"",t)},setUrlPublic:function(){var e=-1===window.location.href.indexOf("?")?"?":"&",t=window.location.href+e+"presto_video_type=public";window.history.pushState({path:t},"",t)},unsetUrlParams:function(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=new URL(e);return t.forEach((function(e){r.searchParams.delete(e)})),r.href}(window.location.href,["presto_video_type"]);window.history.pushState({path:e},"",e)}};t.a=n},function(e,t,r){"use strict";var n,a=r(5),o=(n={visibility:{type:String,default:"public"},color:{type:String,default:"#00b3ff"},blockAlignment:{type:String},mutedPreview:{type:Object,default:{enabled:!1,captions:!1}},mutedOverlay:{type:Object,default:{enabled:!1,src:"",width:200,focalPoint:{x:.5,y:.5}}},mutedPreviewCaptions:{type:Boolean},mutedOverlayType:{type:String,default:"text"},mutedOverlayText:{type:String,default:"Click to play"},mutedOverlaySrc:{type:String},mutedOverlayImageWidth:{type:Number,default:200},mutedOverlayFocalPoint:{type:Object}},Object(a.a)(n,"mutedOverlay",{type:Object,default:{enabled:!1,type:"text",text:"",src:"",width:200,focalPoint:{x:.5,y:.5}}}),Object(a.a)(n,"autoplay",{type:Boolean}),Object(a.a)(n,"preload",{type:String}),Object(a.a)(n,"playsInline",{type:Boolean}),Object(a.a)(n,"id",{type:Number}),Object(a.a)(n,"attachment_id",{type:Number}),Object(a.a)(n,"src",{type:String}),Object(a.a)(n,"imageID",{type:Number}),Object(a.a)(n,"poster",{type:String}),Object(a.a)(n,"content",{type:Boolean}),Object(a.a)(n,"preset",{type:Number}),Object(a.a)(n,"chapters",{type:Array,default:[]}),Object(a.a)(n,"overlays",{type:Array,default:[]}),Object(a.a)(n,"tracks",{type:"array",items:{type:"object"},default:[]}),n);t.a={attributes:o,category:"presto",supports:{align:!0},save:function(){return null}}},function(e,t,r){"use strict";function n(e){var t,r=(e||"").match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/);return r&&11===(null==r||null===(t=r[2])||void 0===t?void 0:t.length)?r[2]:null}function a(e){var t=/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/.exec(e||"");return(null==t?void 0:t[5])||""}function o(e){var t=a(e);if(t)return{video_id:t,type:"vimeo"};var r=n(e);return r?{video_id:r,type:"youtube"}:{$video_id:0,$type:"none"}}function l(e){return"string"==typeof e&&e.includes(".m3u8")}r.d(t,"c",(function(){return n})),r.d(t,"b",(function(){return a})),r.d(t,"a",(function(){return o})),r.d(t,"d",(function(){return l}))},,,,,function(e,t,r){"use strict";var n=r(5),a=r(7),o=r(1),l=r(2),c=r.n(l),i=r(9),s=r(38);function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var d=wp.compose.createHigherOrderComponent,b=wp.element,m=b.useEffect,y=b.useState;t.a=function(){return d((function(e){return function(t){var r=t.presets,n=t.attributes,l=t.setAttributes,p=t.defaultPreset,d=t.isSelected,b=t.branding,f=y({}),v=Object(o.a)(f,2),h=v[0],O=v[1],g=y(1),j=Object(o.a)(g,2),w=j[0],E=j[1],R=n.poster,k=n.chapters;m((function(){d&&null!=n&&n.id&&wp.data.dispatch("core/edit-post").openGeneralSidebar("edit-post/block")}),[d]),m((function(){d&&null!=n&&n.selectionOverrideClientId&&wp.data.dispatch("core/block-editor").selectBlock(null==n?void 0:n.selectionOverrideClientId)}),[d]),m((function(){if(r&&r.length){var e=r.find((function(e){return e.id===(null==n?void 0:n.preset)}));e?O(e):(O(p),l({preset:null==p?void 0:p.id}))}}),[r,null==n?void 0:n.preset]),m((function(){P()}),[R,h,k,b.logo]);var P=function(){E(w+1)},x=Object(i.f)(k);m((function(){var e=null==k?void 0:k.map((function(e){return e.time})),t=null==x?void 0:x.map((function(e){return e.time}));_.difference(e,t).length&&P()}),[k]);var C=function(){var e=Object(a.a)(c.a.mark((function e(t){var r,n,a,o,i,p,d;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.src,n=t.external_id,a=t.attachment_id,o=t.type,i=t.title,r||n||a){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,Object(s.a)({method:"POST",path:"/presto-player/v1/videos",data:u(u({attachment_id:a,post_id:wp.data.select("core/editor").getCurrentPostId(),external_id:n},i?{title:i}:{}),{},{src:r,type:o})});case 5:p=e.sent,d=p.id,l({id:d});case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return null!=n&&n.preset||l({preset:null==p?void 0:p.id}),React.createElement(e,Object.assign({},t,{lockSave:function(){return wp.data.dispatch("core/editor").lockPostSaving("presto-player")},unlockSave:function(){return wp.data.dispatch("core/editor").unlockPostSaving("presto-player")},createVideo:C,onUpdate:P,onRemoveSrc:function(){confirm("Remove this video?")&&l(u(u(u(u({src:"",id:void 0},null!=n&&n.thumbnail?{thumbnail:null}:{}),null!=n&&n.preview?{preview:null}:{}),null!=n&&n.previewSrc?{previewSrc:null}:{}),null!=n&&n.previewThumbnail?{previewThumbnail:null}:{}))},presetData:h,setPresetData:O,renderKey:w}))}}),"withPlayerEdit")}},function(e,t,r){"use strict";var n=wp.data.withSelect;t.a=function(e){return n((function(e){return{branding:e("presto-player/player").branding(),loading:e("presto-player/player").isResolving("getPresets"),presets:e("presto-player/player").getPresets(),defaultPreset:e("presto-player/player").getDefaultPreset()}}))}},function(e,t,r){"use strict";var n,a=r(32),o=r(45),l=r(11),c=r(6),i=r(1),s=r(54),p=r(0),u=wp.i18n.__,d=wp.element.useState,b=wp.data,m=(b.useSelect,b.dispatch),y=wp.components,f=(y.withNotices,y.BaseControl),v=(y.Spinner,y.Button),h=function(e){var t,r=e.setAttributes,a=e.attributes,o=a.overlays,b=d(!1),y=Object(i.a)(b,2),h=y[0],O=y[1];return Object(p.c)(React.Fragment,null,Object(p.c)(f,null,Object(p.c)(v,{isPrimary:!0,onClick:function(){var e;null!==(e=prestoPlayer)&&void 0!==e&&e.isPremium?O(!0):m("presto-player/player").setProModal(!0)}},o.length?u("Update Overlays","presto-player"):u("Add Overlay","presto-player"),!!o.length&&Object(p.c)("div",{css:Object(p.b)(n||(n=Object(c.a)(["\n font-size: 10px;\n background: #fff;\n color: var(--wp-admin-theme-color);\n font-weight: bold;\n display: inline-block;\n line-height: 6px;\n padding: 5px;\n border-radius: 9999px;\n margin-left: 10px;\n "])))},o.length)),!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&Object(p.c)(l.a,null)),h&&Object(p.c)(s.a,{closeModal:function(){return O(!1)},attributes:a,setAttributes:r,updateOverlayAttribute:function(e){r({overlays:e})}}))},O=r(7),g=r(5),j=r(2),w=r.n(j),_=r(9),E=r(34),R=r(40),k=r(46),P=wp.i18n.__,x=wp.components,C=x.ToggleControl,S=x.BaseControl,N=x.HorizontalRule,T=x.__experimentalAlignmentMatrixControl,D=x.SelectControl,B=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(S,null,React.createElement("h3",null,P("Behavior","presto-player"))),React.createElement(S,null,React.createElement(C,{label:P("Auto-Hide Controls","presto-player"),help:P("Hide video controls automatically after 2 seconds of no mouse movement.","presto-player"),onChange:function(e){r({auto_hide:e})},checked:t.auto_hide})),React.createElement(S,null,React.createElement(C,{label:P("Save Play Position","presto-player"),help:P("Saves the user's play position so when they come back to the page they can continue the video from where they left off.","presto-player"),onChange:function(e){r({save_player_position:e})},checked:t.save_player_position})),React.createElement(S,null,React.createElement(C,{label:P("Captions On By Default","presto-player"),help:P("Toggles if captions should be active by default.","presto-player"),onChange:function(e){r({captions_enabled:e})},checked:t.captions_enabled})),React.createElement(S,null,React.createElement(C,{label:P("Focus Mode","presto-player"),help:P("Play only when tab is visible and video is in viewport.","presto-player"),onChange:function(e){r({play_video_viewport:e})},checked:t.play_video_viewport})),React.createElement(S,null,React.createElement(C,{label:P("Sticky On Scroll","presto-player"),help:P("Stick videos to the side of the screen when the page is scrolled and the video is playing.","presto-player"),onChange:function(e){r({sticky_scroll:e})},checked:t.sticky_scroll})),!!t.sticky_scroll&&React.createElement(React.Fragment,null,React.createElement(S,{label:P("Choose a position for your sticky player.","presto-player")},React.createElement(T,{value:t.sticky_scroll_position,onChange:function(e){r({sticky_scroll_position:e})}}))),React.createElement(S,null,React.createElement(D,{label:P("On Video End","presto-player"),value:t.on_video_end,options:[{value:"select",label:P("Select","presto-player")},{value:"loop",label:P("Loop","presto-player")},{value:"go-to-start",label:P("Go to start","presto-player")}],onChange:function(e){r({on_video_end:e})}})),React.createElement(N,null),React.createElement(S,null),React.createElement(S,null,React.createElement("h3",null,P("Youtube","presto-player"))),React.createElement(S,null,React.createElement(C,{label:P("Hide Youtube UI (Experimental)","presto-player"),help:P("Hides the Youtube logo and related videos.","presto-player"),onChange:function(e){r({hide_youtube:e})},checked:t.hide_youtube})),React.createElement(S,null,React.createElement(C,{label:P("Lazy Load Videos","presto-player"),help:P("Improves page loading performance by only loading the video when clicked.","presto-player"),onChange:function(e){r({lazy_load_youtube:e})},checked:t.lazy_load_youtube})))},A=wp.i18n.__,L=wp.components,I=L.ToggleControl,F=L.BaseControl,V=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(F,null,React.createElement("h3",null,A("Controls","presto-player"))),React.createElement(F,{className:"presto-player__control--large-play"},React.createElement(I,{label:A("Large Play Button","presto-player"),help:A("Adds a large play button over the top of the player.","presto-player"),onChange:function(e){r({"play-large":e})},checked:t["play-large"]})),React.createElement(F,{className:"presto-player__control--rewind"},React.createElement(I,{label:A("Rewind","presto-player"),help:A("Adds a 10 second rewind button to the player.","presto-player"),onChange:function(e){r({rewind:e})},checked:t.rewind})),React.createElement(F,{className:"presto-player__control--play"},React.createElement(I,{label:A("Small Play Button","presto-player"),help:A("Adds a small play button to the bottom of the player.","presto-player"),onChange:function(e){r({play:e})},checked:t.play})),React.createElement(F,{className:"presto-player__control--fast-forward"},React.createElement(I,{label:A("Fast Forward","presto-player"),help:A("Adds a 10 second rewind button to the player.","presto-player"),onChange:function(e){r({"fast-forward":e})},checked:t["fast-forward"]})),React.createElement(F,{className:"presto-player__control--progress"},React.createElement(I,{label:A("Progress Bar","presto-player"),help:A("Shows a seekable progress bar.","presto-player"),onChange:function(e){r({progress:e})},checked:t.progress})),React.createElement(F,{className:"presto-player__control--current-time"},React.createElement(I,{label:A("Current Time","presto-player"),help:A("Shows the video timestamp.","presto-player"),onChange:function(e){r({"current-time":e})},checked:t["current-time"]})),React.createElement(F,{className:"presto-player__control--volume"},React.createElement(I,{label:A("Volume","presto-player"),help:A("Shows a volume bar.","presto-player"),onChange:function(e){r({volume:e,mute:e})},checked:t.volume})),React.createElement(F,{className:"presto-player__control--speed"},React.createElement(I,{label:A("Speed","presto-player"),help:A("Shows playback speed controls.","presto-player"),onChange:function(e){r({speed:e})},checked:t.speed})),React.createElement(F,{className:"presto-player__control--pip"},React.createElement(I,{label:A("Picture In Picture (HTML5 only)","presto-player"),help:A("Allows users to dock the player on their screen and watch when using other app on their computer.","presto-player"),onChange:function(e){r({pip:e})},checked:t.pip})),React.createElement(F,{className:"presto-player__control--fullscreen"},React.createElement(I,{label:A("Fullscreen","presto-player"),help:A("Adds a button to allow the player to be fullscreen.","presto-player"),onChange:function(e){r({fullscreen:e})},checked:t.fullscreen})),React.createElement(F,{className:"presto-player__control--captions"},React.createElement(I,{label:A("Captions","presto-player"),help:A("Shows a dedicated caption toggle button.","presto-player"),onChange:function(e){r({captions:e})},checked:t.captions})))},U=r(41),M=r(12);function z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function W(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?z(Object(r),!0).forEach((function(t){Object(g.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):z(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var H,Y,G=wp.i18n.__,q=wp.components,Z=q.ToggleControl,K=q.BaseControl,Q=q.RadioControl,X=q.Flex,$=q.RangeControl,J=wp.element.useEffect,ee=function(e){var t=e.state,r=e.updateState,n=e.className,a=t.watermark,o={text:G("Enter your watermark text.","presto-player"),position:"top-right",color:"#fff",backgroundColor:"#333",opacity:80};J((function(){Object.keys(o).forEach((function(e){var r;void 0===(null==t||null===(r=t.watermark)||void 0===r?void 0:r[e])&&l(Object(g.a)({},e,o[e]))}))}),[t]);var l=function(e){r(W(W({},t),{},{watermark:W(W({},a),e)}))};return React.createElement("div",{className:n},React.createElement(K,null,React.createElement("h3",null,G("Dynamic Watermark Text","presto-player"))),React.createElement(K,{className:"presto-player__control--watermark"},React.createElement(Z,{label:G("Enable","presto-player"),help:G("Add a simulated dynamic watermark over your video.","presto-player"),onChange:function(e){l({enabled:e})},checked:null==a?void 0:a.enabled})),(null==a?void 0:a.enabled)&&React.createElement("div",null,React.createElement(U.a,{text:null==a?void 0:a.text,update:function(e){var t=e.text;l({text:t})}}),React.createElement(K,{className:n},React.createElement(Q,{label:G("Position","presto-player"),options:[{label:G("Top Right","presto-player"),value:"top-right"},{label:G("Top Left","presto-player"),value:"top-left"},{label:G("Change Every 10 Seconds","presto-player"),value:"randomize"}],selected:(null==a?void 0:a.position)||"top-right",onChange:function(e){return l({position:e})}})),React.createElement(K,{className:"presto-player__control-text-color"},React.createElement(X,null,React.createElement(K.VisualLabel,null,G("Text Color","presto-player")),React.createElement(M.a,{color:(null==a?void 0:a.color)||"#fff",setColor:function(e){return l({color:e&&e.hex})}}))),React.createElement(K,{className:"presto-player__control-text-color"},React.createElement(X,null,React.createElement(K.VisualLabel,null,G("Background Color","presto-player")),React.createElement(M.a,{color:(null==a?void 0:a.backgroundColor)||"#333",setColor:function(e){return l({backgroundColor:e&&e.hex})}}))),React.createElement(K,null,React.createElement($,{label:G("Opacity","presto-player"),help:G("Opacity percentage of the watermark.","presto-player"),value:(null==a?void 0:a.opacity)||100,onChange:function(e){return l({opacity:e})},min:0,max:100}))))},te=r(37),re=r(43),ne=wp.i18n.__,ae=wp.components,oe=ae.ToggleControl,le=ae.BaseControl,ce=ae.RangeControl,ie=ae.SelectControl,se=ae.ColorPicker,pe=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(le,null,React.createElement("h3",null,ne("Style","presto-player"))),React.createElement(le,null,React.createElement(oe,{label:ne("Hide Logo","presto-player"),help:ne("Hides the logo on this video.","presto-player"),onChange:function(e){r({hide_logo:e})},checked:t.hide_logo})),React.createElement(le,null,React.createElement(ce,{label:ne("Round Corners","presto-player"),help:ne("Player border radius size.","presto-player"),value:(null==t?void 0:t.border_radius)||0,onChange:function(e){return r({border_radius:e})},min:0,max:25})),React.createElement(le,null,React.createElement(ie,{label:ne("Caption Style","presto-player"),labelPosition:"top",value:null==t?void 0:t.caption_style,options:[{label:ne("Default","presto-player"),value:"default"},{label:ne("Full","presto-player"),value:"full"}],onChange:function(e){r({caption_style:e})}})),React.createElement(le,null,React.createElement(le.VisualLabel,null,React.createElement("p",null,ne("Caption Background","presto-player"))),React.createElement(se,{color:(null==t?void 0:t.caption_background)||"#000000",onChangeComplete:function(e){r({caption_background:e.hex})},disableAlpha:!0})))};function ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function de(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ue(Object(r),!0).forEach((function(t){Object(g.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ue(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var be=wp.i18n.__,me=wp.components,ye=me.TextControl,fe=me.BaseControl,ve=me.Icon,he=me.Notice,Oe=me.Button,ge=me.Flex,je=me.FlexItem,we=me.SelectControl,_e=me.FlexBlock,Ee=me.Modal,Re=wp.element,ke=Re.useState,Pe=Re.useEffect,xe=wp.data,Ce=xe.useSelect,Se=xe.dispatch;var Ne,Te=function(e){var t=e.type,r=void 0===t?"new":t,n=e.closeModal,a=e.addPreset,o=e.onSave,l=e.updatePreset,s=e.name,u=void 0===s?"":s,d=e.preset,b=void 0===d?{"play-large":!0,rewind:!0,play:!0,"fast-forward":!0,progress:!0,"current-time":!0,mute:!0,volume:!0,speed:!1,pip:!1,fullscreen:!0,captions:!1,save_player_position:!1,reset_on_end:!1,auto_hide:!0,sticky_scroll:!1,hide_logo:!1,border_radius:0,skin:"modern",caption_style:"default",caption_background:"#000000",hide_youtube:!1,lazy_load_youtube:!1,cta:{},email_collection:{},action_bar:{}}:d,m=ke(!1),y=Object(i.a)(m,2),f=y[0],v=y[1],h=ke(""),g=Object(i.a)(h,2),j=g[0],P=g[1],x=ke(""),C=Object(i.a)(x,2),S=C[0],N=C[1],T=ke(u),D=Object(i.a)(T,2),A=D[0],L=D[1],I=ke(b),F=Object(i.a)(I,2),U=F[0],M=F[1],z=Ce((function(e){return e("presto-player/player").branding()})),W=ke(""),G=Object(i.a)(W,2),q=G[0],Z=G[1],K={message:be("The preset could not be saved. Please reload the page and try again.","presto-player")},Q=Ce((function(e){return e("presto-player/player").youtube()}));Pe((function(){Z(Q.channel_id)}),[null==Q?void 0:Q.channel_id]);var X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};M(de(de({},U),e))},$=function(){var e=Object(O.a)(w.a.mark((function e(){var t,r,a,c;return w.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return v(!0),e.prev=1,t=de(de({},U),{name:A}),e.next=5,wp.apiFetch({method:"POST",url:wp.url.addQueryArgs("".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"preset/").concat(b.id),{_method:"PUT"}),data:t});case 5:if(r=e.sent){e.next=8;break}throw K;case 8:l(r),n(),o&&o(r),Object(_.d)({message:be("Preset updated!","presto-player")}),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(1),P(null!==e.t0&&void 0!==e.t0&&e.t0.message?e.t0.message:K);case 17:return e.prev=17,v(!1),e.finish(17);case 20:return Se("presto-player/player").updateYoutube({channel_id:q}),a=de(de({},Q),{channel_id:q}),e.prev=22,e.next=25,wp.apiFetch({path:"wp/v2/settings",method:"POST",data:{presto_player_youtube:a}});case 25:null!=(c=e.sent)&&c.presto_player_youtube&&(Se("presto-player/player").setYoutube(null==c?void 0:c.presto_player_youtube),onClose()),e.next=32;break;case 29:e.prev=29,e.t1=e.catch(22),console.log(e.t1);case 32:case"end":return e.stop()}}),e,null,[[1,14,17,20],[22,29]])})));return function(){return e.apply(this,arguments)}}(),J=function(){var e=Object(O.a)(w.a.mark((function e(){var t;return w.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return v(!0),e.prev=1,e.next=4,wp.apiFetch({method:"POST",url:prestoPlayer.root+prestoPlayer.prestoVersionString+"preset",data:de(de({},{name:A}),U)});case 4:if(t=e.sent){e.next=7;break}throw K;case 7:a(t),n(),o&&o(t),Object(_.d)({message:be("Preset created!","presto-player")}),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),P(null!==e.t0&&void 0!==e.t0&&e.t0.message?e.t0.message:K);case 16:return e.prev=16,v(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])})));return function(){return e.apply(this,arguments)}}(),ne=[{name:"controls",title:be("Controls","presto-player"),icon:Object(p.c)(ve,{icon:"admin-settings"}),component:Object(p.c)(V,{updateState:X,state:U})},{name:"behavior",title:be("Behavior","presto-player"),icon:Object(p.c)(ve,{icon:"admin-generic"}),component:Object(p.c)(B,{updateState:X,state:U})},{name:"style",title:be("Style","presto-player"),icon:Object(p.c)(ve,{icon:"admin-customizer"}),component:Object(p.c)(pe,{updateState:X,state:U})},{name:"email",title:be("Email Capture","presto-player"),icon:Object(p.c)(ve,{icon:"email"}),component:Object(p.c)(re.a,{updateState:X,state:U})},{name:"cta",title:be("Call To Action","presto-player"),icon:Object(p.c)(ve,{icon:"megaphone"}),component:Object(p.c)(te.a,{updateState:X,state:U})},{name:"action_bar",title:be("Action Bar","presto-player"),icon:Object(p.c)(ve,{icon:"cover-image"}),component:Object(p.c)(k.a,{updateState:X,state:U,value:q,setValue:Z})},{name:"watermark",title:be("Dynamic Watermark","presto-player"),icon:Object(p.c)(ve,{icon:"lock"}),component:Object(p.c)(ee,{updateState:X,state:U})}];return Object(p.c)(Ee,{title:be("edit"==r?"Edit A Video Preset":"Create A New Video Preset","presto-player"),onRequestClose:n,className:"presto-player__modal-presets",overlayClassName:"presto-player__modal-presets-overlay"},Object(p.c)("div",{className:"presto-player__preset-options","data-cy":"preset-modal"},Object(p.c)(ye,{value:A,hideLabelFromVision:!0,label:be("Preset Name","presto-player"),onChange:function(e){return L(e)},placeholder:be("Enter a preset name...","presto-player"),className:"presto-player__modal--style-name",autoFocus:!0}),Object(p.c)(ge,{align:"stretch",className:"presto-player__style-preview-area"},Object(p.c)(je,{className:"presto-player__style-sidebar"},Object(p.c)("div",null,Object(p.c)(E.a,{items:ne,title:be("Customize","presto-player"),onSelect:N},(function(e){return e.component})))),Object(p.c)(_e,{className:"presto-player__style-preview-panel"},Object(p.c)("div",{style:{position:"absolute",top:0,left:0,padding:"20px"}},Object(p.c)(we,{label:be("Skin","presto-player"),labelPosition:"side",value:null==U?void 0:U.skin,options:[{label:be("Modern","presto-player"),value:"modern"},{label:be("Business","presto-player"),value:"business"},{label:be("Stacked","presto-player"),value:"stacked"},{label:be("Basic","presto-player"),value:"default"}],onChange:function(e){X({skin:e})}})),Object(p.c)(R.a,{poster:"https://source.unsplash.com/daily",state:U,branding:z,menu:S}))),Object(p.c)("br",null),j&&Object(p.c)(fe,null,Object(p.c)(he,{className:"presto-player__modal--error-notice",status:"error",isDismissible:!1,style:{margin:0}},j.replace(/(<([^>]+)>)/gi,""))),Object(p.c)("div",{css:Object(p.b)(H||(H=Object(c.a)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n "])))},Object(p.c)("div",{css:Object(p.b)(Y||(Y=Object(c.a)(["\n opacity: 0.5;\n font-size: 12px;\n "])))},"Preset ID: ",b.id),Object(p.c)("div",null,Object(p.c)(Oe,{isTertiary:!0,onClick:n,style:{margin:"0 6px"}},be("Cancel","presto-player")),Object(p.c)(Oe,{isPrimary:!0,isBusy:f,disabled:f,onClick:function(){if(A)return"edit"===r?$():J();P(be("You must enter a name for the preset.","presto-player"))},"data-cy":"submit-preset"},be("edit"==r?"Update Preset":"Create Preset","presto-player"))))))},De=wp.i18n.__,Be=wp.components,Ae=Be.Icon,Le=Be.Spinner,Ie=Be.Modal,Fe=Be.Button,Ve=Be.ButtonGroup,Ue=wp.element.useState,Me=function(e){var t,r,n=e.preset,a=e.index,o=e.isActive,l=e.remove,c=e.setPreset,s=e.onEdit,p=Ue(!1),u=Object(i.a)(p,2),d=u[0],b=u[1],m=Ue(!1),y=Object(i.a)(m,2),f=y[0],v=y[1],h=function(){return v(!1)},g=function(){var e=Object(O.a)(w.a.mark((function e(){return w.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.id){e.next=3;break}return l(n),e.abrupt("return");case 3:return e.prev=3,b(!0),e.next=7,wp.apiFetch({method:"POST",url:wp.url.addQueryArgs("".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"preset/").concat(n.id),{_method:"DELETE"})});case 7:e.sent&&(l(n),wp.data.dispatch("core/notices").createNotice("success",De("Preset trashed.","presto-player"),{type:"snackbar",isDismissible:!0})),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(3),console.error(e.t0),null!==e.t0&&void 0!==e.t0&&e.t0.message&&wp.data.dispatch("core/notices").createNotice("error",e.t0.message,{type:"snackbar",isDismissible:!0});case 15:return e.prev=15,v(!1),b(!1),e.finish(15);case 19:case"end":return e.stop()}}),e,null,[[3,11,15,19]])})));return function(){return e.apply(this,arguments)}}();return d?React.createElement("div",{className:"block-editor-block-styles__item",role:"button",tabIndex:a,"aria-label":"Fill",style:{color:o?"var(--wp-admin-theme-color)":"inherit",width:"calc(50% - 4px)",margin:"4px 0","flex-shrink":"0",cursor:"pointer",overflow:"hidden","border-radius":"2px",padding:"6px",display:"flex","flex-direction":"column"}},React.createElement("div",{className:"block-editor-block-styles__item-preview",style:{border:o?"2px solid var(--wp-admin-theme-color)":"2px solid #e3e3e3",margin:0,outline:"1px solid transparent",padding:"0",display:"flex",overflow:"hidden",background:"#fff","align-items":"center","flex-grow":"1","min-height":"80px","max-height":"160px"}},React.createElement(Le,null))):React.createElement("div",{className:"block-editor-block-styles__item presto-preset-".concat(n.slug),onClick:function(){c(n)},role:"button",tabIndex:a,"aria-label":"Fill",style:{color:o?"var(--wp-admin-theme-color)":"inherit",width:"calc(50% - 4px)",margin:"4px 0","flex-shrink":"0",cursor:"pointer",overflow:"hidden","border-radius":"2px",padding:"6px",display:"flex","flex-direction":"column"}},React.createElement("div",{className:"block-editor-block-styles__item-preview",style:{border:o?"2px solid var(--wp-admin-theme-color)":"2px solid #e3e3e3",margin:0,outline:"1px solid transparent",padding:"0",display:"flex",overflow:"hidden",background:"#fff","align-items":"center","flex-grow":"1","min-height":"80px","max-height":"160px"}},React.createElement("div",{style:{textAlign:"center",width:"100%",color:o?"var(--wp-admin-theme-color)":"inherit",opacity:o?1:.75}},null!=n&&n.icon?React.createElement(Ae,{icon:null==n?void 0:n.icon,style:{fontSize:"30px",width:"30px",height:"30px"}}):React.createElement("h1",{style:{opacity:.75}},(null==n||null===(t=n.name)||void 0===t||null===(r=t.charAt(0))||void 0===r?void 0:r.toUpperCase())||"Untitled"))),React.createElement("div",{className:"block-editor-block-styles__item-label",style:{fontWeight:"bold",textTransform:"capitalize","text-align":"center",padding:"4px 0"}},(null==n?void 0:n.name)||"Untitled"),!(null!=n&&n.is_locked)&&React.createElement("div",{className:"block-editor-block-styles__item-edit"},React.createElement("div",{className:"block-editor-block-styles__item-edit-icon",onClick:s},React.createElement(Ae,{icon:"edit"})),React.createElement("div",{className:"block-editor-block-styles__item-edit-icon",onClick:function(){return v(!0)}},React.createElement(Ae,{icon:"trash"}))),f&&React.createElement(Ie,{title:De("Trash Preset?","presto-player"),onRequestClose:h,style:{maxWidth:"250px"}},React.createElement("p",null,React.createElement("strong",null,De("Warning!","presto-player")," "),De("Any videos assigned to this preset will automatically use the default preset.","presto-player")),React.createElement(Ve,null,React.createElement(Fe,{isDestructive:!0,onClick:g,style:{margin:"0 4px"}},De("Trash","presto-player")),React.createElement(Fe,{isTertiary:!0,onClick:h,style:{margin:"0 4px",boxShadow:"none"}},De("Cancel","presto-player")))))},ze=r(44),We=wp.i18n.__,He=wp.components,Ye=He.withNotices,Ge=He.BaseControl,qe=He.Spinner,Ze=He.Button,Ke=wp.element,Qe=Ke.useState,Xe=(Ke.useEffect,wp.data),$e=Xe.useSelect,Je=Xe.dispatch;var et=Ye((function(e){var t,r=e.attributes,n=e.setAttributes,a=Qe(!1),o=Object(i.a)(a,2),s=o[0],p=o[1],u=function(){return p(!1)},d=Qe(null),b=Object(i.a)(d,2),m=b[0],y=b[1],f=Qe(null),v=Object(i.a)(f,2),h=v[0],O=v[1],g=$e((function(e){return{presets:e("presto-player/player").getPresets(),loading:e("presto-player/player").isResolving("getPresets")}})),j=g.presets,w=g.loading,_=function(e){Je("presto-player/player").addPreset(e)},E=function(e){Je("presto-player/player").removePreset(e)},R=function(e){n({preset:e.id})},k=ze.a.div(Ne||(Ne=Object(c.a)(["\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n "])));return w?React.createElement("div",{className:"presto-settings__loading"},React.createElement(qe,null)):React.createElement(React.Fragment,null,j.length?React.createElement("p",null,We("Select a video configuration preset, or add your own.","presto-player")):"",React.createElement(Ge,null,React.createElement(k,null,(j||[]).length?j.map((function(e,t){return React.createElement(Me,{setPreset:R,index:t,isActive:(null==r?void 0:r.preset)===e.id,preset:e,key:e.id,onEdit:function(){O(e.name),y(e),p("edit")},remove:E})})):We("No style presets. You can create a new style by clicking 'Add New Style'.","presto-plugin"))),React.createElement(Ge,null,React.createElement(Ze,{isPrimary:!0,"data-cy":"add-new-preset",onClick:function(){var e;null!==(e=prestoPlayer)&&void 0!==e&&e.isPremium?p("new"):Je("presto-player/player").setProModal(!0)}},We("Add New Preset","presto-player")),!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(l.a,null)),"new"==s&&React.createElement(Te,{closeModal:u,addPreset:_,type:"new",onSave:R}),"edit"==s&&React.createElement(Te,{closeModal:u,addPreset:_,updatePreset:function(e){Je("presto-player/player").updatePreset(e)},type:"edit",preset:m,name:h}))})),tt=r(18);function rt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function nt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?rt(Object(r),!0).forEach((function(t){Object(g.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var at=wp.i18n.__,ot=wp.components,lt=(ot.PanelRow,ot.TextControl,ot.SelectControl,ot.BaseControl),ct=ot.Button,it=ot.FocalPointPicker,st=ot.RangeControl,pt=wp.blockEditor,ut=pt.MediaUpload,dt=pt.MediaUploadCheck,bt=(wp.element.useState,["image"]),mt=function(e){var t=e.attributes,r=e.setAttributes,n=e.instanceId,a=t.mutedOverlay,o="video-block__overlay-image-description-".concat(n);return React.createElement(React.Fragment,null,React.createElement(dt,null,React.createElement(lt,{className:"editor-video-overlay-control"},React.createElement(lt.VisualLabel,null,React.createElement("p",null,at("Overlay Image","presto-player"))),React.createElement(ut,{title:at("Select overlay image","presto-player"),onSelect:function(e){r({mutedOverlay:nt(nt({},a),{src:e.url})})},allowedTypes:bt,render:function(e){var t=e.open;return React.createElement(ct,{className:"presto-setting__poster",isPrimary:!0,onClick:t},null!=a&&a.src?at("Replace","presto-player"):at("Select","presto-player"))}}),React.createElement("p",{id:o,hidden:!0},null!=a&&a.src?sprintf(at("The current overlay image url is %s","presto-player"),null==a?void 0:a.src):at("There is no overlay image currently selected","presto-player")),!(null==a||!a.src)&&React.createElement(ct,{onClick:function(){r({mutedOverlay:nt(nt({},a),{src:""})})},className:"presto-setting__remove-poster",isTertiary:!0},at("Remove","presto-player")))),!(null==a||!a.src)&&React.createElement(it,{url:"",dimensions:{width:160,height:90},value:null==a?void 0:a.focalPoint,onChange:function(e){return r({mutedOverlay:nt(nt({},a),{focalPoint:e})})}}),!(null==a||!a.src)&&React.createElement(st,{label:at("Max Width (%)","presto-player"),value:null==a?void 0:a.width,onChange:function(e){return r({mutedOverlay:nt(nt({},a),{width:e})})},min:1,max:100}))};function yt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ft(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?yt(Object(r),!0).forEach((function(t){Object(g.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):yt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var vt=wp.i18n.__,ht=wp.components,Ot=ht.ToggleControl,gt=ht.SelectControl,jt=ht.BaseControl,wt=ht.Button,_t=ht.PanelRow,Et=ht.Icon,Rt=ht.Flex,kt=wp.data.dispatch,Pt=wp.blockEditor,xt=Pt.MediaUpload,Ct=Pt.MediaUploadCheck,St=["image"],Nt=wp.compose.useInstanceId,Tt=function e(t){var r=t.setAttributes,n=t.attributes,a=n.mutedPreview,o=n.autoplay,c=n.playsInline,i=n.preload,s=n.poster,p=n.mutedOverlay,u=Nt(e),d="video-block__poster-image-description-".concat(u),b=function(e){return function(t){r(Object(g.a)({},e,t))}};var m,y;return React.createElement(React.Fragment,null,!o&&React.createElement(React.Fragment,null,React.createElement(Ot,{label:React.createElement(React.Fragment,null,vt("Muted Autoplay Preview","presto-player")," ",!(null!==(m=prestoPlayer)&&void 0!==m&&m.isPremium)&&React.createElement(l.a,null)),onChange:function(e){var t;null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium?r({mutedPreview:ft(ft({},a),{enabled:e})}):kt("presto-player/player").setProModal(!0)},checked:null==a?void 0:a.enabled,className:"presto-setting__mutedPreview",help:vt("Shows a muted preview of the video.","presto-player")}),!(null==a||!a.enabled)&&!(null!=n&&n.video_id)&&React.createElement(_t,null,React.createElement(Ot,{label:vt("Muted Preview Captions","presto-player"),onChange:function(e){r({mutedPreview:ft(ft({},a),{captions:e})})},checked:null==a?void 0:a.captions,className:"presto-setting__mutedPreviewCaptions",help:vt("Play captions during muted autoplay","presto-player")})),!!a.enabled&&React.createElement(_t,null,React.createElement(Ot,{label:React.createElement(React.Fragment,null,vt("Muted Preview Overlay","presto-player")," ",!(null!==(y=prestoPlayer)&&void 0!==y&&y.isPremium)&&React.createElement(l.a,null)),onChange:function(e){var t;null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium?r({mutedOverlay:ft(ft({},p),{enabled:e})}):kt("presto-player/player").setProModal(!0)},checked:null==p?void 0:p.enabled,className:"presto-setting__mutedOverlay",help:vt("Show an image over the top of the video either before or after the video.","presto-player")})),(null==p?void 0:p.enabled)&&(null==a?void 0:a.enabled)&&React.createElement(mt,{attributes:n,setAttributes:r})),!(null!=a&&a.enabled)&&React.createElement(Ot,{label:vt("Autoplay","presto-player"),className:"presto-setting__autoplay",onChange:b("autoplay"),checked:o,help:function(e){return e?vt("Note: Autoplaying videos may cause usability issues for some visitors.","presto-player"):null}}),React.createElement(_t,null,React.createElement(Ot,{label:vt("Play inline","presto-player"),className:"presto-setting__playsInline","data-cy":"playsInline",onChange:b("playsInline"),checked:c,help:vt("On mobile browsers, play the video on the page instead of opening it up fullscreen.","presto-player")})),!(null!=n&&n.video_id)&&React.createElement(_t,null,React.createElement(gt,{label:React.createElement(Rt,null,React.createElement("div",null,vt("Performance Preference","presto-player")),React.createElement("a",{href:"https://prestoplayer.com/docs/performance-preferences-explained",target:"_blank",style:{textDecoration:"none"}},React.createElement(Et,{icon:"editor-help"}))),className:"presto-setting__preload",value:i,onChange:function(e){return r({preload:e})},help:(!!(null!=n&&n.src&&Object(tt.d)(null==n?void 0:n.src)&&["metadata","none"].includes(i))||"none"===i&&!s)&&vt("A poster image is recommended for this setting.","presto-player"),options:[{value:"auto",label:vt("Video Playback Speed","presto-player")},{value:"metadata",label:vt("Page Load Speed","presto-player")},{value:"none",label:vt("Page Load Speed (Extreme)","presto-player")}]})),React.createElement(Ct,null,React.createElement(jt,{className:"editor-video-poster-control"},React.createElement(jt.VisualLabel,null,React.createElement("p",null,vt("Poster image","presto-player"))),React.createElement(xt,{title:vt("Select poster image","presto-player"),onSelect:function(e){r({poster:e.url})},allowedTypes:St,render:function(e){var t=e.open;return React.createElement(wt,{className:"presto-setting__poster",isPrimary:!0,onClick:t,"aria-describedby":d},vt(s?"Replace":"Select","presto-player"))}}),React.createElement("p",{id:d,hidden:!0},s?sprintf(vt("The current poster image url is %s","presto-player"),s):vt("There is no poster image currently selected","presto-player")),!!s&&React.createElement(wt,{onClick:function(){r({poster:""})},className:"presto-setting__remove-poster",isTertiary:!0},vt("Remove","presto-player")))))},Dt=wp.components.PanelBody,Bt=wp.i18n.__;t.a=function(e){var t,r,n,c,i=e.attributes,s=e.setAttributes;return React.createElement(React.Fragment,null,React.createElement(Dt,{title:React.createElement(React.Fragment,null,Bt("Chapters","presto-player")," ",!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(l.a,null)),initialOpen:null===(r=prestoPlayer)||void 0===r?void 0:r.isPremium},React.createElement(o.a,{setAttributes:s,attributes:i})),React.createElement(Dt,{title:React.createElement(React.Fragment,null,Bt("Overlays","presto-player")," ",!(null!==(n=prestoPlayer)&&void 0!==n&&n.isPremium)&&React.createElement(l.a,null)),initialOpen:null===(c=prestoPlayer)||void 0===c?void 0:c.isPremium},React.createElement(h,{setAttributes:s,attributes:i})),React.createElement(Dt,{title:Bt("Video settings","presto-player")},React.createElement(Tt,{setAttributes:s,attributes:i})),React.createElement(Dt,{title:Bt("Video Preset","presto-player")},React.createElement(et,{setAttributes:s,attributes:i})),React.createElement(Dt,{title:Bt("Global Player Branding","presto-player"),initialOpen:!1},React.createElement(a.a,{setAttributes:s,attributes:i})))}},function(e,t,r){"use strict";r.d(t,"a",(function(){return j})),r.d(t,"b",(function(){return w})),r.d(t,"c",(function(){return _}));var n=r(50),a=r(51),o=r(52),l=r(57),c=r(48),i=r(10),s=r.n(i),p=function(e){return e.replace(/([A-Z])/g,(function(e){return"-".concat(e[0].toLowerCase())}))},u=r(20),d=function(e,t,r){var n=t.className||t.class,a=r.className||r.class,o=y(e),l=y(n?n.split(" "):[]),c=y(a?a.split(" "):[]),i=[];return o.forEach((function(e){l.has(e)?(i.push(e),l.delete(e)):c.has(e)||i.push(e)})),l.forEach((function(e){return i.push(e)})),i.join(" ")},b=function(e){if("undefined"==typeof document)return!0;var t="on"+e,r=t in document;if(!r){var n=document.createElement("div");n.setAttribute(t,"return;"),r="function"==typeof n[t]}return r},m=function(e,t,r){var n=e.__events||(e.__events={}),a=n[t];a&&e.removeEventListener(t,a),e.addEventListener(t,n[t]=function(e){r&&r.call(this,e)})},y=function(e){var t=new Map;return e.forEach((function(e){return t.set(e,e)})),t},f=function(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)},v=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){t.forEach((function(t){f(t,e)}))}};function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=Object(c.a)(e);if(t){var a=Object(c.a)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return Object(l.a)(this,r)}}var O=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r},g=function(e,t,r,l){void 0!==l&&l();var c=e.toLowerCase().split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})).join(""),y=function(t){Object(o.a)(s,t);var l=h(s);function s(e){var t;return Object(n.a)(this,s),(t=l.call(this,e)).setComponentElRef=function(e){t.componentEl=e},t}return Object(a.a)(s,[{key:"componentDidMount",value:function(){this.componentDidUpdate(this.props)}},{key:"componentDidUpdate",value:function(e){!function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e instanceof Element){var n=d(e.classList,t,r);""!==n&&(e.className=n),Object.keys(t).forEach((function(r){if("children"!==r&&"style"!==r&&"ref"!==r&&"class"!==r&&"className"!==r&&"forwardedRef"!==r)if(0===r.indexOf("on")&&r[2]===r[2].toUpperCase()){var n=r.substring(2),a=n[0].toLowerCase()+n.substring(1);b(a)||m(e,a,t[r])}else{e[r]=t[r],"string"===Object(u.a)(t[r])&&e.setAttribute(p(r),t[r])}}))}}(this.componentEl,this.props,e)}},{key:"render",value:function(){var t=this.props,n=t.children,a=t.forwardedRef,o=t.style,l=(t.className,t.ref,O(t,["children","forwardedRef","style","className","ref"])),c=Object.keys(l).reduce((function(e,t){if(0===t.indexOf("on")&&t[2]===t[2].toUpperCase()){var r=t.substring(2).toLowerCase();"undefined"!=typeof document&&b(r)&&(e[t]=l[t])}else e[t]=l[t];return e}),{});r&&(c=r(this.props,c));var s=Object.assign(Object.assign({},c),{ref:v(a,this.setComponentElRef),style:o});return Object(i.createElement)(e,s,n)}}],[{key:"displayName",get:function(){return c}}]),s}(s.a.Component);return t&&(y.contextType=t),function(e,t){var r=function(t,r){return s.a.createElement(e,Object.assign({},t,{forwardedRef:r}))};return r.displayName=t,s.a.forwardRef(r)}(y,c)},j=g("presto-cta-overlay-ui"),w=g("presto-email-overlay-ui"),_=g("presto-player")},function(e,t){e.exports=window.wp.blockEditor},function(e,t,r){"use strict";var n,a,o,l,c,i,s=r(6),p=r(5),u=r(1),d=r(0);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){Object(p.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var y=wp.i18n.__,f=wp.components,v=f.Button,h=f.Popover,O=f.Icon,g=wp.blockEditor.__experimentalLinkControl,j=wp.element.useState,w=wp.url.prependHTTP;t.a=function(e){var t=e.setSettings,r=e.settings,p=j(!1),b=Object(u.a)(p,2),f=b[0],_=b[1],E=r.url,R=j(),k=Object(u.a)(R,2),P=k[0],x=k[1],C=m({url:null==r?void 0:r.url,type:null==r?void 0:r.type,id:null==r?void 0:r.id,opensInNewTab:null==r?void 0:r.opensInNewTab},P),S=function(e){e=m(m({},P),e);var r=C.opensInNewTab!==e.opensInNewTab&&C.url===e.url&&void 0===e.url;if(x(r?e:void 0),!r){var n=w(e.url);t({url:n,type:e.type,id:void 0!==e.id&&null!==e.id?String(e.id):void 0,opensInNewTab:e.opensInNewTab})}};return Object(d.c)("span",null,E?Object(d.c)("div",{css:Object(d.b)(n||(n=Object(s.a)(["\n display: flex;\n justify-content: space-between;\n "])))},Object(d.c)("div",{css:Object(d.b)(a||(a=Object(s.a)(["\n max-width: 85%;\n overflow: hidden;\n display: flex;\n align-items: center;\n "])))},Object(d.c)("a",{href:"#",css:Object(d.b)(o||(o=Object(s.a)(["\n padding: 10px;\n background: #f3f3f3;\n border-radius: 4px;\n width: 100%;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n "]))),onClick:function(){return _(!f)}},Object(d.c)(O,{icon:"edit",css:Object(d.b)(l||(l=Object(s.a)(["\n cursor: pointer;\n opacity: 0.75;\n margin: 0 2px;\n font-size: 16px;\n width: 16px;\n height: 16px;\n text-decoration: none;\n "])))}),E),f&&Object(d.c)(h,{position:"bottom center",onClose:function(){return _(!1)}},Object(d.c)(g,{value:r,onChange:S}))),Object(d.c)("div",{css:Object(d.b)(c||(c=Object(s.a)(["\n display: flex;\n align-items: center;\n "])))},Object(d.c)(O,{onClick:function(){confirm(y("Are you sure you wish to remove this link?","presto-player"))&&t({})},icon:"trash",className:"presto-icon",css:Object(d.b)(i||(i=Object(s.a)(["\n cursor: pointer;\n opacity: 0.75;\n margin: 0 2px;\n fontsize: 18px;\n width: 18px;\n height: 18px;\n\n &:hover {\n color: #cc1818;\n }\n "])))}))):Object(d.c)("span",null,Object(d.c)(v,{isPrimary:!0,isSmall:!0,onClick:function(){return _(!f)}},y("Add Link","presto-player")),f&&Object(d.c)(h,{position:"bottom center",onClose:function(){return _(!1)}},Object(d.c)(g,{value:r,onChange:S}))))}},,,,function(e,t,r){"use strict";var n=r(7),a=r(1),o=r(2),l=r.n(o),c=r(11),i=wp.i18n.__,s=wp.components,p=s.ColorPicker,u=s.Button,d=s.withNotices,b=s.BaseControl,m=s.RangeControl,y=wp.blockEditor,f=y.MediaUpload,v=y.MediaUploadCheck,h=wp.compose.useInstanceId,O=wp.element.useState,g=wp.data,j=g.dispatch,w=g.useSelect,_=["image"];t.a=d((function e(t){t.setAttributes,t.attributes;var r,o=t.type,s=h(e),d=O(1),y=Object(a.a)(d,2),g=y[0],E=y[1],R=w((function(e){return e("presto-player/player").branding()})),k=function(){var e=Object(n.a)(l.a.mark((function e(){return l.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j("presto-player/player").saveOptions({branding:R});case 2:wp.data.dispatch("core/notices").createNotice("success","Player branding saved.",{type:"snackbar",isDismissible:!0});case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return React.createElement("div",{className:"presto-player__panel--branding"},"audio"!==o&&React.createElement("p",null,i("Here you can select the global player branding This will apply to all players on the site.","presto-player")),React.createElement(v,null,React.createElement(b,{className:"editor-video-poster-control"},"audio"!==o&&React.createElement(React.Fragment,null,React.createElement(b.VisualLabel,null,React.createElement("p",null,i("Logo Overlay","presto-player")," ",!(null!==(r=prestoPlayer)&&void 0!==r&&r.isPremium)&&React.createElement(c.a,null))),React.createElement(f,{title:i("Select logo overlay image","presto-player"),onSelect:function(e){j("presto-player/player").updateBranding("logo",e.url)},allowedTypes:_,render:function(e){var t=e.open;return React.createElement(u,{className:"presto-setting__logo",isSecondary:!0,onClick:function(){var e;null!==(e=prestoPlayer)&&void 0!==e&&e.isPremium?t():j("presto-player/player").setProModal(!0)},"aria-describedby":"video-block__logo-image-description-".concat(s)},null!=R&&R.logo?i("Replace","presto-player"):i("Select","presto-player"))}})),React.createElement("p",{id:"video-block__logo-image-description-".concat(s),hidden:!0},null!=R&&R.logo?sprintf(i("The current logo image url is %s","presto-player"),null==R?void 0:R.logo):i("There is no logo image currently selected","presto-player")),!(null==R||!R.logo)&&React.createElement(u,{onClick:function(){j("presto-player/player").updateBranding("logo","")},isTertiary:!0},i("Remove","presto-player")))),!(null==R||!R.logo)&&React.createElement(m,{label:i("Logo Max Width","presto-player"),value:(null==R?void 0:R.logo_width)||150,onChange:function(e){return j("presto-player/player").updateBranding("logo_width",e)},min:1,max:400}),React.createElement(p,{color:null==R?void 0:R.color,onChangeComplete:function(e){j("presto-player/player").updateBranding("color",e.hex)},key:g,disableAlpha:!0}),(null==R?void 0:R.color)&&React.createElement(b,null,React.createElement(u,{isSecondary:!0,onClick:function(){var e,t;j("presto-player/player").updateBranding("color",(null===(e=prestoPlayer)||void 0===e||null===(t=e.defaults)||void 0===t?void 0:t.color)||"#00b3ff"),E(g+1)}},i("Reset Color","presto-player"))),React.createElement(u,{isPrimary:!0,onClick:k},i("Save Branding","presto-player")))}))},function(e,t){e.exports=window.wp.compose},function(e,t,r){"use strict";var n=r(5),a=r(1),o=r(19),l=r.n(o),c=wp.i18n.__,i=wp.element,s=i.useState,p=i.useEffect,u=lodash,d=u.partial,b=u.noop,m=u.find,y=wp.components,f=y.NavigableMenu,v=y.Animate;t.a=function(e){var t,r=e.className,o=e.children,i=e.items,u=e.title,y=e.orientation,h=void 0===y?"horizontal":y,O=e.activeClass,g=void 0===O?"is-active":O,j=e.onSelect,w=void 0===j?b:j,_=s(null),E=Object(a.a)(_,2),R=E[0],k=E[1],P=s("left"),x=Object(a.a)(P,2),C=(x[0],x[1]),S=function(e){k(e),w&&w(e)},N=function(e,t){t.click()},T=m(i,{name:R}),D="".concat(null!==(t=null==T?void 0:T.name)&&void 0!==t?t:"none");return p((function(){C(R?"right":"left")}),[R]),React.createElement("div",{className:r},React.createElement(v,{type:"slide-in",origin:T?"right":"left"},(function(e){var t=e.className;return T?React.createElement("div",{key:D,"aria-labelledby":D,role:"itempanel",id:"".concat(D,"-view"),className:l()(t,"presto-player__menu-content")},React.createElement("div",{className:"presto-player__menu-items"},React.createElement("div",{className:"presto-player__menu-item is-back-button",onClick:function(){return S("")}},React.createElement("svg",{class:"back-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",role:"img","aria-hidden":"true",focusable:"false"},React.createElement("path",{d:"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"})),c("Back","presto-player"))),o(T)):React.createElement("div",{className:l()(t,"is-from-right")},!!u&&React.createElement("h2",null,u),React.createElement(f,{role:"itemlist",orientation:h,onNavigate:N,className:l()("presto-player__menu-items")},i.map((function(e){return React.createElement("div",{className:l()("presto-player__menu-item",e.className,Object(n.a)({},g,e.name===R)),itemId:"".concat(e.name),"aria-controls":"".concat(e.name,"-view"),selected:e.name===R,key:e.name,onClick:d(S,e.name)},!!e.icon&&React.createElement("div",{class:"presto-player__menu-icon"},e.icon),e.title,React.createElement("svg",{className:"submenu-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",role:"img",ariaHidden:"true",focusable:"false"},React.createElement("path",{d:"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"})))}))))})))}},,,function(e,t,r){"use strict";var n,a,o=r(6),l=r(5),c=r(3),i=r(4),s=r(13),p=r(15),u=r(28),d=r(12),b=r(0);function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function f(e){var t=e.state,r=e.updateState,m=e.className,f=t.cta,v=t.email_collection,h=Object(p.useSelect)((function(e){return e("presto-player/player").branding()})),O={percentage:100,show_rewatch:!0,show_skip:!0,headline:Object(c.__)("Want to learn more?","presto-player"),show_button:!0,button_text:Object(c.__)("Click Here","presto-player"),button_link:{opensInNewTab:!0}};Object(s.useEffect)((function(){Object.keys(O).forEach((function(e){var r;void 0===(null==t||null===(r=t.cta)||void 0===r?void 0:r[e])&&g(Object(l.a)({},e,O[e]))}))}),[t]);var g=function(e){r(y(y({},t),{},{cta:y(y({},f),e)}))};return Object(b.c)("div",{className:m},Object(b.c)(i.BaseControl,null,Object(b.c)("h3",null,Object(c.__)("Call To Action","presto-player"))),Object(b.c)(i.BaseControl,{className:"presto-player__control--large-play"},Object(b.c)(i.ToggleControl,{label:Object(c.__)("Enable","presto-player"),help:Object(c.__)("Show an email collection form and message over your player.","presto-player"),onChange:function(e){g({enabled:e})},checked:null==f?void 0:f.enabled})),!(null==f||!f.enabled)&&Object(b.c)(React.Fragment,null,Object(b.c)(i.BaseControl,{className:"presto-player__control--percentage-watched"},Object(b.c)(i.RangeControl,{label:Object(c.__)("Display At (Percentage)","presto-player"),labelPosition:"top",onChange:function(e){g({percentage:e})},marks:[{value:0,label:Object(c.__)("Start","presto-player")},{value:50,label:Object(c.__)("50% Watched","presto-player")},{value:100,label:Object(c.__)("End","presto-player")}],shiftStep:5,value:null==f?void 0:f.percentage})),(null==v?void 0:v.enabled)&&(null==v?void 0:v.percentage)===(null==f?void 0:f.percentage)&&Object(b.c)(i.Notice,{css:Object(b.b)(n||(n=Object(o.a)(["\n margin: 0 0 30px 0 !important;\n "]))),status:"warning",isDismissible:!1},Object(c.__)("You already have an email capture set display at the same time.","presto-player"),Object(b.c)(i.Button,{onClick:function(){r(y(y({},t),{},{email_collection:y(y({},v),{enabled:!1})}))},isLink:!0,css:Object(b.b)(a||(a=Object(o.a)(["\n margin-top: 10px !important;\n "])))},Object(c.__)("Disable Email Capture","presto-player"))),100===(null==f?void 0:f.percentage)?Object(b.c)(i.BaseControl,{className:"presto-player__control--show-rewatch"},Object(b.c)(i.ToggleControl,{label:Object(c.__)("Show Rewatch Button","presto-player"),help:Object(c.__)("Show a rewatch button at the end of the player.","presto-player"),onChange:function(e){g({show_rewatch:e})},checked:null==f?void 0:f.show_rewatch})):Object(b.c)(i.BaseControl,{className:"presto-player__control--show-skip"},Object(b.c)(i.ToggleControl,{label:Object(c.__)("Allow Skipping","presto-player"),help:Object(c.__)("Let the user continue watching the player.","presto-player"),onChange:function(e){g({show_skip:e})},checked:null==f?void 0:f.show_skip})),Object(b.c)(i.BaseControl,{className:"presto-player__control--button-link"},Object(b.c)(i.BaseControl.VisualLabel,null,Object(b.c)("p",null," ",Object(c.__)("Link","presto-player"))),Object(b.c)(u.a,{setSettings:function(e){g({button_link:e})},settings:(null==f?void 0:f.button_link)||{}})),Object(b.c)(i.BaseControl,{className:"presto-player__control--headline"},Object(b.c)(i.TextareaControl,{label:Object(c.__)("Headline","presto-player"),help:Object(c.__)("The headline for your form.","presto-player"),value:null==f?void 0:f.headline,onChange:function(e){g({headline:e})}})),Object(b.c)(i.BaseControl,{className:"presto-player__control--bottom-text"},Object(b.c)(i.TextareaControl,{label:Object(c.__)("Bottom Text","presto-player"),help:Object(c.__)("Text displayed below the form. HTML allowed.","presto-player"),value:null==f?void 0:f.bottom_text,onChange:function(e){g({bottom_text:e})}})),Object(b.c)(i.BaseControl,{className:"presto-player__control--show-button"},Object(b.c)(i.ToggleControl,{label:Object(c.__)("Show Button","presto-player"),help:Object(c.__)("Show a call to action button.","presto-player"),onChange:function(e){g({show_button:e})},checked:null==f?void 0:f.show_button})),!(null==f||!f.show_button)&&Object(b.c)("div",null,Object(b.c)(i.BaseControl,{className:"presto-player__control--button-text"},Object(b.c)(i.TextControl,{label:Object(c.__)("Button Text","presto-player"),help:Object(b.c)("p",null,Object(c.__)("Button text for the Call To Action","presto-player")),value:null==f?void 0:f.button_text,onChange:function(e){return g({button_text:e})}})),Object(b.c)("h3",null,Object(c.__)("Style","presto-player")),Object(b.c)(i.BaseControl,null,Object(b.c)(i.RangeControl,{label:Object(c.__)("Round Corners","presto-player"),help:Object(c.__)("Border radius of form elements.","presto-player"),value:(null==f?void 0:f.button_radius)||0,onChange:function(e){return g({button_radius:e})},min:0,max:25})),Object(b.c)(i.BaseControl,{className:"presto-player__control--button-color"},Object(b.c)(i.Flex,null,Object(b.c)(i.BaseControl.VisualLabel,null,Object(c.__)("Button Color","presto-player")),Object(b.c)(d.a,{color:(null==f?void 0:f.button_color)||(null==h?void 0:h.color),setColor:function(e){return g({button_color:e&&e.hex})}}))),Object(b.c)(i.BaseControl,{className:"presto-player__control--button-text-color"},Object(b.c)(i.Flex,null,Object(b.c)(i.BaseControl.VisualLabel,null,Object(c.__)("Button Text Color","presto-player")),Object(b.c)(d.a,{color:(null==f?void 0:f.button_text_color)||"#ffffff",setColor:function(e){return g({button_text_color:e&&e.hex})}})))),Object(b.c)(i.BaseControl,null,Object(b.c)(i.RangeControl,{label:Object(c.__)("Background Opacity","presto-player"),help:Object(c.__)("Opacity percentage of the cover background.","presto-player"),value:(null==f?void 0:f.background_opacity)||75,onChange:function(e){return g({background_opacity:e})},min:0,max:100}))))}f.defaultProps={catName:"Sandy",eyeColor:"deepblue",age:"120"},t.a=f},function(e,t,r){"use strict";var n=wp.apiFetch;n.use(n.createNonceMiddleware(prestoPlayer.nonce)),n.use(n.createRootURLMiddleware(prestoPlayer.root+prestoPlayer.prestoVersionString)),t.a=n},function(e,t,r){"use strict";r.d(t,"a",(function(){return N}));var n=r(8),a=r(53),o=r(1),l=r(5);function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var s=wp.i18n,p=s.__,u=s.sprintf,d=wp.components,b=d.NavigableMenu,m=d.MenuItem,y=d.FormFileUpload,f=d.MenuGroup,v=d.ToolbarGroup,h=d.ToolbarButton,O=d.Dropdown,g=(d.SVG,d.Rect,d.Path,d.Button),j=d.TextControl,w=(d.SelectControl,wp.blockEditor),_=w.MediaUpload,E=w.MediaUploadCheck,R=wp.data.useSelect,k=wp.element.useState,P=["text/vtt"],x=React.createElement("svg",{viewBox:"0 0 29 25",fill:"none",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.5014 20.2854H28.6316V0.764648H0.110825V20.2854H11.241L14.3712 24.2854L17.5014 20.2854ZM14.3712 21.0401L16.5269 18.2854H26.6316V2.76465H2.11082V18.2854H12.2155L14.3712 21.0401Z"}),React.createElement("path",{d:"M10.4503 14.9446C9.56226 14.9446 8.76226 14.7606 8.05026 14.3926C7.33826 14.0166 6.77826 13.4966 6.37026 12.8326C5.97026 12.1606 5.77026 11.4006 5.77026 10.5526C5.77026 9.70464 5.97026 8.94864 6.37026 8.28464C6.77826 7.61264 7.33826 7.09264 8.05026 6.72464C8.76226 6.34864 9.56226 6.16064 10.4503 6.16064C11.2663 6.16064 11.9943 6.30464 12.6343 6.59264C13.2743 6.88064 13.8023 7.29664 14.2183 7.84064L12.4303 9.43664C11.9103 8.78064 11.2983 8.45264 10.5943 8.45264C10.0023 8.45264 9.52626 8.64464 9.16626 9.02864C8.80626 9.40464 8.62626 9.91264 8.62626 10.5526C8.62626 11.1926 8.80626 11.7046 9.16626 12.0886C9.52626 12.4646 10.0023 12.6526 10.5943 12.6526C11.2983 12.6526 11.9103 12.3246 12.4303 11.6686L14.2183 13.2646C13.8023 13.8086 13.2743 14.2246 12.6343 14.5126C11.9943 14.8006 11.2663 14.9446 10.4503 14.9446Z"}),React.createElement("path",{d:"M19.2042 14.9446C18.3162 14.9446 17.5162 14.7606 16.8042 14.3926C16.0922 14.0166 15.5322 13.4966 15.1242 12.8326C14.7242 12.1606 14.5242 11.4006 14.5242 10.5526C14.5242 9.70464 14.7242 8.94864 15.1242 8.28464C15.5322 7.61264 16.0922 7.09264 16.8042 6.72464C17.5162 6.34864 18.3162 6.16064 19.2042 6.16064C20.0202 6.16064 20.7482 6.30464 21.3882 6.59264C22.0282 6.88064 22.5562 7.29664 22.9722 7.84064L21.1842 9.43664C20.6642 8.78064 20.0522 8.45264 19.3482 8.45264C18.7562 8.45264 18.2802 8.64464 17.9202 9.02864C17.5602 9.40464 17.3802 9.91264 17.3802 10.5526C17.3802 11.1926 17.5602 11.7046 17.9202 12.0886C18.2802 12.4646 18.7562 12.6526 19.3482 12.6526C20.0522 12.6526 20.6642 12.3246 21.1842 11.6686L22.9722 13.2646C22.5562 13.8086 22.0282 14.2246 21.3882 14.5126C20.7482 14.8006 20.0202 14.9446 19.2042 14.9446Z"}));function C(e){var t,r=e.tracks,n=e.onEditPress;return t=0===r.length?React.createElement("p",{className:"block-library-video-tracks-editor__tracks-informative-message"},p("Captions are .vtt files that help make your content more accesible to a wider range of users.","presto-player")):r.map((function(e,t){return React.createElement("div",{key:t,className:"block-library-video-tracks-editor__track-list-track"},React.createElement("span",null,e.label," "),React.createElement(g,{isTertiary:!0,onClick:function(){return n(t)},"aria-label":u(p("Edit %s","presto-player"),e.label)},p("Edit","presto-player")))})),React.createElement(f,{label:p("Captions","presto-player"),className:"block-library-video-tracks-editor__track-list"},t)}function S(e){var t=e.track,r=e.onChange,n=e.onClose,a=e.onRemove,o=t.src,l=void 0===o?"":o,c=t.label,s=void 0===c?"":c,u=t.srcLang,d=void 0===u?"":u,m=(t.kind,l.startsWith("blob:")?"":l.substring(l.lastIndexOf("/")+1));return React.createElement(b,null,React.createElement("div",{className:"block-library-video-tracks-editor__single-track-editor"},React.createElement("span",{className:"block-library-video-tracks-editor__single-track-editor-edit-track-label"},p("Edit caption track","presto-player")),React.createElement("span",null,p("File","presto-player"),": ",React.createElement("b",null,m)),React.createElement("div",{className:"block-library-video-tracks-editor__single-track-editor-label-language"},React.createElement(j,{autoFocus:!0,onChange:function(e){return r(i(i({},t),{},{label:e}))},label:p("Label","presto-player"),value:s,help:p("Title of track","presto-player")}),React.createElement(j,{onChange:function(e){return r(i(i({},t),{},{srcLang:e}))},label:p("Source language","presto-player"),value:d,help:p("Language tag (en, fr, etc.)","presto-player")})),React.createElement("div",{className:"block-library-video-tracks-editor__single-track-editor-buttons-container"},React.createElement(g,{isSecondary:!0,onClick:function(){var e={},a=!1;""===s&&(e.label=p("English","presto-player"),a=!0),""===d&&(e.srcLang="en",a=!0),a&&r(i(i({},t),e)),n()}},p("Close","presto-player")),React.createElement(g,{isDestructive:!0,isLink:!0,onClick:a},p("Remove track","presto-player")))))}function N(e){var t=e.tracks,r=void 0===t?[]:t,l=e.onChange,c=R((function(e){return e("core/block-editor").getSettings().mediaUpload}),[]),s=k(null),u=Object(o.a)(s,2),d=u[0],g=u[1];return c?React.createElement(O,{contentClassName:"block-library-video-tracks-editor",renderToggle:function(e){var t=e.isOpen,r=e.onToggle;return React.createElement(v,null,React.createElement(h,{label:p("Captions","presto-player"),showTooltip:!0,"aria-expanded":t,"aria-haspopup":"true",onClick:r,icon:x}))},renderContent:function(e){return Object(a.a)(e),null!==d?React.createElement(S,{track:r[d],onChange:function(e){var t=Object(n.a)(r);t[d]=e,l(t)},onClose:function(){return g(null)},onRemove:function(){l(r.filter((function(e,t){return t!==d}))),g(null)}}):React.createElement(React.Fragment,null,React.createElement(b,null,React.createElement(C,{tracks:r,onEditPress:g}),React.createElement(f,{className:"block-library-video-tracks-editor__add-tracks-container",label:p("Add caption languages","presto-player")},React.createElement(_,{onSelect:function(e){var t=e.url,a=r.length;l([].concat(Object(n.a)(r),[{src:t}])),g(a)},allowedTypes:P,render:function(e){var t=e.open;return React.createElement(m,{icon:"media",onClick:t},p("Open Media Library","presto-player"))}}),React.createElement(E,null,React.createElement(y,{onChange:function(e){var t=e.target.files,a=r.length;c({allowedTypes:P,filesList:t,onFileChange:function(e){var t=Object(o.a)(e,1)[0].url,c=Object(n.a)(r);c[a]||(c[a]={}),c[a]=i(i({},r[a]),{},{src:t}),l(c),g(a)}})},accept:".vtt,text/vtt",render:function(e){var t=e.openFileDialog;return React.createElement(m,{icon:"upload",onClick:function(){t()}},p("Upload","presto-player"))}})))))}}):null}},function(e,t,r){"use strict";var n=r(5),a=r(1),o=r(26),l=r(9),c=r(14);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var p=wp.i18n.__,u=wp.components.Disabled,d=wp.element,b=d.useState,m=d.useEffect;t.a=function(e){var t,r,n,i=e.state,d=e.branding,y=e.menu,f=e.src,v=e.poster,h=e.currentTime,O=e.preload,g=e.overlays,j=e.isDisabled,w=void 0===j||j,_=b(1),E=Object(a.a)(_,2),R=E[0],k=E[1],P=i.email_collection,x=i.cta;m((function(){k(R+1)}),[i.skin,i["play-large"],i.rewind,i.play,i["fast-forward"],i.progress,i["current-time"],i.mute,i.volume,i.speed,i.pip,i.fullscreen,i.captions,i.hide_logo]);var C={email:!(null==P||!P.enabled)&&React.createElement(o.b,{className:"email-overlay",slot:"player-end",headline:null==P?void 0:P.headline,style:s(s({"--presto-player-email-border-radiuss":"".concat(null==P?void 0:P.button_radius,"px"),"--plyr-color-main":(null==i?void 0:i.background_color)||(null==d?void 0:d.color)},P.button_color?{"--presto-player-button-color":"".concat(P.button_color)}:{}),P.button_text_color?{"--presto-player-button-text":"".concat(P.button_text_color)}:{}),defaultHeadline:p("Enter your email to play.","presto-player"),bottomText:null==P?void 0:P.bottom_text,allowSkip:null==P?void 0:P.allow_skip,skipText:p("Skip","presto-player"),buttonText:null==P?void 0:P.button_text,placeholder:p("Email address","presto-player"),i18n:window.prestoPlayer.i18n}),cta:!(null==x||!x.enabled)&&React.createElement(o.a,{className:"cta-overlay",style:s(s(s({"--presto-player-button-border-radius":"".concat(x.button_radius,"px")},null!=x&&x.background_opacity?{"--presto-player-cta-background-opacity":"".concat((null==x?void 0:x.background_opacity)/100)}:{}),x.button_color?{"--presto-player-button-color":"".concat(x.button_color)}:{}),x.button_text_color?{"--presto-player-button-text":"".concat(x.button_text_color)}:{}),slot:"player-end",headline:null==x?void 0:x.headline,"bottom-text":null==x?void 0:x.bottom_text,"button-link":null==x?void 0:x.button_link,"allow-skip":100!==(null==x?void 0:x.percentage)&&(null==x?void 0:x.show_skip),borderRadius:null==x?void 0:x.border_radius,"allow-rewatch":100===(null==x?void 0:x.percentage)&&(null==x?void 0:x.show_rewatch),"skip-text":p("Skip","presto-player"),"show-button":null==x?void 0:x.show_button,"button-text":null==x?void 0:x.button_text,i18n:null===(t=window)||void 0===t||null===(r=t.prestoPlayer)||void 0===r?void 0:r.i18n})};return React.createElement(u,{isDisabled:w,className:"disable-player"},React.createElement("div",{className:"presto-player__wrapper"},React.createElement(c.a,{src:f||"",className:"\n ".concat("cta"===y&&!(null==x||!x.enabled)&&"cta-active"," \n ").concat("email"===y&&!(null==P||!P.enabled)&&"email-active"),preset:i,branding:s(s({},d),{},{logo:null!=i&&i.hide_logo?"":d.logo}),i18n:null===(n=prestoPlayerAdmin)||void 0===n?void 0:n.i18n,preload:O,attributes:{chapters:[],poster:v},currentTime:h?Object(l.e)(h):"",overlays:g,key:R,adminPreview:(null==C?void 0:C[y])||""})))}},function(e,t,r){"use strict";var n=r(1),a=wp.i18n.__,o=wp.components.TextareaControl,l=wp.element.useState;t.a=function(e){var t=e.text,r=e.update,c=e.onFocus,i=l(!1),s=Object(n.a)(i,2),p=s[0],u=s[1];return React.createElement("div",{style:{display:"block",width:"100%"}},React.createElement(o,{label:"Text",help:React.createElement("span",null,a("This field accepts","presto-player")," ",React.createElement("a",{href:"#",onClick:function(e){u(!p),e.preventDefault()}},a("Dynamic Data","presto-player")),!!p&&React.createElement("div",{style:{marginTop:"20px"}},a("This field will also accept dynamic values that we will replace with dynamic content: {user.user_login}, {user.user_nicename}, {user.user_email}, {user.user_url},{user.user_registered}, {user.display_name}, {site.url}, {site.name}, {ip_address}","presto-player"))),className:"presto-player__overlay--text",placeholder:a("Enter some text.","presto-player"),value:t||"",onChange:function(e){return r({text:e})},autoComplete:"off",onFocus:c}))}},function(e,t,r){"use strict";var n=r(1),a=wp.components,o=a.Button,l=a.Placeholder,c=a.TextControl,i=a.Flex,s=a.FlexItem,p=a.FlexBlock,u=wp.element.useState,d=wp.i18n.__;t.a=function(e){var t=e.attributes,r=(e.setAttributes,e.icon),a=e.onSelectURL,b=e.label,m=e.instructions,y=e.placeholder,f=t.src,v=u({src:f}),h=Object(n.a)(v,2),O=h[0],g=h[1];return React.createElement(l,{icon:r,label:b||d("Presto Embedded Video","presto-player"),instructions:m||d("Enter video URL","presto-player")},React.createElement("form",{onSubmit:function(e){e.preventDefault(),a(O.url)}},React.createElement(i,{style:{width:"100%",maxWidth:"400px"}},React.createElement(p,null,React.createElement(c,{type:"url",className:"presto-link-placeholder-input",placeholder:y||d("Youtube URL","presto-player"),value:O.url,onChange:function(e){return g({url:e})}})),React.createElement(s,null,React.createElement(o,{isPrimary:!0,style:{marginBottom:"8px"},type:"submit"},d("Add Video","presto-player"))))))}},function(e,t,r){"use strict";var n,a,o=r(6),l=r(5),c=r(3),i=r(4),s=r(15),p=r(8),u=r(7),d=r(1),b=r(2),m=r.n(b),y=function(){return React.createElement("div",null,React.createElement("presto-player-skeleton",{style:{width:"30%",marginBottom:"10px"}}),React.createElement("presto-player-skeleton",{style:{height:"2rem",marginBottom:"20px"}}))},f=wp.i18n.__,v=wp.components,h=v.SelectControl,O=v.TextControl,g=v.Notice,j=wp.element,w=j.useEffect,_=j.useState,E=function(e){var t=e.options,r=e.updateEmailState,n=_(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=_([{value:null,label:f("Choose an audience","presto-player")}]),i=Object(d.a)(c,2),s=i[0],b=i[1],v=_(""),j=Object(d.a)(v,2),E=j[0],R=j[1],k=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/mailchimp/lists"});case 4:t=e.sent,r=s,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.name}])})),b(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&R(e.t0.message);case 13:return e.prev=13,l(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}();return w((function(){k()}),[]),o?React.createElement("div",null,React.createElement(y,null),React.createElement(y,null)):E?React.createElement(g,{className:"presto-notice",status:"error",isDismissible:!1},E):React.createElement("div",null,React.createElement(h,{label:f("Choose an audience","presto-player"),value:null==t?void 0:t.provider_list,options:s,onChange:function(e){return r({provider_list:e})}}),React.createElement(O,{label:f("Tag","presto-player"),help:React.createElement("p",null,f("Give this contact an optional tag when they are added to the list.","presto-player")),value:null==t?void 0:t.provider_tag,onChange:function(e){return r({provider_tag:e})}}))},R=wp.i18n.__,k=wp.components,P=k.SelectControl,x=k.Notice,C=wp.element,S=C.useEffect,N=C.useState,T=function(e){var t=e.options,r=e.updateEmailState,n=N(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=N([{value:null,label:R("Choose a group","presto-player")}]),i=Object(d.a)(c,2),s=i[0],b=i[1],f=N(""),v=Object(d.a)(f,2),h=v[0],O=v[1],g=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/mailerlite/groups"});case 4:t=e.sent,r=s,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.name}])})),b(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&O(e.t0.message);case 13:return e.prev=13,l(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}();return S((function(){g()}),[]),o?React.createElement(y,null):h?React.createElement(x,{className:"presto-notice",status:"error",isDismissible:!1},h):React.createElement("div",null,React.createElement(P,{label:R("Choose a group","presto-player"),value:null==t?void 0:t.provider_list,options:s,onChange:function(e){return r({provider_list:e})}}))},D=wp.i18n.__,B=wp.components,A=B.SelectControl,L=B.Notice,I=wp.element,F=I.useEffect,V=I.useState,U=function(e){var t=e.options,r=e.updateEmailState,n=V(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=V(!1),i=Object(d.a)(c,2),s=i[0],b=i[1],f=V([{value:null,label:D("Choose a list","presto-player")}]),v=Object(d.a)(f,2),h=v[0],O=v[1],g=V([{value:null,label:D("Choose a tag","presto-player")}]),j=Object(d.a)(g,2),w=j[0],_=j[1],E=V(""),R=Object(d.a)(E,2),k=R[0],P=R[1],x=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/activecampaign/lists"});case 4:t=e.sent,r=h,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.name||D("Default list","presto-player")}])})),O(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&P(e.t0.message);case 13:return e.prev=13,l(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}(),C=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return b(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/activecampaign/tags"});case 4:t=e.sent,r=w,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.tag}])})),_(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&P(e.t0.message);case 13:return e.prev=13,b(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}();return F((function(){x(),C()}),[]),k?React.createElement(L,{className:"presto-notice",status:"error",isDismissible:!1},k):React.createElement("div",null,o?React.createElement(y,null):h.length>1&&React.createElement(A,{label:D("Choose a list","presto-player"),value:null==t?void 0:t.provider_list,options:h,onChange:function(e){return r({provider_list:e})}}),s?React.createElement(y,null):w.length>1&&React.createElement(A,{label:D("Choose a tag","presto-player"),value:null==t?void 0:t.provider_tag,options:w,onChange:function(e){return r({provider_tag:e})}}))},M=wp.i18n.__,z=wp.components,W=z.SelectControl,H=z.Notice,Y=wp.element,G=Y.useEffect,q=Y.useState,Z=function(e){var t=e.options,r=e.updateEmailState,n=q(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=q(!1),i=Object(d.a)(c,2),s=i[0],b=i[1],f=q([{value:null,label:M("Choose a list","presto-player")}]),v=Object(d.a)(f,2),h=v[0],O=v[1],g=q([{value:null,label:M("Choose a tag","presto-player")}]),j=Object(d.a)(g,2),w=j[0],_=j[1],E=q(""),R=Object(d.a)(E,2),k=R[0],P=R[1],x=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/fluentcrm/lists"});case 4:t=e.sent,r=h,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.title||e.slug}])})),O(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&P(e.t0.message);case 13:return e.prev=13,l(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}(),C=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return b(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/fluentcrm/tags"});case 4:t=e.sent,r=w,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.title||e.slug}])})),_(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&P(e.t0.message);case 13:return e.prev=13,b(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}();return G((function(){x(),C()}),[]),k?React.createElement(H,{className:"presto-notice",status:"error",isDismissible:!1},k):React.createElement("div",null,o?React.createElement(y,null):h.length>1&&React.createElement(W,{label:M("Choose a list","presto-player"),value:null==t?void 0:t.provider_list,options:h,onChange:function(e){return r({provider_list:e})}}),s?React.createElement(y,null):w.length>1&&React.createElement(W,{label:M("Choose a tag","presto-player"),value:null==t?void 0:t.provider_tag,options:w,onChange:function(e){return r({provider_tag:e})}}))},K=wp.i18n.__,Q=wp.components,X=Q.SelectControl,$=Q.Button,J=Q.Flex,ee=Q.Icon,te=wp.element,re=te.useEffect,ne=te.useState,ae=function(e){var t=e.options,r=e.updateEmailState,n=ne(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=ne([{value:"none",label:K("None","presto-player")}]),i=Object(d.a)(c,2),s=i[0],b=i[1],f=ne(""),v=Object(d.a)(f,2),h=v[0],O=v[1],g={presto_player_activecampaign:{label:"ActiveCampaign",value:"activecampaign"},presto_player_mailchimp:{label:"MailChimp",value:"mailchimp"},presto_player_mailerlite:{label:"MailerLite",value:"mailerlite"},presto_player_fluentcrm:{label:"FluentCRM",value:"fluentcrm"}},j=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),O(""),e.prev=2,e.next=5,wp.apiFetch({path:"wp/v2/settings"});case 5:t=e.sent,r=s,Object.keys(t).forEach((function(e){var n;null!=g&&g[e]&&null!==(n=t[e])&&void 0!==n&&n.connected&&(r=[].concat(Object(p.a)(r),[g[e]]))})),b(r),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(2),null!==e.t0&&void 0!==e.t0&&e.t0.message&&O(e.t0.message);case 14:return e.prev=14,l(!1),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[2,11,14,17]])})));return function(){return e.apply(this,arguments)}}();re((function(){j()}),[]);return o?React.createElement(y,null):React.createElement("div",null,h,s.length>1?React.createElement("div",null,React.createElement(X,{label:K("Choose an email provider","presto-player"),value:null==t?void 0:t.provider,options:s,onChange:function(e){return r({provider:e})}}),function(){var e=s.find((function(e){return e.value===(null==t?void 0:t.provider)}));if(Object.keys(e||{}).length)switch(null==t?void 0:t.provider){case"mailchimp":return React.createElement(E,{options:t,updateEmailState:r});case"mailerlite":return React.createElement(T,{options:t,updateEmailState:r});case"activecampaign":return React.createElement(U,{options:t,updateEmailState:r});case"fluentcrm":return React.createElement(Z,{options:t,updateEmailState:r})}}()):React.createElement(J,null,React.createElement($,{target:"_blank",href:"/wp-admin/edit.php?post_type=pp_video_block&page=presto-player-settings#/integrations",isSecondary:!0,isSmall:!0},K("Connect a provider","presto-player")),React.createElement($,{isSmall:!0,onClick:function(e){e.preventDefault(),j()}},React.createElement(ee,{icon:"update"}))))},oe=r(12),le=r(0);function ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ie(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ce(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}t.a=function(e){var t=e.state,r=e.updateState,l=e.className,p=t.email_collection,u=t.cta,d=Object(s.useSelect)((function(e){return e("presto-player/player").branding()})),b=function(e){r(ie(ie({},t),{},{email_collection:ie(ie({},p),e)}))};return Object(le.c)("div",{className:l},Object(le.c)(i.BaseControl,null,Object(le.c)("h3",null,Object(c.__)("Email Capture","presto-player"))),Object(le.c)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.c)(i.ToggleControl,{label:Object(c.__)("Enable","presto-player"),help:Object(c.__)("Show an email collection form and message over your player.","presto-player"),onChange:function(e){b({enabled:e})},checked:null==p?void 0:p.enabled})),!(null==p||!p.enabled)&&Object(le.c)(React.Fragment,null,Object(le.c)(i.BaseControl,{className:"presto-player__control--percentage-watched"},Object(le.c)(i.RangeControl,{label:Object(c.__)("Display At (Percentage)","presto-player"),labelPosition:"top",onChange:function(e){b({percentage:e})},marks:[{value:0,label:Object(c.__)("Start","presto-player")},{value:50,label:Object(c.__)("50% Watched","presto-player")},{value:100,label:Object(c.__)("End","presto-player")}],shiftStep:5,value:(null==p?void 0:p.percentage)||0})),(null==u?void 0:u.enabled)&&(null==p?void 0:p.percentage)===(null==u?void 0:u.percentage)&&Object(le.c)(i.Notice,{css:Object(le.b)(n||(n=Object(o.a)(["\n margin: 0 0 30px 0 !important;\n "]))),status:"warning",isDismissible:!1},Object(c.__)("You already have a Call To Action set display at the same time.","presto-player"),Object(le.c)(i.Button,{onClick:function(){r(ie(ie({},t),{},{cta:ie(ie({},u),{enabled:!1})}))},isLink:!0,css:Object(le.b)(a||(a=Object(o.a)(["\n margin-top: 10px !important;\n "])))},Object(c.__)("Disable Call To Action","presto-player"))),Object(le.c)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.c)(i.ToggleControl,{label:Object(c.__)("Allow Skipping","presto-player"),help:Object(c.__)("Let the viewer skip","presto-player"),onChange:function(e){b({allow_skip:e})},checked:null==p?void 0:p.allow_skip})),Object(le.c)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.c)(i.TextareaControl,{label:Object(c.__)("Headline","presto-player"),help:Object(c.__)("The headline for your form.","presto-player"),value:null==p?void 0:p.headline,onChange:function(e){b({headline:e})}})),Object(le.c)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.c)(i.TextareaControl,{label:Object(c.__)("Bottom Text","presto-player"),help:Object(c.__)("Text displayed below the form. HTML allowed.","presto-player"),value:null==p?void 0:p.bottom_text,onChange:function(e){b({bottom_text:e})}})),Object(le.c)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.c)(i.TextControl,{label:Object(c.__)("Play Button Text","presto-player"),help:Object(le.c)("p",null,Object(c.__)("Submit button text","presto-player")),value:null==p?void 0:p.button_text,onChange:function(e){return b({button_text:e})}})),Object(le.c)(i.BaseControl,{className:"presto-player__control--button-color"},Object(le.c)(i.Flex,null,Object(le.c)(i.BaseControl.VisualLabel,null,Object(c.__)("Button Color","presto-player")),Object(le.c)(oe.a,{color:(null==u?void 0:u.button_color)||(null==d?void 0:d.color),setColor:function(e){return b({button_color:e&&e.hex})}}))),Object(le.c)(i.BaseControl,{className:"presto-player__control--button-text-color"},Object(le.c)(i.Flex,null,Object(le.c)(i.BaseControl.VisualLabel,null,Object(c.__)("Button Text Color","presto-player")),Object(le.c)(oe.a,{color:(null==u?void 0:u.button_text_color)||"#ffffff",setColor:function(e){return b({button_text_color:e&&e.hex})}}))),Object(le.c)("h3",null,Object(c.__)("Integrate","presto-player")),Object(le.c)(i.BaseControl,null,Object(le.c)(ae,{updateEmailState:b,options:p})),Object(le.c)("h3",null,Object(c.__)("Style","presto-player")),Object(le.c)(i.BaseControl,null,Object(le.c)(i.RangeControl,{label:Object(c.__)("Round Corners","presto-player"),help:Object(c.__)("Border radius of form elements.","presto-player"),value:(null==p?void 0:p.border_radius)||0,onChange:function(e){return b({border_radius:e})},min:0,max:25}))))}},,function(e,t,r){"use strict";var n=r(8),a=r(5),o=r(1),l=r(9),c=wp.i18n.__,i=wp.components,s=i.Flex,p=i.FlexItem,u=i.FlexBlock,d=i.TextControl,b=i.Button,m=wp.element.useState,y=function(e){var t=e.update,r=e.add,n=e.remove,i=e.className,y=e.time,f=e.title,v=(e.disabled,e.showNotice,m(y)),h=Object(o.a)(v,2),O=h[0],g=h[1];return React.createElement(s,{align:"center",className:i},React.createElement(p,null,React.createElement(d,Object(a.a)({className:"presto-player__caption--time",style:{width:"60px"},placeholder:"0:00",value:O,onChange:function(e){return g(e)},onBlur:function(){var e=Object(l.b)(O);t({time:e}),g(e)},autoComplete:"off"},"placeholder","0:00"))),React.createElement(u,null,React.createElement(d,{className:"presto-player__caption--title",placeholder:c("Title","presto-player"),value:f||"",onChange:function(e){return t({title:e})},autoComplete:"off"})),React.createElement(p,null,n&&React.createElement(b,{icon:"minus",className:"ph-chapter__remove",style:{marginBottom:"8px"},label:c("Remove Chapter","presto-player"),onClick:n}),r&&React.createElement(b,{icon:"plus-alt",className:"ph-chapter__add",label:c("Add Chapter","presto-player"),style:{marginBottom:"8px"},onClick:function(){r(),g("")}})))};function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}wp.i18n.__;var h=wp.element.useState,O=wp.data.dispatch;t.a=function(e){var t,r=e.setAttributes,a=e.attributes,l=function(){O("presto-player/player").setProModal(!0)};if(null===(t=prestoPlayer)||void 0===t||!t.isPremium)return React.createElement(y,{disabled:!0,className:"ph-chapter is-new",time:"",title:"",update:function(){},showNotice:l,add:l});var c=a.chapters,i=h({title:"",time:""}),s=Object(o.a)(i,2),p=s[0],u=s[1];return React.createElement(React.Fragment,null,(c||[]).sort((function(e,t){return parseInt(e.time.split(":")[0])-parseInt(t.time.split(":")[0])==0?parseInt(e.time.split(":")[1])-parseInt(t.time.split(":")[1]):parseInt(e.time.split(":")[0])-parseInt(t.time.split(":")[0])})).map((function(e,t){return React.createElement(y,{key:"".concat(t,"-").concat(e.time),className:"ph-chapter",time:e.time,title:e.title,chapter:e,update:function(t){!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=c.indexOf(e),a=c.map((function(e,r){return r!==n?e:v(v({},e),t)}));r({chapters:a})}(e,t)},remove:function(){!function(e){var t=c.indexOf(e);r({chapters:c.filter((function(e,r){return r!==t}))})}(e)}})})),React.createElement(y,{className:"ph-chapter is-new",time:p.time,title:p.title,update:function(e){u(v(v({},p),e))},add:function(){p.time&&p.title&&(r({chapters:[].concat(Object(n.a)(c||[]),[{time:p.time,title:p.title}])}),u({title:"",time:""}))}}))}},function(e,t,r){"use strict";var n,a,o,l=r(5),c=r(1),i=r(12),s=r(28),p=r(6),u=r(7),d=r(2),b=r.n(d),m=r(0);function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var v=wp.i18n.__,h=wp.components,O=h.TextControl,g=h.ExternalLink,j=h.Button,w=(h.Flex,wp.element),_=w.useState,E=w.useEffect,R=wp.data,k=R.useSelect,P=R.dispatch,x=function(e){var t=e.onClose,r=e.value,l=e.setValue,i=_(!1),s=Object(c.a)(i,2),d=s[0],y=s[1],h=wp.data.useSelect((function(e){return e("core").canUser("read","settings")})),w=k((function(e){return e("presto-player/player").youtube()}));E((function(){l(w.channel_id)}),[null==w?void 0:w.channel_id]);var R=function(){var e=Object(u.a)(b.a.mark((function e(n){var a,o;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.preventDefault(),y(!0),P("presto-player/player").updateYoutube({channel_id:r}),a=f(f({},w),{channel_id:r}),e.prev=4,e.next=7,wp.apiFetch({path:"wp/v2/settings",method:"POST",data:{presto_player_youtube:a}});case 7:null!=(o=e.sent)&&o.presto_player_youtube&&(P("presto-player/player").setYoutube(null==o?void 0:o.presto_player_youtube),t()),e.next=13;break;case 11:e.prev=11,e.t0=e.catch(4);case 13:return e.prev=13,y(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[4,11,13,16]])})));return function(t){return e.apply(this,arguments)}}();return h?Object(m.c)("form",{onSubmit:R},Object(m.c)(O,{css:Object(m.b)(n||(n=Object(p.a)(["\n margin-bottom: 0 !important;\n "]))),label:v("Youtube Channel ID","presto-player"),help:Object(m.c)("p",null,Object(m.c)(g,{href:"https://support.google.com/youtube/answer/3250431?hl=en"},v("Find my channel id","presto-player"))),value:r,onChange:function(e){return l(e)}}),Object(m.c)(j,{disabled:d,isBusy:d,css:Object(m.b)(a||(a=Object(p.a)(["\n margin-bottom: 1em;\n "]))),isPrimary:!0,type:"submot"},v("Save","presto-player")),Object(m.c)(j,{onClick:t,css:Object(m.b)(o||(o=Object(p.a)(["\n margin-bottom: 1em;\n "]))),isTertiary:!0},v("Cancel","presto-player"))):""};function C(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?C(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):C(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var N=wp.i18n.__,T=wp.components,D=T.ToggleControl,B=T.Flex,A=T.Button,L=T.BaseControl,I=T.RangeControl,F=T.TextControl,V=T.SelectControl,U=T.TextareaControl,M=wp.element,z=M.useEffect,W=M.useState,H=wp.data.useSelect;t.a=function(e){var t=e.state,r=e.updateState,n=e.className,a=e.value,o=e.setValue,l=t.action_bar,p=W(!1),u=Object(c.a)(p,2),d=u[0],b=u[1],m=H((function(e){return e("presto-player/player").branding()})),y=H((function(e){return e("presto-player/player").youtube()})),f=function(e){r(S(S({},t),{},{action_bar:S(S({},l),e)}))};z((function(){null!=l&&l.text||f({text:"Like this?"}),null!=l&&l.button_type||f({button_type:"custom"}),null!=l&&l.button_text||f({button_text:"Click Here"})}),[t]);return React.createElement("div",{className:n},React.createElement(L,null,React.createElement("h3",null,N("Action Bar","presto-player"))),React.createElement(L,{className:"presto-player__control--large-play"},React.createElement(D,{label:N("Enable","presto-player"),help:N("Show an action bar below your player while it's playing.","presto-player"),onChange:function(e){f({enabled:e})},checked:null==l?void 0:l.enabled})),!(null==l||!l.enabled)&&React.createElement(React.Fragment,null,React.createElement(L,{className:"presto-player__control--percentage-watched"},React.createElement(I,{label:N("Display At (Percentage)","presto-player"),labelPosition:"top",onChange:function(e){f({percentage_start:e})},marks:[{value:0,label:N("Start","presto-player")},{value:50,label:N("50% Watched","presto-player")},{value:100,label:N("End","presto-player")}],shiftStep:5,value:(null==l?void 0:l.percentage_start)||0})),React.createElement(L,{className:"presto-player__control--large-play"},React.createElement(U,{label:N("Text","presto-player"),help:N("Action bar text.","presto-player"),value:null==l?void 0:l.text,onChange:function(e){return f({text:e})}})),React.createElement(L,{className:"presto-player__control--large-play"},React.createElement(B,null,React.createElement(L.VisualLabel,null,N("Action Bar Background","presto-player")),React.createElement(i.a,{color:(null==l?void 0:l.background_color)||"#1d1d1d",setColor:function(e){return f({background_color:e&&e.hex})}}))),React.createElement(L,null,React.createElement("h3",null,N("Button","presto-player"))),React.createElement(L,{className:"presto-player__control--button-type"},React.createElement(V,{label:N("Button Type","presto-player"),value:null==l?void 0:l.button_type,options:[{value:"custom",label:N("Custom","presto-player")},{value:"youtube",label:N("YouTube Subscribe","presto-player")},{value:"none",label:N("None","presto-player")}],onChange:function(e){return f({button_type:e})}})),"youtube"===(null==l?void 0:l.button_type)&&(null==y?void 0:y.channel_id)&&React.createElement(D,{label:N("Show Count","presto-player"),help:N("Show your follower count.","presto-player"),onChange:function(e){f({button_count:e})},checked:null==l?void 0:l.button_count}),function(){if("youtube"===(null==l?void 0:l.button_type))return d?React.createElement(x,{onClose:function(){return b(!1)},value:a,setValue:o}):React.createElement("div",null,React.createElement(A,{isSecondary:!0,onClick:function(e){e.preventDefault(),b(!0)}},null!=y&&y.channel_id?N("Update Youtube Channel Id","presto-player"):N("Add Youtube Channel Id","presto-player")),React.createElement("br",null),React.createElement("br",null),React.createElement("br",null))}(),"custom"===(null==l?void 0:l.button_type)&&React.createElement("div",null,React.createElement(L,{className:"presto-player__control--button-text"},React.createElement(F,{label:N("Button Text","presto-player"),help:React.createElement("p",null,N("Submit button text","presto-player")),value:null==l?void 0:l.button_text,onChange:function(e){return f({button_text:e})}})),React.createElement(L,{className:"presto-player__control--button-text"},React.createElement(L.VisualLabel,null,React.createElement("p",null," ",N("Button Link","presto-player"))),React.createElement(s.a,{setSettings:function(e){f({button_link:e})},settings:(null==l?void 0:l.button_link)||{}})),React.createElement(L,{className:"presto-player__control--button-radius"},React.createElement(I,{label:N("Round Corners","presto-player"),help:N("Border radius of the button","presto-player"),value:(null==l?void 0:l.button_radius)||0,onChange:function(e){return f({button_radius:e})},min:0,max:25})),React.createElement(L,{className:"presto-player__control--button-color"},React.createElement(B,null,React.createElement(L.VisualLabel,null,N("Button Color","presto-player")),React.createElement(i.a,{color:(null==l?void 0:l.button_color)||(null==m?void 0:m.color),setColor:function(e){return f({button_color:e&&e.hex})}}))),React.createElement(L,{className:"presto-player__control--button-text-color"},React.createElement(B,null,React.createElement(L.VisualLabel,null,N("Button Text Color","presto-player")),React.createElement(i.a,{color:(null==l?void 0:l.button_text_color)||"#ffffff",setColor:function(e){return f({button_text_color:e&&e.hex})}}))))))}},function(e,t){e.exports=window.wp.editor},,,,,,,function(e,t,r){"use strict";(function(e){var n,a,o=r(6),l=r(8),c=r(5),i=r(1),s=r(56),p=r(0),u=r(40),d=r(55);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var y=wp.i18n.__,f=wp.components,v=f.Button,h=f.Flex,O=f.FlexItem,g=f.FlexBlock,j=f.Modal,w=wp.element,_=w.useState,E=w.useEffect,R=wp.data.useSelect;t.a=function(t){var r=t.closeModal,c=t.attributes,b=t.setAttributes,f=t.updateOverlayAttribute,w=_(!1),k=Object(i.a)(w,2),P=k[0],x=k[1],C=_(""),S=Object(i.a)(C,2),N=S[0],T=S[1],D=c.overlays,B=c.preset,A=c.src,L=c.poster,I=c.previewSrc,F=R((function(e){return e("presto-player/player").branding()})),V=R((function(e){return e("presto-player/player").getPreset(B)}));E((function(){D.length||U()}),[]);var U=function(){var e={startTime:"0:00",endTime:"0:05",text:y("Here's a link to click!","presto-player"),link:{},position:"top-right",color:"#fff",backgroundColor:"#000",opacity:75};D[D.length-1]&&(e=m({},D[D.length-1]));e.id=Object(s.a)(10),b({overlays:[].concat(Object(l.a)(D||[]),[e])})};return Object(p.c)(j,{title:y("Manage Video Overlays","presto-player"),onRequestClose:r,className:"presto-player__modal-presets",overlayClassName:"presto-player__modal-presets-overlay",shouldCloseOnClickOutside:!1},Object(p.c)("div",{className:"presto-player__preset-options","data-cy":"preset-modal"},Object(p.c)(h,{align:"stretch",className:"presto-player__style-preview-area"},Object(p.c)(O,{className:"presto-player__style-sidebar"},Object(p.c)("div",{css:{padding:"3px"}},(D||[]).sort((function(e,t){return parseInt(e.startTime.split(":")[0])-parseInt(t.startTime.split(":")[0])==0?parseInt(e.startTime.split(":")[1])-parseInt(t.startTime.split(":")[1]):parseInt(e.startTime.split(":")[0])-parseInt(t.startTime.split(":")[0])})).map((function(t,r){return Object(p.c)(d.a,{key:"".concat(r,"-").concat(t.startTime),overlayIndex:r,className:"presto-player__overlay",startTime:t.startTime,endTime:t.endTime,text:t.text,link:t.link,position:t.position,color:t.color,backgroundColor:t.backgroundColor,opacity:t.opacity,overlay:t,update:function(e){!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=D.indexOf(e),n=D.map((function(e,n){return n!==r?e:m(m({},e),t)}));b({overlays:n})}(t,e)},remove:function(){!function(e){var t=D.indexOf(e);b({overlays:D.filter((function(e,r){return r!==t}))})}(t)},updateCurrentTime:function(t){!function(t){T(""),e.nextTick((function(){T(t)}))}(t)}})})),Object(p.c)(v,{isPrimary:!0,onClick:U},y("Add An Overlay","presto-player")))),Object(p.c)(g,{className:"presto-player__style-preview-panel"},Object(p.c)(u.a,{preload:"auto",currentTime:N,src:I||A,isDisabled:!1,state:m(m({},V),{},{lazy_load_youtube:!1,invert_time:!1}),branding:F,poster:L,overlays:D}))),Object(p.c)("br",null),Object(p.c)("div",{css:Object(p.b)(n||(n=Object(o.a)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n "])))},Object(p.c)("div",{css:Object(p.b)(a||(a=Object(o.a)(["\n opacity: 0.5;\n font-size: 12px;\n "])))}),Object(p.c)("div",null,Object(p.c)(v,{isTertiary:!0,onClick:r,style:{margin:"0 6px"}},y("Cancel","presto-player")),Object(p.c)(v,{isPrimary:!0,isBusy:P,disabled:P,onClick:function(){x(!0),f(D),x(!1),r()},"data-cy":"submit-preset"},y("Save Overlays","presto-player"))))))}}).call(this,r(67))},function(e,t,r){"use strict";var n=r(1),a=r(0),o=r(9),l=r(28),c=r(41),i=r(12),s=wp.i18n.__,p=wp.components,u=p.Flex,d=p.FlexItem,b=p.TextControl,m=p.Button,y=p.BaseControl,f=p.RadioControl,v=p.RangeControl,h=(p.withFocusReturn,wp.element),O=h.useRef,g=h.useEffect,j=wp.element.useState;t.a=function(e){var t=e.overlayIndex,r=e.update,p=e.remove,h=e.className,w=e.startTime,_=e.endTime,E=e.text,R=e.link,k=e.position,P=e.color,x=e.backgroundColor,C=e.opacity,S=e.updateCurrentTime,N=j(w),T=Object(n.a)(N,2),D=T[0],B=T[1],A=j(_),L=Object(n.a)(A,2),I=L[0],F=L[1],V=j(k),U=Object(n.a)(V,2),M=U[0],z=U[1],W=O();g((function(){if(Object(o.e)(w)>=Object(o.e)(_)){var e=Object(o.b)(w),t=Object(o.e)(e)+1;e=Object(o.b)(Object(o.c)(t)),r({endTime:e}),F(e)}}),[w,_]);var H=function(){var e=Object(o.b)(D);r({startTime:e}),B(e),S(e)};return Object(a.c)("div",null,Object(a.c)(u,{align:"center",className:h},Object(a.c)(d,null,Object(a.c)(b,{ref:W,id:"start-time-".concat(t),label:s("Start Time","presto-player"),className:"presto-player__overlay--start-time",value:D,onChange:function(e){return B(e)},onBlur:H,onFocus:H,autoComplete:"off",placeholder:"0:00"})),Object(a.c)(d,null,Object(a.c)(b,{label:s("End Time","presto-player"),className:"presto-player__overlay--end-time",value:I,onChange:F,onBlur:function(){var e=Object(o.b)(I);r({endTime:e}),F(e)},autoComplete:"off",placeholder:"0:00"}))),Object(a.c)(c.a,{text:E,update:r,onFocus:function(){S(Object(o.b)(D))}}),Object(a.c)(y,{style:{width:"100%"}},Object(a.c)(y.VisualLabel,null,Object(a.c)("p",null," ",s("Link","presto-player"))),Object(a.c)(l.a,{onFocus:function(){S(Object(o.b)(D))},setSettings:function(e){return r({link:e})},settings:R||{}})),Object(a.c)(y,{className:h},Object(a.c)(f,{label:s("Position","presto-player"),options:[{label:s("Top Right","presto-player"),value:"top-right"},{label:s("Top Left","presto-player"),value:"top-left"}],selected:M||"right",onFocus:function(){S(Object(o.b)(D))},onChange:function(e){r({position:e}),z(e),S(Object(o.b)(D))}})),Object(a.c)(y,{className:"presto-player__control--overlay-text-color"},Object(a.c)(u,null,Object(a.c)(y.VisualLabel,null,s("Text Color","presto-player")),Object(a.c)(i.a,{onFocus:function(){S(Object(o.b)(D))},color:P,setColor:function(e){r({color:e&&e.hex})}}))),Object(a.c)(y,{className:"presto-player__control--overlay-background-color"},Object(a.c)(u,null,Object(a.c)(y.VisualLabel,null,s("Background Color","presto-player")),Object(a.c)(i.a,{onFocus:function(){S(Object(o.b)(D))},color:x,setColor:function(e){r({backgroundColor:e&&e.hex})}}))),Object(a.c)(y,null,Object(a.c)(v,{label:s("Opacity","presto-player"),help:s("Opacity percentage of the overlay.","presto-player"),value:C,onChange:function(e){return r({opacity:e})},min:0,max:100})),p&&Object(a.c)(y,{className:h},Object(a.c)(u,{justify:"flex-end"},Object(a.c)(m,{isDestructive:!0,isSmall:!0,onClick:p},s("Remove Overlay","presto-player")))),Object(a.c)("hr",{css:{marginBottom:"20px"}}))}},,,function(e,t,r){r(59),e.exports=r(72)},,,,function(e,t,r){var n={"./audio/index.js":71,"./bunny/index.js":70,"./hosted/index.js":74,"./reusable-display/index.js":75,"./reusable-edit/index.js":68,"./vimeo/index.js":76,"./youtube/index.js":77};function a(e){var t=o(e);return r(t)}function o(e){if(!r.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}a.keys=function(){return Object.keys(n)},a.resolve=o,e.exports=a,a.id=62},,,,,,function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return f})),r.d(t,"options",(function(){return v}));var n=wp.i18n.__,a=wp.blockEditor,o=a.InnerBlocks,l=a.useBlockProps,c=wp.data,i=c.useSelect,s=c.dispatch,p=wp.components,u=p.Button,d=p.Placeholder,b=wp.plugins,m=(b.getPlugins,b.unregisterPlugin),y=wp.element.useEffect,f="presto-player/reusable-edit",v={title:"Reusable Block Container",category:"presto",supports:{inserter:!1,reusable:!1,html:!1},icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("circle",{cx:"12",cy:"12",r:"10"}),React.createElement("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),React.createElement("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})),edit:function(e){var t=l(),r=e.clientId,a=e.isSelected,c=i((function(e){return e("core/block-editor").getBlock(r).innerBlocks}));y((function(){a&&wp.data.dispatch("core/edit-post").openGeneralSidebar("edit-post/block")}),[a]),s("core/block-editor").setTemplateValidity(!0),y((function(){m("presto-player")}),[]);var p,b=function(e){var t=wp.blocks.createBlock("presto-player/".concat(e));return s("core/block-editor").insertBlock(t,0,r)};return null!=c&&c.length?React.createElement("div",null,React.createElement("div",t,React.createElement(o,{templateLock:!1,renderAppender:function(){return 0===c.length&&React.createElement(o.ButtonBlockAppender,null)}}))):React.createElement("div",null,React.createElement("div",t,React.createElement(d,{icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("polygon",{points:"23 7 16 12 23 17 23 7"}),React.createElement("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"})),instructions:n("Choose a video type to get started.","presto-player"),label:n("Choose a Video Type","presto-player")},React.createElement(u,{isPrimary:!0,onClick:function(){b("self-hosted")}},n("Video","presto-player")),React.createElement(u,{isPrimary:!0,onClick:function(){b("youtube")}},n("Youtube","presto-player")),React.createElement(u,{isPrimary:!0,onClick:function(){b("vimeo")}},n("Vimeo","presto-player")),null!==(p=prestoPlayer)&&void 0!==p&&p.isPremium?React.createElement(u,{isPrimary:!0,onClick:function(){b("bunny")}},n("Bunny.net","presto-player")):"",React.createElement(u,{isPrimary:!0,onClick:function(){b("audio")}},n("Audio","presto-player"))),React.createElement(o,{templateLock:!1,renderAppender:function(){return!1}})))},save:function(){var e=l.save();return React.createElement("div",e,React.createElement(o.Content,null))}}},function(e,t,r){var n={"./reusable-videos/index.js":73};function a(e){var t=o(e);return r(t)}function o(e){if(!r.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}a.keys=function(){return Object.keys(n)},a.resolve=o,e.exports=a,a.id=69},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return Ca})),r.d(t,"options",(function(){return Sa}));var n={};r.r(n),r.d(n,"videos",(function(){return Q})),r.d(n,"collections",(function(){return X})),r.d(n,"uploads",(function(){return $})),r.d(n,"isPrivate",(function(){return J})),r.d(n,"isLoading",(function(){return ee})),r.d(n,"errors",(function(){return te})),r.d(n,"videosFetched",(function(){return re})),r.d(n,"currentCollection",(function(){return ne})),r.d(n,"ui",(function(){return ae})),r.d(n,"requestType",(function(){return oe}));var a={};r.r(a),r.d(a,"setVideos",(function(){return le})),r.d(a,"addVideos",(function(){return ce})),r.d(a,"removeVideo",(function(){return ie})),r.d(a,"setCollections",(function(){return se})),r.d(a,"addCollection",(function(){return pe})),r.d(a,"setIsPrivate",(function(){return ue})),r.d(a,"setSearch",(function(){return de})),r.d(a,"setCollectionRequest",(function(){return be})),r.d(a,"setUploads",(function(){return me})),r.d(a,"addUploads",(function(){return ye})),r.d(a,"removeUpload",(function(){return fe})),r.d(a,"setVideosFetched",(function(){return ve})),r.d(a,"setLoading",(function(){return he})),r.d(a,"setUI",(function(){return Oe})),r.d(a,"addError",(function(){return ge})),r.d(a,"removeError",(function(){return je}));var o,l,c=r(5),i=r(7),s=r(1),p=r(2),u=r.n(p),d=function(){var e=Object(i.a)(u.a.mark((function e(t){var r;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/sign",method:"POST",data:{url:t,id:0}});case 4:return r=e.sent,e.abrupt("return",r);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),b=r(23),m=r(24),y=r(39),f=function(e){var t=e.file,r=e.path,n=e.onProgress,a=e.onComplete,o=e.onError,l=0,c=!1,s=Math.min(prestoPlayerAdmin.wp_max_upload_size-1e6,159e5),p=Math.max(s,19e5);p=Math.min(p,104857600);var d=function(){var e=Object(i.a)(u.a.mark((function e(i){var s,b,m,y,f;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=i+p+1,b=t.slice(i,s),m=Math.ceil(t.size/(p+1)),l++,n(l/m*100),(y=new FormData).append("file",b),y.append("name",t.name),y.append("chunk",l),y.append("chunks",m),e.prev=10,e.next=13,wp.apiFetch({path:r,method:"POST",body:y});case 13:if(f=e.sent,!c){e.next=17;break}return console.log("cancelled"),e.abrupt("return");case 17:s<t.size?(n(void 0),d(s)):a(f),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(10),o(e.t0),console.error(e.t0);case 24:case"end":return e.stop()}}),e,null,[[10,20]])})));return function(t){return e.apply(this,arguments)}}();return l=0,new FileReader,d(0),{cancel:function(){c=!0}}},v=r(6),h=function(e){var t=e.item,r=e.onClick,n=e.className;var a,o=function(){return!(null==t||!t.encodeProgress)&&100!==t.encodeProgress};return React.createElement("div",{className:"presto-player__media-list-item ".concat(n),onClick:r},React.createElement("div",{className:"presto-player__media-list-item-icon"},React.createElement("svg",Object(c.a)({xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"},"strokeLinecap","round"),React.createElement("polygon",{points:"23 7 16 12 23 17 23 7"}),React.createElement("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"}))),React.createElement("div",{className:"presto-player__media-list-item-title"},null==t?void 0:t.title),o()&&React.createElement("div",{className:"presto-player__media-list-item-size"},"Encoding..."),!o()&&React.createElement("div",{className:"presto-player__media-list-item-size"},function(e){if(0==e)return"0 Byte";var t=parseInt(Math.floor(Math.log(e)/Math.log(1024)));return Math.round(e/Math.pow(1024,t),2)+" "+["Bytes","KB","MB","GB","TB"][t]}(null==t?void 0:t.size)),!o()&&React.createElement("div",{className:"presto-player__media-list-item-modified"},(a=t.updated_at,new Date(a).toLocaleString())))},O=function(e){var t,r=e.item,n=e.onClick,a=e.className;return React.createElement("div",{className:"presto-player__media-list-item ".concat(a),onClick:n},React.createElement("div",{className:"presto-player__media-list-item-icon"},React.createElement("svg",Object(c.a)({xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"},"strokeLinecap","round"),React.createElement("polygon",{points:"23 7 16 12 23 17 23 7"}),React.createElement("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"}))),React.createElement("div",{className:"presto-player__media-list-item-title"},null==r?void 0:r.title),React.createElement("div",{className:"presto-player__media-list-item-size"},function(e){if(0==e)return"0 Byte";var t=parseInt(Math.floor(Math.log(e)/Math.log(1024)));return Math.round(e/Math.pow(1024,t),2)+" "+["Bytes","KB","MB","GB","TB"][t]}(null==r?void 0:r.size)),React.createElement("div",{className:"presto-player__media-list-item-modified"},(t=r.updated_at,new Date(t).toLocaleString())))},g=r(0),j=wp.i18n.__,w=wp.components,_=w.Modal,E=w.Spinner,R=w.Button,k=w.BaseControl,P=w.Flex,x=w.FlexBlock,C=w.Notice,S=w.Card,N=w.CardBody,T=w.Disabled,D=w.DropZone,B=w.FormFileUpload,A=w.DropZoneProvider,L=wp.element,I=L.useEffect,F=L.useState,V=L.useRef,U=function(e){var t=e.onClose,r=e.title,n=e.header,a=e.onLoad,c=e.items,i=e.folders,p=e.fetching,u=e.progressMessage,d=e.onSelect,b=e.error,m=e.onDelete,y=e.onUpload,f=e.progress,w=F({}),L=Object(s.a)(w,2),U=L[0],M=L[1],z=F(!1),W=Object(s.a)(z,2),H=W[0],Y=W[1],G=V();I((function(){a&&a()}),[]);var q,Z,K,Q,X=function(){m(U),Y(!1)},$=function(){return Object.keys(U||{}).length};return Object(g.c)(_,{title:n||j("Add Media","presto-player"),onRequestClose:t,className:"presto-player__media-modal presto-player__full-modal",overlayClassName:"presto-player__modal-overlay"},Object(g.c)("div",{className:"presto-player__media-modal-layout","data-cy":"media-modal"},Object(g.c)("div",{className:"presto-player__media-modal-header"},Object(g.c)("div",{className:"presto-player__media-modal-upload",css:Object(g.b)(o||(o=Object(v.a)(["\n display: flex;\n align-items: center;\n "])))},Object(g.c)(B,{isPrimary:!0,accept:"video/mp4,video/x-m4v,video/*",onChange:function(e){e.target.files&&(y(e.target.files),jQuery(e.target).val(null))}},j("Upload New Video","presto-player")),Object(g.c)("div",{css:Object(g.b)(l||(l=Object(v.a)(["\n margin-left: 10px;\n "])))},j("Or drag a file here to upload.","presto-player"))),b&&Object(g.c)(C,{status:"error",isDismissible:!1},b)),Object(g.c)("div",{className:"presto-player__media-modal-content"},Object(g.c)(A,null,p?Object(g.c)(P,{className:"presto-player__media-loading"},Object(g.c)(x,{style:{textAlign:"center"}},f?Object(g.c)(React.Fragment,null,Object(g.c)("div",null,Object(g.c)("strong",null,u||j("Uploading","presto-player"))),Object(g.c)("div",null,j("Please don't navigate away from this page.","presto-player")),Object(g.c)("progress",{className:"presto-progress",max:"100",value:f,style:{width:"100px"}})):Object(g.c)(E,null))):null!=c&&c.length?Object(g.c)("div",{className:"presto-player__media-list"},Object(g.c)("h2",null,r),i&&Object(g.c)("div",{className:"presto-player__media-list-folders"},i.map((function(e){return Object(g.c)(O,{key:e.id,item:e})}))),Object(g.c)("div",{className:"presto-player__media-list-items"},c.map((function(e){return Object(g.c)(h,{item:e,key:e.id,onClick:function(){M(U===e?{}:e)},className:U===e?"is-selected":""})})))):Object(g.c)(P,{"align-items":"center",className:"presto-player__media-not-found"},Object(g.c)("div",null,Object(g.c)("h2",null,"Drop video files here to upload"),Object(g.c)("p",null,"or browse for a video"),Object(g.c)(B,{isSecondary:!0,accept:"video/mp4,video/x-m4v,video/*",onChange:function(e){e.target.files&&(y(e.target.files),jQuery(e.target).val(null))}},j("Upload New Video","presto-player")))),Object(g.c)(D,{label:"Drop files",onFilesDrop:y}))),Object(g.c)("div",{className:"presto-player__media-modal-sidebar"},$()?Object(g.c)("div",{className:"presto-player__media-modal-sidebar-content"},Object(g.c)(k,null,Object(g.c)(T,{key:U.id},null!=U&&U.thumbnail?Object(g.c)("img",{src:null==U?void 0:U.thumbnail,style:{maxWidth:"100%"}}):Object(g.c)("video",{preload:"metadata"},Object(g.c)("source",{src:U.previewUrl})))),Object(g.c)(k,null,Object(g.c)(k.VisualLabel,null,j("Name","presto-player")),Object(g.c)("h3",{style:{marginTop:"5px"}},U.title)),!(null==U||!U.visibility)&&Object(g.c)(k,null,Object(g.c)(k.VisualLabel,null,j("Visibility","presto-player")),Object(g.c)("h3",{style:{marginTop:"5px"}},U.visibility)),Object(g.c)(k,null,Object(g.c)(k.VisualLabel,null,j("Size","presto-player")),Object(g.c)("h3",{style:{marginTop:"5px"}},function(e){if(0==e)return"0 Byte";var t=parseInt(Math.floor(Math.log(e)/Math.log(1024)));return Math.round(e/Math.pow(1024,t),2)+" "+["Bytes","KB","MB","GB","TB"][t]}((null==U?void 0:U.size)||0))),Object(g.c)(k,null,Object(g.c)(k.VisualLabel,null,j("Created","presto-player")),Object(g.c)("h3",{style:{marginTop:"5px"}},(q=null==U?void 0:U.created_at,Z=(q=new Date(q)).getHours(),K=q.getMinutes(),Q=Z>=12?"pm":"am",Z=(Z%=12)||12,K=K<10?"0"+K:K,q.getDate()+"-"+(q.getMonth()+1)+"-"+q.getFullYear()+" at "+Z+":"+K+Q))),Object(g.c)(k,null,H?Object(g.c)(S,null,Object(g.c)(N,null,Object(g.c)("p",null,Object(g.c)("strong",null,"Are you sure?")),Object(g.c)("p",null,"Are you sure you want to delete this video?"),Object(g.c)(R,{isDestructive:!0,onClick:X},"Yes"),Object(g.c)(R,{onClick:function(){return Y(!1)}},"Cancel"))):Object(g.c)(R,{isDestructive:!0,onClick:function(){Y(!H)}},j("Delete video","presto-player")))):Object(g.c)(React.Fragment,null)),Object(g.c)("div",{className:"presto-player__media-modal-footer"},Object(g.c)(R,{isPrimary:!0,disabled:!$(),onClick:function(){U&&(d(U),t())},ref:G},j("Choose","presto-player")))))},M=wp.i18n.__,z=wp.element,W=z.useState,H=z.useEffect,Y=function(e){var t=e.closePopup,r=e.noticeOperations,n=e.onSelect,a=e.isPrivate,o=W([]),l=Object(s.a)(o,2),c=l[0],p=l[1],d=W(!1),b=Object(s.a)(d,2),m=b[0],y=b[1],v=W(0),h=Object(s.a)(v,2),O=h[0],g=h[1],j=W(""),w=Object(s.a)(j,2),_=w[0],E=w[1],R=W(""),k=Object(s.a)(R,2),P=k[0],x=k[1],C=a?"private-videos":"public-videos";H((function(){g(0),x("")}),[]);var S=function(){var e=Object(i.a)(u.a.mark((function e(t){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:x(""),y(!0),E(M("Uploading","presto-player")),f({file:t[0],path:"presto-player/v1/bunny/upload",onProgress:function(e){g(e-10)},onComplete:N,onError:function(e){x(e.message),g(0),y(!1)}});case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),N=function(){var e=Object(i.a)(u.a.mark((function e(t){var r,n,a;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.path,n=t.name,E(M("Storing","presto-player")),e.prev=2,e.next=5,wp.apiFetch({path:"presto-player/v1/bunny/".concat(C),method:"POST",data:{path:r,name:n}});case 5:a=e.sent,p(a),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(2),x(e.t0.message),console.error(e.t0);case 13:return e.prev=13,g(0),y(!1),e.finish(13);case 17:case"end":return e.stop()}}),e,null,[[2,9,13,17]])})));return function(t){return e.apply(this,arguments)}}(),T=function(){var e=Object(i.a)(u.a.mark((function e(t){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,p((c||[]).filter((function(e){return e!==t}))),e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/".concat(C),method:"DELETE",data:{name:null==t?void 0:t.title}});case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(0),x(e.t0.message);case 9:case"end":return e.stop()}}),e,null,[[0,6]])})));return function(t){return e.apply(this,arguments)}}(),D=function(){var e=Object(i.a)(u.a.mark((function e(){var t;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,y(!0),e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/".concat(C)});case 4:t=e.sent,p(t),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),x(e.t0.message);case 11:return e.prev=11,y(!1),e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[0,8,11,14]])})));return function(){return e.apply(this,arguments)}}();return React.createElement(U,{onClose:t,progressMessage:_,fetching:m,error:P,onUpload:S,onLoad:D,items:c,progress:O,onDelete:T,onSelect:n,onError:function(e){r.removeAllNotices(),r.createErrorNotice(e)},header:M(a?"Bunny.net Private Video Storage":"Bunny.net Public Video Storage","presto-player"),title:M(a?"Private Video Library":"Public Video Library","presto-player")})},G=r(8);function q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?q(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):q(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var K=(0,wp.data.combineReducers)({videosReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_VIDEOS":return t.value;case"ADD_VIDEOS":return[].concat(Object(G.a)(e),Object(G.a)(t.value));case"ADD_VIDEO":return[].concat(Object(G.a)(e),[t.value]);case"UPDATE_VIDEO":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:Z(Z({},e),t.value)}));case"REMOVE_VIDEO":return e.filter((function(e){return e.guid!==t.value.guid}))}return e},collectionsReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_COLLECTIONS":return t.value;case"ADD_COLLECTION":return[].concat(Object(G.a)(e),[t.value]);case"UPDATE_COLLECTION":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:Z(Z({},e),t.value)}));case"REMOVE_COLLECTION":return e.filter((function(e){return e!==t.value}))}return e},uploadsReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_UPLOADS":return t.value;case"ADD_UPLOADS":return[].concat(Object(G.a)(e),Object(G.a)(t.value));case"ADD_UPLOAD":return[].concat(Object(G.a)(e),[t.value]);case"UPDATE_UPLOAD":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:Z(Z({},e),t.value)}));case"REMOVE_UPLOAD":return e.filter((function(e){return e!==t.value}))}return e},requestReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{private:!1,collection:"",search:""},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PRIVATE_REQUEST":return Z(Z({},e),{},{private:t.value});case"SET_SEARCH_REQUEST":return Z(Z({},e),{},{search:t.value});case"SET_COLLECTION_REQUEST":return Z(Z({},e),{},{collection:t.value})}return e},UIReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,videosFetched:!1,createCollection:!1,selectedId:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_LOADING":return Z(Z({},e),{},{loading:t.value});case"SET_VIDEOS_FETCHED":return Z(Z({},e),{},{videosFetched:t.value});case"SET_UI_ITEM":return Z(Z({},e),{},Object(c.a)({},t.item,t.value))}return e},errorReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"ADD_ERROR":return[].concat(Object(G.a)(e),[t.value]);case"REMOVE_ERROR":return e.filter((function(e){return e!==t.value}))}return e}});function Q(e){return(null==e?void 0:e.videosReducer)||[]}function X(e){return(null==e?void 0:e.collectionsReducer)||[]}function $(e){return(null==e?void 0:e.uploadsReducer)||[]}function J(e){var t;return!(null==e||null===(t=e.requestReducer)||void 0===t||!t.private)}function ee(e){var t;return(null==e||null===(t=e.UIReducer)||void 0===t?void 0:t.loading)||!1}function te(e){return(null==e?void 0:e.errorReducer)||[]}function re(e){var t;return(null==e||null===(t=e.UIReducer)||void 0===t?void 0:t.videosFetched)||!1}function ne(e){var t;return null==e||null===(t=e.requestReducer)||void 0===t?void 0:t.collection}function ae(e,t){var r;return null==e||null===(r=e.UIReducer)||void 0===r?void 0:r[t]}function oe(e){var t;return null!=e&&null!==(t=e.requestReducer)&&void 0!==t&&t.private?"private":"public"}function le(e){return{type:"SET_VIDEOS",value:e}}function ce(e){return{type:"ADD_VIDEOS",value:e}}function ie(e){return{type:"REMOVE_VIDEO",value:e}}function se(e){return{type:"SET_COLLECTIONS",value:e}}function pe(e){return{type:"ADD_COLLECTION",value:e}}function ue(e){return{type:"SET_PRIVATE_REQUEST",value:e}}function de(e){return{type:"SET_SEARCH",value:e}}function be(e){return{type:"SET_COLLECTION_REQUEST",value:e}}function me(e){return{type:"SET_UPLOADS",value:e}}function ye(e){return{type:"ADD_UPLOADS",value:e}}function fe(e){return{type:"REMOVE_UPLOAD",value:e}}function ve(e){return{type:"SET_VIDEOS_FETCHED",value:e}}function he(e){return{type:"SET_LOADING",value:e}}function Oe(e,t){return{type:"SET_UI_ITEM",item:e,value:t}}function ge(e){return{type:"ADD_ERROR",value:e}}function je(e){return{type:"REMOVE_ERROR",value:e}}(0,wp.data.registerStore)("presto-player/bunny-popup",{reducer:K,selectors:n,actions:a});var we,_e,Ee,Re,ke,Pe,xe,Ce,Se,Ne,Te,De,Be,Ae,Le,Ie,Fe,Ve,Ue,Me,ze,We=function(e){return 3==(null==e?void 0:e.status)&&(null==e?void 0:e.availableResolutions.length)},He=function(e){return We(e)||4===(null==e?void 0:e.status)},Ye=function(e){return 0==(null==e?void 0:e.status)?"Processing":1==(null==e?void 0:e.status)?"Uploaded":2==(null==e?void 0:e.status)?"Processing":We(e)?"Playable":3==(null==e?void 0:e.status)?"Encoding":4==(null==e?void 0:e.status)?"Live":5==(null==e?void 0:e.status)?"Error":6==(null==e?void 0:e.status)?"Upload Failed":void 0},Ge=function(e){return null==e||null==e?"":new Date(1e3*e).toISOString().substr(11,8)},qe=function(e){if(null==e||0==e)return"Unknown";if(0==e)return"0 b";var t=parseInt(Math.floor(Math.log(e)/Math.log(1024)).toString());return(e/Math.pow(1024,t)).toFixed(2)+" "+["b","KB","MB","GB","TB"][t]},Ze=wp.i18n.__,Ke=wp.components,Qe=Ke.Button,Xe=Ke.BaseControl,$e=Ke.Disabled,Je=Ke.Card,et=Ke.CardBody,tt=wp.element,rt=tt.useState,nt=(tt.useContext,tt.useEffect),at=wp.data,ot=at.dispatch,lt=at.useSelect,ct=function(){var e=rt(!1),t=Object(s.a)(e,2),r=t[0],n=t[1],a=rt(!1),o=Object(s.a)(a,2),l=o[0],c=o[1],p=rt(null),d=Object(s.a)(p,2),b=d[0],m=d[1],y=lt((function(e){return e("presto-player/bunny-popup").isPrivate()})),f=lt((function(e){return e("presto-player/bunny-popup").ui("selectedId")})),h=lt((function(e){return e("presto-player/bunny-popup").videos()}));nt((function(){m(f?h.find((function(e){return e.guid===f})):null)}),[h,f]);var O=function(){var e=Object(i.a)(u.a.mark((function e(){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,wp.apiFetch({path:"presto-player/v1/bunny/stream/videos/".concat(b.id),method:"DELETE",data:{type:y?"private":"public"}});case 2:ot("presto-player/bunny-popup").removeVideo(b),ot("presto-player/bunny-popup").setUI("selectedId",null),c(!1),n(!1);case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),j=Object(g.b)(we||(we=Object(v.a)(["\n margin-top: 5px;\n "])));if(!b)return"";var w,_,E,R,k=function(e){return y?null==e?void 0:e.webPURLSigned:null==e?void 0:e.webPURL};return b&&Object(g.c)("div",{className:"presto-player__media-modal-sidebar-content"},Object(g.c)(Xe,{css:Object(g.b)(_e||(_e=Object(v.a)(["\n position: relative;\n "])))},Object(g.c)($e,{key:b.id},He(b)&&k(b)&&Object(g.c)("img",{src:k(b),css:{maxWidth:"100%"}})),Object(g.c)(Qe,{isSmall:!0,isPrimary:!0,isBusy:!He(b),css:Object(g.b)(Ee||(Ee=Object(v.a)(["\n ","\n top: 8px;\n right: 8px;\n font-size: 11px;\n color: #ffffff;\n padding: 2px 10px;\n border-radius: 9999px;\n "])),He(b)?"position: absolute;":"")},Ye(b))),Object(g.c)(Xe,null,Object(g.c)(Xe.VisualLabel,null,Ze("Name","presto-player")),Object(g.c)("h3",{css:j},b.title)),!(null==b||!b.visibility)&&Object(g.c)(Xe,null,Object(g.c)(Xe.VisualLabel,null,Ze("Visibility","presto-player")),Object(g.c)("h3",{css:j},b.visibility)),Object(g.c)(Xe,null,Object(g.c)(Xe.VisualLabel,null,Ze("Size","presto-player")),Object(g.c)("h3",{css:j},qe((null==b?void 0:b.size)||0))),Object(g.c)(Xe,null,Object(g.c)(Xe.VisualLabel,null,Ze("Length","presto-player")),Object(g.c)("h3",{css:j},Ge(null==b?void 0:b.length))),Object(g.c)(Xe,null,Object(g.c)(Xe.VisualLabel,null,Ze("Created","presto-player")),Object(g.c)("h3",{css:j},(w=null==b?void 0:b.created_at,_=(w=new Date(w)).getHours(),E=w.getMinutes(),R=_>=12?"pm":"am",_=(_%=12)||12,E=E<10?"0"+E:E,w.getDate()+"-"+(w.getMonth()+1)+"-"+w.getFullYear()+" at "+_+":"+E+R))),Object(g.c)(Xe,null,r?Object(g.c)(Je,null,Object(g.c)(et,null,Object(g.c)("p",null,Object(g.c)("strong",null,Ze("Are you sure?","presto-player"))),Object(g.c)("p",null,Ze("Are you sure you want to delete this video?","presto-player")),Object(g.c)(Qe,{isDestructive:!0,disabled:l,isBusy:l,onClick:function(e){e.preventDefault(),O(),c(!0)}},Ze("Yes","presto-player")),Object(g.c)(Qe,{onClick:function(){return n(!1)}},Ze("Cancel","presto-player")))):Object(g.c)(Qe,{isDestructive:!0,onClick:function(){n(!r)}},Ze("Delete video","presto-player"))))},it=function(e){var t=e.className,r=e.progress;return Object(g.c)("div",{className:t},Object(g.c)("div",{css:Object(g.b)(Re||(Re=Object(v.a)(["\n height: 100%;\n background-color: var(--wp-admin-theme-color, #007cba);\n "]))),style:{width:"".concat(r,"%")}}))},st=function(e){var t=e.progress;return Object(g.c)("div",{css:Object(g.b)(ke||(ke=Object(v.a)(["\n max-width: 100%;\n object-fit: cover;\n width: 100%;\n height: 140px;\n background-color: #222;\n color: white;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n "])))},Object(g.c)(it,{progress:t,css:Object(g.b)(Pe||(Pe=Object(v.a)(["\n width: 100%;\n border-radius: 0px;\n margin: 0 15px;\n background-color: #e3e3e3;\n height: 3px;\n "])))}))},pt=function(e){var t=e.thumbnail,r=e.title,n=e.footer,a=e.badge,o=e.before,l=e.after;return Object(g.c)("div",Object.assign({className:"presto-player__video-thumb",css:Object(g.b)(xe||(xe=Object(v.a)(["\n cursor: pointer;\n user-select: none;\n display: inline-block;\n position: relative;\n margin-right: 20px;\n font-weight: bold;\n margin-bottom: 20px;\n width: 220px;\n flex: 0 0 220px;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n overflow: hidden;\n "])))},e),!!o&&o,!!t&&t,Object(g.c)("div",{css:Object(g.b)(Ce||(Ce=Object(v.a)(["\n margin: 14px;\n "])))},!!a&&Object(g.c)("div",{css:Object(g.b)(Se||(Se=Object(v.a)(["\n position: absolute;\n top: 8px;\n right: 8px;\n "])))},a),!!r&&Object(g.c)("span",{css:Object(g.b)(Ne||(Ne=Object(v.a)(["\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n width: 100%;\n max-width: 100%;\n display: inline-block;\n margin-bottom: 7px;\n font-size: 13px;\n "])))},r),!!n&&Object(g.c)("div",{css:Object(g.b)(Te||(Te=Object(v.a)(["\n font-size: 12px;\n opacity: 0.75;\n margin-bottom: 7px;\n "])))},n)),!!l&&l)},ut=wp.components,dt=ut.Icon,bt=ut.Button,mt=wp.element,yt=mt.useEffect,ft=mt.useState,vt=wp.data,ht=vt.useSelect,Ot=vt.dispatch,gt=function(e){var t=e.video,r=ft(),n=Object(s.a)(r,2),a=n[0],o=n[1],l=ht((function(e){return e("presto-player/bunny-popup").isPrivate()})),c=ht((function(e){return e("presto-player/bunny-popup").ui("selectedId")}));yt((function(){o(c?c===t.guid:null)}),[c]);return Object(g.c)(pt,{onClick:function(){Ot("presto-player/bunny-popup").setUI("selectedId",null==t?void 0:t.guid)},css:Object(g.b)(Ue||(Ue=Object(v.a)(["\n ","\n border: 1px solid\n ",";\n "])),a&&"box-shadow: 0 0 0 0px #fff, 0 0 0 3px var(--wp-admin-theme-color, #007cba);",a?"var(--wp-admin-theme-color, #007cba)":"#e0e0e0"),thumbnail:function(){if(t.status<3)return Object(g.c)(st,{progress:t.encodeProgress});var e=l?null==t?void 0:t.thumbnailURLSigned:null==t?void 0:t.thumbnailURL;return e?Object(g.c)("img",{css:Object(g.b)(Be||(Be=Object(v.a)(["\n max-width: 100%;\n object-fit: cover;\n width: 100%;\n height: 140px;\n display: block;\n "]))),src:e}):void 0}(),badge:Object(g.c)(bt,{isSmall:!0,isPrimary:!0,isBusy:!He(t),css:Object(g.b)(De||(De=Object(v.a)(["\n font-size: 11px;\n color: #ffffff;\n padding: 2px 10px;\n border-radius: 9999px;\n "])))},Ye(t)),title:t.title,footer:Object(g.c)("div",{css:Object(g.b)(Ae||(Ae=Object(v.a)(["\n display: flex;\n align-items: center;\n "])))},Object(g.c)("span",{css:Object(g.b)(Le||(Le=Object(v.a)(["\n margin-right: 10px;\n display: flex;\n align-items: center;\n "])))},Object(g.c)(dt,{css:Object(g.b)(Ie||(Ie=Object(v.a)(["\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n opacity: 0.5;\n "]))),icon:"clock",size:14}),Object(g.c)("span",null,Ge(t.length))),Object(g.c)("span",{css:Object(g.b)(Fe||(Fe=Object(v.a)(["\n display: flex;\n align-items: center;\n "])))},Object(g.c)(dt,{css:Object(g.b)(Ve||(Ve=Object(v.a)(["\n opacity: 0.5;\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n "]))),icon:"database",size:14}),Object(g.c)("span",null,qe(t.storageSize)))),after:3===t.status?Object(g.c)(it,{css:Object(g.b)(Me||(Me=Object(v.a)(["\n width: 100%;\n border-radius: 0px;\n margin: 0;\n background-color: #e3e3e3;\n height: 3px;\n "]))),progress:t.encodeProgress}):""})},jt=wp.components,wt=jt.Flex,_t=jt.FlexBlock,Et=jt.Spinner,Rt=function(e){var t=e.className;return Object(g.c)(wt,{className:t},Object(g.c)(_t,{css:{textAlign:"center"}},Object(g.c)(Et,null)))};function kt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Pt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?kt(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):kt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var xt,Ct,St,Nt,Tt,Dt,Bt,At,Lt,It,Ft=wp.i18n.__,Vt=wp.element,Ut=Vt.useState,Mt=Vt.useEffect,zt=Vt.Fragment,Wt=wp.components,Ht=Wt.Flex,Yt=Wt.FormFileUpload,Gt=Wt.Notice,qt=wp.data,Zt=qt.dispatch,Kt=qt.useSelect,Qt=function(){var e=Ut(!1),t=Object(s.a)(e,2),r=t[0],n=t[1],a=Ut(""),o=Object(s.a)(a,2),l=o[0],c=o[1],p=Kt((function(e){return e("presto-player/bunny-popup").videosFetched()})),d=Kt((function(e){return e("presto-player/bunny-popup").videos()})),b=Kt((function(e){return e("presto-player/bunny-popup").requestType()})),m=Kt((function(e){return e("presto-player/bunny-popup").currentCollection()}));Mt((function(){p||y()}),[p]),Mt((function(){var e=setInterval((function(){y({sync:!0})}),3e3);return function(){return clearInterval(e)}}),[p]);var y=function(){var e=Object(i.a)(u.a.mark((function e(){var t,r,n,a,o=arguments;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=o.length>0&&void 0!==o[0]?o[0]:{sync:!1},r=t.sync,e.prev=1,e.next=4,wp.apiFetch({path:wp.url.addQueryArgs("presto-player/v1/bunny/stream/videos",Pt(Pt({type:b},null!=m&&m.guid?{collection:null==m?void 0:m.guid}:{}),{},{items_per_page:500}))});case 4:n=e.sent,Zt("presto-player/bunny-popup").setVideos(null==n?void 0:n.items),c(""),e.next=15;break;case 9:if(e.prev=9,e.t0=e.catch(1),401!==(null===e.t0||void 0===e.t0||null===(a=e.t0.data)||void 0===a?void 0:a.status)){e.next=14;break}return c(Ft("Please wait. Pullzone cache is clearing. This may take a minute or two...")),e.abrupt("return");case 14:r||Zt("presto-player/bunny-popup").addError(e.t0.message);case 15:return e.prev=15,Zt("presto-player/bunny-popup").setVideosFetched(!0),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[1,9,15,18]])})));return function(){return e.apply(this,arguments)}}();return l?Object(g.c)(Gt,{status:"warning",isDismissible:!1},Object(g.c)("div",{css:{display:"flex",alignItems:"center"}},Object(g.c)(Rt,{css:{flex:1}}),l)):p?Object(g.c)(zt,null,d&&d.length?Object(g.c)("div",null,!(null!=m&&m.guid)&&Object(g.c)("h2",null,Ft("Videos","presto-player")),d.map((function(e){if((null==e?void 0:e.collectionId)===((null==m?void 0:m.guid)||""))return Object(g.c)(gt,{key:e.id,video:e,onClick:function(){n(r.guid===e.guid?{}:e)},selected:r.guid===e.guid})}))):Object(g.c)(Ht,{align:"center",justify:"center",css:Object(g.b)(ze||(ze=Object(v.a)(["\n height: 100%;\n text-align: center;\n "])))},Object(g.c)("div",null,Object(g.c)("h2",null,Ft("Drop video files here to upload","presto-player")),Object(g.c)("p",null,Ft("or browse for a video","presto-player")),Object(g.c)(Yt,{isSecondary:!0,accept:"video/mp4,video/x-m4v,video/*",onChange:function(e){e.target.files&&(Zt("presto-player/bunny-popup").addUploads(e.target.files),jQuery(e.target).val(null))}},Ft("Upload New Video","presto-player"))))):Object(g.c)(Rt,{css:{flex:1}})},Xt=wp.components.Icon,$t=wp.data.dispatch,Jt=function(e){var t=e.collection;return Object(g.c)(pt,{onClick:function(e){e.preventDefault(),$t("presto-player/bunny-popup").setCollectionRequest(t),$t("presto-player/bunny-popup").setVideosFetched(!1)},title:Object(g.c)("div",null,Object(g.c)(Xt,{icon:"open-folder",css:Object(g.b)(xt||(xt=Object(v.a)(["\n color: var(--wp-admin-theme-color);\n margin-right: 10px;\n "])))}),t.name),footer:Object(g.c)("div",null,t.videoCount," Videos")})},er=wp.i18n.__,tr=wp.element.useEffect,rr=wp.data,nr=rr.useSelect,ar=rr.dispatch,or=function(){var e=nr((function(e){return e("presto-player/bunny-popup").collections()})),t=nr((function(e){return e("presto-player/bunny-popup").requestType()})),r=function(){var e=Object(i.a)(u.a.mark((function e(){var r,n;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,wp.apiFetch({path:wp.url.addQueryArgs("presto-player/v1/bunny/stream/collections",{type:t,items_per_page:500})});case 3:r=e.sent,ar("presto-player/bunny-popup").setCollections(null==r?void 0:r.items),e.next=12;break;case 7:if(e.prev=7,e.t0=e.catch(0),401!==(null===e.t0||void 0===e.t0||null===(n=e.t0.data)||void 0===n?void 0:n.status)){e.next=11;break}return e.abrupt("return");case 11:ar("presto-player/bunny-popup").addError(e.t0.message);case 12:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}}();return tr((function(){r()}),[]),!!e.length&&Object(g.c)("div",null,Object(g.c)("h2",null,er("Collections","presto-player")),Object(g.c)("div",{css:Object(g.b)(Ct||(Ct=Object(v.a)(["\n display: flex;\n align-items: stretch;\n overflow: auto;\n "])))},e.map((function(e){return Object(g.c)(Jt,{collection:e,key:e.guid})}))))},lr=wp.i18n.__,cr=wp.components,ir=cr.Button,sr=cr.TextControl,pr=cr.Modal,ur=cr.BaseControl,dr=wp.element,br=dr.useState,mr=dr.Fragment,yr=wp.data,fr=yr.dispatch,vr=yr.useSelect,hr=function(){var e=br(""),t=Object(s.a)(e,2),r=t[0],n=t[1],a=br(!1),o=Object(s.a)(a,2),l=o[0],c=o[1],p=vr((function(e){return e("presto-player/bunny-popup").requestType()})),d=vr((function(e){return e("presto-player/bunny-popup").ui("createCollection")})),b=function(e){fr("presto-player/bunny-popup").setUI("createCollection",e)},m=function(){var e=Object(i.a)(u.a.mark((function e(){var t;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/stream/collections",method:"POST",data:{type:p,name:r}});case 4:t=e.sent,fr("presto-player/bunny-popup").addCollection(t),fr("presto-player/bunny-popup").setCollectionRequest(t),fr("presto-player/bunny-popup").setVideosFetched(!1),n(""),b(!1),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(1),console.error(e.t0);case 15:return e.prev=15,c(!1),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[1,12,15,18]])})));return function(){return e.apply(this,arguments)}}();return Object(g.c)(mr,null,Object(g.c)(ir,{isSecondary:!0,onClick:function(){return b(!0)}},lr("Create Collection","presto-player")),d&&Object(g.c)(pr,{overlayClassName:"presto-modal",title:"Create New Collection",shouldCloseOnClickOutside:!1,isDismissible:!1},Object(g.c)(sr,{css:Object(g.b)(St||(St=Object(v.a)(["\n margin-bottom: 15px;\n "]))),tabIndex:"0",placeholder:lr("Enter a collection name","presto-player"),value:r,onChange:function(e){return n(e)}}),Object(g.c)(ur,null,Object(g.c)(ir,{isBusy:l,disabled:l,isPrimary:!0,onClick:function(){m()}},lr("Create","presto-player"))," ",Object(g.c)(ir,{onClick:function(){return b(!1)}},lr("Cancel","presto-player")))))},Or=wp.i18n.__,gr=wp.components,jr=gr.Flex,wr=gr.FlexBlock,_r=gr.FlexItem,Er=(gr.Button,gr.FormFileUpload),Rr=wp.data.dispatch,kr=function(e){var t=e.afterUpload;return Object(g.c)(jr,null,Object(g.c)(wr,null,Object(g.c)(jr,{justify:"flex-start"},Object(g.c)(Er,{multiple:!0,isPrimary:!0,accept:"video/mp4,video/x-m4v,video/*",onChange:function(e){e.target.files&&(Rr("presto-player/bunny-popup").addUploads(e.target.files),jQuery(e.target).val(null))}},Or("Upload Videos","presto-player"))," ",Object(g.c)(hr,null),!!t&&t)),Object(g.c)(_r,null))},Pr=wp.i18n.__,xr=wp.components.Button,Cr=wp.element,Sr=Cr.useState,Nr=Cr.useEffect,Tr=wp.data.useSelect,Dr=function(e){var t=e.onChoose,r=Sr(null),n=Object(s.a)(r,2),a=n[0],o=n[1],l=Sr(!1),c=Object(s.a)(l,2),i=c[0],p=c[1],u=Tr((function(e){return e("presto-player/bunny-popup").ui("selectedId")})),d=Tr((function(e){return e("presto-player/bunny-popup").videos()}));return Nr((function(){o(u?d.find((function(e){return e.guid===u})):null)}),[d,u]),Nr((function(){3==(null==a?void 0:a.status)&&null!=a&&a.availableResolutions.length?p(!0):p((null==a?void 0:a.status)>3&&(null==a?void 0:a.status)<5)}),[null==a?void 0:a.availableResolutions]),React.createElement(xr,{isPrimary:!0,disabled:!i,onClick:function(){return t(a)}},null!=a&&a.id&&!i?Pr("Please wait, video is encoding...","presto-player"):Pr("Choose","presto-player"))},Br=wp.components.Icon,Ar=function(e){var t=e.children,r=e.onClick;return Object(g.c)("span",{onClick:r,css:Object(g.b)(Nt||(Nt=Object(v.a)(["\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n color: var(--wp-admin-theme-color, #007cba);\n padding: 6px 0;\n "])))},Object(g.c)(Br,{css:Object(g.b)(Tt||(Tt=Object(v.a)(["\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n "]))),icon:"arrow-left-alt",size:14}),Object(g.c)("span",null,t))},Lr=wp.i18n.__,Ir=wp.element.useState,Fr=wp.data,Vr=Fr.dispatch,Ur=Fr.useSelect,Mr=wp.components,zr=Mr.Button,Wr=Mr.Modal,Hr=Mr.BaseControl,Yr=function(){var e=Ir(!1),t=Object(s.a)(e,2),r=t[0],n=t[1],a=Ir(!1),o=Object(s.a)(a,2),l=o[0],c=o[1],p=Ir(""),d=Object(s.a)(p,2),b=(d[0],d[1],Ur((function(e){return e("presto-player/bunny-popup").currentCollection()}))),m=Ur((function(e){return e("presto-player/bunny-popup").requestType()})),y=function(){var e=Object(i.a)(u.a.mark((function e(){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/stream/collections/".concat(null==b?void 0:b.guid),method:"DELETE",data:{type:m}});case 4:n(!1),Vr("presto-player/bunny-popup").setCollectionRequest(""),Vr("presto-player/bunny-popup").setVideosFetched(!1),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(1),n(!1),Vr("presto-player/bunny-popup").addError(e.t0.message);case 13:return e.prev=13,c(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,9,13,16]])})));return function(){return e.apply(this,arguments)}}();return Object(g.c)("div",{css:Object(g.b)(Dt||(Dt=Object(v.a)(["\n margin-bottom: 2em;\n display: flex;\n align-items: center;\n justify-content: space-between;\n "])))},Object(g.c)("div",null,Object(g.c)(Ar,{onClick:function(){Vr("presto-player/bunny-popup").setCollectionRequest(""),Vr("presto-player/bunny-popup").setVideosFetched(!1)}},Lr("Back To Main Folder","presto-player")),Object(g.c)("h2",null,b.name)),Object(g.c)(zr,{isDestructive:!0,onClick:function(){return n(!0)}},Lr("Delete Collection","presto-player")),r&&Object(g.c)(Wr,{shouldCloseOnClickOutside:!1,overlayClassName:"presto-modal",title:"Delete Collection",onRequestClose:function(){return n(!1)}},Object(g.c)("h2",null,Lr("Are you sure you want to delete the collection? ","presto-player")),Object(g.c)("p",null,Lr("This will also delete all videos inside of the collection.","presto-player")),Object(g.c)(Hr,null,Object(g.c)(zr,{isDestructive:!0,disabled:l,isBusy:l,onClick:y},Lr("Delete","presto-player"))," ",Object(g.c)(zr,{onClick:function(){return n(!1)}},Lr("Cancel","presto-player")))))};function Gr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function qr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Gr(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Gr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}wp.components.Icon;var Zr,Kr,Qr,Xr,$r,Jr,en,tn,rn,nn,an,on,ln,cn=wp.element,sn=cn.useState,pn=cn.useEffect,un=(cn.useContext,wp.data),dn=un.useSelect,bn=(un.dispatch,wp.i18n.__),mn=function(e){var t,r=e.file,n=e.name,a=e.onComplete,o=sn(0),l=Object(s.a)(o,2),c=l[0],p=l[1],d=sn(bn("Uploading","presto-player")),b=Object(s.a)(d,2),m=(b[0],b[1]),y=sn(""),h=Object(s.a)(y,2),O=h[0],j=h[1],w=sn(!1),_=Object(s.a)(w,2),E=_[0],R=_[1],k=dn((function(e){return e("presto-player/bunny-popup").requestType()})),P=dn((function(e){return e("presto-player/bunny-popup").currentCollection()})),x=function(){var e=Object(i.a)(u.a.mark((function e(){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:m(bn("Uploading","presto-player")),t=f({file:null!=r&&r[0]?null==r?void 0:r[0]:r,path:"presto-player/v1/bunny/stream/upload",onProgress:function(e){p(e)},onComplete:C,onError:function(e){j(e.message),m(bn("Error","presto-player")),p(0)}});case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),C=function(){var e=Object(i.a)(u.a.mark((function e(t){var r,n,a;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.path,n=t.name,m(bn("Creating","presto-player")),e.prev=2,e.next=5,wp.apiFetch({path:"presto-player/v1/bunny/stream/videos",method:"POST",data:qr({type:k,name:n},null!=P&&P.guid?{collection:P.guid}:{})});case 5:a=e.sent,R(!0),S({path:r,video:a}),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(2),j(e.t0.message);case 13:return e.prev=13,p(0),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[2,10,13,16]])})));return function(t){return e.apply(this,arguments)}}(),S=function(){var e=Object(i.a)(u.a.mark((function e(t){var r,n;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.path,n=t.video,e.next=3,wp.apiFetch({path:"presto-player/v1/bunny/stream/store",method:"POST",data:{type:k,path:r,guid:n.guid}});case 3:a();case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return pn((function(){return x(),function(){t&&t.cancel()}}),[]),E?"":Object(g.c)("div",{css:Object(g.b)(Bt||(Bt=Object(v.a)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n animation: components-button__busy-animation 2500ms infinite linear;\n opacity: 1;\n padding: 6px 12px;\n border-radius: 99999px;\n border: 1px solid #dddddd;\n background-size: 100px 100%;\n background-image: linear-gradient(\n -45deg,\n #ffffff 33%,\n #f3f3f3 33%,\n #f3f3f3 70%,\n #ffffff 70%\n );\n "])))},Object(g.c)("div",{css:Object(g.b)(At||(At=Object(v.a)(["\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n max-width: 150px;\n text-overflow: ellipsis;\n font-weight: bold;\n "])))},!!O&&O,!!n&&n," ",r.name,"..."),Object(g.c)("div",{css:Object(g.b)(Lt||(Lt=Object(v.a)(["\n display: flex;\n align-items: center;\n "])))},Object(g.c)(it,{css:Object(g.b)(It||(It=Object(v.a)(["\n width: 50px;\n height: 3px;\n margin: 0 5px;\n background: #e3e3e3;\n border-radius: 9999px;\n overflow: hidden;\n "]))),progress:c})))},yn=wp.data.useSelect,fn=function(e){var t=e.removeUpload,r=(e.isPrivate,yn((function(e){return e("presto-player/bunny-popup").uploads()})));return r.length?Object(g.c)("div",{css:Object(g.b)(Zr||(Zr=Object(v.a)(["\n overflow: auto;\n display: flex;\n align-items: center;\n position: relative;\n "])))},r.length&&r.map((function(e){return Object(g.c)(mn,{css:Object(g.b)(Kr||(Kr=Object(v.a)(["\n margin-right: 0px;\n "]))),file:e,onComplete:function(){return t(e)}})}))):""},vn=wp.i18n.__,hn=wp.components.Modal,On=function(e){var t=e.onClose,r=e.title,n=e.header,a=e.error,o=e.mainContent,l=e.sidebar,c=e.footer;return Object(g.c)(hn,{title:r||vn("Add Media","presto-player"),onRequestClose:t,css:Object(g.b)(Qr||(Qr=Object(v.a)(["\n width: 100%;\n height: 100%;\n max-width: calc(100% - 32px);\n max-height: calc(100% - 32px);\n\n .components-modal__content {\n display: flex;\n flex-direction: column;\n }\n "]))),overlayClassName:"presto-player__modal-overlay"},Object(g.c)("div",{css:Object(g.b)(Xr||(Xr=Object(v.a)(['\n @media screen and (min-width: 780px) {\n margin: -24px;\n display: grid;\n flex: 1;\n max-height: calc(100vh - 68px);\n grid-template-columns: 1fr 1fr minmax(0px, 267px);\n grid-template-rows: minmax(50px, auto) 1fr 60px;\n grid-template-areas:\n "header header sidebar"\n "main main sidebar"\n "footer footer footer";\n overflow: hidden;\n }\n ']))),"data-cy":"media-modal"},Object(g.c)("div",{css:Object(g.b)($r||($r=Object(v.a)(["\n grid-area: header;\n padding: 24px 24px 12px 24px;\n "])))},Object(g.c)("div",{css:Object(g.b)(Jr||(Jr=Object(v.a)(["\n display: flex;\n align-items: center;\n\n > * {\n margin-right: 10px;\n }\n "])))},n),a),Object(g.c)("div",{css:Object(g.b)(en||(en=Object(v.a)(["\n grid-area: main;\n display: grid;\n overflow: hidden;\n\n .components-drop-zone__provider {\n overflow: hidden;\n display: grid;\n }\n\n .components-drop-zone {\n z-index: 99;\n }\n "])))},o),Object(g.c)("div",{css:Object(g.b)(tn||(tn=Object(v.a)(["\n display: none;\n grid-area: sidebar;\n padding: 0 16px;\n z-index: 75;\n background: #f3f3f3;\n border-left: 1px solid #ddd;\n overflow: auto;\n\n @media screen and (min-width: 780px) {\n display: block;\n }\n\n .sidebar-content {\n padding: 16px 0;\n }\n "])))},l),Object(g.c)("div",{css:Object(g.b)(rn||(rn=Object(v.a)(["\n grid-area: footer;\n border-top: 1px solid #ddd;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 8px;\n "])))},c)))},gn=wp.i18n.__,jn=wp.components,wn=(jn.Button,jn.DropZone),_n=jn.DropZoneProvider,En=jn.Notice,Rn=wp.element,kn=(Rn.useState,Rn.useEffect),Pn=(Rn.Fragment,wp.data),xn=Pn.dispatch,Cn=Pn.useSelect,Sn=function(e){var t=e.onClose,r=e.onChoose,n=Cn((function(e){return e("presto-player/bunny-popup").isPrivate()})),a=Cn((function(e){return e("presto-player/bunny-popup").uploads()})),o=Cn((function(e){return e("presto-player/bunny-popup").currentCollection()})),l=Cn((function(e){return e("presto-player/bunny-popup").errors()}));kn((function(){xn("presto-player/bunny-popup").setVideosFetched(!1),xn("presto-player/bunny-popup").setCollections([]),xn("presto-player/bunny-popup").setVideos([])}),[]);var c=function(e){xn("presto-player/bunny-popup").addUploads(e)},i=gn(n?"Private Stream Library":"Public Stream Library","presto-player"),s=Object(g.c)(kr,{afterUpload:Object(g.c)(fn,{uploads:a,removeUpload:function(e){xn("presto-player/bunny-popup").removeUpload(e)},isPrivate:n})}),p=Object(g.c)(ct,null),u=Object(g.c)(Dr,{onChoose:r});return Object(g.c)(On,{title:i,header:s,mainContent:Object(g.c)(_n,{css:Object(g.b)(nn||(nn=Object(v.a)(["\n overflow: auto;\n display: flex;\n flex-direction: column;\n "])))},Object(g.c)("div",{css:Object(g.b)(an||(an=Object(v.a)(["\n padding: 12px 24px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n "])))},!!l.length&&l.map((function(e){return Object(g.c)(En,{css:Object(g.b)(on||(on=Object(v.a)(["\n margin: 0 0 20px 0;\n "]))),status:"error",onRemove:function(){return xn("presto-player/bunny-popup").removeError(e)}},e)})),o?Object(g.c)(Yr,null):Object(g.c)(or,null),Object(g.c)("div",{css:Object(g.b)(ln||(ln=Object(v.a)(["\n display: flex;\n align-items: stretch;\n "])))},Object(g.c)(Qt,null)),Object(g.c)(wn,{label:"Drop files",onFilesDrop:c}))),onClose:function(){a.length?confirm("Discard your uploads?")&&(t(),xn("presto-player/bunny-popup").setUploads([])):t()},footer:u,sidebar:p})},Nn=wp.i18n.__,Tn=wp.element.useEffect,Dn=wp.data.dispatch,Bn=function(e){var t=e.closePopup,r=e.onSelect,n=e.isPrivate;return Tn((function(){Dn("presto-player/bunny-popup").setIsPrivate(n)}),[n]),React.createElement(Sn,{onClose:t,onChoose:function(e){e.url=e.playlistURL,e.thumbnail=e.thumbnailURL,e.preview=e.webPURL,r(e)},header:Nn(n?"Private Stream Library":"Public Stream Library","presto-player"),title:Nn(n?"Private Video Stream":"Public Video Stream","presto-player")})},An=wp.i18n.__,Ln=wp.element.useState,In="".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"bunny/"),Fn=wp.i18n.__,Vn=wp.element.useState,Un="".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"bunny/stream/"),Mn=wp.i18n.__,zn=wp.components,Wn=zn.Button,Hn=zn.TextControl,Yn=zn.Placeholder,Gn=zn.Flex,qn=zn.FlexBlock,Zn=zn.ExternalLink,Kn=zn.Spinner,Qn=zn.FlexItem,Xn=zn.Notice,$n=wp.element.useEffect,Jn=function(e){var t=e.onRefetch,r=e.type,n=e.autoSubmit,a="stream"===r?function(e){var t=Vn(""),r=Object(s.a)(t,2),n=r[0],a=r[1],o=Vn(""),l=Object(s.a)(o,2),c=l[0],p=l[1],d=Vn(!1),b=Object(s.a)(d,2),m=b[0],y=b[1],f=Vn(0),v=Object(s.a)(f,2),h=v[0],O=v[1],g=Vn(""),j=Object(s.a)(g,2),w=j[0],_=j[1],E=function(e){return e.includes("Authorization has been denied")?"Your API key is incorrect. Please double-check to make sure you've copied it correctly.":e.includes("localhost")?"You cannot use a CDN on a local site. Please use Bunny.net on a live, publicly accessible site.":e};return{saveKey:function(){var t=Object(i.a)(u.a.mark((function t(){var r,a;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return _(""),t.prev=1,y(!0),O(0),p(Fn("Validating API Key...","presto-player")),t.next=7,wp.apiFetch({url:"".concat(Un,"api-key"),method:"POST",data:{api_key:n}});case 7:if(r=t.sent,r.success){t.next=11;break}throw{message:"Could not save the API key. Please double check it to make sure it's correct."};case 11:t.next=18;break;case 13:return t.prev=13,t.t0=t.catch(1),O(0),_(null!==t.t0&&void 0!==t.t0&&t.t0.message?E(t.t0.message):"Something went wrong. Please try again"),t.abrupt("return");case 18:return t.prev=18,O(1),y(!1),p(""),t.finish(18);case 23:return t.prev=23,y(!0),p(Fn("Setting up public video library. This make take a few moments...","presto-player")),t.next=28,wp.apiFetch({url:"".concat(Un,"library"),method:"POST",data:{type:"public"}});case 28:a=t.sent,a.id,t.next=37;break;case 32:return t.prev=32,t.t1=t.catch(23),O(0),_(null!==t.t1&&void 0!==t.t1&&t.t1.message?E(t.t1.message):"Something went wrong. Please try again"),t.abrupt("return");case 37:return t.prev=37,O(2),y(!1),p(""),t.finish(37);case 42:return t.prev=42,y(!0),p(Fn("Setting up private video library. This make take a few moments...","presto-player")),t.next=47,wp.apiFetch({url:"".concat(Un,"library"),method:"POST",data:{type:"private"}});case 47:t.next=54;break;case 49:return t.prev=49,t.t2=t.catch(42),O(0),_(null!==t.t2&&void 0!==t.t2&&t.t2.message?E(t.t2.message):"Something went wrong. Please try again"),t.abrupt("return");case 54:return t.prev=54,O(2),y(!1),p(""),t.finish(54);case 59:e();case 60:case"end":return t.stop()}}),t,null,[[1,13,18,23],[23,32,37,42],[42,49,54,59]])})));return function(){return t.apply(this,arguments)}}(),setApikey:a,step:h,saveMessage:c,saving:m,error:w,totalSteps:3}}(t):function(e){var t=Ln(""),r=Object(s.a)(t,2),n=r[0],a=r[1],o=Ln(""),l=Object(s.a)(o,2),c=l[0],p=l[1],d=Ln(!1),b=Object(s.a)(d,2),m=b[0],y=b[1],f=Ln(0),v=Object(s.a)(f,2),h=v[0],O=v[1],g=Ln(""),j=Object(s.a)(g,2),w=j[0],_=j[1],E=function(e){return e.includes("Authorization has been denied")?"Your API key is incorrect. Please double-check to make sure you've copied it correctly.":e.includes("localhost")?"You cannot use a CDN on a local site. Please use Bunny.net on a live, publicly accessible site.":e};return{saveKey:function(){var t=Object(i.a)(u.a.mark((function t(){var r,a,o;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return _(""),t.prev=1,y(!0),O(0),p(An("Validating API Key...","presto-player")),t.next=7,wp.apiFetch({url:"".concat(In,"api-key"),method:"POST",data:{api_key:n}});case 7:if(r=t.sent,r.success){t.next=11;break}throw{message:"Could not save the API key. Please double check it to make sure it's correct."};case 11:t.next=18;break;case 13:return t.prev=13,t.t0=t.catch(1),O(0),_(null!==t.t0&&void 0!==t.t0&&t.t0.message?E(t.t0.message):"Something went wrong. Please try again"),t.abrupt("return");case 18:return t.prev=18,O(1),y(!1),p(""),t.finish(18);case 23:return t.prev=23,y(!0),p(An("Setting up storage zones. This make take a few minutes...","presto-player")),t.next=28,wp.apiFetch({url:"".concat(In,"storage-zones"),method:"POST"});case 28:a=t.sent,a.id,t.next=37;break;case 32:return t.prev=32,t.t1=t.catch(23),O(0),_(null!==t.t1&&void 0!==t.t1&&t.t1.message?E(t.t1.message):"Something went wrong. Please try again"),t.abrupt("return");case 37:return t.prev=37,O(2),y(!1),p(""),t.finish(37);case 42:return t.prev=42,y(!0),p(An("Setting up pull zones. This make take a few minutes...","presto-player")),t.next=47,wp.apiFetch({url:"".concat(In,"pull-zones"),method:"POST"});case 47:o=t.sent,o.id,t.next=56;break;case 51:return t.prev=51,t.t2=t.catch(42),O(0),_(null!==t.t2&&void 0!==t.t2&&t.t2.message?E(t.t2.message):"Something went wrong. Please try again"),t.abrupt("return");case 56:return t.prev=56,O(3),y(!1),p(""),t.finish(56);case 61:e();case 62:case"end":return t.stop()}}),t,null,[[1,13,18,23],[23,32,37,42],[42,51,56,61]])})));return function(){return t.apply(this,arguments)}}(),setApikey:a,step:h,saveMessage:c,saving:m,error:w,totalSteps:3}}(t),o=a.saveKey,l=a.apikey,c=a.setApikey,p=a.saveMessage,d=a.saving,b=a.totalSteps,m=a.step,y=a.error;return $n((function(){n&&o()}),[n]),React.createElement(Yn,{label:Mn("Bunny.net Video","presto-player"),instructions:React.createElement(React.Fragment,null,Mn("Enter your Bunny.net API key, which can be found on your Bunny CDN Account page.","presto-player")," ",React.createElement(Zn,{href:"https://bunnycdn.com/dashboard/account"},Mn("Get My API Key","presto-player")))},d?React.createElement(Gn,null,React.createElement(Qn,null,React.createElement(Kn,null)),React.createElement(qn,null,p,React.createElement("progress",{className:"presto-progress",max:b,value:m,style:{width:"100%"}}))):React.createElement("form",{onSubmit:function(e){e.preventDefault(),o()}},y&&React.createElement(Gn,{style:{width:"100%"}},React.createElement(qn,null,React.createElement(Xn,{status:"error",isDismissible:!1},y))),React.createElement(Gn,{style:{width:"100%",maxWidth:"400px"}},React.createElement(qn,null,React.createElement(Hn,{value:l,onChange:function(e){return c(e)},className:"presto-link-placeholder-input",type:"password",autoComplete:"off",placeholder:Mn("Your Bunny.net API Key","presto-player"),required:!0})),React.createElement(Qn,null,React.createElement(Wn,{isPrimary:!0,style:{marginBottom:"8px"},type:"submit"},Mn("Next","presto-player")," →")))))},ea=r(25),ta=r(14);function ra(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function na(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ra(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ra(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var aa=wp.components,oa=aa.Button,la=aa.Disabled,ca=aa.DropdownMenu,ia=aa.Spinner,sa=aa.Toolbar,pa=aa.withNotices,ua=aa.BaseControl,da=aa.Placeholder,ba=aa.ToggleControl,ma=wp.editor,ya=ma.BlockControls,fa=ma.InspectorControls,va=wp.i18n.__,ha=wp.compose.compose,Oa=wp.element,ga=Oa.useEffect,ja=Oa.useState,wa=Oa.Fragment,_a=wp.data.dispatch,Ea=ha([Object(m.a)(),Object(b.a)()])(pa((function(e){var t,r,n=e.attributes,a=e.setAttributes,o=e.noticeOperations,l=e.branding,c=(e.isSelected,e.presetData),p=e.createVideo,b=e.lockSave,m=e.unlockSave,f=e.onRemoveSrc,v=e.renderKey,h=e.defaultPreset,O=n.poster,g=n.src,j=n.id,w=n.tracks,_=n.visibility,E=n.previewSrc,R=n.thumbnail,k=ja(""),P=Object(s.a)(k,2),x=P[0],C=P[1],S=ja(!1),N=Object(s.a)(S,2),T=N[0],D=N[1],B=ja(""),A=Object(s.a)(B,2),L=A[0],I=A[1],F=ja({stream:!1,storage:!1}),V=Object(s.a)(F,2),U=V[0],M=V[1],z=ja(!1),W=Object(s.a)(z,2),H=W[0],G=W[1],q=ja(!1),Z=Object(s.a)(q,2),K=Z[0],Q=Z[1],X=ja(!1),$=Object(s.a)(X,2),J=($[0],$[1]),ee=ja(!1),te=Object(s.a)(ee,2),re=te[0],ne=te[1],ae=wp.data.useSelect((function(e){return e("core").canUser("read","settings")})),oe="private"===_,le=null===(t=prestoPlayerAdmin)||void 0===t||null===(r=t.bunny)||void 0===r?void 0:r.disable_legacy_storage;function ce(e){e.url?(a(na(na({src:e.url,preset:null==h?void 0:h.id},null!=e&&e.thumbnail?{thumbnail:e.thumbnail}:{}),null!=e&&e.preview?{preview:e.preview}:{})),D(!0),b(),p(na({src:e.url,type:"bunny",title:e.title},null!=e&&e.guid?{external_id:e.guid}:{})).catch((function(e){a({src:""}),console.error(e)})).finally((function(){m(),D(!1)}))):a({src:void 0,id:void 0})}ga((function(){_a("presto-player/bunny-popup").setIsPrivate("private"===_)}),[_]),ga((function(){var e,t,r,n,a,o;M({storage:null===(e=prestoPlayerAdmin)||void 0===e||null===(t=e.isSetup)||void 0===t||null===(r=t.bunny)||void 0===r?void 0:r.storage,stream:null===(n=prestoPlayerAdmin)||void 0===n||null===(a=n.isSetup)||void 0===a||null===(o=a.bunny)||void 0===o?void 0:o.stream})}),[]);var ie=function(){var e=Object(i.a)(u.a.mark((function e(){var t,r,n,a,o,l,c,i;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,wp.apiFetch({path:"wp/v2/settings"});case 3:t=e.sent,r=t.presto_player_bunny_pull_zones,n=t.presto_player_bunny_storage_zones,a=t.presto_player_bunny_stream_private,o=t.presto_player_bunny_stream_public,Q(!0),a||G(!0),c=(l=function(e){return!(null==e||!e.private_id||null==e||!e.public_id)})(r)||l(n),i=(null==a?void 0:a.pull_zone_url)&&(null==o?void 0:o.pull_zone_url),M({storage:c,stream:i}),I(c||i?"":"stream");case 15:return e.prev=15,J(!1),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[0,,15,18]])})));return function(){return e.apply(this,arguments)}}();ga((function(){ae?ie():Q(!0)}),[ae]);var se=function(){var e=Object(i.a)(u.a.mark((function e(){var t;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!oe){e.next=7;break}return e.next=3,d(g);case 3:t=e.sent,a({previewSrc:t}),e.next=8;break;case 7:a({previewSrc:g});case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();ga((function(){se()}),[g]);var pe=function(){var e=Object(i.a)(u.a.mark((function e(){var t;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!oe){e.next=7;break}return e.next=3,d(R);case 3:(t=e.sent)&&a({previewThumbnail:t}),e.next=8;break;case 7:a({previewThumbnail:R});case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();ga((function(){pe()}),[R]);var ue=function(){var e=[];return!H&&e.push({title:U.stream?va("Reconnect Stream","presto-player"):va("Connect Stream","presto-player"),onClick:function(){I("stream"),ne(!1)}}),!le&&e.push({title:U.storage?va("Reconnect Storage (Classic)","presto-player"):va("Connect Storage (Classic)","presto-player"),onClick:function(){return I("storage")}}),React.createElement(ca,{icon:"ellipsis",label:va("Connection Options","presto-player"),controls:e})};return T||!K?React.createElement(da,{className:"presto-player__placeholder is-loading"},React.createElement(ia,null)):"stream"===L?React.createElement(Jn,{type:"stream",autoSubmit:re,onRefetch:function(){Q(!1),ie()}}):"storage"===L?React.createElement(Jn,{type:"storage",onRefetch:function(){Q(!1),ie()}}):j?React.createElement(React.Fragment,null,React.createElement(ya,null,React.createElement(y.a,{tracks:w,onChange:function(e){a({tracks:e})}}),React.createElement(sa,null,React.createElement(oa,{onClick:function(){return f()}},va("Replace","presto-player")))),React.createElement(fa,null,React.createElement(ea.a,{setAttributes:a,attributes:n})),React.createElement("figure",{className:"wp-block-video"},React.createElement(la,null,React.createElement(ta.a,{poster:O,src:E,id:j,type:"bunny",attributes:n,setAttributes:a,preset:c,branding:l,key:v})))):React.createElement("div",null,React.createElement(da,{label:va(oe?"Bunny.net Private Video":"Bunny.net Video","presto-player"),icon:oe?React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})):React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("polyline",{points:"8 17 12 21 16 17"}),React.createElement("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),React.createElement("path",{d:"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29"})),instructions:React.createElement(React.Fragment,null,va("Add or select a Bunny.net video","presto-player"))},React.createElement(ua,{className:"presto-player__placeholder-control"},React.createElement(ba,{label:"Private Video",help:oe?"Video is only accessible to those who are logged in.":"Video is accessible to everyone.",checked:oe,onChange:function(e){a({visibility:e?"private":"public"})}})),React.createElement(wa,null,U.stream&&React.createElement(oa,{isPrimary:!0,onClick:function(){return C("stream")}},va(oe?"Add/Select Private Video Stream":"Add/Select Video Stream","presto-player")),!le&&U.storage&&React.createElement(oa,{isSecondary:U.stream,isPrimary:!U.stream,onClick:function(){return C("storage")}},va(oe?"Add/Select Private Video (Classic)":"Add/Select Video (Classic)","presto-player")),!U.stream&&!H&&U.storage&&React.createElement(oa,{isSecondary:!0,onClick:function(){ne(!0),I("stream")}},va("Enable Bunny.net Stream!","presto-player")),!!ae&&ue())),"storage"===x&&React.createElement(Y,{isPrivate:oe,closePopup:function(){return C("")},noticeOperations:o,onSelect:ce}),"stream"===x&&React.createElement(Bn,{isPrivate:oe,closePopup:function(){return C("")},noticeOperations:o,onSelect:ce}))}))),Ra=r(17);function ka(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Pa(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ka(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ka(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var xa=wp.i18n.__,Ca="presto-player/bunny",Sa=Pa(Pa({},Ra.a),{},{attributes:Pa(Pa({},Ra.a.attributes),{thumbnail:{type:String,default:""},preview:{type:String,default:""}}),premium:!0,title:xa("Presto Bunny.net Video","presto-player"),description:xa("Serve video through Bunny.net CDN.","presto-player"),variations:[{name:"public",isDefault:!0,title:xa("Presto Bunny.net Video","presto-player"),description:xa("Serve public video through Bunny.net CDN.","presto-player"),attributes:{visibility:"public"}},{name:"private",title:xa("Presto Bunny.net Private Video","presto-player"),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})),description:xa("Serve private, secure video through Bunny.net CDN.","presto-player"),attributes:{visibility:"private"}}],icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("polyline",{points:"8 17 12 21 16 17"}),React.createElement("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),React.createElement("path",{d:"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29"})),edit:Ea})},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return ct})),r.d(t,"options",(function(){return it}));var n=r(8),a=r(5),o=r(3),l=r(1),c=r(19),i=r.n(c),s=r(16),p=r(4),u=r(13),d=r(15),b=r(27),m=window.location.href,y=function(e){var t=e.src,r=e.onChange,n=e.onSubmit,a=e.onClose;return React.createElement(b.URLPopover,{onClose:a},React.createElement("form",{className:"block-editor-media-placeholder__url-input-form",onSubmit:n},React.createElement("input",{"data-cy":"url-input",className:"block-editor-media-placeholder__url-input-field",type:"url","aria-label":Object(o.__)("URL","presto-player"),placeholder:Object(o.__)("Paste an mp3 URL","presto-player"),onChange:r,value:t}),React.createElement(p.Button,{"data-cy":"url-submit",className:"block-editor-media-placeholder__url-input-submit-button",icon:"editor-break",label:Object(o.__)("Apply","presto-player"),type:"submit"})))};var f=Object(p.withFilters)("editor.MediaPlaceholder")((function(e){var t=e.value,r=void 0===t?{}:t,n=e.allowedTypes,a=void 0===n?[]:n,c=e.className,f=e.icon,v=e.url,h=void 0===v||v,O=e.labels,g=void 0===O?{}:O,j=e.mediaPreview,w=e.notices,_=e.isAppender,E=e.isPrivate,R=e.addToGallery,k=e.onSelect,P=e.onCancel,x=e.onSelectURL,C=e.onDoubleClick,S=e.children,N=e.allowURLs,T=Object(d.useSelect)((function(e){return(0,e("core/block-editor").getSettings)().mediaUpload}),[]),D=Object(u.useState)(""),B=Object(l.a)(D,2),A=B[0],L=B[1],I=Object(u.useState)(!1),F=Object(l.a)(I,2),V=F[0],U=F[1];Object(u.useEffect)((function(){var e;L(null!==(e=null==r?void 0:r.src)&&void 0!==e?e:"")}),[r]);var M=function(e){L(e.target.value)},z=function(){U(!0)},W=function(){U(!1)},H=function(e){e.preventDefault(),A&&x&&(x(A),W())},Y=function(e,t){var r=g.instructions,n=g.title;T||x||(r=Object(o.__)("To edit this block, you need permission to upload media.","presto-player"));var a=i()("block-editor-media-placeholder",c,{"is-appender":_});return React.createElement(p.Placeholder,{icon:f,label:n,instructions:r,className:a,notices:w,onClick:t,onDoubleClick:C,preview:j},S,e)},G=function(){return x&&React.createElement("div",{className:"block-editor-media-placeholder__url-input-container"},h&&!1===E&&React.createElement(p.Button,{className:"block-editor-media-placeholder__button",onClick:z,isPressed:V,isTertiary:!0},Object(o.__)("Audio URL","presto-player")),V&&React.createElement(y,{src:A,onChange:M,onSubmit:H,onClose:W}))};return React.createElement(b.MediaUploadCheck,{fallback:Y(G())},function(){var e=React.createElement(b.MediaUpload,{title:E?Object(o.__)("Select or Upload Private Audio","presto-player"):Object(o.__)("Select or Upload Audio","presto-player"),addToGallery:R,gallery:!1,multiple:!1,onSelect:function(e){s.a.unsetUrlParams(),k(e)},onClose:function(){s.a.unsetUrlParams()},allowedTypes:a,value:Array.isArray(r)?r.map((function(e){return e.id})):r.id,render:function(e){var t=e.open;return React.createElement(p.Button,{isPrimary:!0,onClick:function(e){e.stopPropagation(),s.a.unsetUrlParams(),E?s.a.setUrlPrivate(m):s.a.setUrlPublic(m),t()}},E?Object(o.__)("Add/Select Private Audio","presto-player"):Object(o.__)("Add/Select Audio","presto-player"))}});if(T){var t=React.createElement(React.Fragment,null,e,!!N&&G(),P&&React.createElement(p.Button,{className:"block-editor-media-placeholder__cancel-button",title:Object(o.__)("Cancel","presto-player"),isLink:!0,onClick:P},Object(o.__)("Cancel","presto-player")));return Y(t)}return Y(e)}())})),v=r(11),h=wp.i18n.__,O=wp.components,g=(O.withNotices,O.BaseControl),j=O.ToggleControl,w=O.Notice,E=["audio"],R=function(e){var t,r,n=e.attributes,o=e.setAttributes,l=e.onSelectURL,c=e.onSelect,i=e.children,s="private"===n.visibility;return React.createElement(f,(r={icon:s?React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),React.createElement("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})):React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"presto-block-icon"},React.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3"})),labels:{title:h("Presto Audio","presto-player"),instructions:h("Upload a audio file, or pick one from your media library.","presto-player")},accept:"audio/*",setAttributes:o,allowedTypes:E,switcher:!0,isPrivate:s,allowURLs:!s,onSelectURL:l,onSelect:c,value:n},Object(a.a)(r,"allowURLs",!0),Object(a.a)(r,"onError",(function(){return console.log("error")})),r),React.createElement("div",{style:{width:"100%"}},React.createElement(g,{className:"presto-player__placeholder-control"},React.createElement(j,{label:React.createElement("div",null,h("Make Private","presto-player")," ",!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(v.a,null)),help:h(s?"This audio is only accessible to those who are logged in.":"This audio is currently accessible to everyone.","presto-player"),checked:s,onChange:function(e){var t;null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium?o({visibility:e?"private":"public"}):Object(d.dispatch)("presto-player/player").setProModal(!0)}})),!!i&&React.createElement("div",{style:{width:"100%"}},i),!!s&&React.createElement(w,{status:"warning",isDismissible:!1},React.createElement("div",null,React.createElement("div",null,React.createElement("strong",null,h("Note","presto-player"))),h("Private audio uses php to stream your audio. Keep in mind this will use up disk space and bandwidth so it may not be an appropriate choice for some hosts.","presto-player")))))},k=r(47),P=r(32),x=r(33),C=r(45),S=r(6),N=r(7),T=r(2),D=r.n(T),B=r(9),A=r(34),L=r(0),I=r(26),F=r(14);function V(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function U(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?V(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var M,z,W=function(e){var t,r=e.state,n=e.branding,a=e.menu,c=e.src,i=e.poster,s=e.currentTime,d=e.preload,b=e.mediaTitle,m=e.overlays,y=e.isDisabled,f=void 0===y||y,v=Object(u.useState)(1),h=Object(l.a)(v,2),O=h[0],g=h[1],j=r.email_collection,w=r.cta;Object(u.useEffect)((function(){g(O+1)}),[r.skin,r["play-large"],r.rewind,r.play,r["fast-forward"],r.progress,r["current-time"],r.mute,r.volume,r.speed,r.pip,r.fullscreen,r.captions,r.hide_logo]);var _={email:!(null==j||!j.enabled)&&React.createElement(I.b,{className:"email-overlay",slot:"player-end",headline:null==j?void 0:j.headline,style:U(U({"--presto-player-email-border-radiuss":"".concat(null==j?void 0:j.button_radius,"px"),"--plyr-color-main":(null==r?void 0:r.background_color)||(null==n?void 0:n.color)},j.button_color?{"--presto-player-button-color":"".concat(j.button_color)}:{}),j.button_text_color?{"--presto-player-button-text":"".concat(j.button_text_color)}:{}),defaultHeadline:Object(o.__)("Enter your email to play.","presto-player"),bottomText:null==j?void 0:j.bottom_text,allowSkip:null==j?void 0:j.allow_skip,skipText:Object(o.__)("Skip","presto-player"),buttonText:null==j?void 0:j.button_text,placeholder:Object(o.__)("Email address","presto-player"),i18n:window.prestoPlayer.i18n,type:"audio"}),cta:!(null==w||!w.enabled)&&React.createElement(I.a,{className:"cta-overlay",style:U(U(U({"--presto-player-button-border-radius":"".concat(w.button_radius,"px")},null!=w&&w.background_opacity?{"--presto-player-cta-background-opacity":"".concat((null==w?void 0:w.background_opacity)/100)}:{}),w.button_color?{"--presto-player-button-color":"".concat(w.button_color)}:{}),w.button_text_color?{"--presto-player-button-text":"".concat(w.button_text_color)}:{}),slot:"player-end",headline:null==w?void 0:w.headline,"bottom-text":null==w?void 0:w.bottom_text,"button-link":null==w?void 0:w.button_link,"allow-skip":100!==(null==w?void 0:w.percentage)&&(null==w?void 0:w.show_skip),borderRadius:null==w?void 0:w.border_radius,"allow-rewatch":100===(null==w?void 0:w.percentage)&&(null==w?void 0:w.show_rewatch),"skip-text":Object(o.__)("Skip","presto-player"),"show-button":null==w?void 0:w.show_button,"button-text":null==w?void 0:w.button_text,i18n:window.prestoPlayer.i18n,type:"audio"})};return React.createElement(p.Disabled,{isDisabled:f,className:"disable-player"},React.createElement("div",{className:"presto-player__wrapper"},React.createElement(F.a,{src:c||"http://something.mp3",classes:"\n ".concat("cta"===a&&!(null==w||!w.enabled)&&"cta-active"," \n ").concat("email"===a&&!(null==j||!j.enabled)&&"email-active"),preset:r,branding:n,i18n:null===(t=prestoPlayerAdmin)||void 0===t?void 0:t.i18n,preload:d,attributes:{chapters:[],poster:i,title:b},type:"audio",currentTime:s?Object(B.e)(s):"",overlays:m,key:O,adminPreview:(null==_?void 0:_[a])||""})))},H=wp.i18n.__,Y=wp.components,G=Y.ToggleControl,q=Y.BaseControl,Z=(Y.HorizontalRule,Y.__experimentalAlignmentMatrixControl,Y.SelectControl),K=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(q,null,React.createElement("h3",null,H("Behavior","presto-player"))),React.createElement(q,null,React.createElement(G,{label:H("Save Play Position","presto-player"),help:H("Saves the user's play position so when they come back to the page they can continue the audio from where they left off.","presto-player"),onChange:function(e){r({save_player_position:e})},checked:t.save_player_position})),React.createElement(q,null,React.createElement(G,{label:H("Focus Mode","presto-player"),help:H("Play only when tab is visible and audio is in viewport.","presto-player"),onChange:function(e){r({play_video_viewport:e})},checked:t.play_video_viewport})),React.createElement(q,null,React.createElement(G,{label:H("Sticky On Scroll","presto-player"),help:H("Stick audios to the side of the screen when the page is scrolled and the audio is playing.","presto-player"),onChange:function(e){r({sticky_scroll:e})},checked:t.sticky_scroll})),React.createElement(q,null,React.createElement(Z,{label:H("On Audio End","presto-player"),value:t.on_video_end,options:[{value:"select",label:H("Select","presto-player")},{value:"loop",label:H("Loop","presto-player")},{value:"go-to-start",label:H("Go to start","presto-player")}],onChange:function(e){r({on_video_end:e})}})))},Q=wp.i18n.__,X=wp.components,$=X.ToggleControl,J=X.BaseControl,ee=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(J,null,React.createElement("h3",null,Q("Controls","presto-player"))),React.createElement(J,{className:"presto-player__control--large-play"},React.createElement($,{label:Q("Large Play Button","presto-player"),help:Q("Adds a large play button over the top of the player.","presto-player"),onChange:function(e){r({"play-large":e})},checked:t["play-large"]})),React.createElement(J,{className:"presto-player__control--rewind"},React.createElement($,{label:Q("Rewind","presto-player"),help:Q("Adds a 10 second rewind button to the player.","presto-player"),onChange:function(e){r({rewind:e})},checked:t.rewind})),React.createElement(J,{className:"presto-player__control--play"},React.createElement($,{label:Q("Small Play Button","presto-player"),help:Q("Adds a small play button to the bottom of the player.","presto-player"),onChange:function(e){r({play:e})},checked:t.play})),React.createElement(J,{className:"presto-player__control--fast-forward"},React.createElement($,{label:Q("Fast Forward","presto-player"),help:Q("Adds a 10 second rewind button to the player.","presto-player"),onChange:function(e){r({"fast-forward":e})},checked:t["fast-forward"]})),React.createElement(J,{className:"presto-player__control--progress"},React.createElement($,{label:Q("Progress Bar","presto-player"),help:Q("Shows a seekable progress bar.","presto-player"),onChange:function(e){r({progress:e})},checked:t.progress})),React.createElement(J,{className:"presto-player__control--current-time"},React.createElement($,{label:Q("Current Time","presto-player"),help:Q("Shows the audio timestamp.","presto-player"),onChange:function(e){r({"current-time":e})},checked:t["current-time"]})),React.createElement(J,{className:"presto-player__control--volume"},React.createElement($,{label:Q("Volume","presto-player"),help:Q("Shows a volume bar.","presto-player"),onChange:function(e){r({volume:e,mute:e})},checked:t.volume})),React.createElement(J,{className:"presto-player__control--speed"},React.createElement($,{label:Q("Speed","presto-player"),help:Q("Shows playback speed controls.","presto-player"),onChange:function(e){r({speed:e})},checked:t.speed})))},te=r(12),re=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(p.BaseControl,null,React.createElement("h3",null,Object(o.__)("Style","presto-player"))),React.createElement(p.BaseControl,null,React.createElement(p.RangeControl,{label:Object(o.__)("Round Corners","presto-player"),help:Object(o.__)("Player border radius size.","presto-player"),value:(null==t?void 0:t.border_radius)||0,onChange:function(e){return r({border_radius:e})},min:0,max:25})),React.createElement(p.BaseControl,null,React.createElement(p.Flex,null,React.createElement(p.BaseControl.VisualLabel,null,React.createElement("p",null,Object(o.__)("Background Color","presto-player"))),React.createElement(te.a,{color:(null==t?void 0:t.background_color)||"#000000",setColor:function(e){r({background_color:e.hex})}}))),React.createElement(p.BaseControl,null,React.createElement(p.Flex,null,React.createElement(p.BaseControl.VisualLabel,null,React.createElement("p",null,Object(o.__)("Control Color","presto-player"))),React.createElement(te.a,{color:(null==t?void 0:t.control_color)||"#000000",setColor:function(e){r({control_color:e.hex})}}))))},ne=r(46),ae=r(37),oe=r(43);function le(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ce(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?le(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):le(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var ie=wp.i18n.__,se=wp.components,pe=se.TextControl,ue=se.BaseControl,de=se.Icon,be=se.Notice,me=se.Button,ye=se.Flex,fe=se.FlexItem,ve=se.SelectControl,he=se.FlexBlock,Oe=se.Modal,ge=wp.element,je=ge.useState,we=ge.useEffect,_e=wp.data,Ee=_e.useSelect,Re=_e.dispatch;var ke,Pe=function(e){var t=e.type,r=void 0===t?"new":t,n=e.closeModal,a=e.addPreset,o=e.onSave,c=e.updatePreset,i=e.name,s=void 0===i?"":i,p=e.attributes,u=e.preset,d=void 0===u?{"play-large":!0,rewind:!0,play:!0,"fast-forward":!0,progress:!0,"current-time":!0,mute:!0,volume:!0,speed:!1,pip:!1,save_player_position:!1,reset_on_end:!1,sticky_scroll:!1,hide_logo:!1,border_radius:0,skin:"default",background_color:"",control_color:"",cta:{},email_collection:{},action_bar:{}}:u,b=je(!1),m=Object(l.a)(b,2),y=m[0],f=m[1],v=je(""),h=Object(l.a)(v,2),O=h[0],g=h[1],j=je(""),w=Object(l.a)(j,2),_=w[0],E=w[1],R=je(s),k=Object(l.a)(R,2),P=k[0],x=k[1],C=je(d),T=Object(l.a)(C,2),I=T[0],F=T[1],V=Ee((function(e){return e("presto-player/player").branding()})),U=je(""),H=Object(l.a)(U,2),Y=H[0],G=H[1],q={message:ie("The preset could not be saved. Please reload the page and try again.","presto-player")},Z=Ee((function(e){return e("presto-player/player").youtube()}));we((function(){G(Z.channel_id)}),[null==Z?void 0:Z.channel_id]);var Q=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};F(ce(ce({},I),e))},X=function(){var e=Object(N.a)(D.a.mark((function e(){var t,r,a,l;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(!0),e.prev=1,t=ce(ce({},I),{name:P}),e.next=5,wp.apiFetch({method:"POST",url:wp.url.addQueryArgs("".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"audio-preset/").concat(d.id),{_method:"PUT"}),data:t});case 5:if(r=e.sent){e.next=8;break}throw q;case 8:c(r),n(),o&&o(r),Object(B.d)({message:ie("Preset updated!","presto-player")}),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(1),g(null!==e.t0&&void 0!==e.t0&&e.t0.message?e.t0.message:q);case 17:return e.prev=17,f(!1),e.finish(17);case 20:return Re("presto-player/player").updateYoutube({channel_id:Y}),a=ce(ce({},Z),{channel_id:Y}),e.prev=22,e.next=25,wp.apiFetch({path:"wp/v2/settings",method:"POST",data:{presto_player_youtube:a}});case 25:null!=(l=e.sent)&&l.presto_player_youtube&&(Re("presto-player/player").setYoutube(null==l?void 0:l.presto_player_youtube),onClose()),e.next=32;break;case 29:e.prev=29,e.t1=e.catch(22),console.log(e.t1);case 32:case"end":return e.stop()}}),e,null,[[1,14,17,20],[22,29]])})));return function(){return e.apply(this,arguments)}}(),$=function(){var e=Object(N.a)(D.a.mark((function e(){var t;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(!0),e.prev=1,e.next=4,wp.apiFetch({method:"POST",url:prestoPlayer.root+prestoPlayer.prestoVersionString+"audio-preset",data:ce(ce({},{name:P}),I)});case 4:if(t=e.sent){e.next=7;break}throw q;case 7:a(t),n(),o&&o(t),Object(B.d)({message:ie("Preset created!","presto-player")}),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),g(null!==e.t0&&void 0!==e.t0&&e.t0.message?e.t0.message:q);case 16:return e.prev=16,f(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])})));return function(){return e.apply(this,arguments)}}(),J=[{name:"controls",title:ie("Controls","presto-player"),icon:Object(L.c)(de,{icon:"admin-settings"}),component:Object(L.c)(ee,{updateState:Q,state:I})},{name:"behavior",title:ie("Behavior","presto-player"),icon:Object(L.c)(de,{icon:"admin-generic"}),component:Object(L.c)(K,{updateState:Q,state:I})},{name:"style",title:ie("Style","presto-player"),icon:Object(L.c)(de,{icon:"admin-customizer"}),component:Object(L.c)(re,{updateState:Q,state:I})},{name:"email",title:ie("Email Capture","presto-player"),icon:Object(L.c)(de,{icon:"email"}),component:Object(L.c)(oe.a,{updateState:Q,state:I})},{name:"cta",title:ie("Call To Action","presto-player"),icon:Object(L.c)(de,{icon:"megaphone"}),component:Object(L.c)(ae.a,{updateState:Q,state:I})},{name:"action_bar",title:ie("Action Bar","presto-player"),icon:Object(L.c)(de,{icon:"cover-image"}),component:Object(L.c)(ne.a,{updateState:Q,state:I,value:Y,setValue:G})}];return Object(L.c)(Oe,{title:ie("edit"==r?"Edit A Audio Preset":"Create A New Audio Preset","presto-player"),onRequestClose:n,className:"presto-player__modal-presets",overlayClassName:"presto-player__modal-presets-overlay"},Object(L.c)("div",{className:"presto-player__preset-options","data-cy":"preset-modal"},Object(L.c)(pe,{value:P,hideLabelFromVision:!0,label:ie("Preset Name","presto-player"),onChange:function(e){return x(e)},placeholder:ie("Enter a preset name...","presto-player"),className:"presto-player__modal--style-name",autoFocus:!0}),Object(L.c)(ye,{align:"stretch",className:"presto-player__style-preview-area"},Object(L.c)(fe,{className:"presto-player__style-sidebar"},Object(L.c)("div",null,Object(L.c)(A.a,{items:J,title:ie("Customize","presto-player"),onSelect:E},(function(e){return e.component})))),Object(L.c)(he,{className:"presto-player__style-preview-panel"},Object(L.c)("div",{style:{position:"absolute",top:0,left:0,padding:"20px"}},Object(L.c)(ve,{label:ie("Skin","presto-player"),labelPosition:"side",value:null==I?void 0:I.skin,hideLabelFromVision:!0,options:[{label:ie("Basic","presto-player"),value:"default"},{label:ie("Stacked","presto-player"),value:"stacked"}],onChange:function(e){Q({skin:e})}})),Object(L.c)(W,{poster:p.poster,src:p.src,state:I,branding:V,menu:_,mediaTitle:p.title}))),Object(L.c)("br",null),O&&Object(L.c)(ue,null,Object(L.c)(be,{className:"presto-player__modal--error-notice",status:"error",isDismissible:!1,style:{margin:0}},O.replace(/(<([^>]+)>)/gi,""))),Object(L.c)("div",{css:Object(L.b)(M||(M=Object(S.a)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n "])))},Object(L.c)("div",{css:Object(L.b)(z||(z=Object(S.a)(["\n opacity: 0.5;\n font-size: 12px;\n "])))},"Preset ID: ",d.id),Object(L.c)("div",null,Object(L.c)(me,{isTertiary:!0,onClick:n,style:{margin:"0 6px"}},ie("Cancel","presto-player")),Object(L.c)(me,{isPrimary:!0,isBusy:y,disabled:y,onClick:function(){if(P)return"edit"===r?X():$();g(ie("You must enter a name for the preset.","presto-player"))},"data-cy":"submit-preset"},ie("edit"==r?"Update Preset":"Create Preset","presto-player"))))))},xe=wp.i18n.__,Ce=wp.components,Se=Ce.Icon,Ne=Ce.Spinner,Te=Ce.Modal,De=Ce.Button,Be=Ce.ButtonGroup,Ae=wp.element.useState,Le=function(e){var t,r,n=e.preset,a=e.index,o=e.isActive,c=e.remove,i=e.setPreset,s=e.onEdit,p=Ae(!1),u=Object(l.a)(p,2),d=u[0],b=u[1],m=Ae(!1),y=Object(l.a)(m,2),f=y[0],v=y[1],h=function(){return v(!1)},O=function(){var e=Object(N.a)(D.a.mark((function e(){return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.id){e.next=3;break}return c(n),e.abrupt("return");case 3:return e.prev=3,b(!0),e.next=7,wp.apiFetch({method:"POST",url:wp.url.addQueryArgs("".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"audio-preset/").concat(n.id),{_method:"DELETE"})});case 7:e.sent&&(c(n),wp.data.dispatch("core/notices").createNotice("success",xe("Preset trashed.","presto-player"),{type:"snackbar",isDismissible:!0})),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(3),console.error(e.t0),null!==e.t0&&void 0!==e.t0&&e.t0.message&&wp.data.dispatch("core/notices").createNotice("error",e.t0.message,{type:"snackbar",isDismissible:!0});case 15:return e.prev=15,v(!1),b(!1),e.finish(15);case 19:case"end":return e.stop()}}),e,null,[[3,11,15,19]])})));return function(){return e.apply(this,arguments)}}();return d?React.createElement("div",{className:"block-editor-block-styles__item",role:"button",tabIndex:a,"aria-label":"Fill",style:{color:o?"var(--wp-admin-theme-color)":"inherit",width:"calc(50% - 4px)",margin:"4px 0","flex-shrink":"0",cursor:"pointer",overflow:"hidden","border-radius":"2px",padding:"6px",display:"flex","flex-direction":"column"}},React.createElement("div",{className:"block-editor-block-styles__item-preview",style:{border:o?"2px solid var(--wp-admin-theme-color)":"2px solid #e3e3e3",margin:0,outline:"1px solid transparent",padding:"0",display:"flex",overflow:"hidden",background:"#fff","align-items":"center","flex-grow":"1","min-height":"80px","max-height":"160px"}},React.createElement(Ne,null))):React.createElement("div",{className:"block-editor-block-styles__item presto-preset-".concat(n.slug),onClick:function(){i(n)},role:"button",tabIndex:a,"aria-label":"Fill",style:{color:o?"var(--wp-admin-theme-color)":"inherit",width:"calc(50% - 4px)",margin:"4px 0","flex-shrink":"0",cursor:"pointer",overflow:"hidden","border-radius":"2px",padding:"6px",display:"flex","flex-direction":"column"}},React.createElement("div",{className:"block-editor-block-styles__item-preview",style:{border:o?"2px solid var(--wp-admin-theme-color)":"2px solid #e3e3e3",margin:0,outline:"1px solid transparent",padding:"0",display:"flex",overflow:"hidden",background:"#fff","align-items":"center","flex-grow":"1","min-height":"80px","max-height":"160px"}},React.createElement("div",{style:{textAlign:"center",width:"100%",color:o?"var(--wp-admin-theme-color)":"inherit",opacity:o?1:.75}},null!=n&&n.icon?React.createElement(Se,{icon:null==n?void 0:n.icon,style:{fontSize:"30px",width:"30px",height:"30px"}}):React.createElement("h1",{style:{opacity:.75}},(null==n||null===(t=n.name)||void 0===t||null===(r=t.charAt(0))||void 0===r?void 0:r.toUpperCase())||"Untitled"))),React.createElement("div",{className:"block-editor-block-styles__item-label",style:{fontWeight:"bold",textTransform:"capitalize","text-align":"center",padding:"4px 0"}},(null==n?void 0:n.name)||"Untitled"),!(null!=n&&n.is_locked)&&React.createElement("div",{className:"block-editor-block-styles__item-edit"},React.createElement("div",{className:"block-editor-block-styles__item-edit-icon",onClick:s},React.createElement(Se,{icon:"edit"})),React.createElement("div",{className:"block-editor-block-styles__item-edit-icon",onClick:function(){return v(!0)}},React.createElement(Se,{icon:"trash"}))),f&&React.createElement(Te,{title:xe("Trash Preset?","presto-player"),onRequestClose:h,style:{maxWidth:"250px"}},React.createElement("p",null,React.createElement("strong",null,xe("Warning!","presto-player")," "),xe("Any audios assigned to this preset will automatically use the default preset.","presto-player")),React.createElement(Be,null,React.createElement(De,{isDestructive:!0,onClick:O,style:{margin:"0 4px"}},xe("Trash","presto-player")),React.createElement(De,{isTertiary:!0,onClick:h,style:{margin:"0 4px",boxShadow:"none"}},xe("Cancel","presto-player")))))},Ie=r(44),Fe=wp.i18n.__,Ve=wp.components,Ue=Ve.withNotices,Me=Ve.BaseControl,ze=Ve.Spinner,We=Ve.Button,He=wp.element,Ye=He.useState,Ge=(He.useEffect,wp.data),qe=Ge.useSelect,Ze=Ge.dispatch;var Ke=Ue((function(e){var t,r=e.attributes,n=e.setAttributes,a=Ye(!1),o=Object(l.a)(a,2),c=o[0],i=o[1],s=function(){return i(!1)},p=Ye(null),u=Object(l.a)(p,2),d=u[0],b=u[1],m=Ye(null),y=Object(l.a)(m,2),f=y[0],h=y[1],O=qe((function(e){return{presets:e("presto-player/player").getAudioPresets(),loading:e("presto-player/player").isResolving("getAudioPresets")}})),g=O.presets,j=O.loading,w=function(e){Ze("presto-player/player").addAudioPreset(e)},_=function(e){Ze("presto-player/player").removeAudioPreset(e)},E=function(e){n({preset:e.id})},R=Ie.a.div(ke||(ke=Object(S.a)(["\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n "])));return j?React.createElement("div",{className:"presto-settings__loading"},React.createElement(ze,null)):React.createElement(React.Fragment,null,g.length?React.createElement("p",null,Fe("Select a audio configuration preset, or add your own.","presto-player")):"",React.createElement(Me,null,React.createElement(R,null,(g||[]).length?g.map((function(e,t){return React.createElement(Le,{setPreset:E,index:t,isActive:(null==r?void 0:r.preset)===e.id,preset:e,key:e.id,onEdit:function(){h(e.name),b(e),i("edit")},remove:_})})):Fe("No style presets. You can create a new style by clicking 'Add New Style'.","presto-plugin"))),React.createElement(Me,null,React.createElement(We,{isPrimary:!0,"data-cy":"add-new-preset",onClick:function(){var e;null!==(e=prestoPlayer)&&void 0!==e&&e.isPremium?i("new"):Ze("presto-player/player").setProModal(!0)}},Fe("Add New Preset","presto-player")),!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(v.a,null)),"new"==c&&React.createElement(Pe,{closeModal:s,addPreset:w,type:"new",onSave:E,attributes:r}),"edit"==c&&React.createElement(Pe,{closeModal:s,addPreset:w,updatePreset:function(e){Ze("presto-player/player").updateAudioPreset(e)},type:"edit",preset:d,name:f,attributes:r}))})),Qe=["image"];var Xe=function e(t){var r,n,a=t.attributes,l=t.setAttributes,c=Object(x.useInstanceId)(e),i="audio-block__poster-image-description-".concat(c),s=a.autoplay,u=a.poster,d=a.preload,m=a.title;return React.createElement(React.Fragment,null,React.createElement(p.PanelBody,{title:React.createElement(React.Fragment,null,Object(o.__)("Title","presto-player")," "),initialOpen:!0},React.createElement(p.FlexBlock,null,React.createElement(p.TextControl,{className:"presto-player__caption--title",placeholder:Object(o.__)("Title","presto-player"),value:m||"",onChange:function(e){return l({title:e})},autoComplete:"off"}))),React.createElement(p.PanelBody,{title:React.createElement(React.Fragment,null,Object(o.__)("Chapters","presto-player")," ",!(null!==(r=prestoPlayer)&&void 0!==r&&r.isPremium)&&React.createElement(v.a,null)),initialOpen:null===(n=prestoPlayer)||void 0===n?void 0:n.isPremium},React.createElement(C.a,{setAttributes:l,attributes:a})),React.createElement(p.PanelBody,{title:React.createElement(React.Fragment,null,Object(o.__)("Audio Settings","presto-player")," ")},React.createElement(p.ToggleControl,{label:React.createElement(React.Fragment,null,Object(o.__)("Autoplay","presto-player")," "),checked:s,onChange:function(e){l({autoplay:e})}}),React.createElement(p.PanelRow,null,React.createElement(p.SelectControl,{label:React.createElement(p.Flex,null,React.createElement("div",null,Object(o.__)("Performance Preference","presto-player")),React.createElement("a",{href:"https://prestoplayer.com/docs/performance-preferences-explained",target:"_blank",style:{textDecoration:"none"}},React.createElement(p.Icon,{icon:"editor-help"}))),className:"presto-setting__preload",value:d,onChange:function(e){return l({preload:e})},options:[{value:"auto",label:Object(o.__)("Audio Playback Speed","presto-player")},{value:"metadata",label:Object(o.__)("Page Load Speed","presto-player")},{value:"none",label:Object(o.__)("Page Load Speed (Extreme)","presto-player")}]})),React.createElement(b.MediaUploadCheck,null,React.createElement(p.BaseControl,{className:"editor-video-poster-control"},React.createElement(p.BaseControl.VisualLabel,null,React.createElement("p",null,Object(o.__)("Poster image","presto-player"))),React.createElement(b.MediaUpload,{title:Object(o.__)("Select poster image","presto-player"),onSelect:function(e){l({poster:e.url})},allowedTypes:Qe,render:function(e){var t=e.open;return React.createElement(p.Button,{className:"presto-setting__poster",isPrimary:!0,onClick:t,"aria-describedby":i},u?Object(o.__)("Replace","presto-player"):Object(o.__)("Select","presto-player"))}}),React.createElement("p",{id:i,hidden:!0},u?sprintf(Object(o.__)("The current poster image url is %s","presto-player"),u):Object(o.__)("There is no poster image currently selected","presto-player")),!!u&&React.createElement(p.Button,{onClick:function(){l({poster:""})},className:"presto-setting__remove-poster",isTertiary:!0},Object(o.__)("Remove","presto-player"))))),React.createElement(p.PanelBody,{title:Object(o.__)("Audio Preset","presto-player")},React.createElement(Ke,{setAttributes:l,attributes:a})),React.createElement(p.PanelBody,{title:React.createElement(React.Fragment,null,Object(o.__)("Global Player Branding","presto-player")),initialOpen:!1},React.createElement(P.a,{setAttributes:l,attributes:a,type:"audio"})))},$e=r(38);function Je(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function et(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Je(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Je(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var tt=wp.data.withSelect;function rt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function nt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?rt(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var at,ot,lt=(0,wp.compose.compose)([tt((function(e){return{branding:e("presto-player/player").branding(),loading:e("presto-player/player").isResolving("getAudioPresets"),presets:e("presto-player/player").getAudioPresets(),defaultPreset:e("presto-player/player").getDefaultAudioPreset()}})),Object(x.createHigherOrderComponent)((function(e){return function(t){var r=t.presets,n=t.attributes,a=t.setAttributes,c=t.defaultPreset,i=t.isSelected,s=t.branding,p=Object(u.useState)({}),b=Object(l.a)(p,2),m=b[0],y=b[1],f=Object(u.useState)(1),v=Object(l.a)(f,2),h=v[0],O=v[1],g=n.poster,j=n.chapters;Object(u.useEffect)((function(){i&&null!=n&&n.id&&Object(d.dispatch)("core/edit-post").openGeneralSidebar("edit-post/block")}),[i]),Object(u.useEffect)((function(){i&&null!=n&&n.selectionOverrideClientId&&Object(d.dispatch)("core/block-editor").selectBlock(null==n?void 0:n.selectionOverrideClientId)}),[i]),Object(u.useEffect)((function(){if(r&&r.length){var e=r.find((function(e){return e.id===(null==n?void 0:n.preset)}));e?y(e):(y(c),a({preset:null==c?void 0:c.id}))}}),[r,null==n?void 0:n.preset]),Object(u.useEffect)((function(){w()}),[g,m,j,s.logo]);var w=function(){O(h+1)},E=Object(B.f)(j);Object(u.useEffect)((function(){var e=null==j?void 0:j.map((function(e){return e.time})),t=null==E?void 0:E.map((function(e){return e.time}));_.difference(e,t).length&&w()}),[j]);var R=function(){var e=Object(N.a)(D.a.mark((function e(t){var r,n,o,l,c,i,s;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.src,n=t.external_id,o=t.attachment_id,l=t.type,c=t.title,r||n||o){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,Object($e.a)({method:"POST",path:"/presto-player/v1/videos",data:et(et({attachment_id:o,post_id:wp.data.select("core/editor").getCurrentPostId(),external_id:n},c?{title:c}:{}),{},{src:r,type:l})});case 5:i=e.sent,s=i.id,a({id:s});case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return null!=n&&n.preset||a({preset:null==c?void 0:c.id}),React.createElement(e,Object.assign({},t,{lockSave:function(){return Object(d.dispatch)("core/editor").lockPostSaving("presto-player")},unlockSave:function(){return Object(d.dispatch)("core/editor").unlockPostSaving("presto-player")},createVideo:R,onUpdate:w,onRemoveSrc:function(){confirm(Object(o.__)("Remove this","presto-player"))&&a({src:"",id:void 0})},presetData:m,setPresetData:y,renderKey:h}))}}),"withPlayerEdit")])(Object(p.withNotices)((function(e){var t=e.attributes,r=e.setAttributes,n=e.branding,a=e.presetData,l=e.renderKey,c=e.defaultPreset,i=e.lockSave,s=e.unlockSave,u=e.loading,d=e.createVideo,b=e.onRemoveSrc,m=t.poster,y=t.src,f=t.id;return y?u||!f?React.createElement(p.Placeholder,{className:"presto-player__placeholder is-loading"},React.createElement(p.Spinner,null)):React.createElement(React.Fragment,null,React.createElement(k.BlockControls,null,React.createElement(p.Toolbar,null,React.createElement(p.Button,{onClick:function(){return b()}},Object(o.__)("Replace","presto-player")))),React.createElement(k.InspectorControls,null,React.createElement(Xe,{attributes:t,setAttributes:r})),React.createElement("figure",null,React.createElement(p.Disabled,null,React.createElement(F.a,{poster:m,src:y,id:f,type:"audio",attributes:t,setAttributes:r,preset:a,branding:n,key:l})))):React.createElement(React.Fragment,null,React.createElement(R,{attributes:t,setAttributes:r,onSelectURL:function(e){r(nt(nt({},t),{},{src:e,title:e,preset:null==c?void 0:c.id})),i(),d({src:e,type:"link"}).catch((function(e){r({src:""}),showNotice(e)})).finally(s)},onSelect:function(e){e&&e.url?e.title?(r({src:e.url,preset:null==c?void 0:c.id,title:e.title,attachment_id:e.id}),i(),d({src:e.url,type:"attachment",attachment_id:e.id}).catch((function(e){r({src:""}),showNotice(e)})).finally(s)):r({src:e.url,title:e.url,preset:null==c?void 0:c.id}):r({src:void 0,id:void 0})}}))}))),ct="presto-player/audio",it={category:"presto",attributes:(at={src:{type:"string"},autoplay:{type:Boolean,default:!1},poster:{type:"string"},chapters:{type:"array",default:[]},preload:{type:"string"},title:{type:"string"},tracks:{type:"array",items:{type:"object"},default:[]},preset:{type:Number},id:{type:Number},attachment_id:{type:Number}},Object(a.a)(at,"src",{type:String}),Object(a.a)(at,"visibility",{type:String,default:"public"}),at),title:Object(o.__)("Presto Audio","presto-player"),description:Object(o.__)("A audio player wrapper.","presto-player"),variations:[{name:"public",isDefault:!0,title:Object(o.__)("Presto Audio","presto-player"),description:Object(o.__)("Presto self-hosted audio block.","presto-player"),attributes:{visibility:"public"}}].concat(Object(n.a)(null!==(ot=prestoPlayer)&&void 0!==ot&&ot.isPremium?[{name:"private",title:Object(o.__)("Presto Private Audio","presto-player"),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),React.createElement("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})),description:Object(o.__)("Private self-hosted audio block.","presto-player"),attributes:{visibility:"private"}}]:[])),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"presto-block-icon"},React.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3"})),edit:lt}},function(e,t,r){"use strict";r.r(t);var n={};r.r(n),r.d(n,"getPresets",(function(){return f})),r.d(n,"getAudioPresets",(function(){return v})),r.d(n,"getPreset",(function(){return h})),r.d(n,"getReusableVideos",(function(){return O})),r.d(n,"getReusableVideo",(function(){return g})),r.d(n,"getDefaultPreset",(function(){return j})),r.d(n,"getDefaultAudioPreset",(function(){return w})),r.d(n,"presetsLoading",(function(){return _})),r.d(n,"branding",(function(){return E})),r.d(n,"playerCSS",(function(){return R})),r.d(n,"youtube",(function(){return k})),r.d(n,"proModal",(function(){return P}));var a={};r.r(a),r.d(a,"setPresetLoading",(function(){return C})),r.d(a,"setVideosLoading",(function(){return S})),r.d(a,"setProModal",(function(){return N})),r.d(a,"setVideos",(function(){return T})),r.d(a,"updateVideos",(function(){return D})),r.d(a,"appendVideos",(function(){return B})),r.d(a,"addVideo",(function(){return A})),r.d(a,"setPresets",(function(){return L})),r.d(a,"addPreset",(function(){return I})),r.d(a,"updatePreset",(function(){return F})),r.d(a,"removePreset",(function(){return V})),r.d(a,"setAudioPresets",(function(){return U})),r.d(a,"addAudioPreset",(function(){return M})),r.d(a,"updateAudioPreset",(function(){return z})),r.d(a,"removeAudioPreset",(function(){return W})),r.d(a,"setBranding",(function(){return H})),r.d(a,"updateBranding",(function(){return Y})),r.d(a,"saveOptions",(function(){return G})),r.d(a,"fetchOptions",(function(){return q})),r.d(a,"fetchFromAPI",(function(){return Z})),r.d(a,"fetchFromWPAPI",(function(){return K})),r.d(a,"setYoutube",(function(){return Q})),r.d(a,"updateYoutube",(function(){return X})),r.d(a,"setPresetSettings",(function(){return $})),r.d(a,"setPresetAudioSettings",(function(){return J}));var o=r(5),l=r(8);function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){Object(o.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var s=wp.data,p=s.combineReducers,u=s.dispatch,d=wp.apiFetch,b=lodash.pick,m=function(e,t){return e.find((function(e){return e.id===t.id}))?e:[].concat(Object(l.a)(e),[t])},y=p({presetReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PRESET":return t.value;case"ADD_PRESET":return[].concat(Object(l.a)(e),[t.value]);case"UPDATE_PRESET":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:i(i({},e),t.value)}));case"REMOVE_PRESET":return e.filter((function(e){return e!==t.value}))}return e},audioPresetReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_AUDIO_PRESET":case"SET_AUDIO_PRESET":return t.value;case"ADD_AUDIO_PRESET":return[].concat(Object(l.a)(e),[t.value]);case"UPDATE_AUDIO_PRESET":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:i(i({},e),t.value)}));case"REMOVE_AUDIO_PRESET":return e.filter((function(e){return e!==t.value}))}return e},presetLoadingReducer:function(){var e=arguments.length>1?arguments[1]:void 0;switch(e.type){case"SET_PRESET_LOADING":return e.value}},videosLoadingReducer:function(){var e=arguments.length>1?arguments[1]:void 0;switch(e.type){case"SET_VIDEOS_LOADING":return e.value}},videosReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{total:0,total_pages:0,videos:[],hasResolved:!1,isError:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_VIDEOS":return t.value;case"UPDATE_VIDEOS":return i(i({},e),t.value);case"APPEND_VIDEOS":var r=e;return(t.value||[]).forEach((function(e){r.videos=m(r.videos,e)})),r;case"ADD_VIDEO":return i(i({},e),{},{videos:m(e.videos,t.value)});case"UPDATE_VIDEO":return i(i({},e),{},{videos:e.videos.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:i(i({},e),t.value)}))});case"REMOVE_VIDEO":return i(i({},e),{},{videos:e.videos.filter((function(e){return e!==t.value}))})}return e},proModalReducer:function(){var e=arguments.length>1?arguments[1]:void 0;switch(e.type){case"SET_PRO_MODAL":return e.value}},brandingReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_BRANDING":return t.value;case"UPDATE_BRANDING":return i(i({},e),{},Object(o.a)({},t.name,t.value))}return e},youtubeReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_YOUTUBE":return t.value;case"UPDATE_YOUTUBE":return i(i({},e),{},Object(o.a)({},t.name,t.value))}return e},presetSettingsReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PRESET_SETTINGS":return t.value}return e},optionsApi:function(e,t){switch(t.type){case"FETCH_OPTIONS":return d({path:"/presto-player/v1/settings/"}).then((function(e){u("presto-player/player").setBranding(e.presto_player_branding),u("presto-player/player").setYoutube(e.presto_player_youtube),u("presto-player/player").setPresetSettings(e.presto_player_presets),u("presto-player/player").setPresetAudioSettings(e.presto_player_audio_presets)}));case"SAVE_OPTIONS":var r={presto_player_branding:b(null==t?void 0:t.branding,["logo","color","logo_width","player_css"])};return Object.keys(r).forEach((function(e){return(null==r[e]||!Object.keys((null==r?void 0:r[e])||{}).length)&&delete r[e]})),d({path:"/presto-player/v1/settings",method:"POST",data:r}),r}},audioPresetSettingsReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PRESET_AUDIO_SETTINGS":return t.value}return e}});function f(e){return(null==e?void 0:e.presetReducer)||[]}function v(e){return(null==e?void 0:e.audioPresetReducer)||[]}function h(e,t){var r;return null!=e&&null!==(r=e.presetReducer)&&void 0!==r&&r.length?null==e?void 0:e.presetReducer.find((function(e){return e.id===t})):[]}function O(e){return(null==e?void 0:e.videosReducer)||[]}function g(e,t){var r,n;return(null==e||null===(r=e.videosReducer)||void 0===r||null===(n=r.videos)||void 0===n?void 0:n.find((function(e){return(null==e?void 0:e.id)===t})))||[]}function j(e){var t,r=null==e||null===(t=e.presetSettingsReducer)||void 0===t?void 0:t.default_player_preset,n=r&&((null==e?void 0:e.presetReducer)||[]).find((function(e){return e.id&&e.id===r}));return n||(n=((null==e?void 0:e.presetReducer)||[]).find((function(e){return"default"==e.slug}))),n||(n=((null==e?void 0:e.presetReducer)||[])[0]),n}function w(e){var t,r=null==e||null===(t=e.audioPresetSettingsReducer)||void 0===t?void 0:t.default_player_preset,n=r&&((null==e?void 0:e.audioPresetReducer)||[]).find((function(e){return e.id&&e.id===r}));return n||(n=((null==e?void 0:e.audioPresetReducer)||[]).find((function(e){return"default"==e.slug}))),n||(n=((null==e?void 0:e.audioPresetReducer)||[])[0]),n}function _(e){return!(null==e||!e.presetLoadingReducer)}function E(e){return null==e?void 0:e.brandingReducer}function R(e){var t;return null==e||null===(t=e.brandingReducer)||void 0===t?void 0:t.player_css}function k(e){return null==e?void 0:e.youtubeReducer}function P(e){return null==e?void 0:e.proModalReducer}function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function C(e){return{type:"SET_PRESET_LOADING",value:e}}function S(e){return{type:"SET_VIDEOS_LOADING",value:e}}function N(e){return{type:"SET_PRO_MODAL",value:e}}function T(e){return{type:"SET_VIDEOS",value:e}}function D(e){return{type:"UPDATE_VIDEOS",value:e}}function B(e){return{type:"APPEND_VIDEOS",value:e}}function A(e){return{type:"ADD_VIDEO",value:e}}function L(e){return{type:"SET_PRESET",value:e}}function I(e){return{type:"ADD_PRESET",value:e}}function F(e){return{type:"UPDATE_PRESET",value:e}}function V(e){return{type:"REMOVE_PRESET",value:e}}function U(e){return{type:"SET_AUDIO_PRESET",value:e}}function M(e){return{type:"ADD_AUDIO_PRESET",value:e}}function z(e){return{type:"UPDATE_AUDIO_PRESET",value:e}}function W(e){return{type:"REMOVE_AUDIO_PRESET",value:e}}function H(e){return{type:"SET_BRANDING",value:e}}function Y(e,t){return{type:"UPDATE_BRANDING",name:e,value:t}}function G(e){return function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?x(Object(r),!0).forEach((function(t){Object(o.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}({type:"SAVE_OPTIONS"},e)}function q(){return{type:"FETCH_OPTIONS"}}function Z(e){return{type:"FETCH_FROM_API",path:e}}function K(e,t){return{type:"FETCH_FROM_WP_API",path:e,args:t}}function Q(e){return{type:"SET_YOUTUBE",value:e}}function X(e,t){return{type:"UPDATE_YOUTUBE",name:e,value:t}}function $(e){return{type:"SET_PRESET_SETTINGS",value:e}}function J(e){return{type:"SET_PRESET_AUDIO_SETTINGS",value:e}}var ee=r(7),te=r(2),re=r.n(te);function ne(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ae(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ne(Object(r),!0).forEach((function(t){Object(o.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ne(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var oe=wp.apiFetch,le={FETCH_FROM_API:function(e){return oe({url:prestoPlayer.root+prestoPlayer.prestoVersionString+e.path})},FETCH_FROM_WP_API:function(e){return Object(ee.a)(re.a.mark((function t(){var r,n,a,o,l,c,i;return re.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return r=e.args,n=e.path,a=void 0===n?"":n,t.next=3,oe(ae(ae(ae({path:wp.url.addQueryArgs("wp/v2/".concat(a),null==r?void 0:r.query)},null!=r&&r.data?{data:r.data}:{}),null==r?void 0:r.options),{},{parse:!1}));case 3:return o=t.sent,t.next=6,o.json();case 6:return l=t.sent,c=o.headers&&o.headers.get("X-WP-Total"),i=o.headers&&o.headers.get("X-WP-TotalPages"),t.abrupt("return",new Promise((function(e,t){e({data:l,total:c,total_pages:i})})));case 10:case"end":return t.stop()}}),t)})))()}},ce={getPresets:re.a.mark((function e(){var t;return re.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Z("preset");case 2:return t=e.sent,e.abrupt("return",L(t));case 4:case"end":return e.stop()}}),e)})),getAudioPresets:re.a.mark((function e(){var t;return re.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,Z("audio-preset");case 2:return t=e.sent,e.abrupt("return",U(t));case 4:case"end":return e.stop()}}),e)})),getReusableVideo:re.a.mark((function e(t){var r,n;return re.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r="presto-videos/".concat(t),e.next=3,K(r,{});case 3:return n=e.sent,e.abrupt("return",A((null==n?void 0:n.data)||{}));case 5:case"end":return e.stop()}}),e)}))},ie=(0,wp.data.registerStore)("presto-player/player",{reducer:y,selectors:n,actions:a,controls:le,resolvers:ce}),se=r(11),pe=wp.components,ue=pe.Modal,de=pe.Button,be=wp.data,me=be.dispatch,ye=be.useSelect,fe=function(){return ye((function(e){return e("presto-player/player").proModal()}))?React.createElement(ue,{title:"Pro Feature",onRequestClose:function(){me("presto-player/player").setProModal(!1)}},React.createElement("h2",null,"Unlock Presto Player ",React.createElement(se.a,null)),React.createElement("p",null,"Get this feature and more with the Pro version of Presto Player!"),React.createElement(de,{href:"https://prestoplayer.com",target:"_blank",isPrimary:!0},"Learn More")):""},ve=wp.blocks,he=ve.registerBlockType,Oe=ve.unregisterBlockType,ge=wp.plugins,je=ge.registerPlugin,we=ge.unregisterPlugin,_e=wp.data,Ee=_e.select,Re=_e.dispatch,ke=wp.element.render,Pe=function(){return null},xe=function(e){var t=e.getContext,r=e.register,n=e.unregister,a=e.before,o=void 0===a?Pe:a,l=e.after,c=void 0===l?Pe:l,i={};!function(){o();var e=t(),a=[];e.keys().forEach((function(t){var o=e(t);o!==i[t]&&(i[t]&&n(i[t]),r(o),a.push(o.name),i[t]=o)})),c(a)}()},Ce=null;xe({getContext:function(){return r(62)},register:function(e){var t,r=e.name,n=e.options;null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium?he(r,n):n.premium||he(r,n)},unregister:function(e){var t=e.name;return Oe(t)},before:function(){Ce=Ee("core/editor").getSelectedBlockClientId(),Re("core/editor").clearSelectedBlock()},after:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];Ee("core/editor").getBlocks().forEach((function(t){var r=t.name,n=t.clientId;e.includes(r)&&Re("core/editor").selectBlock(n)})),Ce?Re("core/editor").selectBlock(Ce):Re("core/editor").clearSelectedBlock(),Ce=null}}),xe({getContext:function(){return r(69)},register:function(e){var t=e.name,r=e.options;return je(t,r)},unregister:function(e){var t=e.name;return we(t)}}),jQuery("body").append('<div id="presto-plugin-app"></div>'),ke(React.createElement(fe,null),document.getElementById("presto-plugin-app")),Re("presto-player/player").fetchOptions();var Se=!1;wp.data.subscribe((function(){var e=wp.data.select("core/editor").isSavingPost(),t=wp.data.select("core/editor").isAutosavingPost();if(e&&!t){if(Se)return;Se=!0;var r=ie.getState().brandingReducer;Re("presto-player/player").saveOptions({branding:r}).then((function(){Se=!1}))}}))},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return W})),r.d(t,"options",(function(){return H}));var n=r(7),a=r(1),o=r(2),l=r.n(o),c=(r(19),wp.compose.useInstanceId),i=wp.i18n.__,s=wp.components,p=s.VisuallyHidden,u=s.Button,d=s.Icon,b=wp.element.useRef;var m=function e(t){t.className;var r=t.onChange,n=t.value,a=t.placeholder,o=c(e),l=b();return React.createElement("div",{className:"block-editor-inserter__search",style:{padding:0}},React.createElement(p,{as:"label",htmlFor:"block-editor-inserter__search-".concat(o)},a),React.createElement("input",{ref:l,className:"block-editor-inserter__search-input",id:"block-editor-inserter__search-".concat(o),type:"search",placeholder:a,onChange:function(e){return r(e.target.value)},autoComplete:"off",value:n||""}),React.createElement("div",{className:"block-editor-inserter__search-icon"},!!n&&React.createElement(u,{icon:"close-small",label:i("Reset search","presto-player"),onClick:function(){r(""),l.current.focus()}}),!n&&React.createElement(d,{icon:"search"})))},y=r(3),f=r(4);function v(e){return h.apply(this,arguments)}function h(){return(h=Object(n.a)(l.a.mark((function e(t){var r,n,a,o;return l.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=document.getElementById("presto-shortcode-input").value,n=t.currentTarget,a=n.textContent,t.currentTarget.textContent=Object(y.__)("Copied!","presto-player"),setTimeout((function(){n.textContent=a}),1500),!navigator.clipboard||!window.isSecureContext){e.next=9;break}return e.abrupt("return",navigator.clipboard.writeText(r));case 9:return(o=document.createElement("textarea")).value=r,o.style.position="fixed",o.style.left="-999999px",o.style.top="-999999px",document.body.appendChild(o),o.focus(),o.select(),e.abrupt("return",new Promise((function(e,t){document.execCommand("copy")?e():t(),o.remove()})));case 18:case"end":return e.stop()}}),e)})))).apply(this,arguments)}var O=function(){return React.createElement(f.PanelBody,{title:Object(y.__)("Timestamp Shortcode","presto-player")},React.createElement("div",{className:"block-editor-inserter__shortcode-input"},React.createElement("p",null,Object(y.__)("Add convenient links to skip the player to a specific timestamp.","presto-player")),React.createElement("input",{id:"presto-shortcode-input",style:{width:"100%",fontSize:"11px",marginBottom:"10px"},type:"text",readOnly:!0,value:'[pptime time="1:00"]Optional Text[/pptime]'}),React.createElement("button",{type:"button",className:"components-button is-primary",onClick:v},Object(y.__)("Copy to clipboard","presto-player"))))},g=function(e){var t=e.icon,r=e.title,n=e.id,a=e.selectBlock,o=e.i;return React.createElement("button",{type:"button",id:"video-".concat(n),tabIndex:o,onClick:a,role:"option",className:"components-button block-editor-block-types-list__item editor-block-list-item-kadence-spacer"},React.createElement("span",{className:"block-editor-block-types-list__item-icon"},React.createElement("span",{className:"block-editor-block-icon has-colors"},t)),React.createElement("span",{className:"block-editor-block-types-list__item-title"},r))},j=wp.i18n.__,w=wp.components,E=(w.Panel,w.PanelBody),R=w.Button,k=w.Spinner,P=wp.editPost,x=P.PluginSidebar,C=P.PluginSidebarMoreMenuItem,S=wp.element,N=S.Fragment,T=S.useEffect,D=S.useState,B=S.useCallback,A=wp.data,L=A.dispatch,I=A.useSelect,F=wp.blocks,V=F.createBlock,U=F.getBlockType,M=wp.apiFetch,z=wp.blockSerializationDefaultParser.parse;var W="presto-player",H={render:function(){var e,t,r,o=(e=D(0),(t=Object(a.a)(e,2))[0],r=t[1],function(){return r((function(e){return e+1}))}),c=React.createElement("svg",{viewBox:"0 0 35 34",fill:"none",xmlns:"http://www.w3.org/2000/svg"},React.createElement("g",null,React.createElement("path",{d:"M23.3722 16.9766L33.2059 11.2991L33.2059 22.6541L23.3722 16.9766Z",fillOpacity:"0.7"}),React.createElement("path",{d:"M23.3745 5.6227L33.2082 11.3002L23.3745 16.9776L23.3745 5.6227Z",fillOpacity:"0.75"}),React.createElement("path",{d:"M23.3745 5.62242L23.3745 16.9773L13.5409 11.2999L23.3745 5.62242Z",fillOpacity:"0.8"}),React.createElement("path",{d:"M23.399 5.613L13.5654 11.2905L13.5654 -0.0644536L23.399 5.613Z",fillOpacity:"0.85"}),React.createElement("path",{d:"M13.5699 11.3038L13.5699 22.6587L3.73623 16.9813L13.5699 11.3038Z",fillOpacity:"0.8"}),React.createElement("path",{d:"M13.5699 -0.0245525L13.5699 11.3304L3.73623 5.6529L13.5699 -0.0245525Z",fillOpacity:"0.9"}),React.createElement("path",{d:"M13.5699 22.6451L13.5699 34L3.73623 28.3226L13.5699 22.6451Z",fillOpacity:"0.7"}),React.createElement("path",{d:"M23.3745 16.9774L33.2082 22.6549L23.3745 28.3323L23.3745 16.9774Z",fillOpacity:"0.65"}),React.createElement("path",{d:"M3.73774 16.9774L13.5714 22.6549L3.73774 28.3323L3.73774 16.9774Z",fillOpacity:"0.75"}),React.createElement("path",{d:"M3.73774 5.63149L13.5714 11.3089L3.73774 16.9864L3.73774 5.63149Z",fillOpacity:"0.85"}),React.createElement("path",{d:"M23.3745 16.9772L23.3745 28.3321L13.5409 22.6546L23.3745 16.9772Z",fillOpacity:"0.6"})),React.createElement("defs",null,React.createElement("clipPath",{id:"clip0"},React.createElement("rect",{width:"35",height:"34",fill:"white"})))),i=D(!1),s=Object(a.a)(i,2),p=s[0],u=s[1],d=D(1),b=Object(a.a)(d,2),y=b[0],f=b[1],v=D(!1),h=Object(a.a)(v,2),w=h[0],P=h[1],S=D(""),A=Object(a.a)(S,2),F=A[0],W=A[1],H=B(_.debounce((function(e){K({replace:!0,term:e})}),250),[]);T((function(){H(F)}),[F]),T((function(){P(!0),K({replace:!1})}),[y]);var Y=I((function(e){return e("presto-player/player").getReusableVideos()}),[F,y]),G=Y.videos,q=Y.total_pages,Z=Y.hasResolved,K=function(){var e=Object(n.a)(l.a.mark((function e(t){var r,n,a,c,i,s;return l.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.replace,n=t.term,e.next=3,M({path:wp.url.addQueryArgs("wp/v2/presto-videos",{search:n,page:y,per_page:10}),parse:!1});case 3:return a=e.sent,e.next=6,a.json();case 6:c=e.sent,i=a.headers&&parseInt(a.headers.get("X-WP-Total")),s=a.headers&&parseInt(a.headers.get("X-WP-TotalPages")),r?L("presto-player/player").updateVideos({videos:c,hasResolved:!0,total:i,total_pages:s}):(L("presto-player/player").appendVideos(c),L("presto-player/player").updateVideos({hasResolved:!0,total:i,total_pages:s})),o(),P(!1);case 12:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();T((function(){u(y<q)}),[y,q]);var Q=function(){var e=y+1;f(e=e>q?q:e)},X=function(e){var t,r,n,a,o=z(null==e||null===(t=e.content)||void 0===t?void 0:t.raw);if(null!=o&&null!==(r=o[0])&&void 0!==r&&null!==(n=r.innerBlocks)&&void 0!==n&&null!==(a=n[0])&&void 0!==a&&a.blockName){var l,c,i,s,p=U(null==o||null===(l=o[0])||void 0===l||null===(c=l.innerBlocks)||void 0===c||null===(i=c[0])||void 0===i?void 0:i.blockName);return null!=p&&null!==(s=p.icon)&&void 0!==s&&s.src?p.icon.src:""}return""};return React.createElement(N,null,React.createElement(C,{target:"presto-player-sidebar",icon:c},j("Presto Player","presto-player")),React.createElement(x,{name:"presto-player-sidebar",title:j("Presto Player","presto-player"),icon:c},React.createElement(O,null),React.createElement(E,{title:j("Media Hub","presto-player")},React.createElement(m,{placeholder:"Search media...",value:F,onChange:function(e){return t=e,f(1),void W(t);var t}}),React.createElement("div",{className:"block-editor-inserter__panel-content"},Z?React.createElement("div",{role:"listbox",className:"block-editor-block-types-list presto-player__panel-grid-list",style:{display:"flex",flexWrap:"wrap"},"aria-label":j("Media Hub","presto-player")},G.length?G.map((function(e,t){var r;return React.createElement(g,{selectBlock:function(t){L("core/editor").insertBlock(V("presto-player/reusable-display",{id:null==e?void 0:e.id}))},icon:X(e),title:(null==e||null===(r=e.title)||void 0===r?void 0:r.raw)||"Untitled",id:null==e?void 0:e.id,i:t,key:null==e?void 0:e.id})})):function(){if(!G.length)return F?React.createElement("p",null,j("No videos found.","presto-player")):React.createElement(R,{href:"post-new.php?post_type=pp_video_block",isSecondary:!0},j("Create A Reusable Video","presto-player"))}(),!F&&p&&G.length?React.createElement("div",{style:{"margin-top":"20px","text-align":"center",display:"flex","justify-content":"center",width:"100%"}},React.createElement(R,{isSecondary:!0,isSmall:!0,onClick:Q,isBusy:w},"Load More")):""):React.createElement(k,null)))))}}},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return ye})),r.d(t,"options",(function(){return fe}));var n=r(8),a=r(5),o=r(1),l=r(18),c=r(23),i=r(24),s=r(19),p=r.n(s),u=r(16),d=(lodash.noop,window.location.href),b=wp.components,m=b.Button,y=(b.Notice,b.Placeholder),f=(b.DropZone,b.withFilters),v=(b.BaseControl,b.ToggleControl,b.FormFileUpload,wp.i18n.__),h=wp.element,O=h.useState,g=h.useEffect,j=wp.data.useSelect,w=(wp.deprecated,wp.editor),_=w.MediaUpload,E=w.MediaUploadCheck,R=w.URLPopover,k=function(e){var t=e.src,r=e.onChange,n=e.onSubmit,a=e.onClose;return React.createElement(R,{onClose:a},React.createElement("form",{className:"block-editor-media-placeholder__url-input-form",onSubmit:n},React.createElement("input",{"data-cy":"url-input",className:"block-editor-media-placeholder__url-input-field",type:"url","aria-label":v("URL","presto-player"),placeholder:v("Paste or type a Youtube, Vimeo or .mp4 video URL","presto-player"),onChange:r,value:t}),React.createElement(m,{"data-cy":"url-submit",className:"block-editor-media-placeholder__url-input-submit-button",icon:"editor-break",label:v("Apply","presto-player"),type:"submit"})))};var P,x=f("editor.MediaPlaceholder")((function(e){var t=e.value,r=void 0===t?{}:t,n=e.allowedTypes,a=void 0===n?[]:n,l=e.className,c=e.icon,i=e.url,s=void 0===i||i,b=e.labels,f=void 0===b?{}:b,h=e.mediaPreview,w=e.notices,R=e.isAppender,P=e.isPrivate,x=e.addToGallery,C=e.onSelect,S=e.onCancel,N=e.onSelectURL,T=e.onDoubleClick,D=e.children,B=e.allowURLs,A=j((function(e){return(0,e("core/block-editor").getSettings)().mediaUpload}),[]),L=O(""),I=Object(o.a)(L,2),F=I[0],V=I[1],U=O(!1),M=Object(o.a)(U,2),z=M[0],W=M[1];g((function(){var e;V(null!==(e=null==r?void 0:r.src)&&void 0!==e?e:"")}),[r]);var H=function(e){V(e.target.value)},Y=function(){W(!0)},G=function(){W(!1)},q=function(e){e.preventDefault(),F&&N&&(N(F),G())},Z=function(e,t){var r=f.instructions,n=f.title;A||N||(r=v("To edit this block, you need permission to upload media.","presto-player"));var a=p()("block-editor-media-placeholder",l,{"is-appender":R});return React.createElement(y,{icon:c,label:n,instructions:r,className:a,notices:w,onClick:t,onDoubleClick:T,preview:h},D,e)},K=function(){return N&&React.createElement("div",{className:"block-editor-media-placeholder__url-input-container"},s&&React.createElement(m,{"data-cy":"video-url",className:"block-editor-media-placeholder__button",onClick:Y,isPressed:z,isTertiary:!0},v("Video URL","presto-player")),z&&React.createElement(k,{src:F,onChange:H,onSubmit:q,onClose:G}))};return React.createElement(E,{fallback:Z(K())},function(){var e=React.createElement(_,{title:v(P?"Select or Upload Private Video":"Select or Upload Video","presto-player"),addToGallery:x,gallery:!1,multiple:!1,onSelect:function(e){u.a.unsetUrlParams(),C(e)},onClose:function(){u.a.unsetUrlParams()},allowedTypes:a,value:Array.isArray(r)?r.map((function(e){return e.id})):r.id,render:function(e){var t=e.open;return React.createElement(m,{"data-cy":"add-video",isPrimary:!0,onClick:function(e){e.stopPropagation(),u.a.unsetUrlParams(),P?u.a.setUrlPrivate(d):u.a.setUrlPublic(d),t()}},v(P?"Add/Select Private Video":"Add/Select Video","presto-player"))}});if(A){var t=React.createElement(React.Fragment,null,e,!!B&&K(),S&&React.createElement(m,{className:"block-editor-media-placeholder__cancel-button",title:v("Cancel","presto-player"),isLink:!0,onClick:S},v("Cancel","presto-player")));return Z(t)}return Z(e)}())})),C=r(11),S=wp.i18n.__,N=wp.components,T=N.withNotices,D=N.BaseControl,B=N.ToggleControl,A=N.Notice,L=wp.data.dispatch,I=["video"],F=T((function(e){var t,r=e.noticeUI,n=e.onSelect,a=e.children,o=e.onSelectURL,l=e.onUploadError,c=e.setAttributes,i=e.attributes,s="private"===i.visibility;return React.createElement("div",null,React.createElement(x,{icon:s?React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),React.createElement("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})):React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("polygon",{points:"23 7 16 12 23 17 23 7"}),React.createElement("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"})),labels:{title:S(s?"Presto Private Video":"Presto Video","presto-player"),instructions:S(s?"Upload a video file, or pick one from your media library.":"Upload a video file, pick one from your media library, or add one with a URL.","presto-player")},onSelect:n,onSelectURL:o,switcher:!0,isPrivate:s,allowURLs:!s,accept:"video/*",setAttributes:c,allowedTypes:I,value:i,notices:r,onError:l},React.createElement("div",{style:{width:"100%"}},React.createElement(D,{className:"presto-player__placeholder-control"},React.createElement(B,{label:React.createElement("div",null,S("Make Private","presto-player")," ",!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(C.a,null)),help:S(s?"This video is only accessible to those who are logged in.":"This video is currently accessible to everyone.","presto-player"),checked:s,onChange:function(e){var t;null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium?c({visibility:e?"private":"public"}):L("presto-player/player").setProModal(!0)}})),!!a&&React.createElement("div",{style:{width:"100%"}},a),!!s&&React.createElement(A,{status:"warning",isDismissible:!1},React.createElement("div",null,React.createElement("div",null,React.createElement("strong",null,S("Note","presto-player"))),S("Private videos use php to stream your video. Keep in mind this will use up disk space and bandwidth so it may not be an appropriate choice for some hosts.","presto-player"))))))})),V=r(39),U=r(25),M=r(14),z=wp.i18n.__,W=wp.blob,H=W.getBlobByURL,Y=W.isBlobURL,G=wp.components,q=G.Button,Z=G.Disabled,K=G.Toolbar,Q=G.Notice,X=G.withNotices,$=G.Placeholder,J=G.Spinner,ee=wp.editor,te=ee.BlockControls,re=ee.InspectorControls,ne=wp.compose.compose,ae=wp.element,oe=ae.useEffect,le=ae.useState,ce=wp.data.dispatch,ie=wp.blocks.createBlock,se=["video"],pe=ne([Object(i.a)(),Object(c.a)()])(X((function(e){e.noticeUI;var t=e.attributes,r=e.setAttributes,n=(e.isSelected,e.noticeOperations),a=e.branding,c=e.loading,i=e.presetData,s=e.createVideo,p=e.onRemoveSrc,u=e.renderKey,d=e.lockSave,b=e.unlockSave,m=e.clientId,y=e.defaultPreset,f=t.poster,v=t.src,h=t.id,O=t.tracks,g=le(""),j=Object(o.a)(g,2),w=j[0],_=j[1],E=function(e){n.removeAllNotices(),n.createErrorNotice(null==e?void 0:e.message)};return oe((function(){if(!h&&Y(v)){var e=H(v);e&&mediaUpload({filesList:[e],onFileChange:function(e){var t=Object(o.a)(e,1)[0].url;r({src:t})},onError:function(e){n.createErrorNotice(e)},allowedTypes:se})}}),[]),v?c||!h?React.createElement($,{className:"presto-player__placeholder is-loading"},React.createElement(J,null)):React.createElement("div",null,React.createElement(te,null,React.createElement(V.a,{tracks:O,onChange:function(e){r({tracks:e})}}),React.createElement(K,null,React.createElement(q,{onClick:function(){return p()}},z("Replace","presto-player")))),React.createElement(re,null,React.createElement(U.a,{setAttributes:r,attributes:t})),React.createElement("figure",null,React.createElement(Z,null,React.createElement(M.a,{poster:f,src:v,id:h,type:"hosted",attributes:t,setAttributes:r,preset:i,branding:a,key:u})))):React.createElement("div",null,React.createElement(F,{onSelect:function(e){e&&e.url?(r({src:e.url,preset:null==y?void 0:y.id,attachment_id:e.id}),d(),s({src:e.url,type:"attachment",attachment_id:e.id}).catch((function(e){r({src:""}),E(e)})).finally(b)):r({src:void 0,id:void 0})},onSelectURL:function(e){var t;if(r({attachment_id:null}),e&&Object(l.d)(e)&&(null===(t=prestoPlayer)||void 0===t||!t.isPremium))return void _(React.createElement(Q,{status:"info",onRemove:function(){return _("")}},React.createElement("div",null,React.createElement("div",null,React.createElement("strong",null,z("Get HLS Streaming and more with Presto Player Pro!","presto-player"))),z("Stream HLS links and more with Presto Player Pro.","presto-player"),React.createElement("div",{style:{marginTop:"1em"}},React.createElement(q,{isPrimary:!0},z("Upgrade","presto-player"))))));if(e!==v){var n=Object(l.a)(e).type;if("youtube"===n){var a=ie("presto-player/youtube",{src:e});return void ce("core/editor").replaceBlock(m,a)}if("vimeo"===n){var o=ie("presto-player/vimeo",{src:e});return void ce("core/editor").replaceBlock(m,o)}r({src:e,attachmend_id:null}),r({preset:null==y?void 0:y.id}),d(),s({src:e,type:"link"}).catch((function(e){r({src:""}),E(e)})).finally(b)}},setAttributes:r,attributes:t,onError:function(e){n.removeAllNotices(),n.createErrorNotice(e)}},w))}))),ue=r(17);function de(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function be(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?de(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):de(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var me=wp.i18n.__,ye="presto-player/self-hosted",fe=be(be({},ue.a),{},{title:me("Presto Video","presto-player"),description:me("Presto Self-hosted video block.","presto-player"),variations:[{name:"public",isDefault:!0,title:me("Presto Video","presto-player"),description:me("Presto Self-hosted video block.","presto-player"),attributes:{visibility:"public"}}].concat(Object(n.a)(null!==(P=prestoPlayer)&&void 0!==P&&P.isPremium?[{name:"private",title:me("Presto Private Video","presto-player"),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),React.createElement("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})),description:me("Private video self-hosted block.","presto-player"),attributes:{visibility:"private"}}]:[])),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("polygon",{points:"23 7 16 12 23 17 23 7"}),React.createElement("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"})),edit:pe})},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return E})),r.d(t,"options",(function(){return R}));var n=r(1),a=wp.i18n.__,o=wp.blockEditor,l=o.InnerBlocks,c=o.useBlockProps,i=wp.editor,s=(i.BlockControls,i.InspectorControls),p=wp.components,u=p.Disabled,d=(p.Toolbar,p.Button),b=p.PanelBody,m=(p.Panel,p.Placeholder),y=p.Spinner,f=wp.data,v=f.useSelect,h=f.dispatch,O=wp.element,g=O.useState,j=O.useEffect,w=wp.blockSerializationDefaultParser.parse,_=wp.blockEditor,E=(_.InnerBlocks,_.useBlockProps,"presto-player/reusable-display"),R={title:"Reusable Block Display",category:"presto",attributes:{id:Number},supports:{align:!0,inserter:!1,reusable:!1,html:!1},icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("circle",{cx:"12",cy:"12",r:"10"}),React.createElement("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),React.createElement("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})),edit:function(e){var t,r=e.attributes,o=e.isSelected,i=e.clientId,p=r.id,f=c(),O=g(!1),_=Object(n.a)(O,2),E=_[0],R=_[1],k=g([]),P=Object(n.a)(k,2),x=P[0],C=P[1],S=g(""),N=Object(n.a)(S,2),T=N[0],D=N[1],B=v((function(e){if(p)return e("presto-player/player").getReusableVideo(p)}));j((function(){wp.data.dispatch("core/block-editor").selectBlock(i)}),[E]);var A=v((function(e){return e("core/editor").getBlocksByClientId(i)[0].innerBlocks}));return A&&null!=B&&B.id&&A.forEach((function(e){h("core/editor").updateBlockAttributes(e.clientId,{selectionOverrideClientId:i})})),j((function(){if(B.id){var e,t,r;R(!0);var n=w(null==B||null===(e=B.content)||void 0===e?void 0:e.raw);C([null==n||null===(t=n[0])||void 0===t?void 0:t.innerBlocks[0].blockName,null==n||null===(r=n[0])||void 0===r?void 0:r.innerBlocks[0].attrs]),D("post.php?post=".concat(B.id,"&action=edit"))}}),[B]),E?x?React.createElement(React.Fragment,null,React.createElement(s,null,React.createElement(b,null,React.createElement("p",null,"This is a reusable video that you can edit once and place anywhere."),React.createElement(d,{isSecondary:!0,href:"edit.php?post_type=pp_video_block"},a("Manage Media Hub","presto-player")))),React.createElement("div",{className:"block-library-block__reusable-block-container"},React.createElement("div",f,o&&React.createElement("div",{className:"reusable-block-edit-panel"},React.createElement("b",{className:"reusable-block-edit-panel__info"},null==B||null===(t=B.title)||void 0===t?void 0:t.raw),React.createElement(d,{isSecondary:!0,href:T,className:"reusable-block-edit-panel__button"},a("Edit Reusable Video","presto-player"))),React.createElement(u,null,React.createElement(l,{template:[x],templateLock:"all",renderAppender:!1}))))):void 0:React.createElement("div",f,React.createElement(m,null,React.createElement(y,null)))},save:function(){return null}}},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return x})),r.d(t,"options",(function(){return C}));var n=r(5),a=r(23),o=r(24),l=r(25),c=r(14),i=r(42),s=r(18),p=r(9),u=wp.components,d=u.Button,b=u.Disabled,m=u.Toolbar,y=u.Placeholder,f=u.Spinner,v=u.withNotices,h=wp.editor,O=h.BlockControls,g=h.InspectorControls,j=wp.element.useEffect,w=wp.i18n.__,_=(0,wp.compose.compose)([Object(o.a)(),Object(a.a)()])(v((function(e){var t=e.attributes,r=e.setAttributes,n=e.branding,a=e.noticeOperations,o=e.loading,u=e.createVideo,v=e.lockSave,h=e.unlockSave,_=e.presetData,E=e.onRemoveSrc,R=e.renderKey,k=t.poster,P=t.src,x=t.id,C=Object(p.f)(P);return j((function(){C&&r({id:0});var e=Object(s.b)(P);r({video_id:e}),v(),u({src:P,external_id:e,type:"vimeo"}).catch((function(e){r({src:""}),function(e){a.removeAllNotices(),a.createErrorNotice(null==e?void 0:e.message)}(e)})).finally(h)}),[P]),P?o||!x?React.createElement(y,{className:"presto-player__placeholder is-loading"},React.createElement(f,null)):React.createElement(React.Fragment,null,React.createElement(O,null,React.createElement(m,null,React.createElement(d,{onClick:function(){return E()}},w("Replace","presto-player")))),React.createElement(g,null,React.createElement(l.a,{setAttributes:r,attributes:t})),React.createElement("figure",null,React.createElement(b,null,React.createElement(c.a,{poster:k,src:P,type:"vimeo",id:x,attributes:t,setAttributes:r,preset:_,branding:n,key:R})))):React.createElement("div",null,React.createElement(i.a,{icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("path",{d:"M22.875 10.063c-2.442 5.217-8.337 12.319-12.063 12.319-3.672 0-4.203-7.831-6.208-13.043-.987-2.565-1.624-1.976-3.474-.681l-1.128-1.455c2.698-2.372 5.398-5.127 7.057-5.28 1.868-.179 3.018 1.098 3.448 3.832.568 3.593 1.362 9.17 2.748 9.17 1.08 0 3.741-4.424 3.878-6.006.243-2.316-1.703-2.386-3.392-1.663 2.673-8.754 13.793-7.142 9.134 2.807z"})),label:w("Presto Vimeo Video","presto-player"),instructions:w("Enter Vimeo Video URL","presto-player"),placeholder:w("Vimeo URL","presto-player"),attributes:t,setAttributes:r,onSelectURL:function(e){e!==P&&r({src:e})}}))}))),E=r(17);function R(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?R(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):R(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var P=wp.i18n.__,x="presto-player/vimeo",C=k(k({},E.a),{},{attributes:k(k({},E.a.attributes),{},{video_id:{type:String}}),title:P("Presto Vimeo Video","presto-player"),description:P("A vimeo video wrapped in an awesome player.","presto-player"),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("path",{d:"M22.875 10.063c-2.442 5.217-8.337 12.319-12.063 12.319-3.672 0-4.203-7.831-6.208-13.043-.987-2.565-1.624-1.976-3.474-.681l-1.128-1.455c2.698-2.372 5.398-5.127 7.057-5.28 1.868-.179 3.018 1.098 3.448 3.832.568 3.593 1.362 9.17 2.748 9.17 1.08 0 3.741-4.424 3.878-6.006.243-2.316-1.703-2.386-3.392-1.663 2.673-8.754 13.793-7.142 9.134 2.807z"})),edit:_})},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return x})),r.d(t,"options",(function(){return C}));var n=r(5),a=r(23),o=r(24),l=r(25),c=r(14),i=r(42),s=r(18),p=r(9),u=wp.components,d=u.Button,b=u.Disabled,m=u.Toolbar,y=u.Placeholder,f=u.Spinner,v=u.withNotices,h=wp.editor,O=h.BlockControls,g=h.InspectorControls,j=wp.element.useEffect,w=wp.i18n.__,_=(0,wp.compose.compose)([Object(o.a)(),Object(a.a)()])(v((function(e){var t=e.attributes,r=e.setAttributes,n=e.noticeOperations,a=e.branding,o=e.createVideo,u=e.loading,v=e.presetData,h=e.onRemoveSrc,_=e.lockSave,E=e.unlockSave,R=e.renderKey,k=t.poster,P=t.src,x=t.id,C=Object(p.f)(P);return j((function(){C&&r({id:0});var e=Object(s.c)(P);r({video_id:e}),_(),o({src:P,external_id:e,type:"youtube"}).catch((function(e){r({src:""}),function(e){n.removeAllNotices(),n.createErrorNotice(null==e?void 0:e.message)}(e)})).finally(E)}),[P]),P?u||!x?React.createElement(y,{className:"presto-player__placeholder is-loading"},React.createElement(f,null)):React.createElement(React.Fragment,null,React.createElement(O,null,React.createElement(m,null,React.createElement(d,{onClick:function(){return h()}},w("Replace","presto-player")))),React.createElement(g,null,React.createElement(l.a,{setAttributes:r,attributes:t})),React.createElement("figure",null,React.createElement(b,null,React.createElement(c.a,{poster:k,src:P,type:"youtube",id:x,attributes:t,setAttributes:r,preset:v,branding:a,key:R})))):React.createElement("div",null,React.createElement(i.a,{icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("path",{d:"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"}),React.createElement("polygon",{points:"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"})),label:w("Presto Youtube Video","presto-player"),instructions:w("Enter Youtube Video URL","presto-player"),placeholder:w("Youtube URL","presto-player"),attributes:t,setAttributes:r,onSelectURL:function(e){e!==P&&r({src:e})}}))}))),E=r(17);function R(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function k(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?R(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):R(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var P=wp.i18n.__,x="presto-player/youtube",C=k(k({},E.a),{},{attributes:k(k({},E.a.attributes),{},{video_id:{type:String}}),title:P("Presto Youtube Video","presto-player"),description:P("A youtube video wrapped in an awesome player.","presto-player"),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("path",{d:"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z"}),React.createElement("polygon",{points:"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02"})),edit:_})}],[[58,1,2]]]);
19
+ //# sourceMappingURL=admin-75e32e72.js.map
dist/blocks/admin-75e32e72.js.map ADDED
@@ -0,0 +1 @@
 
1
+ {"version":3,"sources":["webpack:///external [\"wp\",\"i18n\"]","webpack:///external [\"wp\",\"components\"]","webpack:///./src/admin/blocks/util.js","webpack:///./src/admin/blocks/shared/components/ProBadge.js","webpack:///./src/admin/blocks/shared/components/ColorPopup.js","webpack:///external [\"wp\",\"element\"]","webpack:///./src/admin/blocks/shared/Player.js","webpack:///external [\"wp\",\"data\"]","webpack:///./src/admin/blocks/shared/helpers.js","webpack:///./src/admin/blocks/blocks/attributes.js","webpack:///./src/admin/blocks/blocks/block-options.js","webpack:///./src/shared/util.js","webpack:///./src/admin/blocks/blocks/with-player-edit.js","webpack:///./src/admin/blocks/blocks/with-player-data.js","webpack:///./src/admin/blocks/shared/overlays/index.js","webpack:///./src/admin/blocks/shared/presets/Behavior.js","webpack:///./src/admin/blocks/shared/presets/Controls.js","webpack:///./src/admin/blocks/shared/presets/Watermark.js","webpack:///./src/admin/blocks/shared/presets/Style.js","webpack:///./src/admin/blocks/shared/presets/Edit.js","webpack:///./src/admin/blocks/shared/presets/Preset.js","webpack:///./src/admin/blocks/shared/presets/index.js","webpack:///./src/admin/blocks/shared/settings/MutedPreviewOptions.js","webpack:///./src/admin/blocks/shared/settings/index.js","webpack:///./src/admin/blocks/shared/BlockInspectorControls.js","webpack:///../../../src/components/react-component-lib/utils/case.ts","webpack:///../../../src/components/react-component-lib/utils/attachProps.ts","webpack:///../../../src/components/react-component-lib/utils/index.tsx","webpack:///../../src/components/react-component-lib/createComponent.tsx","webpack:///../src/components/index.ts","webpack:///external [\"wp\",\"blockEditor\"]","webpack:///./src/admin/blocks/shared/components/UrlSelect.js","webpack:///./src/admin/blocks/shared/branding/index.js","webpack:///external [\"wp\",\"compose\"]","webpack:///./src/admin/ui/Menu.js","webpack:///./src/admin/blocks/shared/presets/CTA.js","webpack:///./src/shared/services/fetch.js","webpack:///./src/admin/blocks/shared/tracks/TracksEditor.js","webpack:///./src/admin/blocks/shared/Preview.js","webpack:///./src/admin/blocks/shared/overlays/components/DynamicText.js","webpack:///./src/admin/blocks/shared/LinkPlaceholder.js","webpack:///./src/admin/blocks/shared/components/LoadSelect.js","webpack:///./src/admin/blocks/shared/presets/parts/MailchimpConfig.js","webpack:///./src/admin/blocks/shared/presets/parts/MailerLiteConfig.js","webpack:///./src/admin/blocks/shared/presets/parts/ActiveCampaignConfig.js","webpack:///./src/admin/blocks/shared/presets/parts/FluentCRMConfig.js","webpack:///./src/admin/blocks/shared/presets/parts/ChooseProvider.js","webpack:///./src/admin/blocks/shared/presets/Email.js","webpack:///./src/admin/blocks/shared/chapters/components/Chapter.js","webpack:///./src/admin/blocks/shared/chapters/index.js","webpack:///./src/admin/blocks/shared/presets/parts/YoutubeChannelId.js","webpack:///./src/admin/blocks/shared/presets/ActionBar.js","webpack:///external [\"wp\",\"editor\"]","webpack:///./src/admin/blocks/shared/overlays/Edit.js","webpack:///./src/admin/blocks/shared/overlays/components/Overlay.js","webpack:///./src/admin/blocks/blocks sync index\\.js$","webpack:///./src/admin/blocks/blocks/reusable-edit/index.js","webpack:///./src/admin/blocks/plugins sync index\\.js$","webpack:///./src/admin/blocks/shared/services/bunny.js","webpack:///./src/admin/blocks/shared/media/chunk-upload.js","webpack:///./src/admin/blocks/shared/media/MediaItem.js","webpack:///./src/admin/blocks/shared/media/MediaFolder.js","webpack:///./src/admin/blocks/shared/media/MediaPopup.js","webpack:///./src/admin/blocks/blocks/bunny/StorageMedia.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/store/reducer.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/store/selectors.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/store/actions.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/store/store.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/utils.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/Sidebar.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/ProgressBar.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/ProgressOverlay.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/ThumbTemplate.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/video/Video.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/Loading.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/video/Videos.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/collections/Collection.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/collections/Collections.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/collections/CreateCollection.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/Header.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/Footer.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/BackButton.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/CollectionHeader.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/upload/Upload.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/upload/Uploads.js","webpack:///./src/admin/blocks/shared/media/MediaPopupTemplate.js","webpack:///./src/admin/blocks/blocks/bunny/popup/stream/Popup.js","webpack:///./src/admin/blocks/blocks/bunny/StreamMedia.js","webpack:///./src/admin/blocks/blocks/bunny/useStorageConnection.js","webpack:///./src/admin/blocks/blocks/bunny/useStreamConnection.js","webpack:///./src/admin/blocks/blocks/bunny/APIPlaceholder.js","webpack:///./src/admin/blocks/blocks/bunny/edit.js","webpack:///./src/admin/blocks/blocks/bunny/index.js","webpack:///./src/admin/blocks/shared/audio-placeholder.js","webpack:///./src/admin/blocks/blocks/audio/HostedAudioPlaceholder.js","webpack:///./src/admin/blocks/shared/audioPresets/Preview.js","webpack:///./src/admin/blocks/shared/audioPresets/Behavior.js","webpack:///./src/admin/blocks/shared/audioPresets/Controls.js","webpack:///./src/admin/blocks/shared/audioPresets/Style.js","webpack:///./src/admin/blocks/shared/audioPresets/Edit.js","webpack:///./src/admin/blocks/shared/audioPresets/Preset.js","webpack:///./src/admin/blocks/shared/audioPresets/index.js","webpack:///./src/admin/blocks/blocks/audio/AudioBlockInspectorControl.js","webpack:///./src/admin/blocks/blocks/audio/with-player-edit.js","webpack:///./src/admin/blocks/blocks/audio/with-player-data.js","webpack:///./src/admin/blocks/blocks/audio/edit.js","webpack:///./src/admin/blocks/blocks/audio/index.js","webpack:///./src/admin/blocks/store/player/reducer.js","webpack:///./src/admin/blocks/store/player/selectors.js","webpack:///./src/admin/blocks/store/player/actions.js","webpack:///./src/admin/blocks/store/player/controls.js","webpack:///./src/admin/blocks/store/player/resolvers.js","webpack:///./src/admin/blocks/store/player/index.js","webpack:///./src/admin/blocks/shared/ProUpgradeModal.js","webpack:///./src/admin/blocks/blocks.js","webpack:///./src/admin/blocks/plugins/reusable-videos/SearchForm.js","webpack:///./src/admin/blocks/plugins/reusable-videos/ShortcodeInput.js","webpack:///./src/admin/blocks/plugins/reusable-videos/Video.js","webpack:///./src/admin/blocks/plugins/reusable-videos/render.js","webpack:///./src/admin/blocks/plugins/reusable-videos/index.js","webpack:///./src/admin/blocks/shared/placeholder.js","webpack:///./src/admin/blocks/blocks/hosted/HostedPlaceholder.js","webpack:///./src/admin/blocks/blocks/hosted/edit.js","webpack:///./src/admin/blocks/blocks/hosted/index.js","webpack:///./src/admin/blocks/blocks/reusable-display/edit.js","webpack:///./src/admin/blocks/blocks/reusable-display/index.js","webpack:///./src/admin/blocks/blocks/vimeo/edit.js","webpack:///./src/admin/blocks/blocks/vimeo/index.js","webpack:///./src/admin/blocks/blocks/youtube/edit.js","webpack:///./src/admin/blocks/blocks/youtube/index.js"],"names":["module","exports","window","wp","element","useRef","useEffect","usePrevious","value","ref","current","snackbarNotice","status","message","data","dispatch","createNotice","type","timeToSeconds","time","seconds","pieces","split","length","parseInt","secondsToTime","number","minutes","Math","floor","sanitizeTime","draft","replace","includes","substr","indexOf","index","substring","getProvider","src","match","__","i18n","className","components","ColorPicker","ColorIndicator","Popover","Button","Flex","useState","color","setColor","onFocus","open","setOpen","original","setOriginal","css","width","height","borderRadius","colorValue","onClick","position","focusOnMount","onFocusOutside","e","onChangeComplete","hex","disableAlpha","display","alignItems","justifyContent","padding","margin","isTertiary","isPrimary","useSelect","classes","preset","branding","attributes","adminPreview","currentTime","preload","overlays","chapters","mutedOverlay","mutedPreview","youtube","select","playerCSS","style","border_radius","background_color","control_color","hexCode","opacity","r","g","b","convertHex","caption_background","email_collection","logo_width","isAdmin","bunny","thumbnail","previewThumbnail","preview","channelId","channel_id","tracks","captions","kind","label","srclang","default","blockAttributes","poster","provider","mediaTitle","title","slot","enabled","left","focalPoint","x","top","y","transform","helpers","setUrlPrivate","separator","location","href","newurl","history","pushState","path","setUrlPublic","unsetUrlParams","removed","url","parameters","parsedUrl","URL","forEach","param","searchParams","delete","removeURLParameters","visibility","String","blockAlignment","Object","mutedPreviewCaptions","Boolean","mutedOverlayType","mutedOverlayText","mutedOverlaySrc","mutedOverlayImageWidth","Number","mutedOverlayFocalPoint","text","Array","items","category","supports","align","save","getYoutubeId","getVimeoId","parseUrl","exec","determineVideoUrlType","youtube_id","video_id","vimeo_id","$video_id","$type","isHLS","createHigherOrderComponent","compose","WrappedComponent","props","presets","setAttributes","defaultPreset","isSelected","presetData","setPresetData","count","setCount","id","openGeneralSidebar","selectionOverrideClientId","selectBlock","thisPreset","find","onUpdate","logo","prevChapters","times","map","item","prevTimes","_","difference","createVideo","a","external_id","attachment_id","apiFetch","method","post_id","getCurrentPostId","lockSave","lockPostSaving","unlockSave","unlockPostSaving","onRemoveSrc","confirm","undefined","previewSrc","renderKey","withSelect","loading","isResolving","getPresets","getDefaultPreset","BaseControl","withNotices","Spinner","VideoOverlays","modal","setModal","prestoPlayer","isPremium","setProModal","ProBadge","Edit","closeModal","updateOverlayAttribute","ToggleControl","HorizontalRule","AlignmentMatrixControl","__experimentalAlignmentMatrixControl","SelectControl","state","updateState","help","onChange","auto_hide","checked","save_player_position","captions_enabled","play_video_viewport","sticky_scroll","sticky_scroll_position","on_video_end","options","hide_youtube","lazy_load_youtube","play","rewind","progress","volume","mute","speed","pip","fullscreen","RadioControl","RangeControl","watermark","defaults","backgroundColor","keys","key","updateWatermarkState","updated","DynamicText","update","selected","VisualLabel","ColorPopup","min","max","hide_logo","labelPosition","caption_style","TextControl","Icon","Notice","FlexItem","FlexBlock","Modal","EditPlayerPreset","addPreset","onSave","updatePreset","name","reset_on_end","skin","cta","action_bar","setLoading","error","setError","menu","setMenu","thisName","setThisName","setState","setValue","genericError","putPreset","addQueryArgs","root","prestoVersionString","_method","saved","updateYoutube","presto_player_youtube","response","setYoutube","onClose","console","log","createPreset","tabs","icon","component","Controls","Behavior","Style","Email","CTA","ActionBar","Watermark","onRequestClose","overlayClassName","data-cy","hideLabelFromVision","placeholder","autoFocus","Menu","onSelect","Preview","isDismissible","isBusy","disabled","ButtonGroup","isActive","remove","setPreset","onEdit","confirmOpen","setConfirmOpen","closeConfirm","trashPreset","role","tabIndex","aria-label","cursor","overflow","border","outline","background","slug","textAlign","fontSize","charAt","toUpperCase","fontWeight","textTransform","is_locked","maxWidth","isDestructive","boxShadow","setName","removePreset","PresetWrap","styled","div","i","Preset","PanelRow","FocalPointPicker","blockEditor","MediaUpload","MediaUploadCheck","VIDEO_OVERLAY_ALLOWED_MEDIA_TYPES","instanceId","videoOverlayDescription","image","allowedTypes","render","hidden","sprintf","dimensions","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","useInstanceId","VideoSettings","autoplay","playsInline","videoPosterDescription","toggleAttribute","attribute","newValue","MutedPreviewOptions","target","textDecoration","aria-describedby","PanelBody","initialOpen","eventNameSuffix","LinkControl","__experimentalLinkControl","prependHTTP","setSettings","settings","visible","setVisible","nextLinkValue","setNextLinkValue","linkValue","opensInNewTab","onChangeLink","nextValue","didToggleSettingForNewLink","newUrl","isSmall","VIDEO_LOGO_ALLOWED_MEDIA_TYPES","PlayerSettings","pickerRender","setPickerRender","saveOptions","updateBranding","isSecondary","lodash","partial","noop","NavigableMenu","Animate","children","orientation","activeClass","setSelected","setOrigin","handleClick","itemKey","onNavigate","childIndex","child","click","selectedTab","selectedId","origin","aria-labelledby","classnames","class","xmlns","viewBox","aria-hidden","focusable","d","itemId","aria-controls","ariaHidden","percentage","show_rewatch","show_skip","headline","show_button","button_text","button_link","updateCTAState","marks","shiftStep","isLink","val","bottom_text","button_radius","button_color","button_text_color","background_opacity","defaultProps","catName","eyeColor","age","use","createNonceMiddleware","nonce","createRootURLMiddleware","MenuItem","FormFileUpload","MenuGroup","ToolbarGroup","ToolbarButton","Dropdown","SVG","Rect","Path","ALLOWED_TYPES","captionIcon","fill","fillRule","clipRule","TrackList","content","onEditPress","track","SingleTrackEditor","onRemove","srcLang","fileName","startsWith","lastIndexOf","newLabel","newSrcLang","changes","hasChanges","TracksEditor","mediaUpload","getSettings","trackBeingEdited","setTrackBeingEdited","contentClassName","renderToggle","isOpen","onToggle","showTooltip","aria-expanded","aria-haspopup","renderContent","newTrack","newTracks","filter","_track","trackIndex","event","files","filesList","onFileChange","accept","openFileDialog","Disabled","isDisabled","setRenderKey","previews","email","defaultHeadline","bottomText","allowSkip","allow_skip","skipText","buttonText","bottom-text","button-link","allow-skip","allow-rewatch","skip-text","show-button","button-text","prestoPlayerAdmin","TextareaControl","more","setMore","preventDefault","marginTop","autoComplete","Placeholder","onSelectURL","instructions","onSubmit","marginBottom","updateEmailState","fetching","setFetching","lists","setLists","fetchLists","fetched","listOptions","list","LoadSelect","provider_list","provider_tag","groups","setGroups","fetchGroups","fetchingLists","setFetchingLists","fetchingTags","setFetchingTags","tags","setTags","fetchTags","tagOptions","tag","optionsMap","presto_player_activecampaign","presto_player_mailchimp","presto_player_mailerlite","presto_player_fluentcrm","fetchSettings","settingsToSet","connected","found","setting","MailchimpConfig","MailerLiteConfig","ActiveCampaignConfig","FluentCRMConfig","emailProviderOptions","ChooseProvider","Chapter","add","showNotice","draftTime","setDraftTime","onBlur","setDraft","sort","chapter","itemIndex","updateChapter","removeChapter","ExternalLink","saving","setSaving","userCanReadSettings","canUser","handleSubmit","editYoutube","setEditYoutube","updateActionBar","button_type","percentage_start","button_count","YoutubeChannelId","renderYoutubeChannelForm","UrlSelect","EditOverlay","setCurrentTime","getPreset","addOverlay","defaultOverlay","startTime","endTime","link","nanoid","shouldCloseOnClickOutside","overlay","overlayIndex","updateOverlay","removeOverlay","updateCurrentTime","process","nextTick","updateCurrentTimeState","invert_time","withFocusReturn","Overlay","draftStartTime","setDraftStartTime","draftEndTime","setDraftEndTime","draftPosition","setDraftPosition","startControl","updateStartTime","justify","webpackContext","req","webpackContextResolve","__webpack_require__","o","Error","code","resolve","InnerBlocks","useBlockProps","plugins","unregisterPlugin","getPlugins","inserter","reusable","html","stroke","strokeWidth","strokeLinecap","strokeLinejoin","cx","cy","x1","y1","x2","y2","edit","blockProps","clientId","innerBlocks","getBlock","setTemplateValidity","insertBlockType","block","blocks","createBlock","insertBlock","templateLock","renderAppender","ButtonBlockAppender","points","rx","ry","Content","signURL","file","onProgress","onComplete","onError","chunk","cancelled","max_request_size","wp_max_upload_size","slice_size","upload_file","start","next_slice","blob","slice","chunks","ceil","size","body","FormData","append","file_url","percent_done","FileReader","cancel","date","isEncoding","encodeProgress","bytes","round","pow","bytesToSize","updated_at","Date","toLocaleString","Card","CardBody","DropZone","DropZoneProvider","header","onLoad","folders","progressMessage","onDelete","onUpload","deleteConfirm","setDeleteConfirm","buttonRef","hours","ampm","deleteSelected","jQuery","folder","MediaFolder","MediaItem","align-items","onFilesDrop","previewUrl","created_at","getHours","getMinutes","getDate","getMonth","getFullYear","closePopup","noticeOperations","isPrivate","videos","setVideos","setProgress","setProgressMessage","endpoint","uploadFile","chunkUpload","percent","storeFile","deleteVideo","video","loadVideos","MediaPopup","removeAllNotices","createErrorNotice","combineReducers","videosReducer","action","guid","collectionsReducer","uploadsReducer","requestReducer","private","collection","search","UIReducer","videosFetched","createCollection","errorReducer","collections","uploads","isLoading","errors","currentCollection","ui","arg","requestType","addVideos","removeVideo","setCollections","addCollection","setIsPrivate","setSearch","setCollectionRequest","setUploads","addUploads","removeUpload","setVideosFetched","setUI","addError","removeError","registerStore","reducer","selectors","actions","isPlayable","availableResolutions","isSelectable","getStatusText","getLengthToTime","toISOString","toString","toFixed","useContext","deleting","setDeleting","setVideo","controlCSS","getThumbnail","webPURLSigned","webPURL","ProgressBar","footer","badge","before","after","ProgressOverlay","thumbnailURLSigned","thumbnailURL","renderThumbnail","storageSize","Fragment","notice","setNotice","fetch","interval","setInterval","sync","clearInterval","items_per_page","Loading","flex","collectionId","Video","videoCount","fetchCollections","Collection","busy","setBusy","onCreate","afterUpload","multiple","CreateCollection","onChoose","canSelect","setCanSelect","deleteCollection","BackButton","uploader","setMessage","created","setCreated","upload","storeVideo","Upload","mainContent","sidebar","addUpload","Header","Uploads","Sidebar","Footer","MediaPopupTemplate","CollectionHeader","Collections","Videos","playlistURL","baseUrl","onRefetch","autoSubmit","apikey","setApikey","saveMessage","setSaveMessage","step","setStep","getError","errorString","saveKey","api_key","success","totalSteps","useStreamConnection","useStorageConnection","required","DropdownMenu","Toolbar","editor","BlockControls","InspectorControls","withPlayerData","withPlayerEdit","mediaPopup","setMediaPopup","setup","setSetup","stream","storage","isSetup","setIsSetup","disableStream","setDisableStream","isAPILoaded","setIsAPILoaded","setFetchingSettings","autoSubmitStream","setAutoSubmitStream","disableLegacyStorage","disable_legacy_storage","selectVideo","media","catch","finally","presto_player_bunny_pull_zones","presto_player_bunny_storage_zones","presto_player_bunny_stream_private","presto_player_bunny_stream_public","storageSetup","option","private_id","public_id","streamSetup","pull_zone_url","setPreview","setThumbnail","moreButtons","controls","push","APIPlaceholder","BlockInspectorControls","Player","StorageMedia","StreamMedia","blockOptions","premium","description","variations","isDefault","baseCurrentUrl","InsertFromURLPopover","withFilters","labels","mediaPreview","notices","isAppender","addToGallery","onCancel","onDoubleClick","allowURLs","setSrc","isURLInputVisible","setIsURLInputVisible","onChangeSrc","openURLInput","closeURLInput","onSubmitSrc","renderPlaceholder","placeholderClassName","renderUrlSelectionUI","isPressed","fallback","mediaLibraryButton","gallery","isArray","stopPropagation","renderMediaUploadChecked","ALLOWED_MEDIA_TYPES","switcher","getAudioPresets","addAudioPreset","removeAudioPreset","updateAudioPreset","AUDIO_POSTER_ALLOWED_MEDIA_TYPES","AudioBlockInspectorControl","audioPosterDescription","getDefaultAudioPreset","HostedAudioPlaceholder","audio","pick","addVideo","presetReducer","audioPresetReducer","presetLoadingReducer","videosLoadingReducer","total","total_pages","hasResolved","isError","proModalReducer","brandingReducer","youtubeReducer","presetSettingsReducer","optionsApi","then","setBranding","presto_player_branding","setPresetSettings","presto_player_presets","setPresetAudioSettings","presto_player_audio_presets","audioPresetSettingsReducer","getReusableVideos","getReusableVideo","default_preset","default_player_preset","presetsLoading","player_css","proModal","setPresetLoading","setVideosLoading","updateVideos","appendVideos","setPresets","setAudioPresets","args","fetchOptions","fetchFromAPI","fetchFromWPAPI","FETCH_FROM_API","FETCH_FROM_WP_API","query","parse","res","json","headers","get","Promise","reject","resolvers","registerBlockType","unregisterBlockType","registerPlugin","autoload","getContext","register","unregister","cache","context","changedNames","loadModules","selectedBlockId","require","getSelectedBlockClientId","clearSelectedBlock","getBlocks","ProUpgradeModal","document","getElementById","subscribe","isSavingPost","isAutosavingPost","store","getState","VisuallyHidden","InserterSearchForm","searchInput","as","htmlFor","focus","copyTextToClipboard","textToCopy","btn","currentTarget","textContent","setTimeout","navigator","clipboard","isSecureContext","writeText","textArea","createElement","appendChild","rej","execCommand","InserterShortcodeInput","readOnly","Panel","editPost","PluginSidebar","PluginSidebarMoreMenuItem","useCallback","getBlockType","blockSerializationDefaultParser","forceUpdate","fillOpacity","hasMore","setHasMore","page","setPage","setIsLoading","debounceOnSearch","debounce","term","doFetch","per_page","nextPage","newPage","getIcon","raw","blockName","SearchForm","flexWrap","emptyPlaceholder","deprecated","URLPopover","noticeUI","onUploadError","getBlobByURL","isBlobURL","upgradeNotice","setUpgradeNotice","HostedPlaceholder","newSrc","youtubeBlock","replaceBlock","vimeoBlock","attachmend_id","setHasResolved","setBlock","setLink","getBlocksByClientId","updateBlockAttributes","attrs","template","prevSrc","LinkPlaceholder"],"mappings":";;;;;;;;;;;;;;;;;8GAAcA,EAAOC,QAAUC,OAAW,GAAQ,M,cCApCF,EAAOC,QAAUC,OAAW,GAAc,Y,iCCAxD,kNAA8BC,GAAGC,QAAzBC,EAAR,EAAQA,OAAQC,EAAhB,EAAgBA,UAET,SAASC,EAAYC,GAC1B,IAAMC,EAAMJ,IAIZ,OAHAC,GAAU,WACRG,EAAIC,QAAUF,KAETC,EAAIC,QAGN,SAASC,EAAT,GAA0D,IAAD,IAA/BC,cAA+B,MAAtB,UAAsB,EAAXC,EAAW,EAAXA,QACnDV,GAAGW,KAAKC,SAAS,gBAAgBC,aAC/BJ,EACAC,EACA,CAAEI,KAAM,aAkCL,SAASC,EAAcC,GAC5B,IACIC,EADAC,EAASF,EAAKG,MAAM,KAKxB,OAHID,EAAOE,OAAS,IAClBH,EAAgC,GAAtBI,SAASH,EAAO,KAErBG,SAASH,EAAO,IAAMG,SAASJ,GAGjC,SAASK,EAAcC,GAC5B,IAAIN,EAAUI,SAASE,EAAQ,IAC3BC,EAAUC,KAAKC,MAAMT,EAAU,IAInC,OAHIA,EAAU,KACZA,EAAU,IAAMA,GAEXO,EAAU,IAAMP,EAGlB,SAASU,EAAaX,GAC3B,IAAIY,EAAQZ,EAIZ,KAFAY,EAAQA,EAAMC,QAAQ,kBAAmB,KAE9BC,SAAS,KAClB,MAAM,GAAN,OAAUF,EAAV,OAIiD,IAA/CA,EAAMG,OAAO,EAAGH,EAAMI,QAAQ,MAAMZ,SACtCQ,EAAK,WAAOA,IAId,IAAIK,EAAQL,EAAMI,QAAQ,KAE1B,OADAJ,EAAQA,EAAMM,UAAU,EAAGD,EAAQ,GAI9B,SAASE,EAAYC,GAG1B,GAAIA,EAAK,CAIP,GAF0BA,EAAIC,MADhB,wHAIZ,MAAO,UAMT,GAFwBD,EAAIC,MADd,iFAIZ,MAAO,QAGT,GAAID,EAAIJ,QAAQ,gBAAkB,GAAKI,EAAIJ,QAAQ,cAAgB,EACjE,MAAO,QAGT,GAAII,EAAIJ,QAAQ,SAAW,EACzB,MAAO,QAGX,MAzBiB,gB,8BCvFnB,IAAQM,EAAOtC,GAAGuC,KAAVD,GAEO,eACb,OACE,2BAAKE,UAAU,4BAA4BF,EAAG,MAAO,oB,+CCHzD,EAA+DtC,GAAGyC,WAA1DC,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,eAAgBC,EAArC,EAAqCA,QAASC,EAA9C,EAA8CA,OAC9C,GADA,EAAsDC,KACtB9C,GAAGC,SAA3B8C,EAAR,EAAQA,SAAU5C,EAAlB,EAAkBA,UACVmC,EAAOtC,GAAGuC,KAAVD,GAGO,gBAAmC,IAAhCU,EAA+B,EAA/BA,MAAOC,EAAwB,EAAxBA,SAAUC,EAAc,EAAdA,QACjC,EAAwBH,GAAS,GAAjC,mBAAOI,EAAP,KAAaC,EAAb,KACA,EAAgCL,EAASC,GAAzC,mBAAOK,EAAP,KAAiBC,EAAjB,KAQA,OANAnD,GAAU,WACJgD,GAAQH,GACVM,EAAYN,KAEb,CAACG,IAGF,wBACE,YAACR,EAAD,CACEY,IAAK,CAAEC,MAAO,OAAQC,OAAQ,OAAQC,aAAc,UACpDC,WAAYX,EACZY,QAAS,WACPR,GAASD,GACTD,GAAWA,SAGZC,GACD,YAACP,EAAD,CACEiB,SAAS,cACTC,cAAY,EACZC,eAAgB,SAACC,GACfZ,GAAQ,KAGV,YAACV,EAAD,CACEM,MAAOA,GAAS,GAChBiB,iBAAkB,SAAC5D,GAAD,OAAWA,aAAA,EAAAA,EAAO6D,MAAOjB,EAAS5C,IACpD8D,cAAY,IAEd,mBACEZ,IAAK,CACHa,QAAS,OACTC,WAAY,SACZC,eAAgB,gBAChBC,QAAS,SAGX,YAAC1B,EAAD,CACEU,IAAK,CAAEiB,OAAQ,SACfC,YAAU,EACVb,QAAS,WACPX,EAAS,CAAEiB,IAAK,OAChBd,GAAQ,KAGTd,EAAG,QAAS,kBAEf,mBACEiB,IAAK,CACHa,QAAS,OACTE,eAAgB,WAChBC,QAAS,SAGX,YAAC1B,EAAD,CACEU,IAAK,CAAEiB,OAAQ,SACfC,YAAU,EACVb,QAAS,WACPX,EAAS,CAAEiB,IAAKb,IAChBD,GAAQ,KAGTd,EAAG,SAAU,kBAEhB,YAACO,EAAD,CAAQ6B,WAAS,EAACd,QAAS,kBAAMR,GAAQ,KACtCd,EAAG,QAAS,wB,cC3EfzC,EAAOC,QAAUC,OAAW,GAAW,S,goBCErD,IAAQ4E,EAAc3E,GAAGW,KAAjBgE,UAEO,gBAWR,IAAD,EA8B8B,IAxClCvC,EAUI,EAVJA,IACAwC,EASI,EATJA,QACAC,EAQI,EARJA,OACAC,EAOI,EAPJA,SACAC,EAMI,EANJA,WACAC,EAKI,EALJA,aACAC,EAII,EAJJA,YAII,IAHJC,eAGI,MAHM,WAGN,EAFJC,EAEI,EAFJA,SACArE,EACI,EADJA,KAEQsE,EAAyCL,EAAzCK,SAAUC,EAA+BN,EAA/BM,aAAcC,EAAiBP,EAAjBO,aAE1BC,EAAUZ,GAAU,SAACa,GAAY,IAAD,EACpC,iBAAOA,EAAO,+BAAd,aAAO,EAAgCD,aAGnChC,EAAMoB,GAAU,SAACa,GAAY,IAAD,EAChC,iBAAOA,EAAO,+BAAd,aAAO,EAAgCC,eA2CzC,OACE,2BACEjD,UAAW,oCACXkD,MACW,UAAT5E,EAAA,OAEM,gCAAgC,GAAhC,OAAoC+D,aAApC,EAAoCA,EAAQc,cAA5C,OACId,WAAQe,iBACR,CACE,mCAAoCf,EAAOe,kBAE7C,CAAE,mCAAoCd,aAApC,EAAoCA,EAAU9B,QAChD6B,WAAQgB,cACR,CACE,6BAA8BhB,EAAOgB,cACrC,gCAAiChB,EAAOgB,cACxC,+BAAgChB,EAAOgB,cACvC,4CAzDC,SAACC,GAA0B,IAAjBC,EAAgB,uDAAN,EACjC7B,EAAM4B,EAAQjE,QAAQ,IAAK,IAEZ,IAAfqC,EAAI9C,SACN8C,EAAMA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,GAAKA,EAAI,IAGzD,IAAI8B,EAAI3E,SAAS6C,EAAIhC,UAAU,EAAG,GAAI,IACpC+D,EAAI5E,SAAS6C,EAAIhC,UAAU,EAAG,GAAI,IAClCgE,EAAI7E,SAAS6C,EAAIhC,UAAU,EAAG,GAAI,IAOpC,OAJI6D,EAAU,GAAKA,GAAW,MAC5BA,GAAoB,KAGf,QAAUC,EAAI,IAAMC,EAAI,IAAMC,EAAI,IAAMH,EAAU,IAyCII,CAC3CtB,EAAOgB,gBAAiBf,aAAxB,EAAwBA,EAAU9B,QAAS,UAC3C,KAGJ,CACE,6BAA8B,UAC9B,gCAAiC,UACjC,+BAAgC,YArB5C,IAuBM,4BAA4B,QAvBlC,OA0BM,gCAAgC,GAAhC,OAAoC6B,aAApC,EAAoCA,EAAQc,cAA5C,OACId,WAAQuB,mBACR,CAAE,6BAA8BvB,EAAOuB,oBACvC,IACAtB,WAAU9B,MACV,CAAE,oBAAqB8B,EAAS9B,OAChC,IAhCV,IAiCM,sCAAsC,GAAtC,QACE6B,SAAA,UAAAA,EAAQwB,wBAAR,eAA0BV,gBAAiB,EAD7C,MAGA,6BAA6B,GAA7B,QAAiCb,aAAA,EAAAA,EAAUwB,aAAc,GAAzD,SAIR,oBAAC,IAAD,CACElE,IAAKA,EACLmB,IAAKA,EACLqB,QAASA,EACTK,YAAaA,EACbE,SAAUA,EACVoB,SAAS,EACTrB,QAASA,EACTL,OAAQA,EACR2B,MAAO,CACLC,UAAW1B,aAAF,EAAEA,EAAY2B,iBACvBC,QAAS5B,aAAF,EAAEA,EAAY4B,SAEvBpB,QAAS,CACPqB,UAAWrB,aAAF,EAAEA,EAASsB,YAEtBC,SACIjC,YAAQkC,WAAY,CACpB,CACEC,KAAM,WACNC,MAAO,UACPC,QAAS,KACT9E,IAAK,2BACL+E,SAAS,IAIfrC,SAAUA,EACVM,SAAUA,EACVgC,gBAAiBrC,EACjBsC,OAAQtC,EAAWsC,OACnBC,SAAmB,UAATxG,EAAmB,QAAUqB,YAAYC,GACnDmF,WAAYxC,EAAWyC,OAEvB,2BAAKC,KAAK,eACPnC,aAAA,EAAAA,EAAcoC,WACbrC,aADD,EACCA,EAAcqC,UAnGpB,2BACElF,UAAU,kCACVkD,MAAO,CACL7B,SAAU,WACVL,MAAM,GAAD,QAAK6B,aAAA,EAAAA,EAAc7B,QAAS,IAA5B,KACLmE,KAAK,GAAD,OAA4C,MAAtCtC,SAAA,UAAAA,EAAcuC,kBAAd,eAA0BC,IAAK,IAArC,KACJC,IAAI,GAAD,OAA4C,MAAtCzC,SAAA,UAAAA,EAAcuC,kBAAd,eAA0BG,IAAK,IAArC,OAGL,2BACE3F,IAAKiD,aAAF,EAAEA,EAAcjD,IACnBsD,MAAO,CACLsC,UAAW,wCAyFZhD,O,cCpJGnF,EAAOC,QAAUC,OAAW,GAAQ,M,6BCAlD,IAAMkI,EAAU,CACdC,cAAe,WACb,IAAMC,GAAmD,IAAvCpI,OAAOqI,SAASC,KAAKrG,QAAQ,KAAc,IAAM,IAC7DsG,EACJvI,OAAOqI,SAASC,KAAOF,EAAY,4BACrCpI,OAAOwI,QAAQC,UAAU,CAAEC,KAAMH,GAAU,GAAIA,IAEjDI,aAAc,WACZ,IAAMP,GAAmD,IAAvCpI,OAAOqI,SAASC,KAAKrG,QAAQ,KAAc,IAAM,IAC7DsG,EACJvI,OAAOqI,SAASC,KAAOF,EAAY,2BACrCpI,OAAOwI,QAAQC,UAAU,CAAEC,KAAMH,GAAU,GAAIA,IAEjDK,eAAgB,WACd,IAAIC,EAOR,SAA6BC,GAAuB,IAAlBC,EAAiB,uDAAJ,GACvCC,EAAY,IAAIC,IAAIH,GAK1B,OAJAC,EAAWG,SAAQ,SAACC,GAClBH,EAAUI,aAAaC,OAAOF,MAGzBH,EAAUV,KAbDgB,CAAoBtJ,OAAOqI,SAASC,KAAM,CACtD,sBAEFtI,OAAOwI,QAAQC,UAAU,CAAEC,KAAMG,GAAW,GAAIA,KAarCX,O,0CC9Bf,MACEqB,WAAY,CACVxI,KAAMyI,OACNpC,QAAS,UAEXnE,MAAO,CACLlC,KAAMyI,OACNpC,QAAS,WAEXqC,eAAgB,CACd1I,KAAMyI,QAERjE,aAAc,CACZxE,KAAM2I,OACNtC,QAAS,CACPO,SAAS,EACTX,UAAU,IAGd1B,aAAc,CACZvE,KAAM2I,OACNtC,QAAS,CACPO,SAAS,EACTtF,IAAK,GACLoB,MAAO,IACPoE,WAAY,CACVC,EAAG,GACHE,EAAG,MAIT2B,qBAAsB,CACpB5I,KAAM6I,SAERC,iBAAkB,CAChB9I,KAAMyI,OACNpC,QAAS,QAEX0C,iBAAkB,CAChB/I,KAAMyI,OACNpC,QAAS,iBAEX2C,gBAAiB,CACfhJ,KAAMyI,QAERQ,uBAAwB,CACtBjJ,KAAMkJ,OACN7C,QAAS,KAEX8C,uBAAwB,CACtBnJ,KAAM2I,SAlDV,6BAoDgB,CACZ3I,KAAM2I,OACNtC,QAAS,CACPO,SAAS,EACT5G,KAAM,OACNoJ,KAAM,GACN9H,IAAK,GACLoB,MAAO,IACPoE,WAAY,CACVC,EAAG,GACHE,EAAG,OA9DX,yBAkEY,CACRjH,KAAM6I,UAnEV,wBAqEW,CACP7I,KAAMyI,SAtEV,4BAwEe,CACXzI,KAAM6I,UAzEV,mBA2EM,CACF7I,KAAMkJ,SA5EV,8BA8EiB,CACblJ,KAAMkJ,SA/EV,oBAiFO,CACHlJ,KAAMyI,SAlFV,wBAoFW,CACPzI,KAAMkJ,SArFV,uBAuFU,CACNlJ,KAAMyI,SAxFV,wBA0FW,CACPzI,KAAM6I,UA3FV,uBA6FU,CACN7I,KAAMkJ,SA9FV,yBAgGY,CACRlJ,KAAMqJ,MACNhD,QAAS,KAlGb,yBAoGY,CACRrG,KAAMqJ,MACNhD,QAAS,KAtGb,uBAwGU,CACNrG,KAAM,QACNsJ,MAAO,CACLtJ,KAAM,UAERqG,QAAS,KA7Gb,GCEe,KACbpC,aAEAsF,SAAU,SAEVC,SAAU,CACRC,OAAO,GAITC,KAAM,WACJ,OAAO,Q,6BCbJ,SAASC,EAAa5B,GAAM,IAAD,EAE1BxG,GAASwG,GAAO,IAAIxG,MADX,gEAEf,OAAOA,GAAgC,MAAvBA,SAAA,UAAAA,EAAQ,UAAR,eAAYjB,QAAgBiB,EAAM,GAAK,KAGlD,SAASqI,EAAW7B,GACzB,IACM8B,EADS,8EACSC,KAAK/B,GAAO,IACpC,OAAO8B,aAAA,EAAAA,EAAW,KAAM,GAsBnB,SAASE,EAAsBhC,GACpC,IAAMiC,EAAaJ,EAAW7B,GAC9B,GAAIiC,EACF,MAAO,CACLC,SAAUD,EACVhK,KAAM,SAIV,IAAMkK,EAAWP,EAAa5B,GAC9B,OAAImC,EACK,CACLD,SAAUC,EACVlK,KAAM,WAIH,CACLmK,UAAW,EACXC,MAAO,QA8BJ,SAASC,EAAMtC,GACpB,MAAsB,iBAARA,GAAoBA,EAAI/G,SAAS,SAjFjD,yI,kqBCGA,IAAQsJ,EAA+BpL,GAAGqL,QAAlCD,2BACR,EAAgCpL,GAAGC,QAA3BE,EAAR,EAAQA,UAAW4C,EAAnB,EAAmBA,SAUJ,sBACbqI,GACE,SAACE,GAAD,OAAsB,SAACC,GACrB,IACEC,EAMED,EANFC,QACAzG,EAKEwG,EALFxG,WACA0G,EAIEF,EAJFE,cACAC,EAGEH,EAHFG,cACAC,EAEEJ,EAFFI,WACA7G,EACEyG,EADFzG,SAEF,EAAoC/B,EAAS,IAA7C,mBAAO6I,EAAP,KAAmBC,EAAnB,KACA,EAA0B9I,EAAS,GAAnC,mBAAO+I,EAAP,KAAcC,EAAd,KACM1E,EAAqBtC,EAArBsC,OAAQjC,EAAaL,EAAbK,SAEdjF,GAAU,WACJwL,SAAc5G,KAAYiH,IAC5BhM,GAAGW,KACAC,SAAS,kBACTqL,mBAAmB,qBAEvB,CAACN,IAGJxL,GAAU,WACJwL,SAAc5G,KAAYmH,2BAC5BlM,GAAGW,KACAC,SAAS,qBACTuL,YAAYpH,aAFf,EAEeA,EAAYmH,6BAE5B,CAACP,IAGJxL,GAAU,WACR,GAAIqL,GAAWA,EAAQpK,OAAQ,CAC7B,IAAMgL,EAAaZ,EAAQa,MAAK,SAACxH,GAC/B,OAAOA,EAAOmH,MAAOjH,aAAd,EAAcA,EAAYF,WAE/BuH,EACFP,EAAcO,IAEdP,EAAcH,GACdD,EAAc,CAAE5G,OAAQ6G,aAAF,EAAEA,EAAeM,SAG1C,CAACR,EAASzG,aAAV,EAAUA,EAAYF,SAGzB1E,GAAU,WACRmM,MACC,CAACjF,EAAQuE,EAAYxG,EAAUN,EAASyH,OAG3C,IAAMD,EAAW,WACfP,EAASD,EAAQ,IAIbU,EAAepM,YAAYgF,GACjCjF,GAAU,WACR,IAAIsM,EAAQrH,aAAH,EAAGA,EAAUsH,KAAI,SAACC,GAAD,OAAUA,EAAK3L,QACrC4L,EAAYJ,aAAH,EAAGA,EAAcE,KAAI,SAACC,GAAD,OAAUA,EAAK3L,QAC7C6L,EAAEC,WAAWL,EAAOG,GAAWxL,QACjCkL,MAED,CAAClH,IAEJ,IAAM2H,EAAW,uCAAG,yCAAAC,EAAA,yDAClB5K,EADkB,EAClBA,IACA6K,EAFkB,EAElBA,YACAC,EAHkB,EAGlBA,cACApM,EAJkB,EAIlBA,KACA0G,EALkB,EAKlBA,MAEKpF,GAAQ6K,GAAgBC,EAPX,iEAUGC,YAAS,CAC5BC,OAAQ,OACR3E,KAAM,2BACN9H,KAAK,EAAD,GACFuM,gBACAG,QAASrN,GAAGW,KAAK6E,OAAO,eAAe8H,mBACvCL,eACIzF,EAAQ,CAAEA,SAAU,IAJtB,IAKFpF,MACAtB,WAnBc,gBAUVkL,EAVU,EAUVA,GAYRP,EAAc,CAAEO,OAtBE,2CAAH,sDAsDjB,OAJKjH,WAAYF,QACf4G,EAAc,CAAE5G,OAAQ6G,aAAF,EAAEA,EAAeM,KAIvC,oBAACV,EAAD,iBACMC,EADN,CAEEgC,SAhCS,WACX,OAAOvN,GAAGW,KAAKC,SAAS,eAAe4M,eAAe,kBAgCpDC,WA7BW,WACb,OAAOzN,GAAGW,KACPC,SAAS,eACT8M,iBAAiB,kBA2BlBX,YAAaA,EACbT,SAAUA,EACVqB,YA1BJ,WACUC,QAAQ,uBAEdnC,EAAc,EAAD,OACXrJ,IAAK,GACL4J,QAAI6B,GACA9I,WAAY0B,UAAY,CAAEA,UAAW,MAAS,IAC9C1B,WAAY4B,QAAU,CAAEA,QAAS,MAAS,IAC1C5B,WAAY+I,WAAa,CAAEA,WAAY,MAAS,IAChD/I,WAAY2B,iBAAmB,CAAEA,iBAAkB,MAAS,MAkBlEkF,WAAYA,EACZC,cAAeA,EACfkC,UAAWjC,QAIjB,oB,6BCrJJ,IAAQkC,EAAehO,GAAGW,KAAlBqN,WAEO,aAAUzC,GACvB,OAAOyC,GAAW,SAACxI,GACjB,MAAO,CACLV,SAAUU,EAAO,wBAAwBV,WACzCmJ,QAASzI,EAAO,wBAAwB0I,YAAY,cACpD1C,QAAShG,EAAO,wBAAwB2I,aACxCzC,cAAelG,EAAO,wBAAwB4I,yB,wFCN5C9L,EAAOtC,GAAGuC,KAAVD,GACAS,EAAa/C,GAAGC,QAAhB8C,SACR,EAAgC/C,GAAGW,KAAhBC,GAAnB,EAAQ+D,UAAR,EAAmB/D,UACnB,EAAsDZ,GAAGyC,WAApC4L,GAArB,EAAQC,YAAR,EAAqBD,aAAsBxL,GAA3C,EAAkC0L,QAAlC,EAA2C1L,QAoE5B2L,EA7DO,SAAC,GAAmC,IAAD,EAAhC/C,EAAgC,EAAhCA,cAAe1G,EAAiB,EAAjBA,WAE9BI,EAAaJ,EAAbI,SACR,EAA0BpC,GAAS,GAAnC,mBAAO0L,EAAP,KAAcC,EAAd,KAQA,OACE,gCACE,YAACL,EAAD,KACE,YAACxL,EAAD,CACE6B,WAAS,EACTd,QAAS,WAAO,IAAD,EACT,UAAC+K,oBAAD,OAAC,EAAcC,UAbLF,GAAS,GAcrB9N,EAAS,wBAAwBiO,aAAY,KAM9C1J,EAAS/D,OACRkB,EAAG,kBAAmB,iBACtBA,EAAG,cAAe,mBACnB6C,EAAS/D,QACV,mBACEmC,IAAKA,YAAF,+XAYF4B,EAAS/D,WAKf,UAACuN,oBAAD,OAAC,EAAcC,YAAa,YAACE,EAAA,EAAD,OAG9BL,GACC,YAACM,EAAA,EAAD,CACEC,WA9CW,kBAAMN,GAAS,IA+C1B3J,WAAYA,EACZ0G,cAAeA,EACfwD,uBA/CuB,SAAC9J,GAC9BsG,EAAc,CAAEtG,SAAUA,S,6DCjBtB7C,EAAOtC,GAAGuC,KAAVD,GACR,EAMItC,GAAGyC,WALLyM,EADF,EACEA,cACAb,EAFF,EAEEA,YACAc,EAHF,EAGEA,eACsCC,EAJxC,EAIEC,qCACAC,EALF,EAKEA,cAGa,cAA8C,IAAlCC,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,YAAahN,EAAa,EAAbA,UAC7C,OACE,2BAAKA,UAAWA,GACd,oBAAC,EAAD,KACE,8BAAKF,EAAG,WAAY,mBAEtB,oBAAC,EAAD,KACE,oBAAC4M,EAAD,CACEjI,MAAO3E,EAAG,qBAAsB,iBAChCmN,KAAMnN,EACJ,0EACA,iBAEFoN,SAAU,SAACC,GACTH,EAAY,CAAEG,eAEhBC,QAASL,EAAMI,aAgBnB,oBAAC,EAAD,KACE,oBAACT,EAAD,CACEjI,MAAO3E,EAAG,qBAAsB,iBAChCmN,KAAMnN,EACJ,0HACA,iBAEFoN,SAAU,SAACG,GACTL,EAAY,CAAEK,0BAEhBD,QAASL,EAAMM,wBAGnB,oBAAC,EAAD,KACE,oBAACX,EAAD,CACEjI,MAAO3E,EAAG,yBAA0B,iBACpCmN,KAAMnN,EACJ,mDACA,iBAEFoN,SAAU,SAACI,GACTN,EAAY,CAAEM,sBAEhBF,QAASL,EAAMO,oBAGnB,oBAAC,EAAD,KACE,oBAACZ,EAAD,CACEjI,MAAO3E,EAAG,aAAc,iBACxBmN,KAAMnN,EACJ,0DACA,iBAEFoN,SAAU,SAACK,GACTP,EAAY,CAAEO,yBAEhBH,QAASL,EAAMQ,uBAInB,oBAAC,EAAD,KACE,oBAACb,EAAD,CACEjI,MAAO3E,EAAG,mBAAoB,iBAC9BmN,KAAMnN,EACJ,6FACA,iBAEFoN,SAAU,SAACM,GACTR,EAAY,CAAEQ,mBAEhBJ,QAASL,EAAMS,mBAGhBT,EAAMS,eACP,wCACE,oBAAC,EAAD,CACE/I,MAAO3E,EACL,4CACA,kBAGF,oBAAC8M,EAAD,CACE/O,MAAOkP,EAAMU,uBACbP,SAAU,SAACO,GACTT,EAAY,CAAES,gCAMxB,oBAAC,EAAD,KACE,oBAACX,EAAD,CACErI,MAAO3E,EAAG,eAAgB,iBAC1BjC,MAAOkP,EAAMW,aACbC,QAAS,CACP,CACE9P,MAAO,SACP4G,MAAO3E,EAAG,SAAU,kBAEtB,CACEjC,MAAO,OACP4G,MAAO3E,EAAG,OAAQ,kBAEpB,CACEjC,MAAO,cACP4G,MAAO3E,EAAG,cAAe,mBAG7BoN,SAAU,SAACQ,GACTV,EAAY,CAAEU,qBAKpB,oBAACf,EAAD,MACA,oBAAC,EAAD,MACA,oBAAC,EAAD,KACE,8BAAK7M,EAAG,UAAW,mBAErB,oBAAC,EAAD,KACE,oBAAC4M,EAAD,CACEjI,MAAO3E,EAAG,iCAAkC,iBAC5CmN,KAAMnN,EACJ,6CACA,iBAEFoN,SAAU,SAACU,GACTZ,EAAY,CAAEY,kBAEhBR,QAASL,EAAMa,gBAGnB,oBAAC,EAAD,KACE,oBAAClB,EAAD,CACEjI,MAAO3E,EAAG,mBAAoB,iBAC9BmN,KAAMnN,EACJ,4EACA,iBAEFoN,SAAU,SAACW,GACTb,EAAY,CAAEa,uBAEhBT,QAASL,EAAMc,uBCnKjB/N,EAAOtC,GAAGuC,KAAVD,GACR,EAAuCtC,GAAGyC,WAAlCyM,EAAR,EAAQA,cAAeb,EAAvB,EAAuBA,YAER,cAA8C,IAAlCkB,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,YAAahN,EAAa,EAAbA,UAC7C,OACE,2BAAKA,UAAWA,GACd,oBAAC,EAAD,KACE,8BAAKF,EAAG,WAAY,mBAEtB,oBAAC,EAAD,CAAaE,UAAU,sCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,oBAAqB,iBAC/BmN,KAAMnN,EACJ,uDACA,iBAEFoN,SAAU,SAACY,GACTd,EAAY,CAAE,aAAcc,KAE9BV,QAASL,EAAM,iBAGnB,oBAAC,EAAD,CAAa/M,UAAU,kCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,SAAU,iBACpBmN,KAAMnN,EACJ,gDACA,iBAEFoN,SAAU,SAACa,GACTf,EAAY,CAAEe,YAEhBX,QAASL,EAAMgB,UAGnB,oBAAC,EAAD,CAAa/N,UAAU,gCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,oBAAqB,iBAC/BmN,KAAMnN,EACJ,wDACA,iBAEFoN,SAAU,SAACY,GACTd,EAAY,CAAEc,UAEhBV,QAASL,EAAMe,QAGnB,oBAAC,EAAD,CAAa9N,UAAU,wCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,eAAgB,iBAC1BmN,KAAMnN,EACJ,gDACA,iBAEFoN,SAAU,SAACrP,GACTmP,EAAY,CAAE,eAAgBnP,KAEhCuP,QAASL,EAAM,mBAGnB,oBAAC,EAAD,CAAa/M,UAAU,oCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,eAAgB,iBAC1BmN,KAAMnN,EAAG,iCAAkC,iBAC3CoN,SAAU,SAACc,GACThB,EAAY,CAAEgB,cAEhBZ,QAASL,EAAMiB,YAGnB,oBAAC,EAAD,CAAahO,UAAU,wCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,eAAgB,iBAC1BmN,KAAMnN,EAAG,6BAA8B,iBACvCoN,SAAU,SAACrP,GACTmP,EAAY,CAAE,eAAgBnP,KAEhCuP,QAASL,EAAM,mBAGnB,oBAAC,EAAD,CAAa/M,UAAU,kCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,SAAU,iBACpBmN,KAAMnN,EAAG,sBAAuB,iBAChCoN,SAAU,SAACrP,GACTmP,EAAY,CAAEiB,OAAQpQ,EAAOqQ,KAAMrQ,KAErCuP,QAASL,EAAMkB,UAGnB,oBAAC,EAAD,CAAajO,UAAU,iCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,QAAS,iBACnBmN,KAAMnN,EAAG,iCAAkC,iBAC3CoN,SAAU,SAACiB,GACTnB,EAAY,CAAEmB,WAEhBf,QAASL,EAAMoB,SAGnB,oBAAC,EAAD,CAAanO,UAAU,+BACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,kCAAmC,iBAC7CmN,KAAMnN,EACJ,oGACA,iBAEFoN,SAAU,SAACkB,GACTpB,EAAY,CAAEoB,SAEhBhB,QAASL,EAAMqB,OAGnB,oBAAC,EAAD,CAAapO,UAAU,sCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,aAAc,iBACxBmN,KAAMnN,EACJ,sDACA,iBAEFoN,SAAU,SAACmB,GACTrB,EAAY,CAAEqB,gBAEhBjB,QAASL,EAAMsB,cAGnB,oBAAC,EAAD,CAAarO,UAAU,oCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,WAAY,iBACtBmN,KAAMnN,EAAG,2CAA4C,iBACrDoN,SAAU,SAACrP,GACTmP,EAAY,CAAEzI,SAAU1G,KAE1BuP,QAASL,EAAK,c,ylBCtIxB,I,IAAQjN,EAAOtC,GAAGuC,KAAVD,GAER,EAMItC,GAAGyC,WALLyM,EADF,EACEA,cACAb,EAFF,EAEEA,YACAyC,EAHF,EAGEA,aACAhO,EAJF,EAIEA,KACAiO,EALF,EAKEA,aAGM5Q,EAAcH,GAAGC,QAAjBE,UAMO,eAAwC,IAArCoP,EAAoC,EAApCA,MAAOC,EAA6B,EAA7BA,YAAahN,EAAgB,EAAhBA,UAC5BwO,EAAczB,EAAdyB,UAEFC,EAAW,CACf/G,KAAM5H,EAAG,6BAA8B,iBACvCuB,SAAU,YACVb,MAAO,OACPkO,gBAAiB,OACjBnL,QAAS,IAEX5F,GAAU,WACRsJ,OAAO0H,KAAKF,GAAUhI,SAAQ,SAACmI,GAAS,IAAD,OACLvD,KAA5B0B,SAAA,UAAAA,EAAOyB,iBAAP,eAAmBI,KACrBC,EAAqB,eAClBD,EAAMH,EAASG,UAIrB,CAAC7B,IAEJ,IAAM8B,EAAuB,SAACC,GAC5B9B,EAAY,EAAD,KACND,GADM,IAETyB,UAAU,EAAD,KACJA,GACAM,OAKT,OACE,2BAAK9O,UAAWA,GACd,oBAAC,EAAD,KACE,8BAAKF,EAAG,yBAA0B,mBAEpC,oBAAC,EAAD,CAAaE,UAAU,qCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,SAAU,iBACpBmN,KAAMnN,EACJ,qDACA,iBAEFoN,SAAU,SAAChI,GACT2J,EAAqB,CACnB3J,aAGJkI,QAASoB,aAAF,EAAEA,EAAWtJ,YAIvBsJ,aAAA,EAAAA,EAAWtJ,UACV,+BACE,oBAAC6J,EAAA,EAAD,CACErH,KAAM8G,aAAF,EAAEA,EAAW9G,KACjBsH,OAAQ,YAAe,IAAZtH,EAAW,EAAXA,KACTmH,EAAqB,CACnBnH,YAKN,oBAAC,EAAD,CAAa1H,UAAWA,GACtB,oBAACsO,EAAD,CACE7J,MAAO3E,EAAG,WAAY,iBACtB6N,QAAS,CACP,CAAElJ,MAAO3E,EAAG,YAAa,iBAAkBjC,MAAO,aAClD,CAAE4G,MAAO3E,EAAG,WAAY,iBAAkBjC,MAAO,YACjD,CACE4G,MAAO3E,EAAG,0BAA2B,iBACrCjC,MAAO,cAGXoR,UAAUT,aAAA,EAAAA,EAAWnN,WAAY,YACjC6L,SAAU,SAAC7L,GAAD,OACRwN,EAAqB,CACnBxN,iBAMR,oBAAC,EAAD,CAAarB,UAAU,qCACrB,oBAACM,EAAD,KACE,oBAAC,EAAY4O,YAAb,KACGpP,EAAG,aAAc,kBAEpB,oBAACqP,EAAA,EAAD,CACE3O,OAAOgO,aAAA,EAAAA,EAAWhO,QAAS,OAC3BC,SAAU,SAAC5C,GAAD,OACRgR,EAAqB,CACnBrO,MAAO3C,GAASA,EAAM6D,WAOhC,oBAAC,EAAD,CAAa1B,UAAU,qCACrB,oBAACM,EAAD,KACE,oBAAC,EAAY4O,YAAb,KACGpP,EAAG,mBAAoB,kBAE1B,oBAACqP,EAAA,EAAD,CACE3O,OAAOgO,aAAA,EAAAA,EAAWE,kBAAmB,OACrCjO,SAAU,SAAC5C,GAAD,OACRgR,EAAqB,CACnBH,gBAAiB7Q,GAASA,EAAM6D,WAO1C,oBAAC,EAAD,KACE,oBAAC6M,EAAD,CACE9J,MAAO3E,EAAG,UAAW,iBACrBmN,KAAMnN,EAAG,uCAAwC,iBACjDjC,OAAO2Q,aAAA,EAAAA,EAAWjL,UAAW,IAC7B2J,SAAU,SAAC3J,GAAD,OAAasL,EAAqB,CAAEtL,aAC9C6L,IAAK,EACLC,IAAK,U,kBCzIXvP,GAAOtC,GAAGuC,KAAVD,GACR,GAMItC,GAAGyC,WALLyM,GADF,GACEA,cACAb,GAFF,GAEEA,YACA0C,GAHF,GAGEA,aACAzB,GAJF,GAIEA,cACA5M,GALF,GAKEA,YAGa,eAA8C,IAAlC6M,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,YAAahN,EAAa,EAAbA,UAC7C,OACE,2BAAKA,UAAWA,GACd,oBAAC,GAAD,KACE,8BAAKF,GAAG,QAAS,mBAEnB,oBAAC,GAAD,KACE,oBAAC,GAAD,CACE2E,MAAO3E,GAAG,YAAa,iBACvBmN,KAAMnN,GAAG,gCAAiC,iBAC1CoN,SAAU,SAACoC,GACTtC,EAAY,CAAEsC,eAEhBlC,QAASL,EAAMuC,aAGnB,oBAAC,GAAD,KACE,oBAAC,GAAD,CACE7K,MAAO3E,GAAG,gBAAiB,iBAC3BmN,KAAMnN,GAAG,6BAA8B,iBACvCjC,OAAOkP,aAAA,EAAAA,EAAO5J,gBAAiB,EAC/B+J,SAAU,SAAC/J,GAAD,OAAmB6J,EAAY,CAAE7J,mBAC3CiM,IAAK,EACLC,IAAK,MAIT,oBAAC,GAAD,KACE,oBAAC,GAAD,CACE5K,MAAO3E,GAAG,gBAAiB,iBAC3ByP,cAAc,MACd1R,MAAOkP,aAAF,EAAEA,EAAOyC,cACd7B,QAAS,CACP,CAAElJ,MAAO3E,GAAG,UAAW,iBAAkBjC,MAAO,WAChD,CAAE4G,MAAO3E,GAAG,OAAQ,iBAAkBjC,MAAO,SAE/CqP,SAAU,SAACsC,GACTxC,EAAY,CAAEwC,sBAIpB,oBAAC,GAAD,KACE,oBAAC,GAAYN,YAAb,KACE,6BAAIpP,GAAG,qBAAsB,mBAG/B,oBAACI,GAAD,CACEM,OAAOuM,aAAA,EAAAA,EAAOnJ,qBAAsB,UACpCnC,iBAAkB,SAAC5D,GACjBmP,EAAY,CAAEpJ,mBAAoB/F,EAAM6D,OAE1CC,cAAY,O,6kBC3DtB,IAAQ7B,GAAOtC,GAAGuC,KAAVD,GACR,GAWItC,GAAGyC,WAVLwP,GADF,GACEA,YACA5D,GAFF,GAEEA,YACA6D,GAHF,GAGEA,KACAC,GAJF,GAIEA,OACAtP,GALF,GAKEA,OACAC,GANF,GAMEA,KACAsP,GAPF,GAOEA,SACA9C,GARF,GAQEA,cACA+C,GATF,GASEA,UACAC,GAVF,GAUEA,MAEF,GAAgCtS,GAAGC,QAA3B8C,GAAR,GAAQA,SAAU5C,GAAlB,GAAkBA,UAClB,GAAgCH,GAAGW,KAA3BgE,GAAR,GAAQA,UAAW/D,GAAnB,GAAmBA,SAmWJ2R,I,GAAAA,GArVf,YAwCI,IAAD,IAvCDzR,YAuCC,MAvCM,MAuCN,EAtCDkO,EAsCC,EAtCDA,WACAwD,EAqCC,EArCDA,UACAC,EAoCC,EApCDA,OACAC,EAmCC,EAnCDA,aAmCC,IAlCDC,YAkCC,MAlCM,GAkCN,MAjCD9N,cAiCC,MAjCQ,CACP,cAAc,EACd0L,QAAQ,EACRD,MAAM,EACN,gBAAgB,EAChBE,UAAU,EACV,gBAAgB,EAChBE,MAAM,EACND,QAAQ,EACRE,OAAO,EACPC,KAAK,EACLC,YAAY,EACZ9J,UAAU,EAEV8I,sBAAsB,EACtB+C,cAAc,EACdjD,WAAW,EACXK,eAAe,EAEf8B,WAAW,EACXnM,cAAe,EACfkN,KAAM,SACNb,cAAe,UACf5L,mBAAoB,UAEpBgK,cAAc,EACdC,mBAAmB,EAGnByC,IAAK,GACLzM,iBAAkB,GAClB0M,WAAY,IAEb,EACD,EAA8BhQ,IAAS,GAAvC,mBAAOkL,EAAP,KAAgB+E,EAAhB,KACA,EAA0BjQ,GAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KACA,EAAwBnQ,GAAS,IAAjC,mBAAOoQ,EAAP,KAAaC,EAAb,KACA,EAAgCrQ,GAAS4P,GAAzC,mBAAOU,EAAP,KAAiBC,EAAjB,KACA,EAA0BvQ,GAAS8B,GAAnC,mBAAO0K,EAAP,KAAcgE,EAAd,KACMzO,EAAWH,IAAU,SAACa,GAC1B,OAAOA,EAAO,wBAAwBV,cAGxC,EAA0B/B,GAAS,IAAnC,mBAAO1C,EAAP,KAAcmT,EAAd,KAEMC,EAAe,CACnB/S,QAAS4B,GACP,uEACA,kBAKEiD,EAAUZ,IAAU,SAACa,GACzB,OAAOA,EAAO,wBAAwBD,aAGxCpF,IAAU,WACRqT,EAASjO,EAAQsB,cAChB,CAACtB,aAAD,EAACA,EAASsB,aAGb,IAAM2I,EAAc,WAAmB,IAAlB8B,EAAiB,uDAAP,GAC7BiC,EAAS,SAAKhE,GAAU+B,KAGpBoC,EAAS,uCAAG,kCAAA1G,EAAA,6DAChBgG,GAAW,GADK,SAGRrS,EAHQ,SAIT4O,GACA,CAAEoD,KAAMU,IALC,SAOIrT,GAAGmN,SAAS,CAC5BC,OAAQ,OACRvE,IAAK7I,GAAG6I,IAAI8K,aAAP,UACAhF,aAAaiF,MADb,OACoBjF,aAAakF,oBADjC,kBAC8DhP,EAAOmH,IACxE,CAAE8H,QAAS,QAEbnT,SAbY,UAOVoT,EAPU,6BAiBNN,EAjBM,OAqBdf,EAAaqB,GACb/E,IACEyD,GAAUA,EAAOsB,GACnBvT,YAAe,CAAEE,QAAS4B,GAAG,kBAAmB,mBAxBlC,kDA0Bd4Q,EAAS,iCAAGxS,QAAU,KAAEA,QAAU+S,GA1BpB,yBA4BdT,GAAW,GA5BG,4BAgChBpS,GAAS,wBAAwBoT,cAAc,CAAEnN,WAAYxG,IAEvDM,EAlCU,SAmCX4E,GACA,CAAEsB,WAAYxG,IApCH,oBAwCOL,GAAGmN,SAAS,CAC/B1E,KAAM,iBACN2E,OAAQ,OACRzM,KAAM,CACJsT,sBAAuBtT,KA5Cb,QA+CVuT,OAPAA,EAxCU,SA+CVA,EAAUD,wBACZrT,GAAS,wBAAwBuT,WAC/BD,aADF,EACEA,EAAUD,uBAEZG,WAnDY,mDAsDdC,QAAQC,IAAR,MAtDc,wEAAH,qDA0DTC,EAAY,uCAAG,4BAAAvH,EAAA,6DACnBgG,GAAW,GADQ,kBAGChT,GAAGmN,SAAS,CAC5BC,OAAQ,OACRvE,IAAK8F,aAAaiF,KAAOjF,aAAakF,oBAAsB,SAC5DlT,KAAK,SACA,CAAEgS,KAAMU,IACR9D,KARU,UAGbwE,EAHa,6BAYTN,EAZS,OAgBjBjB,EAAUuB,GACV/E,IACEyD,GAAUA,EAAOsB,GACnBvT,YAAe,CAAEE,QAAS4B,GAAG,kBAAmB,mBAnB/B,kDAqBjB4Q,EAAS,iCAAGxS,QAAU,KAAEA,QAAU+S,GArBjB,yBAuBjBT,GAAW,GAvBM,6EAAH,qDAoCZwB,GAAO,CACX,CACE7B,KAAM,WACNnL,MAAOlF,GAAG,WAAY,iBACtBmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,mBACjBC,UAAW,YAACC,EAAD,CAAUnF,YAAaA,EAAaD,MAAOA,KAExD,CACEoD,KAAM,WACNnL,MAAOlF,GAAG,WAAY,iBACtBmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,kBACjBC,UAAW,YAACE,EAAD,CAAUpF,YAAaA,EAAaD,MAAOA,KAExD,CACEoD,KAAM,QACNnL,MAAOlF,GAAG,QAAS,iBACnBmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,qBACjBC,UAAW,YAACG,GAAD,CAAOrF,YAAaA,EAAaD,MAAOA,KAErD,CACEoD,KAAM,QACNnL,MAAOlF,GAAG,gBAAiB,iBAC3BmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,UACjBC,UAAW,YAACI,GAAA,EAAD,CAAOtF,YAAaA,EAAaD,MAAOA,KAErD,CACEoD,KAAM,MACNnL,MAAOlF,GAAG,iBAAkB,iBAC5BmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,cACjBC,UAAW,YAACK,GAAA,EAAD,CAAKvF,YAAaA,EAAaD,MAAOA,KAEnD,CACEoD,KAAM,aACNnL,MAAOlF,GAAG,aAAc,iBACxBmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,gBACjBC,UACE,YAACM,EAAA,EAAD,CACExF,YAAaA,EACbD,MAAOA,EACPlP,MAAOA,EACPmT,SAAUA,KAIhB,CACEb,KAAM,YACNnL,MAAOlF,GAAG,oBAAqB,iBAC/BmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,SACjBC,UAAW,YAACO,GAAD,CAAWzF,YAAaA,EAAaD,MAAOA,MAS3D,OACE,YAAC+C,GAAD,CACE9K,MAEMlF,GADI,QAARxB,EACO,sBACA,4BADuB,iBAGhCoU,eAAgBlG,EAChBxM,UAAU,+BACV2S,iBAAiB,wCAEjB,mBAAK3S,UAAU,gCAAgC4S,UAAQ,gBACrD,YAACnD,GAAD,CACE5R,MAAOgT,EACPgC,qBAAqB,EACrBpO,MAAO3E,GAAG,cAAe,iBACzBoN,SAAU,SAACiD,GAAD,OAAUW,EAAYX,IAChC2C,YAAahT,GAAG,yBAA0B,iBAC1CE,UAAU,mCACV+S,WAAS,IAGX,YAAC,GAAD,CAAMhL,MAAM,UAAU/H,UAAU,qCAC9B,YAAC4P,GAAD,CAAU5P,UAAU,gCAClB,uBACE,YAACgT,EAAA,EAAD,CACEpL,MAAOoK,GACPhN,MAAOlF,GAAG,YAAa,iBACvBmT,SAAUrC,IAET,SAACzG,GAAD,OAAUA,EAAK+H,eAItB,YAACrC,GAAD,CAAW7P,UAAU,sCACnB,mBACEkD,MAAO,CAAE7B,SAAU,WAAYiE,IAAK,EAAGH,KAAM,EAAGpD,QAAS,SAEzD,YAAC,GAAD,CACE0C,MAAO3E,GAAG,OAAQ,iBAClByP,cAAc,OACd1R,MAAOkP,aAAF,EAAEA,EAAOsD,KACd1C,QAAS,CACP,CAAElJ,MAAO3E,GAAG,SAAU,iBAAkBjC,MAAO,UAC/C,CAAE4G,MAAO3E,GAAG,WAAY,iBAAkBjC,MAAO,YACjD,CAAE4G,MAAO3E,GAAG,UAAW,iBAAkBjC,MAAO,WAChD,CAAE4G,MAAO3E,GAAG,QAAS,iBAAkBjC,MAAO,YAEhDqP,SAAU,SAACmD,GACTrD,EAAY,CAAEqD,aASpB,YAAC6C,EAAA,EAAD,CACErO,OAAO,oCACPkI,MAAOA,EACPzK,SAAUA,EACVqO,KAAMA,MAKZ,uBAECF,GACC,YAAC,GAAD,KACE,YAACd,GAAD,CACE3P,UAAU,qCACV/B,OAAO,QACPkV,eAAe,EACfjQ,MAAO,CAAElB,OAAQ,IAEhByO,EAAMpR,QAAQ,gBAAiB,MAItC,mBACE0B,IAAKA,YAAF,kJAMH,mBACEA,IAAKA,YAAF,sGADL,cAMcsB,EAAOmH,IAErB,uBACE,YAAC,GAAD,CAAQvH,YAAU,EAACb,QAASoL,EAAYtJ,MAAO,CAAElB,OAAQ,UACtDlC,GAAG,SAAU,kBAEhB,YAAC,GAAD,CACEoC,WAAS,EACTkR,OAAQ3H,EACR4H,SAAU5H,EACVrK,QAzKC,WACX,GAAKyP,EAIL,MAAgB,SAATvS,EAAkB4S,IAAca,IAHrCrB,EAAS5Q,GAAG,wCAAyC,mBAwK7C8S,UAAQ,iBAGJ9S,GADK,QAARxB,EACM,gBACA,gBADiB,uBCzW9BwB,GAAOtC,GAAGuC,KAAVD,GACR,GAAsDtC,GAAGyC,WAAjDyP,GAAR,GAAQA,KAAM3D,GAAd,GAAcA,QAAS+D,GAAvB,GAAuBA,MAAOzP,GAA9B,GAA8BA,OAAQiT,GAAtC,GAAsCA,YAC9B/S,GAAa/C,GAAGC,QAAhB8C,SAEO,eAOX,IAAD,IAND8B,EAMC,EANDA,OACA5C,EAKC,EALDA,MACA8T,EAIC,EAJDA,SACAC,EAGC,EAHDA,OACAC,EAEC,EAFDA,UACAC,EACC,EADDA,OAEA,EAA8BnT,IAAS,GAAvC,mBAAOkL,EAAP,KAAgB+E,EAAhB,KACA,EAAsCjQ,IAAS,GAA/C,mBAAOoT,EAAP,KAAoBC,EAApB,KAGMC,EAAe,kBAAMD,GAAe,IAIpCE,EAAW,uCAAG,sBAAAtJ,EAAA,yDAEbnI,EAAOmH,GAFM,uBAGhBgK,EAAOnR,GAHS,0CAQhBmO,GAAW,GARK,SASIhT,GAAGmN,SAAS,CAC9BC,OAAQ,OACRvE,IAAK7I,GAAG6I,IAAI8K,aAAP,UACAhF,aAAaiF,MADb,OACoBjF,aAAakF,oBADjC,kBAC8DhP,EAAOmH,IACxE,CAAE8H,QAAS,aAbC,gBAiBdkC,EAAOnR,GACP7E,GAAGW,KAAKC,SAAS,gBAAgBC,aAC/B,UACAyB,GAAG,kBAAmB,iBACtB,CACExB,KAAM,WACN6U,eAAe,KAvBL,kDAoChBtB,QAAQpB,MAAR,MACA,4BAAI,KAAGvS,SACLV,GAAGW,KAAKC,SAAS,gBAAgBC,aAC/B,QACA,KAAEH,QACF,CACEI,KAAM,WACN6U,eAAe,IA3CL,yBAgDhBS,GAAe,GACfpD,GAAW,GAjDK,6EAAH,qDAqDjB,OAAI/E,EAEA,2BACEzL,UAAU,kCACV+T,KAAK,SACLC,SAAUvU,EACVwU,aAAW,OACX/Q,MAAO,CACL1C,MAAO+S,EAAW,8BAAgC,UAClDvS,MAAO,kBACPgB,OAAQ,QACR,cAAe,IACfkS,OAAQ,UACRC,SAAU,SACV,gBAAiB,MACjBpS,QAAS,MACTH,QAAS,OACT,iBAAkB,WAGpB,2BACE5B,UAAU,0CACVkD,MAAO,CACLkR,OAAQb,EACJ,wCACA,oBACJvR,OAAQ,EACRqS,QAAS,wBACTtS,QAAS,IACTH,QAAS,OACTuS,SAAU,SACVG,WAAY,OACZ,cAAe,SACf,YAAa,IACb,aAAc,OACd,aAAc,UAGhB,oBAAC,GAAD,QAON,2BACEtU,UAAS,wDAAmDqC,EAAOkS,MACnEnT,QAAS,WACPqS,EAAUpR,IAEZ0R,KAAK,SACLC,SAAUvU,EACVwU,aAAW,OACX/Q,MAAO,CACL1C,MAAO+S,EAAW,8BAAgC,UAClDvS,MAAO,kBACPgB,OAAQ,QACR,cAAe,IACfkS,OAAQ,UACRC,SAAU,SACV,gBAAiB,MACjBpS,QAAS,MACTH,QAAS,OACT,iBAAkB,WAGpB,2BACE5B,UAAU,0CACVkD,MAAO,CACLkR,OAAQb,EACJ,wCACA,oBACJvR,OAAQ,EACRqS,QAAS,wBACTtS,QAAS,IACTH,QAAS,OACTuS,SAAU,SACVG,WAAY,OACZ,cAAe,SACf,YAAa,IACb,aAAc,OACd,aAAc,UAGhB,2BACEpR,MAAO,CACLsR,UAAW,SACXxT,MAAO,OACPR,MAAO+S,EAAW,8BAAgC,UAClDhQ,QAASgQ,EAAW,EAAI,MAGzBlR,WAAQ4P,KACP,oBAAC,GAAD,CACEA,KAAM5P,aAAF,EAAEA,EAAQ4P,KACd/O,MAAO,CACLuR,SAAU,OACVzT,MAAO,OACPC,OAAQ,UAIZ,0BAAIiC,MAAO,CAAEK,QAAS,OACnBlB,SAAA,UAAAA,EAAQ8N,YAAR,mBAAcuE,OAAO,UAArB,eAAyBC,gBAAiB,cAKnD,2BACE3U,UAAU,wCACVkD,MAAO,CACL0R,WAAY,OACZC,cAAe,aACf,aAAc,SACd9S,QAAS,WAGVM,aAAA,EAAAA,EAAQ8N,OAAQ,cAGjB9N,WAAQyS,YACR,2BAAK9U,UAAU,wCACb,2BACEA,UAAU,4CACVoB,QAASsS,GAET,oBAAC,GAAD,CAAMzB,KAAK,UAEb,2BACEjS,UAAU,4CACVoB,QA5LU,kBAAMwS,GAAe,KA8L/B,oBAAC,GAAD,CAAM3B,KAAK,YAKhB0B,GACC,oBAAC,GAAD,CACE3O,MAAOlF,GAAG,gBAAiB,iBAC3B4S,eAAgBmB,EAChB3Q,MAAO,CAAE6R,SAAU,UAEnB,6BACE,kCAASjV,GAAG,WAAY,iBAAxB,KACCA,GACC,gFACA,kBAIJ,oBAACwT,GAAD,KACE,oBAAC,GAAD,CACE0B,eAAa,EACb5T,QAAS0S,EACT5Q,MAAO,CAAElB,OAAQ,UAEhBlC,GAAG,QAAS,kBAEf,oBAAC,GAAD,CACEmC,YAAU,EACVb,QAASyS,EACT3Q,MAAO,CAAElB,OAAQ,QAASiT,UAAW,SAEpCnV,GAAG,SAAU,sB,SC7OpBA,GAAOtC,GAAGuC,KAAVD,GACR,GAAsDtC,GAAGyC,WAAjD6L,GAAR,GAAQA,YAAaD,GAArB,GAAqBA,YAAaE,GAAlC,GAAkCA,QAAS1L,GAA3C,GAA2CA,OAC3C,GAAgC7C,GAAGC,QAA3B8C,GAAR,GAAQA,SACR,IADA,GAAkB5C,UACcH,GAAGW,MAA3BgE,GAAR,GAAQA,UAAW/D,GAAnB,GAAmBA,SAkIJ0N,WA3Hf,YAAuD,IAAD,EAA7BvJ,EAA6B,EAA7BA,WAAY0G,EAAiB,EAAjBA,cAEnC,EAA0B1I,IAAS,GAAnC,mBAAO0L,EAAP,KAAcC,EAAd,KAEMM,EAAa,kBAAMN,GAAS,IAClC,EAAoC3L,GAAS,MAA7C,mBAAO6I,EAAP,KAAmBC,EAAnB,KACA,EAAwB9I,GAAS,MAAjC,mBAAO4P,EAAP,KAAa+E,EAAb,KAGA,EAA6B/S,IAAU,SAACa,GACtC,MAAO,CACLgG,QAAShG,EAAO,wBAAwB2I,aACxCF,QAASzI,EAAO,wBAAwB0I,YAAY,kBAHhD1C,EAAR,EAAQA,QAASyC,EAAjB,EAAiBA,QAQXuE,EAAY,SAAC3N,GACjBjE,GAAS,wBAAwB4R,UAAU3N,IAKvC8S,EAAe,SAAC9S,GACpBjE,GAAS,wBAAwB+W,aAAa9S,IAI1CoR,EAAY,SAACpR,GACjB4G,EAAc,CAAE5G,OAAQA,EAAOmH,MAG3B4L,EAAaC,KAAOC,IAAV,+GAMhB,OAAI7J,EAEA,2BAAKzL,UAAU,4BACb,oBAAC,GAAD,OAMJ,wCACGgJ,EAAQpK,OACP,6BACGkB,GACC,wDACA,kBAIJ,GAGF,oBAAC,GAAD,KACE,oBAACsV,EAAD,MACIpM,GAAW,IAAIpK,OACboK,EAAQkB,KAAI,SAAC7H,EAAQkT,GACnB,OACE,oBAACC,GAAD,CACE/B,UAAWA,EACXhU,MAAO8V,EACPhC,UAAUhR,aAAA,EAAAA,EAAYF,UAAWA,EAAOmH,GACxCnH,OAAQA,EACRuM,IAAKvM,EAAOmH,GACZkK,OAAQ,WACNwB,EAAQ7S,EAAO8N,MACf9G,EAAchH,GACd6J,EAAS,SAEXsH,OAAQ2B,OAIdrV,GACE,4EACA,mBAIV,oBAAC,GAAD,KACE,oBAAC,GAAD,CACEoC,WAAS,EACT0Q,UAAQ,iBACRxR,QAAS,WAAO,IAAD,EACT,UAAC+K,oBAAD,OAAC,EAAcC,UAvFDF,EA2FR,OAHR9N,GAAS,wBAAwBiO,aAAY,KAMhDvM,GAAG,iBAAkB,oBAEvB,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAErB,OAATL,GACC,oBAAC,GAAD,CACEO,WAAYA,EACZwD,UAAWA,EACX1R,KAAK,MACL2R,OAAQwD,IAGF,QAATxH,GACC,oBAAC,GAAD,CACEO,WAAYA,EACZwD,UAAWA,EACXE,aA7Fa,SAAC7N,GACpBjE,GAAS,wBAAwB8R,aAAa7N,IA6FxC/D,KAAK,OACL+D,OAAQ+G,EACR+G,KAAMA,Q,slBC9HhB,IAAQrQ,GAAOtC,GAAGuC,KAAVD,GACR,GAQItC,GAAGyC,WAJL4L,IAJF,GACE4J,SADF,GAEEhG,YAFF,GAGE3C,cAHF,GAIEjB,aACAxL,GALF,GAKEA,OACAqV,GANF,GAMEA,iBACAnH,GAPF,GAOEA,aAEF,GAA0C/Q,GAAGmY,YAArCC,GAAR,GAAQA,YAAaC,GAArB,GAAqBA,iBAGfC,IAFetY,GAAGC,QAAhB8C,SAEkC,CAAC,UAK5B,eAAgD,IAA7CgC,EAA4C,EAA5CA,WAAY0G,EAAgC,EAAhCA,cAAe8M,EAAiB,EAAjBA,WACnClT,EAAiBN,EAAjBM,aAEFmT,EAAuB,iDAA6CD,GAqB1E,OACE,wCACE,oBAACF,GAAD,KACE,oBAAC,GAAD,CAAa7V,UAAU,gCACrB,oBAAC,GAAYkP,YAAb,KACE,6BAAIpP,GAAG,gBAAiB,mBAE1B,oBAAC8V,GAAD,CACE5Q,MAAOlF,GAAG,uBAAwB,iBAClCmT,SA3BV,SAAyBgD,GACvBhN,EAAc,CACZpG,aAAa,SACRA,GACA,CAAEjD,IAAKqW,EAAM5P,SAwBZ6P,aAAcJ,GACdK,OAAQ,gBAAGxV,EAAH,EAAGA,KAAH,OACN,oBAAC,GAAD,CACEX,UAAU,yBACVkC,WAAS,EACTd,QAAST,GAEPkC,WAAcjD,IAEZE,GAAG,UAAW,iBADdA,GAAG,SAAU,qBAKvB,yBAAG0J,GAAIwM,EAAyBI,QAAM,GACnCvT,WAAcjD,IACXyW,QACEvW,GAAG,sCAAuC,iBAC1C+C,aAFK,EAELA,EAAcjD,KAEhBE,GACE,+CACA,oBAGL+C,YAAcjD,MACf,oBAAC,GAAD,CACEwB,QA7CZ,WACE6H,EAAc,CACZpG,aAAa,SACRA,GACA,CAAEjD,IAAK,QA0CJI,UAAU,gCACViC,YAAU,GAETnC,GAAG,SAAU,sBAKnB+C,YAAcjD,MACf,oBAAC8V,GAAD,CACErP,IAAK,GACLiQ,WAAY,CAAEtV,MAAO,IAAKC,OAAQ,IAClCpD,MAAOgF,aAAF,EAAEA,EAAcuC,WACrB8H,SAAU,SAAC9H,GAAD,OACR6D,EAAc,CACZpG,aAAa,SACRA,GACA,CAAEuC,sBAMZvC,YAAcjD,MACf,oBAAC,GAAD,CACE6E,MAAO3E,GAAG,gBAAiB,iBAC3BjC,MAAOgF,aAAF,EAAEA,EAAc7B,MACrBkM,SAAU,SAAClM,GAAD,OACRiI,EAAc,CACZpG,aAAa,SACRA,GACA,CAAE7B,aAIXoO,IAAK,EACLC,IAAK,Q,6kBCnHf,IAAQvP,GAAOtC,GAAGuC,KAAVD,GACR,GAQItC,GAAGyC,WAPLyM,GADF,GACEA,cACAI,GAFF,GAEEA,cACAjB,GAHF,GAGEA,YACAxL,GAJF,GAIEA,OACAoV,GALF,GAKEA,SACA/F,GANF,GAMEA,KACApP,GAPF,GAOEA,KAEMlC,GAAaZ,GAAGW,KAAhBC,SAGR,GAA0CZ,GAAGmY,YAArCC,GAAR,GAAQA,YAAaC,GAArB,GAAqBA,iBAIfU,GAAmC,CAAC,SAElCC,GAAkBhZ,GAAGqL,QAArB2N,cA8POC,GA5PO,SAAhBA,EAAiB,GAAmC,IAAjCxN,EAAgC,EAAhCA,cAAe1G,EAAiB,EAAjBA,WAEpCO,EAMEP,EANFO,aACA4T,EAKEnU,EALFmU,SACAC,EAIEpU,EAJFoU,YACAjU,EAGEH,EAHFG,QACAmC,EAEEtC,EAFFsC,OACAhC,EACEN,EADFM,aAGIkT,EAAaS,GAAcC,GAE3BG,EAAsB,gDAA4Cb,GAwBlEc,EAAkB,SAACC,GACvB,OAAO,SAACC,GACN9N,EAAc,eAAG6N,EAAYC,MAajC,IAAmC,IAqFnC,OACE,yCACIL,GArFF,wCACE,oBAAC,GAAD,CACEjS,MACE,wCACG3E,GAAG,yBAA0B,iBAAkB,MAC/C,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAGjCY,SAAU,SAACrP,GAAW,IAAD,EACf,UAACsO,oBAAD,OAAC,EAAcC,UAInBnD,EAAc,CACZnG,aAAa,SACRA,GACA,CAAEoC,QAASrH,MANhBO,GAAS,wBAAwBiO,aAAY,IAUjDe,QAAStK,aAAF,EAAEA,EAAcoC,QACvBlF,UAAU,+BACViN,KAAMnN,GAAG,sCAAuC,qBAE/CgD,YAAcoC,YAAY3C,WAAYgG,WACvC,oBAAC,GAAD,KACE,oBAAC,GAAD,CACE9D,MAAO3E,GAAG,yBAA0B,iBACpCoN,SAAU,SAACrP,GACToL,EAAc,CACZnG,aAAa,SACRA,GACA,CAAEyB,SAAU1G,OAIrBuP,QAAStK,aAAF,EAAEA,EAAcyB,SACvBvE,UAAU,uCACViN,KAAMnN,GAAG,sCAAuC,sBAKnDgD,EAAaoC,SACd,oBAAC,GAAD,KACE,oBAAC,GAAD,CACET,MACE,wCACG3E,GAAG,wBAAyB,iBAAkB,MAC9C,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAGjCY,SAAU,SAACrP,GAAW,IAAD,EACf,UAACsO,oBAAD,OAAC,EAAcC,UAInBnD,EAAc,CACZpG,aAAa,SACRA,GACA,CAAEqC,QAASrH,MANhBO,GAAS,wBAAwBiO,aAAY,IAUjDe,QAASvK,aAAF,EAAEA,EAAcqC,QACvBlF,UAAU,+BACViN,KAAMnN,GACJ,4EACA,qBAKP+C,aAAA,EAAAA,EAAcqC,WAAWpC,aAAzB,EAAyBA,EAAcoC,UACtC,oBAAC8R,GAAD,CACEzU,WAAYA,EACZ0G,cAAeA,OAWnBnG,WAAcoC,UACd,oBAAC,GAAD,CACET,MAAO3E,GAAG,WAAY,iBACtBE,UAAU,2BACVkN,SAAU2J,EAAgB,YAC1BzJ,QAASsJ,EACTzJ,KApIgB,SAACG,GACvB,OAAOA,EACHtN,GACE,yEACA,iBAEF,QAiIF,oBAAC,GAAD,KACE,oBAAC,GAAD,CACE2E,MAAO3E,GAAG,cAAe,iBACzBE,UAAU,8BACV4S,UAAS,cACT1F,SAAU2J,EAAgB,eAC1BzJ,QAASuJ,EACT1J,KAAMnN,GACJ,sFACA,sBAIJyC,WAAYgG,WACZ,oBAAC,GAAD,KACE,oBAAC,GAAD,CACE9D,MACE,oBAAC,GAAD,KACE,+BAAM3E,GAAG,yBAA0B,kBACnC,yBACE+F,KAAK,kEACLoR,OAAO,SACP/T,MAAO,CAAEgU,eAAgB,SAEzB,oBAAC,GAAD,CAAMjF,KAAK,kBAIjBjS,UAAU,0BACVnC,MAAO6E,EACPwK,SAAU,SAACrP,GAAD,OAAWoL,EAAc,CAAEvG,QAAS7E,KAC9CoP,SA1JN1K,WAAY3C,KACZ+I,aAAMpG,aAAD,EAACA,EAAY3C,MAClB,CAAC,WAAY,QAAQN,SAASoD,KAKb,SAAZA,IAAuBmC,IAqJpB/E,GACE,kDACA,iBAGJ6N,QAAS,CACP,CACE9P,MAAO,OACP4G,MAAO3E,GAAG,uBAAwB,kBAEpC,CACEjC,MAAO,WACP4G,MAAO3E,GAAG,kBAAmB,kBAE/B,CACEjC,MAAO,OACP4G,MAAO3E,GAAG,4BAA6B,sBAMjD,oBAAC,GAAD,KACE,oBAAC,GAAD,CAAaE,UAAU,+BACrB,oBAAC,GAAYkP,YAAb,KACE,6BAAIpP,GAAG,eAAgB,mBAEzB,oBAAC,GAAD,CACEkF,MAAOlF,GAAG,sBAAuB,iBACjCmT,SAxKV,SAAwBgD,GACtBhN,EAAc,CAAEpE,OAAQoR,EAAM5P,OAwKtB6P,aAAcK,GACdJ,OAAQ,gBAAGxV,EAAH,EAAGA,KAAH,OACN,oBAAC,GAAD,CACEX,UAAU,yBACVkC,WAAS,EACTd,QAAST,EACTwW,mBAAkBP,GAId9W,GAFF+E,EAEK,UADA,SACW,qBAIxB,yBAAG2E,GAAIoN,EAAwBR,QAAM,GAClCvR,EACGwR,QACEvW,GAAG,qCAAsC,iBACzC+E,GAEF/E,GACE,8CACA,oBAGL+E,GACD,oBAAC,GAAD,CACEzD,QAhMZ,WACE6H,EAAc,CAAEpE,OAAQ,MAgMd7E,UAAU,gCACViC,YAAU,GAETnC,GAAG,SAAU,sBC3QpBsX,GAAc5Z,GAAGyC,WAAjBmX,UACAtX,GAAOtC,GAAGuC,KAAVD,GAQO,gBAA0C,IAAD,QAA7ByC,EAA6B,EAA7BA,WAAY0G,EAAiB,EAAjBA,cACrC,OACE,wCACE,oBAACmO,GAAD,CACEpS,MACE,wCACGlF,GAAG,WAAY,iBAAkB,MACjC,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAGjC+K,YAAW,UAAElL,oBAAF,aAAE,EAAcC,WAE3B,oBAAC,IAAD,CAAenD,cAAeA,EAAe1G,WAAYA,KAG3D,oBAAC6U,GAAD,CACEpS,MACE,wCACGlF,GAAG,WAAY,iBAAkB,MACjC,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAGjC+K,YAAW,UAAElL,oBAAF,aAAE,EAAcC,WAE3B,oBAAC,EAAD,CAAenD,cAAeA,EAAe1G,WAAYA,KAG3D,oBAAC6U,GAAD,CAAWpS,MAAOlF,GAAG,iBAAkB,kBACrC,oBAAC,GAAD,CAAemJ,cAAeA,EAAe1G,WAAYA,KAG3D,oBAAC6U,GAAD,CAAWpS,MAAOlF,GAAG,eAAgB,kBACnC,oBAAC,GAAD,CAAcmJ,cAAeA,EAAe1G,WAAYA,KAG1D,oBAAC6U,GAAD,CACEpS,MAAOlF,GAAG,yBAA0B,iBACpCuX,aAAa,GAEb,oBAAC,IAAD,CAAepO,cAAeA,EAAe1G,WAAYA,Q,gMC1CpD,EAAkB,SAAC,GAAD,OAC7B,EAAI,QAAQ,YAAY,SAAC,GAAD,iBAAmB,EAAE,GAAG,mB,QCiCrC,EAAe,SAAC,EAAyB,EAAe,GACnE,IAAM,EAAuB,EAAS,WAAa,EAAS,MACtD,EAAuB,EAAS,WAAa,EAAS,MAEtD,EAAiB,EAAW,GAC5B,EAAsB,EAAW,EAAe,EAAa,MAAM,KAAO,IAC1E,EAAiB,EAAW,EAAe,EAAa,MAAM,KAAO,IACpE,EAA2B,GAclC,OAXA,EAAe,SAAQ,SAAC,GAClB,EAAoB,IAAI,IAE1B,EAAgB,KAAK,GACrB,EAAoB,OAAO,IACjB,EAAe,IAAI,IAE7B,EAAgB,KAAK,MAGzB,EAAoB,SAAQ,SAAC,GAAD,OAAQ,EAAe,KAAK,MACjD,EAAgB,KAAK,MAOhB,EAAkB,SAAC+U,GAC/B,GAAwB,oBAAb,SACT,OAAO,EAEP,IAAO,EAAW,KAAO,EACpB,EAAa,KAAa,SAE/B,IAAK,EAAa,CAChB,IAAM,EAAU,SAAS,cAAc,OACvC,EAAQ,aAAa,EAAW,WAChC,EAAqD,mBAA/B,EAAgB,GAGxC,OAAO,GAIE,EAAY,SACvB,EACA,EACA,GAEA,IAAM,EAAa,EAAK,WAAa,EAAK,SAAW,IAC/C,EAAkB,EAAW,GAG/B,GACF,EAAK,oBAAoB,EAAW,GAItC,EAAK,iBACH,EACC,EAAW,GAAa,SAAiB,GACpC,GACF,EAAgB,KAAK,KAAM,MAM7B,EAAa,SAAC,GAClB,IAAM,EAAM,IAAI,IAEhB,OADC,EAAiB,SAAQ,SAAC,GAAD,OAAe,EAAI,IAAI,EAAG,MAC7C,GCrGI,EAAS,SAAC,EAAiE,GACnE,mBAAR,EACT,EAAI,GACY,MAAP,IAER,EAAoC,QAAU,IAItC,EAAY,WAEG,2BADvB,EACuB,yBADvB,EACuB,gBAC1B,OAAO,SAAC,GACN,EAAK,SAAQ,YACX,EAAO,EAAK,Q,qxBCNL,EAAuB,SAMlC,EACA,EACA,EAIA,QAE4B,IAAxB,GACF,IAGF,IAAO,EAA8B,EHnClC,cACA,MAAM,KACN,KAAI,SAAC,GAAD,OAAa,EAAQ,OAAO,GAAG,cAAgB,EAAQ,MAAM,MACjE,KAAK,IGiCD,EAAa,wCAOlB,WAAY,GAA6C,kCACvD,cAAM,IALR,kBAAoB,SAAC,GACnB,EAAK,YAAc,GAGoC,EAPvC,qDAWlB,WACE,KAAK,mBAAmB,KAAK,SAZb,gCAelB,SAAmB,IFnDI,SAAC,EAAmB,GAAqC,IAAtB,EAAsB,uDAAN,GAE5E,GAAI,aAAgB,QAAS,CAE3B,IAAO,EAAW,EAAa,EAAK,UAAW,EAAU,GACvC,KAAd,IACF,EAAK,UAAY,GAGnB,OAAO,KAAK,GAAU,SAAQ,SAAC,GAC7B,GACW,aAAT,GACS,UAAT,GACS,QAAT,GACS,UAAT,GACS,cAAT,GACS,iBAAT,EAIF,GAA2B,IAAvB,EAAK,QAAQ,OAAe,EAAK,KAAO,EAAK,GAAG,cAAe,CACjE,IAAO,EAAW,EAAK,UAAU,GAC3B,EAAc,EAAU,GAAG,cAAgB,EAAU,UAAU,GAEhE,EAAiB,IACpB,EAAU,EAAM,EAAa,EAAS,QAEnC,CACJ,EAAa,GAAQ,EAAS,GAEd,WADH,YAAU,EAAS,KAE/B,EAAK,aAAa,EAAgB,GAAO,EAAS,SEqBtD,CAAY,KAAK,YAAa,KAAK,MAAO,KAhB1B,oBAmBlB,WACQ,MAA+D,KAA/D,MAAE,EAA6C,EAA7C,SAAU,EAAmC,EAAnC,aAAc,EAAqB,EAArB,MAA0B,GAAL,EAAd,UAAc,EAAH,IAAc,IAA1D,wDAEF,EAAc,OAAO,KAAK,GAAQ,QAAO,SAAC,EAAK,GACjD,GAA2B,IAAvB,EAAK,QAAQ,OAAe,EAAK,KAAO,EAAK,GAAG,cAAe,CACjE,IAAM,EAAY,EAAK,UAAU,GAAG,cACZ,oBAAb,UAA4B,EAAiB,KACrD,EAAY,GAAS,EAAe,SAGtC,EAAY,GAAS,EAAe,GAEvC,OAAO,IACN,IAEC,IACF,EAAc,EAAwB,KAAK,MAAO,IAGpD,IAAM,EAAQ,+BACT,GAAW,CACd,IAAK,EAAU,EAAc,KAAK,mBAClC,UAUF,OAAO,wBAAc,EAAS,EAAU,MAnDxB,wBAsDlB,WACE,OAAO,MAvDS,GAAiB,IAAM,WAgE3C,OAJI,IACF,EAAe,YAAc,GDrED,SAC9B,EACA,GAEA,IAAM,EAAa,SACjB,EACA,GAEA,OAAO,kBAAC,EAAc,iBAAK,EAAK,CAAE,aAAc,MAIlD,OAFA,EAAW,YAAc,EAElB,IAAM,WAAW,GC4DjB,CAAwC,EAAgB,ICrFpD,EAAkC,EAA4E,yBAK9G,EAAoC,EAAgF,2BAGpH,EAA4B,EAAgE,kB,cCzB3Fja,EAAOC,QAAUC,OAAW,GAAe,a,kpBCCzD,IAAQuC,EAAOtC,GAAGuC,KAAVD,GACR,EAAkCtC,GAAGyC,WAA7BI,EAAR,EAAQA,OAAQD,EAAhB,EAAgBA,QAASsP,EAAzB,EAAyBA,KAEU6H,EAAgB/Z,GAAGmY,YAA9C6B,0BACAjX,EAAa/C,GAAGC,QAAhB8C,SACAkX,EAAgBja,GAAG6I,IAAnBoR,YAIO,gBAAgC,IAA7BC,EAA4B,EAA5BA,YAAaC,EAAe,EAAfA,SAC7B,EAA8BpX,GAAS,GAAvC,mBAAOqX,EAAP,KAAgBC,EAAhB,KACQxR,EAAQsR,EAARtR,IAUR,EAA0C9F,IAA1C,mBAAOuX,EAAP,KAAsBC,EAAtB,KAEMC,EAAS,GACb3R,IAAKsR,aAAF,EAAEA,EAAUtR,IACf/H,KAAMqZ,aAAF,EAAEA,EAAUrZ,KAChBkL,GAAImO,aAAF,EAAEA,EAAUnO,GACdyO,cAAeN,aAAF,EAAEA,EAAUM,eACtBH,GAGCI,EAAe,SAACC,GAIpBA,EAAS,OACJL,GACAK,GAIL,IAOMC,EANJJ,EAAUC,gBAAkBE,EAAUF,eACtCD,EAAU3R,MAAQ8R,EAAU9R,UAMUgF,IAAlB8M,EAAU9R,IAMhC,GAFA0R,EAAiBK,EAA6BD,OAAY9M,IAEtD+M,EAAJ,CAIA,IAAMC,EAASZ,EAAYU,EAAU9R,KACrCqR,EAAY,CACVrR,IAAKgS,EACL/Z,KAAM6Z,EAAU7Z,KAChBkL,QACmB6B,IAAjB8M,EAAU3O,IAAqC,OAAjB2O,EAAU3O,GACpCzC,OAAOoR,EAAU3O,SACjB6B,EACN4M,cAAeE,EAAUF,kBAa7B,OACE,wBACG5R,EACC,mBACEtF,IAAKA,YAAF,gHAKH,mBACEA,IAAKA,YAAF,2KAOH,iBACE8E,KAAK,IACL9E,IAAKA,YAAF,2ZAYHK,QAAS,kBAAMyW,GAAYD,KAE3B,YAAClI,EAAD,CACEuC,KAAK,OACLlR,IAAKA,YAAF,qSAUJsF,GAEFuR,GACC,YAACxX,EAAD,CACEiB,SAAS,gBACTuQ,QAAS,kBAAMiG,GAAW,KAE1B,YAACN,EAAD,CAAa1Z,MAAO8Z,EAAUzK,SAAUgL,MAI9C,mBACEnX,IAAKA,YAAF,2GAKH,YAAC2O,EAAD,CACEtO,QAxES,WACTgK,QACRtL,EAAG,6CAA8C,mBAGjD4X,EAAY,KAoEJzF,KAAK,QACLjS,UAAU,cACVe,IAAKA,YAAF,iUAgBT,wBACE,YAACV,EAAD,CAAQ6B,WAAS,EAACoW,SAAO,EAAClX,QAAS,kBAAMyW,GAAYD,KAClD9X,EAAG,WAAY,kBAEjB8X,GACC,YAACxX,EAAD,CAASiB,SAAS,gBAAgBuQ,QAAS,kBAAMiG,GAAW,KAC1D,YAACN,EAAD,CAAa1Z,MAAO8Z,EAAUzK,SAAUgL,S,0ECtK9CpY,EAAOtC,GAAGuC,KAAVD,GACR,EAMItC,GAAGyC,WALLC,EADF,EACEA,YACAG,EAFF,EAEEA,OACAyL,EAHF,EAGEA,YACAD,EAJF,EAIEA,YACA0C,EALF,EAKEA,aAEF,EAA0C/Q,GAAGmY,YAArCC,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,iBACbW,EAAkBhZ,GAAGqL,QAArB2N,cACAjW,EAAa/C,GAAGC,QAAhB8C,SACR,EAAgC/C,GAAGW,KAA3BC,EAAR,EAAQA,SAAU+D,EAAlB,EAAkBA,UAGZoW,EAAiC,CAAC,SAkJzBzM,OAhJf,SAAS0M,EAAT,GAA6D,EAAnCvP,cAAmC,EAApB1G,WAAqB,IAAD,EAARjE,EAAQ,EAARA,KAC7CyX,EAAaS,EAAcgC,GACjC,EAAwCjY,EAAS,GAAjD,mBAAOkY,EAAP,KAAqBC,EAArB,KAGMpW,EAAWH,GAAU,SAACa,GAC1B,OAAOA,EAAO,wBAAwBV,cAGlCqW,EAAW,uCAAG,sBAAAnO,EAAA,sEACZpM,EAAS,wBAAwBua,YAAY,CACjDrW,aAFgB,OAIlB9E,GAAGW,KAAKC,SAAS,gBAAgBC,aAC/B,UACA,yBACA,CACEC,KAAM,WACN6U,eAAe,IATD,2CAAH,qDAuBjB,OACE,2BAAKnT,UAAU,kCACH,UAAT1B,GACC,6BACGwB,EACC,6FACA,kBAKN,oBAAC+V,EAAD,KACE,oBAAChK,EAAD,CAAa7L,UAAU,+BACX,UAAT1B,GACC,wCACE,oBAACuN,EAAYqD,YAAb,KACE,6BACGpP,EAAG,eAAgB,iBAAkB,MACrC,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAAC,IAAD,QAGjC,oBAACwJ,EAAD,CACE5Q,MAAOlF,EAAG,4BAA6B,iBACvCmT,SA/Bd,SAAsBgD,GACpB7X,EAAS,wBAAwBwa,eAAe,OAAQ3C,EAAM5P,MA+BlD6P,aAAcqC,EACdpC,OAAQ,gBAAGxV,EAAH,EAAGA,KAAH,OACN,oBAACN,EAAD,CACEL,UAAU,uBACV6Y,aAAW,EACXzX,QAAS,WAAO,IAAD,EACT,UAAC+K,oBAAD,OAAC,EAAcC,UAInBzL,IAHEvC,EAAS,wBAAwBiO,aAAY,IAKjD8K,mBAAA,8CAAyDpB,IAEvDzT,WAAUyH,KAERjK,EAAG,UAAW,iBADdA,EAAG,SAAU,sBAQ3B,yBAAG0J,GAAE,8CAAyCuM,GAAcK,QAAM,GAC/D9T,WAAUyH,KACPsM,QAEEvW,EAAG,mCAAoC,iBACvCwC,aAHK,EAGLA,EAAUyH,MAEZjK,EACE,4CACA,oBAGLwC,YAAUyH,OACX,oBAAC1J,EAAD,CAAQe,QAhElB,WACEhD,EAAS,wBAAwBwa,eAAe,OAAQ,KA+DjB3W,YAAU,GACtCnC,EAAG,SAAU,sBAMnBwC,YAAUyH,OACX,oBAACwE,EAAD,CACE9J,MAAO3E,EAAG,iBAAkB,iBAC5BjC,OAAOyE,aAAA,EAAAA,EAAUwB,aAAc,IAC/BoJ,SAAU,SAAClM,GAAD,OACR5C,EAAS,wBAAwBwa,eAAe,aAAc5X,IAEhEoO,IAAK,EACLC,IAAK,MAIT,oBAACnP,EAAD,CACEM,MAAO8B,aAAF,EAAEA,EAAU9B,MACjBiB,iBAAkB,SAAC5D,GACjBO,EAAS,wBAAwBwa,eAAe,QAAS/a,EAAM6D,MAEjEkN,IAAK6J,EACL9W,cAAY,KAGbW,aAAA,EAAAA,EAAU9B,QACT,oBAACqL,EAAD,KACE,oBAACxL,EAAD,CACEwY,aAAW,EACXzX,QAAS,WAAO,IAAD,IACbhD,EAAS,wBAAwBwa,eAC/B,SACY,QAAZ,EAAAzM,oBAAA,mBAAcsC,gBAAd,eAAwBjO,QAAS,WAEnCkY,EAAgBD,EAAe,KAGhC3Y,EAAG,cAAe,mBAKzB,oBAACO,EAAD,CAAQ6B,WAAS,EAACd,QAASuX,GACxB7Y,EAAG,gBAAiB,uB,cC7JfzC,EAAOC,QAAUC,OAAW,GAAW,S,gECQ7CuC,EAAOtC,GAAGuC,KAAVD,GACR,EAAgCtC,GAAGC,QAA3B8C,EAAR,EAAQA,SAAU5C,EAAlB,EAAkBA,UAElB,EAAgCmb,OAAxBC,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,KAAMnP,EAAvB,EAAuBA,KAKvB,EAAmCrM,GAAGyC,WAA9BgZ,EAAR,EAAQA,cAAeC,EAAvB,EAAuBA,QAER,gBAQR,IAAD,EAPJlZ,EAOI,EAPJA,UACAmZ,EAMI,EANJA,SACAvR,EAKI,EALJA,MACA5C,EAII,EAJJA,MAII,IAHJoU,mBAGI,MAHU,aAGV,MAFJC,mBAEI,MAFU,YAEV,MADJpG,gBACI,MADO+F,EACP,EACJ,EAAgCzY,EAAS,MAAzC,mBAAO0O,EAAP,KAAiBqK,EAAjB,KACA,EAA4B/Y,EAAS,QAArC,mBAAegZ,GAAf,WAEMC,EAAc,SAACC,GACnBH,EAAYG,GACZxG,GAAYA,EAASwG,IAGjBC,EAAa,SAACC,EAAYC,GAC9BA,EAAMC,SAGFC,EAAcjQ,EAAKjC,EAAO,CAAEuI,KAAMlB,IAClC8K,EAAU,oBAAMD,aAAN,EAAMA,EAAa3J,YAAnB,QAA2B,QAM3C,OAJAxS,GAAU,WACR4b,EAAUtK,EAAW,QAAU,UAC9B,CAACA,IAGF,2BAAKjP,UAAWA,GACd,oBAACkZ,EAAD,CAAS5a,KAAK,WAAW0b,OAAUF,EAAc,QAAU,SACxD,gBAAG9Z,EAAH,EAAGA,UAAH,OACE8Z,EA6CC,2BACElL,IAAKmL,EACLE,kBAAiBF,EACjBhG,KAAK,YACLvK,GAAE,UAAKuQ,EAAL,SACF/Z,UAAWka,IAAWla,EAAW,gCAEjC,2BAAKA,UAAU,6BACb,2BACEA,UAAU,0CACVoB,QAAS,kBAAMoY,EAAY,MAE3B,2BACEW,MAAM,YACNC,MAAM,6BACNC,QAAQ,YACRrZ,MAAM,KACNC,OAAO,KACP8S,KAAK,MACLuG,cAAY,OACZC,UAAU,SAEV,4BAAMC,EAAE,4CAET1a,EAAG,OAAQ,mBAGfqZ,EAASW,IAvEZ,2BAAK9Z,UAAWka,IAAWla,EAAW,oBACjCgF,GAAS,8BAAKA,GACjB,oBAACiU,EAAD,CACElF,KAAK,WACLqF,YAAaA,EACbM,WAAYA,EACZ1Z,UAAWka,IAAW,8BAErBtS,EAAMsC,KAAI,SAACC,GAAD,OACT,2BACEnK,UAAWka,IACT,2BACA/P,EAAKnK,UAFc,eAIhBqZ,EAAclP,EAAKgG,OAASlB,IAGjCwL,OAAM,UAAKtQ,EAAKgG,MAChBuK,gBAAA,UAAkBvQ,EAAKgG,KAAvB,SACAlB,SAAU9E,EAAKgG,OAASlB,EACxBL,IAAKzE,EAAKgG,KACV/O,QAAS2X,EAAQS,EAAarP,EAAKgG,SAEhChG,EAAK8H,MACN,2BAAKkI,MAAM,4BAA4BhQ,EAAK8H,MAE7C9H,EAAKnF,MACN,2BACEhF,UAAU,eACVoa,MAAM,6BACNC,QAAQ,YACRrZ,MAAM,KACNC,OAAO,KACP8S,KAAK,MACL4G,WAAW,OACXJ,UAAU,SAEV,4BAAMC,EAAE,wD,mrBChE9B,SAASjI,EAAT,GAAiD,IAAlCxF,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,YAAahN,EAAa,EAAbA,UACzBsQ,EAA0BvD,EAA1BuD,IAAKzM,EAAqBkJ,EAArBlJ,iBAEPvB,EAAWH,qBAAU,SAACa,GAC1B,OAAOA,EAAO,wBAAwBV,cAIlCmM,EAAW,CACfmM,WAAY,IACZC,cAAc,EACdC,WAAW,EACXC,SAAUjb,aAAG,sBAAuB,iBACpCkb,aAAa,EACbC,YAAanb,aAAG,aAAc,iBAC9Bob,YAAa,CACXjD,eAAe,IAGnBta,qBAAU,WACRsJ,OAAO0H,KAAKF,GAAUhI,SAAQ,SAACmI,GAAS,IAAD,OACXvD,KAAtB0B,SAAA,UAAAA,EAAOuD,WAAP,eAAa1B,KACfuM,EAAe,eACZvM,EAAMH,EAASG,UAIrB,CAAC7B,IAEJ,IAAMoO,EAAiB,SAACrM,GACtB9B,EAAY,EAAD,KACND,GADM,IAETuD,IAAI,EAAD,KACEA,GACAxB,OAeT,OACE,mBAAK9O,UAAWA,GACd,YAAC,cAAD,KACE,sBAAKF,aAAG,iBAAkB,mBAE5B,YAAC,cAAD,CAAaE,UAAU,sCACrB,YAAC,gBAAD,CACEyE,MAAO3E,aAAG,SAAU,iBACpBmN,KAAMnN,aACJ,8DACA,iBAEFoN,SAAU,SAAChI,GACTiW,EAAe,CACbjW,aAGJkI,QAASkD,aAAF,EAAEA,EAAKpL,aAGfoL,YAAKpL,UACN,gCACE,YAAC,cAAD,CAAalF,UAAU,8CACrB,YAAC,eAAD,CACEyE,MAAO3E,aAAG,0BAA2B,iBACrCyP,cAAc,MACdrC,SAAU,SAAC0N,GACTO,EAAe,CACbP,gBAGJQ,MAAO,CACL,CACEvd,MAAO,EACP4G,MAAO3E,aAAG,QAAS,kBAErB,CACEjC,MAAO,GACP4G,MAAO3E,aAAG,cAAe,kBAE3B,CACEjC,MAAO,IACP4G,MAAO3E,aAAG,MAAO,mBAGrBub,UAAW,EACXxd,MAAOyS,aAAF,EAAEA,EAAKsK,eAIf/W,aAAA,EAAAA,EAAkBqB,WACjBrB,aAAA,EAAAA,EAAkB+W,eAAetK,aAAjC,EAAiCA,EAAKsK,aACpC,YAAC,SAAD,CACE7Z,IAAKA,YAAF,8FAGH9C,OAAO,UACPkV,eAAe,GAEdrT,aACC,kEACA,iBAEF,YAAC,SAAD,CACEsB,QA1EY,WAC1B4L,EAAY,EAAD,KACND,GADM,IAETlJ,iBAAiB,EAAD,KACXA,GACA,CAAEqB,SAAS,QAsEJoW,QAAM,EACNva,IAAKA,YAAF,iGAIFjB,aAAG,wBAAyB,mBAKhB,OAApBwQ,aAAA,EAAAA,EAAKsK,YACJ,YAAC,cAAD,CAAa5a,UAAU,wCACrB,YAAC,gBAAD,CACEyE,MAAO3E,aAAG,sBAAuB,iBACjCmN,KAAMnN,aACJ,kDACA,iBAEFoN,SAAU,SAAC2N,GACTM,EAAe,CACbN,kBAGJzN,QAASkD,aAAF,EAAEA,EAAKuK,gBAIlB,YAAC,cAAD,CAAa7a,UAAU,qCACrB,YAAC,gBAAD,CACEyE,MAAO3E,aAAG,iBAAkB,iBAC5BmN,KAAMnN,aACJ,6CACA,iBAEFoN,SAAU,SAAC4N,GACTK,EAAe,CACbL,eAGJ1N,QAASkD,aAAF,EAAEA,EAAKwK,aAKpB,YAAC,cAAD,CAAa9a,UAAU,uCACrB,YAAC,cAAYkP,YAAb,KACE,yBAAKpP,aAAG,OAAQ,mBAElB,YAAC,IAAD,CACE4X,YAAa,SAAC6D,GACZJ,EAAe,CACbD,YAAaK,KAGjB5D,UAAUrH,aAAA,EAAAA,EAAK4K,cAAe,MAIlC,YAAC,cAAD,CAAalb,UAAU,oCACrB,YAAC,kBAAD,CACEyE,MAAO3E,aAAG,WAAY,iBACtBmN,KAAMnN,aAAG,8BAA+B,iBACxCjC,MAAOyS,aAAF,EAAEA,EAAKyK,SACZ7N,SAAU,SAAC6N,GACTI,EAAe,CACbJ,iBAMR,YAAC,cAAD,CAAa/a,UAAU,uCACrB,YAAC,kBAAD,CACEyE,MAAO3E,aAAG,cAAe,iBACzBmN,KAAMnN,aACJ,+CACA,iBAEFjC,MAAOyS,aAAF,EAAEA,EAAKkL,YACZtO,SAAU,SAACsO,GACTL,EAAe,CACbK,oBAMR,YAAC,cAAD,CAAaxb,UAAU,uCACrB,YAAC,gBAAD,CACEyE,MAAO3E,aAAG,cAAe,iBACzBmN,KAAMnN,aAAG,gCAAiC,iBAC1CoN,SAAU,SAAC8N,GACTG,EAAe,CACbH,iBAGJ5N,QAASkD,aAAF,EAAEA,EAAK0K,iBAIf1K,YAAK0K,cACN,uBACE,YAAC,cAAD,CAAahb,UAAU,uCACrB,YAAC,cAAD,CACEyE,MAAO3E,aAAG,cAAe,iBACzBmN,KACE,qBACGnN,aACC,qCACA,kBAINjC,MAAOyS,aAAF,EAAEA,EAAK2K,YACZ/N,SAAU,SAAC+N,GAAD,OAAiBE,EAAe,CAAEF,oBAIhD,sBAAKnb,aAAG,QAAS,kBAEjB,YAAC,cAAD,KACE,YAAC,eAAD,CACE2E,MAAO3E,aAAG,gBAAiB,iBAC3BmN,KAAMnN,aAAG,kCAAmC,iBAC5CjC,OAAOyS,aAAA,EAAAA,EAAKmL,gBAAiB,EAC7BvO,SAAU,SAACuO,GAAD,OACRN,EAAe,CAAEM,mBAEnBrM,IAAK,EACLC,IAAK,MAIT,YAAC,cAAD,CAAarP,UAAU,wCACrB,YAAC,OAAD,KACE,YAAC,cAAYkP,YAAb,KACGpP,aAAG,eAAgB,kBAEtB,YAAC,IAAD,CACEU,OAAO8P,aAAA,EAAAA,EAAKoL,gBAAgBpZ,aAArB,EAAqBA,EAAU9B,OACtCC,SAAU,SAAC5C,GAAD,OACRsd,EAAe,CACbO,aAAc7d,GAASA,EAAM6D,WAMvC,YAAC,cAAD,CAAa1B,UAAU,6CACrB,YAAC,OAAD,KACE,YAAC,cAAYkP,YAAb,KACGpP,aAAG,oBAAqB,kBAE3B,YAAC,IAAD,CACEU,OAAO8P,aAAA,EAAAA,EAAKqL,oBAAqB,UACjClb,SAAU,SAAC5C,GAAD,OACRsd,EAAe,CACbQ,kBAAmB9d,GAASA,EAAM6D,YAQhD,YAAC,cAAD,KACE,YAAC,eAAD,CACE+C,MAAO3E,aAAG,qBAAsB,iBAChCmN,KAAMnN,aACJ,8CACA,iBAEFjC,OAAOyS,aAAA,EAAAA,EAAKsL,qBAAsB,GAClC1O,SAAU,SAAC0O,GAAD,OACRT,EAAe,CAAES,wBAEnBxM,IAAK,EACLC,IAAK,SASnBkD,EAAIsJ,aAAe,CACjBC,QAAS,QACTC,SAAU,WACVC,IAAK,OAGQzJ,O,6BCzUf,IAAQ5H,EAAanN,GAAbmN,SAGRA,EAASsR,IAAItR,EAASuR,sBAAsB/P,aAAagQ,QACzDxR,EAASsR,IACPtR,EAASyR,wBACPjQ,aAAaiF,KAAOjF,aAAakF,sBAItB1G,O,yqBCPf,MAAwBnN,GAAGuC,KAAnBD,EAAR,EAAQA,GAAIuW,EAAZ,EAAYA,QACZ,EAcI7Y,GAAGyC,WAbLgZ,EADF,EACEA,cACAoD,EAFF,EAEEA,SACAC,EAHF,EAGEA,eACAC,EAJF,EAIEA,UACAC,EALF,EAKEA,aACAC,EANF,EAMEA,cACAC,EAPF,EAOEA,SAIArc,GAXF,EAQEsc,IARF,EASEC,KATF,EAUEC,KAVF,EAWExc,QACAoP,EAZF,EAYEA,YAGF,GAfA,EAaE3C,cAEwCtP,GAAGmY,aAArCC,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,iBACb1T,EAAc3E,GAAGW,KAAjBgE,UACA5B,EAAa/C,GAAGC,QAAhB8C,SAEFuc,EAAgB,CAAC,YAYjBC,EACJ,2BAAK1C,QAAQ,YAAY2C,KAAK,OAAO5C,MAAM,8BACzC,4BACE6C,SAAS,UACTC,SAAS,UACT1C,EAAE,wLAEJ,4BAAMA,EAAE,szBACR,4BAAMA,EAAE,uzBAIZ,SAAS2C,EAAT,GAA6C,IACvCC,EADe9Y,EAAuB,EAAvBA,OAAQ+Y,EAAe,EAAfA,YAkC3B,OA/BED,EADoB,IAAlB9Y,EAAO1F,OAEP,yBAAGoB,UAAU,iEACVF,EACC,gGACA,kBAKIwE,EAAO4F,KAAI,SAACoT,EAAO7d,GAC3B,OACE,2BACEmP,IAAKnP,EACLO,UAAU,uDAEV,gCAAOsd,EAAM7Y,MAAb,KACA,oBAACpE,EAAD,CACE4B,YAAU,EACVb,QAAS,kBAAMic,EAAY5d,IAC3BwU,aAAYoC,EAEVvW,EAAG,UAAW,iBACdwd,EAAM7Y,QAGP3E,EAAG,OAAQ,sBAOpB,oBAACyc,EAAD,CACE9X,MAAO3E,EAAG,WAAY,iBACtBE,UAAU,iDAETod,GAKP,SAASG,EAAT,GAAoE,IAAvCD,EAAsC,EAAtCA,MAAOpQ,EAA+B,EAA/BA,SAAU0E,EAAqB,EAArBA,QAAS4L,EAAY,EAAZA,SACrD,EAAoEF,EAA5D1d,WAAR,MAAc,GAAd,IAAoE0d,EAAlD7Y,aAAlB,MAA0B,GAA1B,IAAoE6Y,EAAtCG,eAA9B,MAAwC,GAAxC,EACMC,GAD8DJ,EAAxB9Y,KAC3B5E,EAAI+d,WAAW,SAC5B,GACA/d,EAAIF,UAAUE,EAAIge,YAAY,KAAO,IACzC,OACE,oBAAC3E,EAAD,KACE,2BAAKjZ,UAAU,0DACb,4BAAMA,UAAU,2EACbF,EAAG,qBAAsB,kBAE5B,gCACGA,EAAG,OAAQ,iBADd,KACiC,6BAAI4d,IAErC,2BAAK1d,UAAU,yEACb,oBAACyP,EAAD,CAEEsD,WAAS,EAET7F,SAAU,SAAC2Q,GAAD,OACR3Q,EAAS,EAAD,KACHoQ,GADG,IAEN7Y,MAAOoZ,MAGXpZ,MAAO3E,EAAG,QAAS,iBACnBjC,MAAO4G,EACPwI,KAAMnN,EAAG,iBAAkB,mBAE7B,oBAAC2P,EAAD,CACEvC,SAAU,SAAC4Q,GAAD,OACR5Q,EAAS,EAAD,KACHoQ,GADG,IAENG,QAASK,MAGbrZ,MAAO3E,EAAG,kBAAmB,iBAC7BjC,MAAO4f,EACPxQ,KAAMnN,EAAG,8BAA+B,oBAkB5C,2BAAKE,UAAU,4EACb,oBAACK,EAAD,CACEwY,aAAW,EACXzX,QAAS,WACP,IAAM2c,EAAU,GACZC,GAAa,EACH,KAAVvZ,IACFsZ,EAAQtZ,MAAQ3E,EAAG,UAAW,iBAC9Bke,GAAa,GAEC,KAAZP,IACFM,EAAQN,QAAU,KAClBO,GAAa,GAEXA,GACF9Q,EAAS,EAAD,KACHoQ,GACAS,IAGPnM,MAGD9R,EAAG,QAAS,kBAEf,oBAACO,EAAD,CAAQ2U,eAAa,EAACsG,QAAM,EAACla,QAASoc,GACnC1d,EAAG,eAAgB,qBAQjB,SAASme,EAAT,GAAkD,IAAD,IAAzB3Z,cAAyB,MAAhB,GAAgB,EAAZ4I,EAAY,EAAZA,SAC5CgR,EAAc/b,GAAU,SAACa,GAC7B,OAAOA,EAAO,qBAAqBmb,cAAcD,cAChD,IACH,EAAgD3d,EAAS,MAAzD,mBAAO6d,EAAP,KAAyBC,EAAzB,KAEA,OAAKH,EAIH,oBAACxB,EAAD,CACE4B,iBAAiB,oCACjBC,aAAc,gBAAGC,EAAH,EAAGA,OAAQC,EAAX,EAAWA,SAAX,OACZ,oBAACjC,EAAD,KACE,oBAACC,EAAD,CACEhY,MAAO3E,EAAG,WAAY,iBACtB4e,aAAW,EACXC,gBAAeH,EACfI,gBAAc,OACdxd,QAASqd,EACTxM,KAAM8K,MAIZ8B,cAAe,YACb,OADsB,eACG,OAArBT,EAEA,oBAACb,EAAD,CACED,MAAOhZ,EAAO8Z,GACdlR,SAAU,SAAC4R,GACT,IAAMC,EAAS,YAAOza,GACtBya,EAAUX,GAAoBU,EAC9B5R,EAAS6R,IAEXnN,QAAS,kBAAMyM,EAAoB,OACnCb,SAAU,WACRtQ,EACE5I,EAAO0a,QAAO,SAACC,EAAQxf,GAAT,OAAmBA,IAAU2e,MAE7CC,EAAoB,SAM1B,wCACE,oBAACpF,EAAD,KACE,oBAACkE,EAAD,CAAW7Y,OAAQA,EAAQ+Y,YAAagB,IACxC,oBAAC9B,EAAD,CACEvc,UAAU,0DACVyE,MAAO3E,EAAG,wBAAyB,kBAEnC,oBAAC8V,EAAD,CACE3C,SAAU,YAAc,IAAX5M,EAAU,EAAVA,IACL6Y,EAAa5a,EAAO1F,OAC1BsO,EAAS,GAAD,mBAAK5I,GAAL,CAAa,CAAE1E,IAAKyG,MAC5BgY,EAAoBa,IAEtBhJ,aAAc4G,EACd3G,OAAQ,gBAAGxV,EAAH,EAAGA,KAAH,OACN,oBAAC0b,EAAD,CAAUpK,KAAM,QAAS7Q,QAAST,GAC/Bb,EAAG,qBAAsB,qBAIhC,oBAAC+V,EAAD,KACE,oBAACyG,EAAD,CACEpP,SAAU,SAACiS,GACT,IAAMC,EAAQD,EAAMlI,OAAOmI,MACrBF,EAAa5a,EAAO1F,OAC1Bsf,EAAY,CACVhI,aAAc4G,EACduC,UAAWD,EACXE,aAAc,YAAgB,IAAZjZ,EAAW,oBAAXA,IACV0Y,EAAS,YAAOza,GACjBya,EAAUG,KACbH,EAAUG,GAAc,IAE1BH,EAAUG,GAAV,OACK5a,EAAO4a,IADZ,IAEEtf,IAAKyG,IAEP6G,EAAS6R,GACTV,EAAoBa,OAI1BK,OAAO,gBACPpJ,OAAQ,YAAyB,IAAtBqJ,EAAqB,EAArBA,eACT,OACE,oBAACnD,EAAD,CACEpK,KAAM,SACN7Q,QAAS,WACPoe,MAGD1f,EAAG,SAAU,4BAzF7B,O,+oBC7LX,IAAQA,EAAOtC,GAAGuC,KAAVD,GACA2f,EAAajiB,GAAGyC,WAAhBwf,SAIR,EAAgCjiB,GAAGC,QAA3B8C,EAAR,EAAQA,SAAU5C,EAAlB,EAAkBA,UAEH,gBAUR,IAAD,MATJoP,EASI,EATJA,MACAzK,EAQI,EARJA,SACAqO,EAOI,EAPJA,KACA/Q,EAMI,EANJA,IACAiF,EAKI,EALJA,OACApC,EAII,EAJJA,YACAC,EAGI,EAHJA,QACAC,EAEI,EAFJA,SAEI,IADJ+c,kBACI,SACJ,EAAkCnf,EAAS,GAA3C,mBAAOgL,EAAP,KAAkBoU,EAAlB,KACQ9b,EAA0BkJ,EAA1BlJ,iBAAkByM,EAAQvD,EAARuD,IAE1B3S,GAAU,WACRgiB,EAAapU,EAAY,KACxB,CACDwB,EAAMsD,KACNtD,EAAM,cACNA,EAAMgB,OACNhB,EAAMe,KACNf,EAAM,gBACNA,EAAMiB,SACNjB,EAAM,gBACNA,EAAMmB,KACNnB,EAAMkB,OACNlB,EAAMoB,MACNpB,EAAMqB,IACNrB,EAAMsB,WACNtB,EAAMxI,SACNwI,EAAMuC,YAGR,IAAMsQ,EAAW,CACfC,QAAShc,YAAkBqB,UACzB,oBAAC,IAAD,CACElF,UAAU,gBACViF,KAAK,aACL8V,SAAUlX,aAAF,EAAEA,EAAkBkX,SAC5B7X,MAAK,KACH,uCAAuC,GAAvC,OAA2CW,aAA3C,EAA2CA,EAAkB4X,cAA7D,MACA,qBAAqB1O,aAAA,EAAAA,EAAO3J,oBAAoBd,aAA3B,EAA2BA,EAAU9B,QACtDqD,EAAiB6X,aACjB,CACE,+BAA+B,GAA/B,OAAmC7X,EAAiB6X,eAEtD,IACA7X,EAAiB8X,kBACjB,CACE,8BAA8B,GAA9B,OAAkC9X,EAAiB8X,oBAErD,IAENmE,gBAAiBhgB,EAAG,4BAA6B,iBACjDigB,WAAYlc,aAAF,EAAEA,EAAkB2X,YAC9BwE,UAAWnc,aAAF,EAAEA,EAAkBoc,WAC7BC,SAAUpgB,EAAG,OAAQ,iBACrBqgB,WAAYtc,aAAF,EAAEA,EAAkBoX,YAC9BnI,YAAahT,EAAG,gBAAiB,iBACjCC,KAAMxC,OAAO4O,aAAapM,OAG9BuQ,MAAOA,YAAKpL,UACV,oBAAC,IAAD,CACElF,UAAU,cACVkD,MAAK,OACH,uCAAuC,GAAvC,OAA2CoN,EAAImL,cAA/C,OACInL,WAAKsL,mBACL,CACE,yCAAyC,GAAzC,QACEtL,aAAA,EAAAA,EAAKsL,oBAAqB,MAG9B,IACAtL,EAAIoL,aACJ,CACE,+BAA+B,GAA/B,OAAmCpL,EAAIoL,eAEzC,IACApL,EAAIqL,kBACJ,CACE,8BAA8B,GAA9B,OAAkCrL,EAAIqL,oBAExC,IAEN1W,KAAK,aACL8V,SAAUzK,aAAF,EAAEA,EAAKyK,SACfqF,cAAa9P,aAAb,EAAaA,EAAKkL,YAClB6E,cAAa/P,aAAb,EAAaA,EAAK4K,YAClBoF,aAAgC,OAApBhQ,aAAA,EAAAA,EAAKsK,cAAsBtK,aAA3B,EAA2BA,EAAKwK,WAC5C5Z,aAAcoP,aAAF,EAAEA,EAAKnN,cACnBod,gBAAmC,OAApBjQ,aAAA,EAAAA,EAAKsK,cAAsBtK,aAA3B,EAA2BA,EAAKuK,cAC/C2F,YAAW1gB,EAAG,OAAQ,iBACtB2gB,cAAanQ,aAAb,EAAaA,EAAK0K,YAClB0F,cAAapQ,aAAb,EAAaA,EAAK2K,YAClBlb,KAAI,UAAExC,cAAF,iBAAE,EAAQ4O,oBAAV,aAAE,EAAsBpM,QAKlC,OACE,oBAAC0f,EAAD,CAAUC,WAAYA,EAAY1f,UAAU,kBAC1C,2BAAKA,UAAU,0BACb,oBAAC,IAAD,CACEJ,IAAKA,GAAO,GACZI,UAAS,wBACI,QAAT2Q,KAAoBL,YAAKpL,UAAW,aAD/B,0BAGI,UAATyL,KAAsB9M,YAAkBqB,UAAW,gBAEvD7C,OAAQ0K,EACRzK,SAAQ,OACHA,GADG,IAENyH,KAAMgD,WAAOuC,UAAY,GAAKhN,EAAQ,OAExCvC,KAAI,UAAE4gB,yBAAF,aAAE,EAAmB5gB,KACzB2C,QAASA,EACTH,WAAY,CACVK,SAAU,GACViC,OAAQA,GAEVpC,YAAaA,EAAclE,YAAckE,GAAe,GACxDE,SAAUA,EACViM,IAAKrD,EACL/I,cAAcod,aAAA,EAAAA,EAAWjP,KAAS,S,wCCnIpC7Q,EAAOtC,GAAGuC,KAAVD,GACA8gB,EAAoBpjB,GAAGyC,WAAvB2gB,gBACArgB,EAAa/C,GAAGC,QAAhB8C,SAEO,gBAAgC,IAA7BmH,EAA4B,EAA5BA,KAAMsH,EAAsB,EAAtBA,OAAQtO,EAAc,EAAdA,QAC9B,EAAwBH,GAAS,GAAjC,mBAAOsgB,EAAP,KAAaC,EAAb,KAEA,OACE,2BAAK5d,MAAO,CAAEtB,QAAS,QAASZ,MAAO,SACrC,oBAAC4f,EAAD,CACEnc,MAAM,OACNwI,KACE,gCACGnN,EAAG,qBAAsB,iBAAkB,IAC5C,yBACE+F,KAAK,IACLzE,QAAS,SAACI,GACRsf,GAASD,GACTrf,EAAEuf,mBAGHjhB,EAAG,eAAgB,oBAEnB+gB,GACD,2BAAK3d,MAAO,CAAE8d,UAAW,SACtBlhB,EACC,uPACA,mBAMVE,UAAW,+BACX8S,YAAahT,EAAG,mBAAoB,iBACpCjC,MAAO6J,GAAQ,GACfwF,SAAU,SAACxF,GAAD,OAAUsH,EAAO,CAAEtH,UAC7BuZ,aAAa,MACbvgB,QAASA,O,wCCtCjB,EAOIlD,GAAGyC,WANLI,EADF,EACEA,OACA6gB,EAFF,EAEEA,YACAzR,EAHF,EAGEA,YACAnP,EAJF,EAIEA,KACAsP,EALF,EAKEA,SACAC,EANF,EAMEA,UAEMtP,EAAa/C,GAAGC,QAAhB8C,SACAT,EAAOtC,GAAGuC,KAAVD,GAEO,gBAQX,IAPFyC,EAOC,EAPDA,WAEA0P,GAKC,EANDhJ,cAMC,EALDgJ,MACAkP,EAIC,EAJDA,YACA1c,EAGC,EAHDA,MACA2c,EAEC,EAFDA,aACAtO,EACC,EADDA,YAEQlT,EAAQ2C,EAAR3C,IACR,EAA0BW,EAAS,CAAEX,QAArC,mBAAOmN,EAAP,KAAcgE,EAAd,KACA,OACE,oBAACmQ,EAAD,CACEjP,KAAMA,EACNxN,MAAOA,GAAS3E,EAAG,wBAAyB,iBAC5CshB,aAAcA,GAAgBthB,EAAG,kBAAmB,kBAEpD,4BACEuhB,SAAU,SAAC7f,GACTA,EAAEuf,iBACFI,EAAYpU,EAAM1G,OAGpB,oBAAC/F,EAAD,CAAM4C,MAAO,CAAElC,MAAO,OAAQ+T,SAAU,UACtC,oBAAClF,EAAD,KACE,oBAACJ,EAAD,CACEnR,KAAK,MACL0B,UAAW,gCACX8S,YAAaA,GAAehT,EAAG,cAAe,iBAC9CjC,MAAOkP,EAAM1G,IACb6G,SAAU,SAAC7G,GAAD,OAAS0K,EAAS,CAAE1K,YAGlC,oBAACuJ,EAAD,KACE,oBAACvP,EAAD,CAAQ6B,WAAS,EAACgB,MAAO,CAAEoe,aAAc,OAAShjB,KAAK,UACpDwB,EAAG,YAAa,wB,8GC9ChB,aACb,OACE,+BACE,8CACEoD,MAAO,CAAElC,MAAO,MAAOsgB,aAAc,UAEvC,8CACEpe,MAAO,CAAEjC,OAAQ,OAAQqgB,aAAc,YCJvCxhB,EAAOtC,GAAGuC,KAAVD,GACR,EAA+CtC,GAAGyC,WAA1C6M,EAAR,EAAQA,cAAe2C,EAAvB,EAAuBA,YAAaE,EAApC,EAAoCA,OACpC,EAAgCnS,GAAGC,QAA3BE,EAAR,EAAQA,UAAW4C,EAAnB,EAAmBA,SAGJ,cAAoC,IAAjCoN,EAAgC,EAAhCA,QAAS4T,EAAuB,EAAvBA,iBACzB,EAAgChhB,GAAS,GAAzC,mBAAOihB,EAAP,KAAiBC,EAAjB,KACA,EAA0BlhB,EAAS,CACjC,CAAE1C,MAAO,KAAM4G,MAAO3E,EAAG,qBAAsB,oBADjD,mBAAO4hB,EAAP,KAAcC,EAAd,KAGA,EAA0BphB,EAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KAEMkR,EAAU,uCAAG,8BAAApX,EAAA,6DACjBiX,GAAY,GADK,kBAGOjkB,GAAGmN,SAAS,CAChC1E,KAAM,qCAJO,OAGT4b,EAHS,OAOXC,EAAcJ,GACjBG,GAAW,IAAIpb,SAAQ,SAACsb,GACvBD,EAAW,sBACNA,GACA,CACD,CACEjkB,MAAOkkB,EAAKvY,GACZ/E,MAAOsd,EAAK5R,WAKpBwR,EAASG,GAnBM,kDAqBf,4BAAI,KAAG5jB,SACLwS,EAAS,KAAExS,SAtBE,yBAyBfujB,GAAY,GAzBG,6EAAH,qDAiChB,OAJA9jB,GAAU,WACRikB,MACC,IAECJ,EAEA,+BACE,oBAACQ,EAAD,MACA,oBAACA,EAAD,OAKFvR,EAEA,oBAACd,EAAD,CAAQ3P,UAAU,gBAAgB/B,OAAO,QAAQkV,eAAe,GAC7D1C,GAML,+BACE,oBAAC3D,EAAD,CACErI,MAAO3E,EAAG,qBAAsB,iBAChCjC,MAAO8P,aAAF,EAAEA,EAASsU,cAChBtU,QAAS+T,EACTxU,SAAU,SAAC+U,GAAD,OAAmBV,EAAiB,CAAEU,qBAElD,oBAACxS,EAAD,CACEhL,MAAO3E,EAAG,MAAO,iBACjBmN,KACE,6BACGnN,EACC,qEACA,kBAINjC,MAAO8P,aAAF,EAAEA,EAASuU,aAChBhV,SAAU,SAACgV,GAAD,OAAkBX,EAAiB,CAAEW,sBCjF/CpiB,EAAOtC,GAAGuC,KAAVD,GACR,EAAkCtC,GAAGyC,WAA7B6M,EAAR,EAAQA,cAAe6C,EAAvB,EAAuBA,OACvB,EAAgCnS,GAAGC,QAA3BE,EAAR,EAAQA,UAAW4C,EAAnB,EAAmBA,SAGJ,cAAoC,IAAjCoN,EAAgC,EAAhCA,QAAS4T,EAAuB,EAAvBA,iBACzB,EAAgChhB,GAAS,GAAzC,mBAAOihB,EAAP,KAAiBC,EAAjB,KACA,EAA4BlhB,EAAS,CACnC,CAAE1C,MAAO,KAAM4G,MAAO3E,EAAG,iBAAkB,oBAD7C,mBAAOqiB,EAAP,KAAeC,EAAf,KAGA,EAA0B7hB,EAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KAEM2R,EAAW,uCAAG,8BAAA7X,EAAA,6DAClBiX,GAAY,GADM,kBAGMjkB,GAAGmN,SAAS,CAChC1E,KAAM,uCAJQ,OAGV4b,EAHU,OAOZC,EAAcK,GACjBN,GAAW,IAAIpb,SAAQ,SAACsb,GACvBD,EAAW,sBACNA,GACA,CACD,CACEjkB,MAAOkkB,EAAKvY,GACZ/E,MAAOsd,EAAK5R,WAKpBiS,EAAUN,GAnBM,kDAqBhB,4BAAI,KAAG5jB,SACLwS,EAAS,KAAExS,SAtBG,yBAyBhBujB,GAAY,GAzBI,6EAAH,qDAiCjB,OAJA9jB,GAAU,WACR0kB,MACC,IAECb,EACK,oBAACQ,EAAD,MAGLvR,EAEA,oBAAC,EAAD,CAAQzQ,UAAU,gBAAgB/B,OAAO,QAAQkV,eAAe,GAC7D1C,GAML,+BACE,oBAAC,EAAD,CACEhM,MAAO3E,EAAG,iBAAkB,iBAC5BjC,MAAO8P,aAAF,EAAEA,EAASsU,cAChBtU,QAASwU,EACTjV,SAAU,SAAC+U,GAAD,OAAmBV,EAAiB,CAAEU,uBC/DhDniB,EAAOtC,GAAGuC,KAAVD,GACR,EAAkCtC,GAAGyC,WAA7B6M,EAAR,EAAQA,cAAe6C,EAAvB,EAAuBA,OACvB,EAAgCnS,GAAGC,QAA3BE,EAAR,EAAQA,UAAW4C,EAAnB,EAAmBA,SAGJ,cAAoC,IAAjCoN,EAAgC,EAAhCA,QAAS4T,EAAuB,EAAvBA,iBACzB,EAA0ChhB,GAAS,GAAnD,mBAAO+hB,EAAP,KAAsBC,EAAtB,KACA,EAAwChiB,GAAS,GAAjD,mBAAOiiB,EAAP,KAAqBC,EAArB,KAEA,EAA0BliB,EAAS,CACjC,CAAE1C,MAAO,KAAM4G,MAAO3E,EAAG,gBAAiB,oBAD5C,mBAAO4hB,EAAP,KAAcC,EAAd,KAGA,EAAwBphB,EAAS,CAC/B,CAAE1C,MAAO,KAAM4G,MAAO3E,EAAG,eAAgB,oBAD3C,mBAAO4iB,EAAP,KAAaC,EAAb,KAGA,EAA0BpiB,EAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KAEMkR,EAAU,uCAAG,8BAAApX,EAAA,6DACjB+X,GAAiB,GADA,kBAGO/kB,GAAGmN,SAAS,CAChC1E,KAAM,0CAJO,OAGT4b,EAHS,OAOXC,EAAcJ,GACjBG,GAAW,IAAIpb,SAAQ,SAACsb,GACvBD,EAAW,sBACNA,GACA,CACD,CACEjkB,MAAOkkB,EAAKvY,GACZ/E,MAAOsd,EAAK5R,MAAQrQ,EAAG,eAAgB,uBAK/C6hB,EAASG,GAnBM,kDAqBf,4BAAI,KAAG5jB,SACLwS,EAAS,KAAExS,SAtBE,yBAyBfqkB,GAAiB,GAzBF,6EAAH,qDA6BVK,EAAS,uCAAG,8BAAApY,EAAA,6DAChBiY,GAAgB,GADA,kBAGQjlB,GAAGmN,SAAS,CAChC1E,KAAM,yCAJM,OAGR4b,EAHQ,OAOVgB,EAAaH,GAChBb,GAAW,IAAIpb,SAAQ,SAACqc,GACvBD,EAAU,sBACLA,GACA,CACD,CACEhlB,MAAOilB,EAAItZ,GACX/E,MAAOqe,EAAIA,UAKnBH,EAAQE,GAnBM,kDAqBd,4BAAI,KAAG3kB,SACLwS,EAAS,KAAExS,SAtBC,yBAyBdukB,GAAgB,GAzBF,6EAAH,qDAkCf,OALA9kB,GAAU,WACRikB,IACAgB,MACC,IAECnS,EAEA,oBAAC,EAAD,CAAQzQ,UAAU,gBAAgB/B,OAAO,QAAQkV,eAAe,GAC7D1C,GAML,+BACG6R,EACC,oBAACN,EAAD,MAEAN,EAAM9iB,OAAS,GACb,oBAAC,EAAD,CACE6F,MAAO3E,EAAG,gBAAiB,iBAC3BjC,MAAO8P,aAAF,EAAEA,EAASsU,cAChBtU,QAAS+T,EACTxU,SAAU,SAAC+U,GAAD,OAAmBV,EAAiB,CAAEU,qBAKrDO,EACC,oBAACR,EAAD,MAEAU,EAAK9jB,OAAS,GACZ,oBAAC,EAAD,CACE6F,MAAO3E,EAAG,eAAgB,iBAC1BjC,MAAO8P,aAAF,EAAEA,EAASuU,aAChBvU,QAAS+U,EACTxV,SAAU,SAACgV,GAAD,OAAkBX,EAAiB,CAAEW,sBC/GnDpiB,EAAOtC,GAAGuC,KAAVD,GACR,EAAkCtC,GAAGyC,WAA7B6M,EAAR,EAAQA,cAAe6C,EAAvB,EAAuBA,OACvB,EAAgCnS,GAAGC,QAA3BE,EAAR,EAAQA,UAAW4C,EAAnB,EAAmBA,SAGJ,cAAoC,IAAjCoN,EAAgC,EAAhCA,QAAS4T,EAAuB,EAAvBA,iBACzB,EAA0ChhB,GAAS,GAAnD,mBAAO+hB,EAAP,KAAsBC,EAAtB,KACA,EAAwChiB,GAAS,GAAjD,mBAAOiiB,EAAP,KAAqBC,EAArB,KAEA,EAA0BliB,EAAS,CACjC,CAAE1C,MAAO,KAAM4G,MAAO3E,EAAG,gBAAiB,oBAD5C,mBAAO4hB,EAAP,KAAcC,EAAd,KAGA,EAAwBphB,EAAS,CAC/B,CAAE1C,MAAO,KAAM4G,MAAO3E,EAAG,eAAgB,oBAD3C,mBAAO4iB,EAAP,KAAaC,EAAb,KAGA,EAA0BpiB,EAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KAEMkR,EAAU,uCAAG,8BAAApX,EAAA,6DACjB+X,GAAiB,GADA,kBAGO/kB,GAAGmN,SAAS,CAChC1E,KAAM,qCAJO,OAGT4b,EAHS,OAOXC,EAAcJ,GACjBG,GAAW,IAAIpb,SAAQ,SAACsb,GACvBD,EAAW,sBACNA,GACA,CACD,CACEjkB,MAAOkkB,EAAKvY,GACZ/E,MAAOsd,EAAK/c,OAAS+c,EAAKxN,WAKlCoN,EAASG,GAnBM,kDAqBf,4BAAI,KAAG5jB,SACLwS,EAAS,KAAExS,SAtBE,yBAyBfqkB,GAAiB,GAzBF,6EAAH,qDA6BVK,EAAS,uCAAG,8BAAApY,EAAA,6DAChBiY,GAAgB,GADA,kBAGQjlB,GAAGmN,SAAS,CAChC1E,KAAM,oCAJM,OAGR4b,EAHQ,OAOVgB,EAAaH,GAChBb,GAAW,IAAIpb,SAAQ,SAACqc,GACvBD,EAAU,sBACLA,GACA,CACD,CACEhlB,MAAOilB,EAAItZ,GACX/E,MAAOqe,EAAI9d,OAAS8d,EAAIvO,WAKhCoO,EAAQE,GAnBM,kDAqBd,4BAAI,KAAG3kB,SACLwS,EAAS,KAAExS,SAtBC,yBAyBdukB,GAAgB,GAzBF,6EAAH,qDAkCf,OALA9kB,GAAU,WACRikB,IACAgB,MACC,IAECnS,EAEA,oBAAC,EAAD,CAAQzQ,UAAU,gBAAgB/B,OAAO,QAAQkV,eAAe,GAC7D1C,GAML,+BACG6R,EACC,oBAACN,EAAD,MAEAN,EAAM9iB,OAAS,GACb,oBAAC,EAAD,CACE6F,MAAO3E,EAAG,gBAAiB,iBAC3BjC,MAAO8P,aAAF,EAAEA,EAASsU,cAChBtU,QAAS+T,EACTxU,SAAU,SAAC+U,GAAD,OAAmBV,EAAiB,CAAEU,qBAKrDO,EACC,oBAACR,EAAD,MAEAU,EAAK9jB,OAAS,GACZ,oBAAC,EAAD,CACE6F,MAAO3E,EAAG,eAAgB,iBAC1BjC,MAAO8P,aAAF,EAAEA,EAASuU,aAChBvU,QAAS+U,EACTxV,SAAU,SAACgV,GAAD,OAAkBX,EAAiB,CAAEW,sBC/GnDpiB,EAAOtC,GAAGuC,KAAVD,GACR,EAA8CtC,GAAGyC,WAAzC6M,EAAR,EAAQA,cAAezM,EAAvB,EAAuBA,OAAQC,EAA/B,EAA+BA,KAAMoP,GAArC,EAAqCA,KACrC,GAAgClS,GAAGC,QAA3BE,GAAR,GAAQA,UAAW4C,GAAnB,GAAmBA,SAQJ,eAAoC,IAAjCoN,EAAgC,EAAhCA,QAAS4T,EAAuB,EAAvBA,iBACzB,EAAgChhB,IAAS,GAAzC,mBAAOihB,EAAP,KAAiBC,EAAjB,KACA,EAAgClhB,GAAS,CACvC,CAAE1C,MAAO,OAAQ4G,MAAO3E,EAAG,OAAQ,oBADrC,mBAAO6X,EAAP,KAAiBD,EAAjB,KAGA,EAA0BnX,GAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KAEMqS,EAAa,CACjBC,6BAA8B,CAC5Bve,MAAO,iBACP5G,MAAO,kBAETolB,wBAAyB,CACvBxe,MAAO,YACP5G,MAAO,aAETqlB,yBAA0B,CACxBze,MAAO,aACP5G,MAAO,cAETslB,wBAAyB,CACvB1e,MAAO,YACP5G,MAAO,cAILulB,EAAa,uCAAG,8BAAA5Y,EAAA,6DACpBiX,GAAY,GACZ/Q,EAAS,IAFW,kBAIIlT,GAAGmN,SAAS,CAChC1E,KAAM,mBALU,OAIZ4b,EAJY,OAOdwB,EAAgB1L,EACpB1Q,OAAO0H,KAAKkT,GAASpb,SAAQ,SAACmI,GAAS,IAAD,EAChCmU,WAAanU,IAAb,UAAqBiT,EAAQjT,UAA7B,OAAqB,EAAc0U,YACrCD,EAAa,sBAAOA,GAAkB,CAACN,EAAWnU,SAGtD8I,EAAY2L,GAbM,kDAelB,4BAAI,KAAGnlB,SACLwS,EAAS,KAAExS,SAhBK,yBAmBlBujB,GAAY,GAnBM,6EAAH,qDA+CnB9jB,IAAU,WACRylB,MACC,IA0CH,OAAI5B,EACK,oBAACQ,EAAD,MAIP,+BACGvR,EACAkH,EAAS/Y,OAAS,EACjB,+BACE,oBAAC,EAAD,CACE6F,MAAO3E,EAAG,2BAA4B,iBACtCjC,MAAO8P,aAAF,EAAEA,EAAS7I,SAChB6I,QAASgK,EACTzK,SAAU,SAACpI,GAAD,OAAcyc,EAAiB,CAAEzc,gBArDxB,WAC3B,IAAMye,EAAQ5L,EAAS9N,MACrB,SAAC2Z,GAAD,OAAaA,EAAQ3lB,SAAU8P,aAAlB,EAAkBA,EAAS7I,aAE1C,GAAKmC,OAAO0H,KAAK4U,GAAS,IAAI3kB,OAI9B,OAAQ+O,aAAR,EAAQA,EAAS7I,UACf,IAAK,YACH,OACE,oBAAC2e,EAAD,CACE9V,QAASA,EACT4T,iBAAkBA,IAGxB,IAAK,aACH,OACE,oBAACmC,EAAD,CACE/V,QAASA,EACT4T,iBAAkBA,IAGxB,IAAK,iBACH,OACE,oBAACoC,EAAD,CACEhW,QAASA,EACT4T,iBAAkBA,IAGxB,IAAK,YACH,OACE,oBAACqC,EAAD,CACEjW,QAASA,EACT4T,iBAAkBA,KAqBnBsC,IAjFL,oBAACvjB,EAAD,KACE,oBAACD,EAAD,CACE4W,OAAO,SACPpR,KAAK,wFACLgT,aAAW,EACXP,SAAO,GAENxY,EAAG,qBAAsB,kBAE5B,oBAACO,EAAD,CACEiY,SAAO,EACPlX,QAAS,SAACI,GACRA,EAAEuf,iBACFqC,MAGF,oBAAC1T,GAAD,CAAMuC,KAAK,e,8lBC1DN,gBAA8C,IAAlClF,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,YAAahN,EAAa,EAAbA,UACrC6D,EAA0BkJ,EAA1BlJ,iBAAkByM,EAAQvD,EAARuD,IAEpBhO,EAAWH,qBAAU,SAACa,GAC1B,OAAOA,EAAO,wBAAwBV,cAGlCif,EAAmB,SAACzS,GACxB9B,EAAY,GAAD,MACND,GADM,IAETlJ,iBAAiB,GAAD,MACXA,GACAiL,OAeT,OACE,oBAAK9O,UAAWA,GACd,aAAC,cAAD,KACE,uBAAKF,aAAG,gBAAiB,mBAE3B,aAAC,cAAD,CAAaE,UAAU,sCACrB,aAAC,gBAAD,CACEyE,MAAO3E,aAAG,SAAU,iBACpBmN,KAAMnN,aACJ,8DACA,iBAEFoN,SAAU,SAAChI,GACTqc,EAAiB,CACfrc,aAGJkI,QAASvJ,aAAF,EAAEA,EAAkBqB,aAG5BrB,YAAkBqB,UACnB,iCACE,aAAC,cAAD,CAAalF,UAAU,8CACrB,aAAC,eAAD,CACEyE,MAAO3E,aAAG,0BAA2B,iBACrCyP,cAAc,MACdrC,SAAU,SAAC0N,GACT2G,EAAiB,CACf3G,gBAGJQ,MAAO,CACL,CACEvd,MAAO,EACP4G,MAAO3E,aAAG,QAAS,kBAErB,CACEjC,MAAO,GACP4G,MAAO3E,aAAG,cAAe,kBAE3B,CACEjC,MAAO,IACP4G,MAAO3E,aAAG,MAAO,mBAGrBub,UAAW,EACXxd,OAAOgG,aAAA,EAAAA,EAAkB+W,aAAc,MAI1CtK,aAAA,EAAAA,EAAKpL,WAAWrB,aAAA,EAAAA,EAAkB+W,eAAetK,aAAjC,EAAiCA,EAAKsK,aACrD,aAAC,SAAD,CACE7Z,IAAKA,aAAF,0FAGH9C,OAAO,UACPkV,eAAe,GAEdrT,aACC,kEACA,iBAEF,aAAC,SAAD,CACEsB,QAzEK,WACjB4L,EAAY,GAAD,MACND,GADM,IAETuD,IAAI,GAAD,MACEA,GACA,CAAEpL,SAAS,QAqENoW,QAAM,EACNva,IAAKA,aAAF,6FAIFjB,aAAG,yBAA0B,mBAKpC,aAAC,cAAD,CAAaE,UAAU,sCACrB,aAAC,gBAAD,CACEyE,MAAO3E,aAAG,iBAAkB,iBAC5BmN,KAAMnN,aAAG,sBAAuB,iBAChCoN,SAAU,SAAC+S,GACTsB,EAAiB,CACftB,gBAGJ7S,QAASvJ,aAAF,EAAEA,EAAkBoc,cAI/B,aAAC,cAAD,CAAajgB,UAAU,sCACrB,aAAC,kBAAD,CACEyE,MAAO3E,aAAG,WAAY,iBACtBmN,KAAMnN,aAAG,8BAA+B,iBACxCjC,MAAOgG,aAAF,EAAEA,EAAkBkX,SACzB7N,SAAU,SAAC6N,GACTwG,EAAiB,CACfxG,iBAMR,aAAC,cAAD,CAAa/a,UAAU,sCACrB,aAAC,kBAAD,CACEyE,MAAO3E,aAAG,cAAe,iBACzBmN,KAAMnN,aACJ,+CACA,iBAEFjC,MAAOgG,aAAF,EAAEA,EAAkB2X,YACzBtO,SAAU,SAACsO,GACT+F,EAAiB,CACf/F,oBAMR,aAAC,cAAD,CAAaxb,UAAU,sCACrB,aAAC,cAAD,CACEyE,MAAO3E,aAAG,mBAAoB,iBAC9BmN,KAAM,sBAAInN,aAAG,qBAAsB,kBACnCjC,MAAOgG,aAAF,EAAEA,EAAkBoX,YACzB/N,SAAU,SAAC+N,GAAD,OAAiBsG,EAAiB,CAAEtG,oBAIlD,aAAC,cAAD,CAAajb,UAAU,wCACrB,aAAC,OAAD,KACE,aAAC,cAAYkP,YAAb,KACGpP,aAAG,eAAgB,kBAEtB,aAACqP,GAAA,EAAD,CACE3O,OAAO8P,aAAA,EAAAA,EAAKoL,gBAAgBpZ,aAArB,EAAqBA,EAAU9B,OACtCC,SAAU,SAAC5C,GAAD,OACR0jB,EAAiB,CACf7F,aAAc7d,GAASA,EAAM6D,WAMvC,aAAC,cAAD,CAAa1B,UAAU,6CACrB,aAAC,OAAD,KACE,aAAC,cAAYkP,YAAb,KACGpP,aAAG,oBAAqB,kBAE3B,aAACqP,GAAA,EAAD,CACE3O,OAAO8P,aAAA,EAAAA,EAAKqL,oBAAqB,UACjClb,SAAU,SAAC5C,GAAD,OACR0jB,EAAiB,CACf5F,kBAAmB9d,GAASA,EAAM6D,WAO5C,uBAAK5B,aAAG,YAAa,kBACrB,aAAC,cAAD,KACE,aAACgkB,GAAD,CACEvC,iBAAkBA,EAClB5T,QAAS9J,KAIb,uBAAK/D,aAAG,QAAS,kBAEjB,aAAC,cAAD,KACE,aAAC,eAAD,CACE2E,MAAO3E,aAAG,gBAAiB,iBAC3BmN,KAAMnN,aAAG,kCAAmC,iBAC5CjC,OAAOgG,aAAA,EAAAA,EAAkBV,gBAAiB,EAC1C+J,SAAU,SAAC/J,GAAD,OAAmBoe,EAAiB,CAAEpe,mBAChDiM,IAAK,EACLC,IAAK,U,8DC9NXvP,EAAOtC,GAAGuC,KAAVD,GACR,EAA2DtC,GAAGyC,WAAtDK,EAAR,EAAQA,KAAMsP,EAAd,EAAcA,SAAUC,EAAxB,EAAwBA,UAAWJ,EAAnC,EAAmCA,YAAapP,EAAhD,EAAgDA,OACxCE,EAAa/C,GAAGC,QAAhB8C,SAwEOwjB,EApEC,SAAC,GASV,IARL/U,EAQI,EARJA,OACAgV,EAOI,EAPJA,IACAxQ,EAMI,EANJA,OACAxT,EAKI,EALJA,UACAxB,EAII,EAJJA,KACAwG,EAGI,EAHJA,MAIA,GADI,EAFJqO,SAEI,EADJ4Q,WAEkC1jB,EAAS/B,IAA3C,mBAAO0lB,EAAP,KAAkBC,EAAlB,KAEA,OACE,oBAAC7jB,EAAD,CAAMyH,MAAM,SAAS/H,UAAWA,GAC9B,oBAAC4P,EAAD,KACE,oBAACH,EAAD,aACEzP,UAAW,+BACXkD,MAAO,CAAElC,MAAO,QAChB8R,YAAa,OACbjV,MAAOqmB,EACPhX,SAAU,SAAC1O,GAAD,OAAU2lB,EAAa3lB,IACjC4lB,OAAQ,WACN,IAAI5lB,EAAOW,YAAa+kB,GACxBlV,EAAO,CAAExQ,SACT2lB,EAAa3lB,IAEfyiB,aAAa,OAXf,cAYc,UAIhB,oBAACpR,EAAD,KACE,oBAACJ,EAAD,CACEzP,UAAW,gCACX8S,YAAahT,EAAG,QAAS,iBACzBjC,MAAOmH,GAAS,GAChBkI,SAAU,SAAClI,GAAD,OAAWgK,EAAO,CAAEhK,WAC9Bic,aAAa,SAIjB,oBAACrR,EAAD,KACG4D,GACC,oBAACnT,EAAD,CACE4R,KAAK,QACLjS,UAAU,qBACVkD,MAAO,CAAEoe,aAAc,OACvB7c,MAAO3E,EAAG,iBAAkB,iBAC5BsB,QAASoS,IAGZwQ,GACC,oBAAC3jB,EAAD,CACE4R,KAAK,WACLjS,UAAU,kBACVyE,MAAO3E,EAAG,cAAe,iBACzBoD,MAAO,CAAEoe,aAAc,OACvBlgB,QAAS,WACP4iB,IACAG,EAAa,U,ykBC9DZ3mB,GAAGuC,KAAVD,GAAR,IACQS,EAAa/C,GAAGC,QAAhB8C,SACAnC,EAAaZ,GAAGW,KAAhBC,SA+GOqY,IA5GO,SAAC,GAAmC,IAAD,EAAhCxN,EAAgC,EAAhCA,cAAe1G,EAAiB,EAAjBA,WAChC0hB,EAAa,WACjB7lB,EAAS,wBAAwBiO,aAAY,IAE/C,GAAI,UAACF,oBAAD,QAAC,EAAcC,UACjB,OACE,oBAAC,EAAD,CACEiH,UAAU,EACVrT,UAAU,oBACVxB,KAAM,GACNwG,MAAO,GACPgK,OAAQ,aACRiV,WAAYA,EACZD,IAAKC,IAKX,IAAQrhB,EAAaL,EAAbK,SAER,EAAwBrC,EAAS,CAC/ByE,MAAO,GACPxG,KAAM,KAFR,mBAAKY,EAAL,KAAYilB,EAAZ,KAuDA,OACE,yCAbQzhB,GAAY,IAAI0hB,MAAK,SAAU9Z,EAAG9G,GACxC,OACE7E,SAAS2L,EAAEhM,KAAKG,MAAM,KAAK,IAAME,SAAS6E,EAAElF,KAAKG,MAAM,KAAK,KAC5D,EAEOE,SAAS2L,EAAEhM,KAAKG,MAAM,KAAK,IAAME,SAAS6E,EAAElF,KAAKG,MAAM,KAAK,IAE5DE,SAAS2L,EAAEhM,KAAKG,MAAM,KAAK,IAAME,SAAS6E,EAAElF,KAAKG,MAAM,KAAK,OAO3DuL,KAAI,SAACqa,EAAShP,GACtB,OACE,oBAAC,EAAD,CACE3G,IAAG,UAAK2G,EAAL,YAAUgP,EAAQ/lB,MACrBwB,UAAU,aACVxB,KAAM+lB,EAAQ/lB,KACdwG,MAAOuf,EAAQvf,MACfuf,QAASA,EACTvV,OAAQ,SAAC7Q,IA5DG,SAAComB,GAAwB,IAAfpmB,EAAc,uDAAP,GACjCqmB,EAAY5hB,EAASpD,QAAQ+kB,GAC7BzV,EAAUlM,EAASsH,KAAI,SAACC,EAAM1K,GAEhC,OAAIA,IAAU+kB,EACLra,EAGF,EAAP,KACKA,GACAhM,MAGP8K,EAAc,CAAErG,SAAUkM,IAgDhB2V,CAAcF,EAASpmB,IAEzBqV,OAAQ,YA/CI,SAAC+Q,GACrB,IAAI9kB,EAAQmD,EAASpD,QAAQ+kB,GAC7Btb,EAAc,CAAErG,SAAUA,EAASoc,QAAO,SAAC3U,EAAGkL,GAAJ,OAAUA,IAAM9V,OA8ChDilB,CAAcH,SAMtB,oBAAC,EAAD,CACEvkB,UAAU,oBACVxB,KAAMY,EAAMZ,KACZwG,MAAO5F,EAAM4F,MACbgK,OAAQ,SAAC7Q,GACPkmB,EAAS,EAAD,KAAMjlB,GAAUjB,KAE1B6lB,IAxDa,WACZ5kB,EAAMZ,MAASY,EAAM4F,QAG1BiE,EAAc,CACZrG,SAAS,GAAD,mBACFA,GAAY,IACb,CAAC,CAAEpE,KAAMY,EAAMZ,KAAMwG,MAAO5F,EAAM4F,WAGzCqf,EAAS,CACPrf,MAAO,GACPxG,KAAM,Y,mrBC9DZ,IAAQsB,EAAOtC,GAAGuC,KAAVD,GACR,EAAoDtC,GAAGyC,WAA/CwP,EAAR,EAAQA,YAAakV,EAArB,EAAqBA,aAActkB,EAAnC,EAAmCA,OACnC,GADA,EAA2CC,KACX9C,GAAGC,SAA3B8C,EAAR,EAAQA,SAAU5C,EAAlB,EAAkBA,UAClB,EAAgCH,GAAGW,KAA3BgE,EAAR,EAAQA,UAAW/D,EAAnB,EAAmBA,SAIJ,cAAmC,IAAhCwT,EAA+B,EAA/BA,QAAS/T,EAAsB,EAAtBA,MAAOmT,EAAe,EAAfA,SAChC,EAA4BzQ,GAAS,GAArC,mBAAOqkB,EAAP,KAAeC,EAAf,KAEMC,EAAsBtnB,GAAGW,KAAKgE,WAAU,SAACa,GAAD,OAC5CA,EAAO,QAAQ+hB,QAAQ,OAAQ,eAG3BhiB,EAAUZ,GAAU,SAACa,GACzB,OAAOA,EAAO,wBAAwBD,aAGxCpF,GAAU,WACRqT,EAASjO,EAAQsB,cAChB,CAACtB,aAAD,EAACA,EAASsB,aAEb,IAAM2gB,EAAY,uCAAG,WAAOxjB,GAAP,iBAAAgJ,EAAA,6DACnBhJ,EAAEuf,iBACF8D,GAAU,GACVzmB,EAAS,wBAAwBoT,cAAc,CAAEnN,WAAYxG,IAEvDM,EALa,OAMd4E,GACA,CAAEsB,WAAYxG,IAPA,kBAWIL,GAAGmN,SAAS,CAC/B1E,KAAM,iBACN2E,OAAQ,OACRzM,KAAM,CACJsT,sBAAuBtT,KAfV,OAkBbuT,OAPAA,EAXa,SAkBbA,EAAUD,wBACZrT,EAAS,wBAAwBuT,WAC/BD,aADF,EACEA,EAAUD,uBAEZG,KAtBe,2EA0BjBiT,GAAU,GA1BO,6EAAH,sDA+BlB,OAAKC,EAKH,oBAAMzD,SAAU2D,GACd,YAACvV,EAAD,CACE1O,IAAKA,YAAF,4EAGH0D,MAAO3E,EAAG,qBAAsB,iBAChCmN,KACE,qBACE,YAAC0X,EAAD,CAAc9e,KAAK,2DAChB/F,EAAG,qBAAsB,mBAIhCjC,MAAOA,EACPqP,SAAU,SAAC7I,GAAD,OAAgB2M,EAAS3M,MAIrC,YAAChE,EAAD,CACEgT,SAAUuR,EACVxR,OAAQwR,EACR7jB,IAAKA,YAAF,mEAGHmB,WAAS,EACT5D,KAAK,UAEJwB,EAAG,OAAQ,kBAEd,YAACO,EAAD,CACEe,QAASwQ,EACT7Q,IAAKA,YAAF,mEAGHkB,YAAU,GAETnC,EAAG,SAAU,mBAxCX,I,ykBCvDX,IAAQA,EAAOtC,GAAGuC,KAAVD,GACR,EASItC,GAAGyC,WARLyM,EADF,EACEA,cACApM,EAFF,EAEEA,KACAD,EAHF,EAGEA,OACAwL,EAJF,EAIEA,YACA0C,EALF,EAKEA,aACAkB,EANF,EAMEA,YACA3C,EAPF,EAOEA,cACA8T,EARF,EAQEA,gBAGF,EAAgCpjB,GAAGC,QAA3BE,EAAR,EAAQA,UAAW4C,EAAnB,EAAmBA,SACX4B,EAAc3E,GAAGW,KAAjBgE,UAMO,gBAA+D,IAAnD4K,EAAkD,EAAlDA,MAAOC,EAA2C,EAA3CA,YAAahN,EAA8B,EAA9BA,UAAWnC,EAAmB,EAAnBA,MAAOmT,EAAY,EAAZA,SACvDT,EAAexD,EAAfwD,WACR,EAAsChQ,GAAS,GAA/C,mBAAO0kB,EAAP,KAAoBC,EAApB,KAEM5iB,EAAWH,GAAU,SAACa,GAC1B,OAAOA,EAAO,wBAAwBV,cAElCS,EAAUZ,GAAU,SAACa,GACzB,OAAOA,EAAO,wBAAwBD,aAGlCoiB,EAAkB,SAACrW,GACvB9B,EAAY,OACPD,GADM,IAETwD,WAAW,OACNA,GACAzB,OAKTnR,GAAU,WACH4S,WAAY7I,MACfyd,EAAgB,CACdzd,KAAM,eAGL6I,WAAY6U,aACfD,EAAgB,CACdC,YAAa,WAIZ7U,WAAY0K,aACfkK,EAAgB,CACdlK,YAAa,iBAGhB,CAAClO,IAiCJ,OACE,2BAAK/M,UAAWA,GACd,oBAAC6L,EAAD,KACE,8BAAK/L,EAAG,aAAc,mBAExB,oBAAC+L,EAAD,CAAa7L,UAAU,sCACrB,oBAAC0M,EAAD,CACEjI,MAAO3E,EAAG,SAAU,iBACpBmN,KAAMnN,EACJ,2DACA,iBAEFoN,SAAU,SAAChI,GACTigB,EAAgB,CACdjgB,aAGJkI,QAASmD,aAAF,EAAEA,EAAYrL,aAGtBqL,YAAYrL,UACb,wCACE,oBAAC2G,EAAD,CAAa7L,UAAU,8CACrB,oBAACuO,EAAD,CACE9J,MAAO3E,EAAG,0BAA2B,iBACrCyP,cAAc,MACdrC,SAAU,SAACmY,GACTF,EAAgB,CACdE,sBAGJjK,MAAO,CACL,CACEvd,MAAO,EACP4G,MAAO3E,EAAG,QAAS,kBAErB,CACEjC,MAAO,GACP4G,MAAO3E,EAAG,cAAe,kBAE3B,CACEjC,MAAO,IACP4G,MAAO3E,EAAG,MAAO,mBAGrBub,UAAW,EACXxd,OAAO0S,aAAA,EAAAA,EAAY8U,mBAAoB,KAI3C,oBAACxZ,EAAD,CAAa7L,UAAU,sCACrB,oBAAC4gB,EAAD,CACEnc,MAAO3E,EAAG,OAAQ,iBAClBmN,KAAMnN,EAAG,mBAAoB,iBAC7BjC,MAAO0S,aAAF,EAAEA,EAAY7I,KACnBwF,SAAU,SAACxF,GAAD,OACRyd,EAAgB,CACdzd,aAMR,oBAACmE,EAAD,CAAa7L,UAAU,sCACrB,oBAAC,EAAD,KACE,oBAAC6L,EAAYqD,YAAb,KACGpP,EAAG,wBAAyB,kBAE/B,oBAACqP,EAAA,EAAD,CACE3O,OAAO+P,aAAA,EAAAA,EAAYnN,mBAAoB,UACvC3C,SAAU,SAAC5C,GAAD,OACRsnB,EAAgB,CACd/hB,iBAAkBvF,GAASA,EAAM6D,WAO3C,oBAACmK,EAAD,KACE,8BAAK/L,EAAG,SAAU,mBAGpB,oBAAC+L,EAAD,CAAa7L,UAAU,uCACrB,oBAAC8M,EAAD,CACErI,MAAO3E,EAAG,cAAe,iBACzBjC,MAAO0S,aAAF,EAAEA,EAAY6U,YACnBzX,QAAS,CACP,CACE9P,MAAO,SACP4G,MAAO3E,EAAG,SAAU,kBAEtB,CACEjC,MAAO,UACP4G,MAAO3E,EAAG,oBAAqB,kBAEjC,CACEjC,MAAO,OACP4G,MAAO3E,EAAG,OAAQ,mBAGtBoN,SAAU,SAACkY,GAAD,OACRD,EAAgB,CACdC,oBAMqB,aAA5B7U,aAAA,EAAAA,EAAY6U,eAA6BriB,aAAzC,EAAyCA,EAASsB,aACjD,oBAACqI,EAAD,CACEjI,MAAO3E,EAAG,aAAc,iBACxBmN,KAAMnN,EAAG,4BAA6B,iBACtCoN,SAAU,SAACoY,GACTH,EAAgB,CACdG,kBAGJlY,QAASmD,aAAF,EAAEA,EAAY+U,eArJA,WAC/B,GAAgC,aAA5B/U,aAAA,EAAAA,EAAY6U,aAIhB,OAAOH,EACL,oBAACM,EAAD,CACE3T,QAAS,kBAAMsT,GAAe,IAC9BrnB,MAAOA,EACPmT,SAAUA,IAGZ,+BACE,oBAAC,EAAD,CACE6H,aAAW,EACXzX,QAAS,SAACI,GACRA,EAAEuf,iBACFmE,GAAe,KAGhBniB,WAASsB,WACNvE,EAAG,4BAA6B,iBAChCA,EAAG,yBAA0B,kBAEnC,+BACA,+BACA,gCA+HG0lB,GAE4B,YAA5BjV,aAAA,EAAAA,EAAY6U,cACX,+BACE,oBAACvZ,EAAD,CAAa7L,UAAU,uCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,cAAe,iBACzBmN,KAAM,6BAAInN,EAAG,qBAAsB,kBACnCjC,MAAO0S,aAAF,EAAEA,EAAY0K,YACnB/N,SAAU,SAAC+N,GAAD,OAAiBkK,EAAgB,CAAElK,oBAGjD,oBAACpP,EAAD,CAAa7L,UAAU,uCACrB,oBAAC6L,EAAYqD,YAAb,KACE,iCAAKpP,EAAG,cAAe,mBAEzB,oBAAC2lB,EAAA,EAAD,CACE/N,YAAa,SAAC6D,GACZ4J,EAAgB,CACdjK,YAAaK,KAGjB5D,UAAUpH,aAAA,EAAAA,EAAY2K,cAAe,MAGzC,oBAACrP,EAAD,CAAa7L,UAAU,yCACrB,oBAACuO,EAAD,CACE9J,MAAO3E,EAAG,gBAAiB,iBAC3BmN,KAAMnN,EAAG,8BAA+B,iBACxCjC,OAAO0S,aAAA,EAAAA,EAAYkL,gBAAiB,EACpCvO,SAAU,SAACuO,GAAD,OACR0J,EAAgB,CAAE1J,mBAEpBrM,IAAK,EACLC,IAAK,MAGT,oBAACxD,EAAD,CAAa7L,UAAU,wCACrB,oBAAC,EAAD,KACE,oBAAC6L,EAAYqD,YAAb,KACGpP,EAAG,eAAgB,kBAEtB,oBAACqP,EAAA,EAAD,CACE3O,OAAO+P,aAAA,EAAAA,EAAYmL,gBAAgBpZ,aAA5B,EAA4BA,EAAU9B,OAC7CC,SAAU,SAAC5C,GAAD,OACRsnB,EAAgB,CACdzJ,aAAc7d,GAASA,EAAM6D,WAMvC,oBAACmK,EAAD,CAAa7L,UAAU,6CACrB,oBAAC,EAAD,KACE,oBAAC6L,EAAYqD,YAAb,KACGpP,EAAG,oBAAqB,kBAE3B,oBAACqP,EAAA,EAAD,CACE3O,OAAO+P,aAAA,EAAAA,EAAYoL,oBAAqB,UACxClb,SAAU,SAAC5C,GAAD,OACRsnB,EAAgB,CACdxJ,kBAAmB9d,GAASA,EAAM6D,gB,cCpR5CrE,EAAOC,QAAUC,OAAW,GAAU,Q,4rBCIpD,IAAQuC,EAAOtC,GAAGuC,KAAVD,GACR,EAAqDtC,GAAGyC,WAAhDI,EAAR,EAAQA,OAAQC,EAAhB,EAAgBA,KAAMsP,EAAtB,EAAsBA,SAAUC,EAAhC,EAAgCA,UAAWC,EAA3C,EAA2CA,MAC3C,EAAgCtS,GAAGC,QAA3B8C,EAAR,EAAQA,SAAU5C,EAAlB,EAAkBA,UACVwE,EAAc3E,GAAGW,KAAjBgE,UAsNOujB,IA/MK,SAAC,GAKd,IAJLlZ,EAII,EAJJA,WACAjK,EAGI,EAHJA,WACA0G,EAEI,EAFJA,cACAwD,EACI,EADJA,uBAEA,EAA8BlM,GAAS,GAAvC,mBAAOkL,EAAP,KAAgB+E,EAAhB,KACA,EAAsCjQ,EAAS,IAA/C,mBAAOkC,EAAP,KAAoBkjB,EAApB,KACQhjB,EAA8CJ,EAA9CI,SAAUN,EAAoCE,EAApCF,OAAQzC,EAA4B2C,EAA5B3C,IAAKiF,EAAuBtC,EAAvBsC,OAAQyG,EAAe/I,EAAf+I,WAEjChJ,EAAWH,GAAU,SAACa,GAC1B,OAAOA,EAAO,wBAAwBV,cAGlCyK,EAAQ5K,GAAU,SAACa,GAAD,OACtBA,EAAO,wBAAwB4iB,UAAUvjB,MAI3C1E,GAAU,WACHgF,EAAS/D,QACZinB,MAED,IAGH,IAwBMA,EAAa,WACjB,IAAIC,EAAiB,CACnBC,UAAW,OACXC,QAAS,OACTte,KAAM5H,EAAG,0BAA2B,iBACpCmmB,KAAM,GACN5kB,SAAU,YACVb,MAAO,OACPkO,gBAAiB,OACjBnL,QAAS,IAGPZ,EAASA,EAAS/D,OAAS,KAE7BknB,EAAc,KADMnjB,EAASA,EAAS/D,OAAS,KAIjDknB,EAAetc,GAAK0c,YAAO,IAE3Bjd,EAAc,CACZtG,SAAS,GAAD,mBAAOA,GAAY,IAAQ,CAACmjB,OAyCxC,OACE,YAAChW,EAAD,CACE9K,MAAOlF,EAAG,wBAAyB,iBACnC4S,eAAgBlG,EAChBxM,UAAU,+BACV2S,iBAAiB,uCACjBwT,2BAA2B,GAE3B,mBAAKnmB,UAAU,gCAAgC4S,UAAQ,gBACrD,YAACtS,EAAD,CAAMyH,MAAM,UAAU/H,UAAU,qCAC9B,YAAC4P,EAAD,CAAU5P,UAAU,gCAClB,mBAAKe,IAAK,CAAEgB,QAAS,SA9CrBY,GAAY,IAAI2hB,MAAK,SAAU9Z,EAAG9G,GACxC,OACE7E,SAAS2L,EAAEub,UAAUpnB,MAAM,KAAK,IAC9BE,SAAS6E,EAAEqiB,UAAUpnB,MAAM,KAAK,KAClC,EAGEE,SAAS2L,EAAEub,UAAUpnB,MAAM,KAAK,IAChCE,SAAS6E,EAAEqiB,UAAUpnB,MAAM,KAAK,IAIhCE,SAAS2L,EAAEub,UAAUpnB,MAAM,KAAK,IAChCE,SAAS6E,EAAEqiB,UAAUpnB,MAAM,KAAK,OAkClBuL,KAAI,SAACkc,EAAS7Q,GACtB,OACE,YAAC,IAAD,CACE3G,IAAG,UAAK2G,EAAL,YAAU6Q,EAAQL,WACrBM,aAAc9Q,EACdvV,UAAU,yBACV+lB,UAAWK,EAAQL,UACnBC,QAASI,EAAQJ,QACjBte,KAAM0e,EAAQ1e,KACdue,KAAMG,EAAQH,KACd5kB,SAAU+kB,EAAQ/kB,SAClBb,MAAO4lB,EAAQ5lB,MACfkO,gBAAiB0X,EAAQ1X,gBACzBnL,QAAS6iB,EAAQ7iB,QACjB6iB,QAASA,EACTpX,OAAQ,SAAC7Q,IAhHL,SAACioB,GAAwB,IAAfjoB,EAAc,uDAAP,GACjCqmB,EAAY7hB,EAASnD,QAAQ4mB,GAC7BtX,EAAUnM,EAASuH,KAAI,SAACC,EAAM1K,GAEhC,OAAIA,IAAU+kB,EACLra,EAGF,EAAP,KACKA,GACAhM,MAIP8K,EAAc,CAAEtG,SAAUmM,IAmGRwX,CAAcF,EAASjoB,IAEzBqV,OAAQ,YAjGJ,SAAC4S,GACrB,IAAI3mB,EAAQkD,EAASnD,QAAQ4mB,GAC7Bnd,EAAc,CAAEtG,SAAUA,EAASqc,QAAO,SAAC3U,EAAGkL,GAAJ,OAAUA,IAAM9V,OAgGxC8mB,CAAcH,IAEhBI,kBAAmB,SAACroB,IAhDP,SAACK,GAC9BmnB,EAAe,IACfc,EAAQC,UAAS,WACff,EAAennB,MA8CCmoB,CAAuBxoB,SAK/B,YAACkC,EAAD,CAAQ6B,WAAS,EAACd,QAASykB,GACxB/lB,EAAG,iBAAkB,oBAI5B,YAAC+P,EAAD,CAAW7P,UAAU,sCACnB,YAAC,IAAD,CACE0C,QAAQ,OACRD,YAAaA,EACb7C,IAAK0L,GAAc1L,EACnB8f,YAAY,EACZ3S,MAAK,OACAA,GADA,IAEHc,mBAAmB,EACnB+Y,aAAa,IAEftkB,SAAUA,EACVuC,OAAQA,EACRlC,SAAUA,MAKhB,uBAEA,mBACE5B,IAAKA,YAAF,kJAMH,mBACEA,IAAKA,YAAF,uGAKL,uBACE,YAACV,EAAD,CAAQ4B,YAAU,EAACb,QAASoL,EAAYtJ,MAAO,CAAElB,OAAQ,UACtDlC,EAAG,SAAU,kBAEhB,YAACO,EAAD,CACE6B,WAAS,EACTkR,OAAQ3H,EACR4H,SAAU5H,EACVrK,QA5FC,WACXoP,GAAW,GACX/D,EAAuB9J,GACvB6N,GAAW,GACXhE,KAyFUoG,UAAQ,iBAEP9S,EAAG,gBAAiB,yB,gGCpN3BA,EAAOtC,GAAGuC,KAAVD,GACR,EASItC,GAAGyC,WARLK,EADF,EACEA,KACAsP,EAFF,EAEEA,SACAH,EAHF,EAGEA,YACApP,EAJF,EAIEA,OACAwL,EALF,EAKEA,YACAyC,EANF,EAMEA,aACAC,EAPF,EAOEA,aAGF,GAVA,EAQEsY,gBAE4BrpB,GAAGC,SAAzBC,EAAR,EAAQA,OAAQC,EAAhB,EAAgBA,UAQR4C,EAAa/C,GAAGC,QAAhB8C,SAoLOumB,IAlLC,SAAC,GAcV,IAbLT,EAaI,EAbJA,aACArX,EAYI,EAZJA,OACAwE,EAWI,EAXJA,OACAxT,EAUI,EAVJA,UACA+lB,EASI,EATJA,UACAC,EAQI,EARJA,QACAte,EAOI,EAPJA,KACAue,EAMI,EANJA,KACA5kB,EAKI,EALJA,SACAb,EAII,EAJJA,MACAkO,EAGI,EAHJA,gBACAnL,EAEI,EAFJA,QACAijB,EACI,EADJA,kBAEA,EAA4CjmB,EAASwlB,GAArD,mBAAOgB,EAAP,KAAuBC,EAAvB,KACA,EAAwCzmB,EAASylB,GAAjD,mBAAOiB,EAAP,KAAqBC,EAArB,KACA,EAA0C3mB,EAASc,GAAnD,mBAAO8lB,EAAP,KAAsBC,EAAtB,KACMC,EAAe3pB,IAErBC,GAAU,WACR,GAAIY,YAAcwnB,IAAcxnB,YAAcynB,GAAU,CACtD,IAAIA,EAAU7mB,YAAa4mB,GACvBtnB,EAAUF,YAAcynB,GAAW,EACvCA,EAAU7mB,YAAaL,YAAcL,IACrCuQ,EAAO,CAAEgX,YACTkB,EAAgBlB,MAEjB,CAACD,EAAWC,IAEf,IAAMsB,EAAkB,WACtB,IAAMvB,EAAY5mB,YAAa4nB,GAC/B/X,EAAO,CAAE+W,cACTiB,EAAkBjB,GAClBS,EAAkBT,IASpB,OACE,uBACE,YAACzlB,EAAD,CAAMyH,MAAM,SAAS/H,UAAWA,GAC9B,YAAC4P,EAAD,KACE,YAACH,EAAD,CACE3R,IAAKupB,EACL7d,GAAE,qBAAgB6c,GAClB5hB,MAAO3E,EAAG,aAAc,iBACxBE,UAAU,qCACVnC,MAAOkpB,EACP7Z,SAAU,SAAC6Y,GAAD,OAAeiB,EAAkBjB,IAC3C3B,OAAQkD,EACR5mB,QAAS4mB,EACTrG,aAAa,MACbnO,YAAY,UAIhB,YAAClD,EAAD,KACE,YAACH,EAAD,CACEhL,MAAO3E,EAAG,WAAY,iBACtBE,UAAU,mCACVnC,MAAOopB,EACP/Z,SAAUga,EACV9C,OA9BY,WACpB,IAAM4B,EAAU7mB,YAAa8nB,GAC7BjY,EAAO,CAAEgX,YACTkB,EAAgBlB,IA4BR/E,aAAa,MACbnO,YAAY,WAKlB,YAAC,IAAD,CACEpL,KAAMA,EACNsH,OAAQA,EACRtO,QAAS,WACP8lB,EAAkBrnB,YAAa4nB,OAInC,YAAClb,EAAD,CAAa3I,MAAO,CAAElC,MAAO,SAC3B,YAAC6K,EAAYqD,YAAb,KACE,yBAAKpP,EAAG,OAAQ,mBAElB,YAAC,IAAD,CACEY,QAAS,WACP8lB,EAAkBrnB,YAAa4nB,KAEjCrP,YAAa,SAACuO,GAAD,OAAUjX,EAAO,CAAEiX,UAChCtO,SAAUsO,GAAQ,MAItB,YAACpa,EAAD,CAAa7L,UAAWA,GACtB,YAACsO,EAAD,CACE7J,MAAO3E,EAAG,WAAY,iBACtB6N,QAAS,CACP,CAAElJ,MAAO3E,EAAG,YAAa,iBAAkBjC,MAAO,aAClD,CAAE4G,MAAO3E,EAAG,WAAY,iBAAkBjC,MAAO,aAEnDoR,SAAUkY,GAAiB,QAC3BzmB,QAAS,WACP8lB,EAAkBrnB,YAAa4nB,KAEjC7Z,SAAU,SAAC7L,GACT2N,EAAO,CAAE3N,aACT+lB,EAAiB/lB,GACjBmlB,EAAkBrnB,YAAa4nB,QAKrC,YAAClb,EAAD,CAAa7L,UAAU,8CACrB,YAACM,EAAD,KACE,YAACuL,EAAYqD,YAAb,KACGpP,EAAG,aAAc,kBAEpB,YAAC,IAAD,CACEY,QAAS,WACP8lB,EAAkBrnB,YAAa4nB,KAEjCvmB,MAAOA,EACPC,SAAU,SAAC5C,GACTmR,EAAO,CACLxO,MAAO3C,GAASA,EAAM6D,WAOhC,YAACmK,EAAD,CAAa7L,UAAU,oDACrB,YAACM,EAAD,KACE,YAACuL,EAAYqD,YAAb,KACGpP,EAAG,mBAAoB,kBAE1B,YAAC,IAAD,CACEY,QAAS,WACP8lB,EAAkBrnB,YAAa4nB,KAEjCvmB,MAAOkO,EACPjO,SAAU,SAAC5C,GACTmR,EAAO,CACLN,gBAAiB7Q,GAASA,EAAM6D,WAO1C,YAACmK,EAAD,KACE,YAAC0C,EAAD,CACE9J,MAAO3E,EAAG,UAAW,iBACrBmN,KAAMnN,EAAG,qCAAsC,iBAC/CjC,MAAO0F,EACP2J,SAAU,SAAC3J,GAAD,OAAayL,EAAO,CAAEzL,aAChC6L,IAAK,EACLC,IAAK,OAIRmE,GACC,YAAC3H,EAAD,CAAa7L,UAAWA,GACtB,YAACM,EAAD,CAAMinB,QAAQ,YACZ,YAAClnB,EAAD,CAAQ2U,eAAa,EAACsD,SAAO,EAAClX,QAASoS,GACpC1T,EAAG,iBAAkB,oBAM9B,kBAAIiB,IAAK,CAAEugB,aAAc,a,4DCnM/B,IAAIpX,EAAM,CACT,mBAAoB,GACpB,mBAAoB,GACpB,oBAAqB,GACrB,8BAA+B,GAC/B,2BAA4B,GAC5B,mBAAoB,GACpB,qBAAsB,IAIvB,SAASsd,EAAeC,GACvB,IAAIje,EAAKke,EAAsBD,GAC/B,OAAOE,EAAoBne,GAE5B,SAASke,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE1d,EAAKud,GAAM,CACpC,IAAIjmB,EAAI,IAAIqmB,MAAM,uBAAyBJ,EAAM,KAEjD,MADAjmB,EAAEsmB,KAAO,mBACHtmB,EAEP,OAAO0I,EAAIud,GAEZD,EAAe7Y,KAAO,WACrB,OAAO1H,OAAO0H,KAAKzE,IAEpBsd,EAAeO,QAAUL,EACzBrqB,EAAOC,QAAUkqB,EACjBA,EAAehe,GAAK,I,kCC5BpB,oFACA,IAAQ1J,EAAOtC,GAAGuC,KAAVD,GACR,EAAuCtC,GAAGmY,YAAlCqS,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,cACrB,EAAgCzqB,GAAGW,KAA3BgE,EAAR,EAAQA,UAAW/D,EAAnB,EAAmBA,SACnB,EAAgCZ,GAAGyC,WAA3BI,EAAR,EAAQA,OAAQ6gB,EAAhB,EAAgBA,YAChB,EAAyC1jB,GAAG0qB,QAAxBC,GAApB,EAAQC,WAAR,EAAoBD,kBACZxqB,EAAcH,GAAGC,QAAjBE,UAKKwS,EAAO,8BAKPxC,EAAU,CACrB3I,MAAO,2BAEP6C,SAAU,SAEVC,SAAU,CACRugB,UAAU,EACVC,UAAU,EACVC,MAAM,GAGRtW,KACE,2BACEmI,MAAM,6BACNC,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,8BAAQ4oB,GAAG,KAAKC,GAAG,KAAKrlB,EAAE,OAC1B,4BAAMslB,GAAG,IAAIC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OAChC,4BAAMzO,EAAE,gGAIZ0O,KAAM,SAACngB,GACL,IAAMogB,EAAalB,IACXmB,EAAyBrgB,EAAzBqgB,SAAUjgB,EAAeJ,EAAfI,WACZkgB,EAAclnB,GAClB,SAACa,GAAD,OAAYA,EAAO,qBAAqBsmB,SAASF,GAAUC,eAG7D1rB,GAAU,WACJwL,GACF3L,GAAGW,KACAC,SAAS,kBACTqL,mBAAmB,qBAEvB,CAACN,IAGJ/K,EAAS,qBAAqBmrB,qBAAoB,GAGlD5rB,GAAU,WACRwqB,EAAiB,mBAChB,IAEH,IAa0B,EAbpBqB,EAAkB,SAAClrB,GACvB,IAAMmrB,EAAQjsB,GAAGksB,OAAOC,YAAV,wBAAuCrrB,IACrD,OAAOF,EAAS,qBAAqBwrB,YAAYH,EAAO,EAAGL,IAW7D,OAAKC,WAAazqB,OAgFhB,+BACE,0BAASuqB,EACP,oBAACnB,EAAD,CACE6B,cAAc,EACdC,eAAgB,kBA3FK,IAAvBT,EAAYzqB,QACP,oBAACopB,EAAY+B,oBAAb,WAQP,+BACE,0BAASZ,EACP,oBAACjI,EAAD,CACEjP,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,+BAASgqB,OAAO,0BAChB,4BAAM3kB,EAAE,IAAIE,EAAE,IAAIvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,OAGvD9I,aAActhB,EACZ,sCACA,iBAEF2E,MAAO3E,EAAG,sBAAuB,kBAEjC,oBAACO,EAAD,CACE6B,WAAS,EACTd,QAAS,WACPooB,EAAgB,iBAGjB1pB,EAAG,QAAS,kBAEf,oBAACO,EAAD,CACE6B,WAAS,EACTd,QAAS,WACPooB,EAAgB,aAGjB1pB,EAAG,UAAW,kBAEjB,oBAACO,EAAD,CACE6B,WAAS,EACTd,QAAS,WACPooB,EAAgB,WAGjB1pB,EAAG,QAAS,kBAEF,QAAZ,EAAAqM,oBAAA,SAAcC,UACb,oBAAC/L,EAAD,CACE6B,WAAS,EACTd,QAAS,WACPooB,EAAgB,WAGjB1pB,EAAG,YAAa,kBAGnB,GAEF,oBAACO,EAAD,CACE6B,WAAS,EACTd,QAAS,WACPooB,EAAgB,WAGjB1pB,EAAG,QAAS,mBAGjB,oBAACkoB,EAAD,CAAa6B,cAAc,EAAOC,eAAgB,kBAAM,QAkBlE9hB,KAAM,WACJ,IAAMmhB,EAAalB,EAAcjgB,OAEjC,OACE,0BAASmhB,EACP,oBAACnB,EAAYmC,QAAb,U,gBChLR,IAAIjgB,EAAM,CACT,6BAA8B,IAI/B,SAASsd,EAAeC,GACvB,IAAIje,EAAKke,EAAsBD,GAC/B,OAAOE,EAAoBne,GAE5B,SAASke,EAAsBD,GAC9B,IAAIE,EAAoBC,EAAE1d,EAAKud,GAAM,CACpC,IAAIjmB,EAAI,IAAIqmB,MAAM,uBAAyBJ,EAAM,KAEjD,MADAjmB,EAAEsmB,KAAO,mBACHtmB,EAEP,OAAO0I,EAAIud,GAEZD,EAAe7Y,KAAO,WACrB,OAAO1H,OAAO0H,KAAKzE,IAEpBsd,EAAeO,QAAUL,EACzBrqB,EAAOC,QAAUkqB,EACjBA,EAAehe,GAAK,I,8zCCrBP4gB,EAAO,uCAAG,WAAOxqB,GAAP,eAAA4K,EAAA,yDAChB5K,EADgB,iEAKCpC,GAAGmN,SAAS,CAChC1E,KAAM,8BACN2E,OAAQ,OACRzM,KAAM,CACJkI,IAAKzG,EACL4J,GAAI,KAVa,cAKfrF,EALe,yBAcdA,GAdc,2CAAH,sD,wBCGL,cAA4D,IAAhDkmB,EAA+C,EAA/CA,KAAMpkB,EAAyC,EAAzCA,KAAMqkB,EAAmC,EAAnCA,WAAYC,EAAuB,EAAvBA,WAAYC,EAAW,EAAXA,QAEzDC,EAAQ,EACRC,GAAY,EAGVC,EAAmB1rB,KAAKmQ,IAC5BuR,kBAAkBiK,mBAAqB,IACvC,OAEEC,EAAa5rB,KAAKoQ,IAAIsb,EAAkB,MAC5CE,EAAa5rB,KAAKmQ,IAAIyb,EAAY,WAMlC,IASMC,EAAW,uCAAG,WAAOC,GAAP,uBAAAvgB,EAAA,6DACZwgB,EAAaD,EAAQF,EAAa,EAClCI,EAAOZ,EAAKa,MAAMH,EAAOC,GACzBG,EAASlsB,KAAKmsB,KAAKf,EAAKgB,MAAQR,EAAa,IACnDJ,IACAH,EAAYG,EAAQU,EAAU,MAExBG,EAAO,IAAIC,UACZC,OAAO,OAAQP,GACpBK,EAAKE,OAAO,OAAQnB,EAAKla,MACzBmb,EAAKE,OAAO,QAASf,GACrBa,EAAKE,OAAO,SAAUL,GAXJ,oBAcO3tB,GAAGmN,SAAS,CACjC1E,OACA2E,OAAQ,OACR0gB,SAjBc,WAcVG,EAdU,QAoBZf,EApBY,wBAqBd7Y,QAAQC,IAAI,aArBE,2BAyBZkZ,EAAaX,EAAKgB,MACpBf,OAtCFoB,GAuCEZ,EAAYE,IAEZT,EAAWkB,GA7BG,mDAgChBjB,EAAQ,EAAD,IACP3Y,QAAQpB,MAAR,MAjCgB,2DAAH,sDAuCjB,OA/CEga,EAAQ,EAEC,IAAIkB,WACbb,EAAY,GA4CP,CACLc,OAAQ,WACNlB,GAAY,K,OCvEH,cAAmC,IAAhCvgB,EAA+B,EAA/BA,KAAM/I,EAAyB,EAAzBA,QAASpB,EAAgB,EAAhBA,UAY/B,IAJoB6rB,EAIdC,EAAa,WACjB,QAAS3hB,YAAM4hB,iBAA0C,MAAxB5hB,EAAK4hB,gBAGxC,OACE,2BACE/rB,UAAS,yCAAoCA,GAC7CoB,QAASA,GAET,2BAAKpB,UAAU,uCACb,uCACEoa,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,SARhB,gBASgB,SAEd,+BAASsB,OAAO,0BAChB,4BAAM3kB,EAAE,IAAIE,EAAE,IAAIvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,QAGvD,2BAAKlqB,UAAU,wCAAwCmK,aAAvD,EAAuDA,EAAMnF,OAC5D8mB,KACC,2BAAK9rB,UAAU,uCAAf,gBAEA8rB,KACA,2BAAK9rB,UAAU,uCAzCrB,SAAqBgsB,GAEnB,GAAa,GAATA,EAAY,MAAO,SACvB,IAAIzW,EAAI1W,SAASI,KAAKC,MAAMD,KAAK6S,IAAIka,GAAS/sB,KAAK6S,IAAI,QACvD,OAAO7S,KAAKgtB,MAAMD,EAAQ/sB,KAAKitB,IAAI,KAAM3W,GAAI,GAAK,IAHtC,CAAC,QAAS,KAAM,KAAM,KAAM,MAGsBA,GAsCvD4W,CAAYhiB,aAAD,EAACA,EAAMkhB,QAGrBS,KACA,2BAAK9rB,UAAU,4CAvCD6rB,EAwCA1hB,EAAKiiB,WAvChB,IAAIC,KAAKR,GAAMS,qBCTX,cAAmC,IAQ5BT,EARJ1hB,EAA+B,EAA/BA,KAAM/I,EAAyB,EAAzBA,QAASpB,EAAgB,EAAhBA,UAY/B,OACE,2BACEA,UAAS,yCAAoCA,GAC7CoB,QAASA,GAET,2BAAKpB,UAAU,uCACb,uCACEoa,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,SARhB,gBASgB,SAEd,+BAASsB,OAAO,0BAChB,4BAAM3kB,EAAE,IAAIE,EAAE,IAAIvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,QAGvD,2BAAKlqB,UAAU,wCAAwCmK,aAAvD,EAAuDA,EAAMnF,OAC7D,2BAAKhF,UAAU,uCAjCnB,SAAqBgsB,GAEnB,GAAa,GAATA,EAAY,MAAO,SACvB,IAAIzW,EAAI1W,SAASI,KAAKC,MAAMD,KAAK6S,IAAIka,GAAS/sB,KAAK6S,IAAI,QACvD,OAAO7S,KAAKgtB,MAAMD,EAAQ/sB,KAAKitB,IAAI,KAAM3W,GAAI,GAAK,IAHtC,CAAC,QAAS,KAAM,KAAM,KAAM,MAGsBA,GA8BzD4W,CAAYhiB,aAAD,EAACA,EAAMkhB,OAErB,2BAAKrrB,UAAU,4CA7BC6rB,EA8BF1hB,EAAKiiB,WA7Bd,IAAIC,KAAKR,GAAMS,qB,OCLlBxsB,EAAOtC,GAAGuC,KAAVD,GACR,EAcItC,GAAGyC,WAbL6P,EADF,EACEA,MACA/D,EAFF,EAEEA,QACA1L,EAHF,EAGEA,OACAwL,EAJF,EAIEA,YACAvL,EALF,EAKEA,KACAuP,EANF,EAMEA,UACAF,EAPF,EAOEA,OACA4c,EARF,EAQEA,KACAC,EATF,EASEA,SACA/M,EAVF,EAUEA,SACAgN,EAXF,EAWEA,SACAnQ,EAZF,EAYEA,eACAoQ,EAbF,EAaEA,iBAEF,EAAwClvB,GAAGC,QAAnCE,EAAR,EAAQA,UAAW4C,EAAnB,EAAmBA,SAAU7C,EAA7B,EAA6BA,OAMd,cAcR,IAbLkU,EAaI,EAbJA,QACA5M,EAYI,EAZJA,MACA2nB,EAWI,EAXJA,OACAC,EAUI,EAVJA,OACAhlB,EASI,EATJA,MACAilB,EAQI,EARJA,QACArL,EAOI,EAPJA,SACAsL,EAMI,EANJA,gBACA7Z,EAKI,EALJA,SACAxC,EAII,EAJJA,MACAsc,EAGI,EAHJA,SACAC,EAEI,EAFJA,SACAhf,EACI,EADJA,SAEA,EAAgCzN,EAAS,IAAzC,mBAAO0O,EAAP,KAAiBqK,EAAjB,KACA,EAA0C/Y,GAAS,GAAnD,mBAAO0sB,EAAP,KAAsBC,EAAtB,KACMC,EAAYzvB,IAElBC,GAAU,WACRivB,GAAUA,MACT,IAEH,IAOgBpS,EAEV4S,EACApuB,EACAquB,EAmBAC,EAAiB,WACrBP,EAAS9d,GACTie,GAAiB,IAGb/jB,EAAa,WACjB,OAAOlC,OAAO0H,KAAKM,GAAY,IAAIrQ,QAmLrC,OACE,YAACkR,EAAD,CACE9K,MAAO2nB,GAAkB7sB,EAAG,YAAa,iBACzC4S,eAAgBd,EAChB5R,UAAU,uDACV2S,iBAAiB,gCAEjB,mBAAK3S,UAAU,oCAAoC4S,UAAQ,eACzD,mBAAK5S,UAAU,qCACb,mBACEA,UAAU,oCACVe,IAAKA,YAAF,2GAKH,YAACub,EAAD,CACEpa,WAAS,EACTqd,OAAO,gCACPrS,SAAU,SAAC1L,GACJA,EAAEyV,OAAOmI,QAGd4N,EAASxrB,EAAEyV,OAAOmI,OAClBmO,OAAO/rB,EAAEyV,QAAQsE,IAAI,SAGtBzb,EAAG,mBAAoB,kBAE1B,mBACEiB,IAAKA,YAAF,+EAIFjB,EAAG,iCAAkC,mBAGzC2Q,GACC,YAACd,EAAD,CAAQ1R,OAAO,QAAQkV,eAAe,GACnC1C,IAIP,mBAAKzQ,UAAU,sCACb,YAAC0sB,EAAD,KAtIFlL,EAEA,YAAClhB,EAAD,CAAMN,UAAU,gCACd,YAAC6P,EAAD,CAAW3M,MAAO,CAAEsR,UAAW,WAC5BxG,EACC,gCACE,uBACE,0BACG8e,GAAmBhtB,EAAG,YAAa,mBAGxC,uBACGA,EACC,6CACA,kBAGJ,wBACEE,UAAU,kBACVqP,IAAI,MACJxR,MAAOmQ,EACP9K,MAAO,CAAElC,MAAO,YAIpB,YAAC+K,EAAD,QAOLnE,WAAOhJ,OAyBV,mBAAKoB,UAAU,6BACb,sBAAKgF,GAEJ6nB,GACC,mBAAK7sB,UAAU,qCACZ6sB,EAAQ3iB,KAAI,SAACsjB,GACZ,OAAO,YAACC,EAAD,CAAa7e,IAAK4e,EAAOhkB,GAAIW,KAAMqjB,QAKhD,mBAAKxtB,UAAU,mCACZ4H,EAAMsC,KAAI,SAACC,GACV,OACE,YAACujB,EAAD,CACEvjB,KAAMA,EACNyE,IAAKzE,EAAKX,GACVpI,QAAS,WAELkY,EADErK,IAAa9E,EACH,GAEAA,IAGhBnK,UAAWiP,IAAa9E,EAAO,cAAgB,UA/CvD,YAAC7J,EAAD,CAAMqtB,cAAY,SAAS3tB,UAAU,kCACnC,uBACE,yDACA,8CACA,YAACsc,EAAD,CACEzD,aAAW,EACX0G,OAAO,gCACPrS,SAAU,SAAC1L,GACJA,EAAEyV,OAAOmI,QAGd4N,EAASxrB,EAAEyV,OAAOmI,OAClBmO,OAAO/rB,EAAEyV,QAAQsE,IAAI,SAGtBzb,EAAG,mBAAoB,oBAuF1B,YAAC2sB,EAAD,CAAUhoB,MAAO,aAAcmpB,YAAaZ,MAGhD,mBAAKhtB,UAAU,sCAhOdmJ,IAIH,mBAAKnJ,UAAU,8CACb,YAAC6L,EAAD,KACE,YAAC4T,EAAD,CAAU7Q,IAAKK,EAASzF,IACrByF,WAAUhL,UACT,mBAAKrE,IAAKqP,aAAF,EAAEA,EAAUhL,UAAWf,MAAO,CAAE6R,SAAU,UAElD,qBAAOrS,QAAQ,YACb,sBAAQ9C,IAAKqP,EAAS4e,gBAK9B,YAAChiB,EAAD,KACE,YAACA,EAAYqD,YAAb,KACGpP,EAAG,OAAQ,kBAEd,kBAAIoD,MAAO,CAAE8d,UAAW,QAAU/R,EAASjK,UAG1CiK,YAAUnI,aACX,YAAC+E,EAAD,KACE,YAACA,EAAYqD,YAAb,KACGpP,EAAG,aAAc,kBAEpB,kBAAIoD,MAAO,CAAE8d,UAAW,QAAU/R,EAASnI,aAI/C,YAAC+E,EAAD,KACE,YAACA,EAAYqD,YAAb,KACGpP,EAAG,OAAQ,kBAEd,kBAAIoD,MAAO,CAAE8d,UAAW,QA5EZ,SAACgL,GAEnB,GAAa,GAATA,EAAY,MAAO,SACvB,IAAIzW,EAAI1W,SAASI,KAAKC,MAAMD,KAAK6S,IAAIka,GAAS/sB,KAAK6S,IAAI,QACvD,OAAO7S,KAAKgtB,MAAMD,EAAQ/sB,KAAKitB,IAAI,KAAM3W,GAAI,GAAK,IAHtC,CAAC,QAAS,KAAM,KAAM,KAAM,MAGsBA,GAyErD4W,EAAYld,aAAA,EAAAA,EAAUoc,OAAQ,KAInC,YAACxf,EAAD,KACE,YAACA,EAAYqD,YAAb,KACGpP,EAAG,UAAW,kBAEjB,kBAAIoD,MAAO,CAAE8d,UAAW,SA9EhBxG,EA8EiCvL,aAAD,EAACA,EAAU6e,WA5ErDV,GADJ5S,EAAI,IAAI6R,KAAK7R,IACCuT,WACV/uB,EAAUwb,EAAEwT,aACZX,EAAOD,GAAS,GAAK,KAAO,KAEhCA,GADAA,GAAgB,KACQ,GACxBpuB,EAAUA,EAAU,GAAK,IAAMA,EAAUA,EAGvCwb,EAAEyT,UACF,KACCzT,EAAE0T,WAAa,GAChB,IACA1T,EAAE2T,cACF,OACAf,EACA,IACApuB,EACAquB,KA8DE,YAACxhB,EAAD,KACGohB,EACC,YAACV,EAAD,KACE,YAACC,EAAD,KACE,qBACE,4CAEF,oEACA,YAACnsB,EAAD,CAAQ2U,eAAa,EAAC5T,QAASksB,GAA/B,OAGA,YAACjtB,EAAD,CAAQe,QAAS,kBAAM8rB,GAAiB,KAAxC,YAIJ,YAAC7sB,EAAD,CACE2U,eAAa,EACb5T,QAAS,WACP8rB,GAAkBD,KAGnBntB,EAAG,eAAgB,oBApErB,kCAkOL,mBAAKE,UAAU,qCACb,YAACK,EAAD,CACE6B,WAAS,EACTmR,UAAWlK,IACX/H,QA1JU,WACd6N,IACFgE,EAAShE,GACT2C,MAwJM9T,IAAKqvB,GAEJrtB,EAAG,SAAU,sBCnUlBA,EAAOtC,GAAGuC,KAAVD,GAGR,EAAgCtC,GAAGC,QAA3B8C,EAAR,EAAQA,SAAU5C,EAAlB,EAAkBA,UAEH,cAA4D,IAAzDywB,EAAwD,EAAxDA,WAAYC,EAA4C,EAA5CA,iBAAkBpb,EAA0B,EAA1BA,SAAUqb,EAAgB,EAAhBA,UACxD,EAA4B/tB,EAAS,IAArC,mBAAOguB,EAAP,KAAeC,EAAf,KACA,EAAgCjuB,GAAS,GAAzC,mBAAOihB,EAAP,KAAiBC,EAAjB,KACA,EAAgClhB,EAAS,GAAzC,mBAAOyN,EAAP,KAAiBygB,EAAjB,KACA,EAA8CluB,EAAS,IAAvD,mBAAOusB,EAAP,KAAwB4B,EAAxB,KACA,EAA0BnuB,EAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KAEMie,EAAWL,EAAY,iBAAmB,gBAGhD3wB,GAAU,WACR8wB,EAAY,GACZ/d,EAAS,MACR,IAGH,IAKMke,EAAU,uCAAG,WAAOxP,GAAP,SAAA5U,EAAA,sDACjBkG,EAAS,IACT+Q,GAAY,GACZiN,EAAmB5uB,EAAG,YAAa,kBACnC+uB,EAAY,CACVxE,KAAMjL,EAAM,GACZnZ,KAAK,gCACLqkB,WAAY,SAACwE,GACXL,EAAYK,EAAU,KAExBvE,WAAYwE,EACZvE,QAAS,SAAChpB,GACRkP,EAASlP,EAAEtD,SACXuwB,EAAY,GACZhN,GAAY,MAdC,2CAAH,sDAmBVsN,EAAS,uCAAG,iCAAAvkB,EAAA,6DAASvE,EAAT,EAASA,KAAMkK,EAAf,EAAeA,KAC/Bue,EAAmB5uB,EAAG,UAAW,kBADjB,kBAGOtC,GAAGmN,SAAS,CAC/B1E,KAAK,0BAAD,OAA4B0oB,GAChC/jB,OAAQ,OACRzM,KAAM,CACJ8H,OACAkK,UARU,OAGRoe,EAHQ,OAWdC,EAAUD,GAXI,gDAad7d,EAAS,KAAExS,SACX2T,QAAQpB,MAAR,MAdc,yBAgBdge,EAAY,GACZhN,GAAY,GAjBE,4EAAH,sDAqBTuN,EAAW,uCAAG,WAAOC,GAAP,SAAAzkB,EAAA,sEAEhBgkB,GAAWD,GAAU,IAAIvP,QAAO,SAAC7U,GAAD,OAAUA,IAAS8kB,MAFnC,SAGVzxB,GAAGmN,SAAS,CAChB1E,KAAK,0BAAD,OAA4B0oB,GAChC/jB,OAAQ,SACRzM,KAAM,CACJgS,KAAM8e,aAAF,EAAEA,EAAOjqB,SAPD,sDAWhB0L,EAAS,KAAExS,SAXK,wDAAH,sDAgBXgxB,EAAU,uCAAG,4BAAA1kB,EAAA,sEAEfiX,GAAY,GAFG,SAGMjkB,GAAGmN,SAAS,CAC/B1E,KAAK,0BAAD,OAA4B0oB,KAJnB,OAGTJ,EAHS,OAMfC,EAAUD,GANK,gDAQf7d,EAAS,KAAExS,SARI,yBAUfujB,GAAY,GAVG,4EAAH,qDAchB,OACE,oBAAC0N,EAAD,CACEvd,QAASwc,EACTtB,gBAAiBA,EACjBtL,SAAUA,EACV/Q,MAAOA,EACPuc,SAAU4B,EACVhC,OAAQsC,EACRtnB,MAAO2mB,EACPvgB,SAAUA,EACV+e,SAAUiC,EACV/b,SAAUA,EACVuX,QAvFY,SAACtsB,GACfmwB,EAAiBe,mBACjBf,EAAiBgB,kBAAkBnxB,IAsFjCyuB,OAEM7sB,EADJwuB,EACO,kCACA,iCADmC,iBAG5CtpB,MAEMlF,EADJwuB,EACO,wBACA,uBADyB,oB,glBCpHxC,IA2KegB,KA3Ka9xB,GAAGW,KAAvBmxB,iBA2KuB,CAC7BC,cApKoB,WAAyB,IAAxBxiB,EAAuB,uDAAf,GAAIyiB,EAAW,uCAC5C,OAAQA,EAAOlxB,MACb,IAAK,aACH,OAAOkxB,EAAO3xB,MAChB,IAAK,aACH,MAAM,GAAN,mBAAWkP,GAAX,YAAqByiB,EAAO3xB,QAC9B,IAAK,YACH,MAAM,GAAN,mBAAWkP,GAAU,CAACyiB,EAAO3xB,QAC/B,IAAK,eACH,OAAOkP,EAAM7C,KAAI,SAACC,EAAM1K,GAAW,IAAD,EAChC,OAAI0K,EAAKX,MAAL,UAAYgmB,EAAO3xB,aAAnB,aAAY,EAAc2L,IACrBW,EAEF,EAAP,KACKA,GACAqlB,EAAO3xB,UAGhB,IAAK,eACH,OAAOkP,EAAMiS,QAAO,SAAC7U,GAAD,OAAUA,EAAKslB,OAASD,EAAO3xB,MAAM4xB,QAE7D,OAAO1iB,GAgJP2iB,mBAzGyB,WAAyB,IAAxB3iB,EAAuB,uDAAf,GAAIyiB,EAAW,uCACjD,OAAQA,EAAOlxB,MACb,IAAK,kBACH,OAAOkxB,EAAO3xB,MAChB,IAAK,iBACH,MAAM,GAAN,mBAAWkP,GAAU,CAACyiB,EAAO3xB,QAC/B,IAAK,oBACH,OAAOkP,EAAM7C,KAAI,SAACC,EAAM1K,GAAW,IAAD,EAChC,OAAI0K,EAAKX,MAAL,UAAYgmB,EAAO3xB,aAAnB,aAAY,EAAc2L,IACrBW,EAEF,EAAP,KACKA,GACAqlB,EAAO3xB,UAGhB,IAAK,oBACH,OAAOkP,EAAMiS,QAAO,SAAC7U,GAAD,OAAUA,IAASqlB,EAAO3xB,SAElD,OAAOkP,GAuFP4iB,eAxIqB,WAAyB,IAAxB5iB,EAAuB,uDAAf,GAAIyiB,EAAW,uCAC7C,OAAQA,EAAOlxB,MACb,IAAK,cACH,OAAOkxB,EAAO3xB,MAChB,IAAK,cACH,MAAM,GAAN,mBAAWkP,GAAX,YAAqByiB,EAAO3xB,QAC9B,IAAK,aACH,MAAM,GAAN,mBAAWkP,GAAU,CAACyiB,EAAO3xB,QAC/B,IAAK,gBACH,OAAOkP,EAAM7C,KAAI,SAACC,EAAM1K,GAAW,IAAD,EAChC,OAAI0K,EAAKX,MAAL,UAAYgmB,EAAO3xB,aAAnB,aAAY,EAAc2L,IACrBW,EAEF,EAAP,KACKA,GACAqlB,EAAO3xB,UAGhB,IAAK,gBACH,OAAOkP,EAAMiS,QAAO,SAAC7U,GAAD,OAAUA,IAASqlB,EAAO3xB,SAElD,OAAOkP,GAoHP6iB,eA/EqB,WAOjB,IANJ7iB,EAMG,uDANK,CACN8iB,SAAS,EACTC,WAAY,GACZC,OAAQ,IAEVP,EACG,uCACH,OAAQA,EAAOlxB,MACb,IAAK,sBACH,OAAO,EAAP,KACKyO,GADL,IAEE8iB,QAASL,EAAO3xB,QAEpB,IAAK,qBACH,OAAO,EAAP,KACKkP,GADL,IAEEgjB,OAAQP,EAAO3xB,QAEnB,IAAK,yBACH,OAAO,EAAP,KACKkP,GADL,IAEE+iB,WAAYN,EAAO3xB,QAIzB,OAAOkP,GAsDPijB,UA7CgB,WAQZ,IAPJjjB,EAOG,uDAPK,CACNtB,SAAS,EACTwkB,eAAe,EACfC,kBAAkB,EAClBnW,WAAY,MAEdyV,EACG,uCACH,OAAQA,EAAOlxB,MACb,IAAK,cACH,OAAO,EAAP,KACKyO,GADL,IAEEtB,QAAS+jB,EAAO3xB,QAEpB,IAAK,qBACH,OAAO,EAAP,KACKkP,GADL,IAEEkjB,cAAeT,EAAO3xB,QAE1B,IAAK,cACH,OAAO,EAAP,KACKkP,GADL,kBAEGyiB,EAAOrlB,KAAOqlB,EAAO3xB,QAI5B,OAAOkP,GAmBPojB,aAhBmB,WAAyB,IAAxBpjB,EAAuB,uDAAf,GAAIyiB,EAAW,uCAC3C,OAAQA,EAAOlxB,MACb,IAAK,YACH,MAAM,GAAN,mBAAWyO,GAAU,CAACyiB,EAAO3xB,QAC/B,IAAK,eACH,OAAOkP,EAAMiS,QAAO,SAACvhB,GAAD,OAAaA,IAAY+xB,EAAO3xB,SAExD,OAAOkP,KCxKF,SAASwhB,EAAOxhB,GACrB,OAAOA,aAAA,EAAAA,EAAOwiB,gBAAiB,GAE1B,SAASa,EAAYrjB,GAC1B,OAAOA,aAAA,EAAAA,EAAO2iB,qBAAsB,GAE/B,SAASW,EAAQtjB,GACtB,OAAOA,aAAA,EAAAA,EAAO4iB,iBAAkB,GAE3B,SAASrB,EAAUvhB,GAAQ,IAAD,EAC/B,QAASA,SAAD,UAACA,EAAO6iB,sBAAR,QAAC,EAAuBC,SAE3B,SAASS,GAAUvjB,GAAQ,IAAD,EAC/B,OAAOA,SAAA,UAAAA,EAAOijB,iBAAP,eAAkBvkB,WAAW,EAE/B,SAAS8kB,GAAOxjB,GACrB,OAAOA,aAAA,EAAAA,EAAOojB,eAAgB,GAEzB,SAASF,GAAcljB,GAAQ,IAAD,EACnC,OAAOA,SAAA,UAAAA,EAAOijB,iBAAP,eAAkBC,iBAAiB,EAErC,SAASO,GAAkBzjB,GAAQ,IAAD,EACvC,OAAOA,SAAP,UAAOA,EAAO6iB,sBAAd,aAAO,EAAuBE,WAEzB,SAASW,GAAG1jB,EAAO2jB,GAAM,IAAD,EAC7B,OAAO3jB,SAAP,UAAOA,EAAOijB,iBAAd,aAAO,EAAmBU,GAErB,SAASC,GAAY5jB,GAAQ,IAAD,EACjC,OAAOA,SAAA,UAAAA,EAAO6iB,sBAAP,SAAuBC,QAAU,UAAY,SC5B/C,SAASrB,GAAU3wB,GACxB,MAAO,CACLS,KAAM,aACNT,SAGG,SAAS+yB,GAAU/yB,GACxB,MAAO,CACLS,KAAM,aACNT,SAIG,SAASgzB,GAAYhzB,GAC1B,MAAO,CACLS,KAAM,eACNT,SAIG,SAASizB,GAAejzB,GAC7B,MAAO,CACLS,KAAM,kBACNT,SAIG,SAASkzB,GAAclzB,GAC5B,MAAO,CACLS,KAAM,iBACNT,SAIG,SAASmzB,GAAanzB,GAC3B,MAAO,CACLS,KAAM,sBACNT,SAIG,SAASozB,GAAUpzB,GACxB,MAAO,CACLS,KAAM,aACNT,SAIG,SAASqzB,GAAqBrzB,GACnC,MAAO,CACLS,KAAM,yBACNT,SAIG,SAASszB,GAAWtzB,GACzB,MAAO,CACLS,KAAM,cACNT,SAIG,SAASuzB,GAAWvzB,GACzB,MAAO,CACLS,KAAM,cACNT,SAIG,SAASwzB,GAAaxzB,GAC3B,MAAO,CACLS,KAAM,gBACNT,SAIG,SAASyzB,GAAiBzzB,GAC/B,MAAO,CACLS,KAAM,qBACNT,SAIG,SAAS2S,GAAW3S,GACzB,MAAO,CACLS,KAAM,cACNT,SAIG,SAAS0zB,GAAMpnB,EAAMtM,GAC1B,MAAO,CACLS,KAAM,cACN6L,OACAtM,SAIG,SAAS2zB,GAAS3zB,GACvB,MAAO,CACLS,KAAM,YACNT,SAGG,SAAS4zB,GAAY5zB,GAC1B,MAAO,CACLS,KAAM,eACNT,UC/FW6zB,EATWl0B,GAAGW,KAArBuzB,eASqB,4BAA6B,CACxDC,UACAC,YACAC,YAZF,I,+DCAaC,GAAa,SAAC7C,GAAD,OACP,IAAjBA,aAAA,EAAAA,EAAOhxB,UAAegxB,aAAtB,EAAsBA,EAAO8C,qBAAqBnzB,SAKvCozB,GAAe,SAAC/C,GAAD,OAAW6C,GAAW7C,IAA4B,KAAlBA,aAAA,EAAAA,EAAOhxB,SAMtDg0B,GAAgB,SAAChD,GAC5B,OAAqB,IAAjBA,aAAA,EAAAA,EAAOhxB,QAAoB,aACV,IAAjBgxB,aAAA,EAAAA,EAAOhxB,QAAoB,WACV,IAAjBgxB,aAAA,EAAAA,EAAOhxB,QAAoB,aAC3B6zB,GAAW7C,GAAe,WACT,IAAjBA,aAAA,EAAAA,EAAOhxB,QAAoB,WACV,IAAjBgxB,aAAA,EAAAA,EAAOhxB,QAAoB,OACV,IAAjBgxB,aAAA,EAAAA,EAAOhxB,QAAoB,QACV,IAAjBgxB,aAAA,EAAAA,EAAOhxB,QAAoB,qBAA/B,GAGWi0B,GAAkB,SAACtzB,GAC9B,OAAcyM,MAAVzM,GAAiC,MAAVA,EAAuB,GAC3C,IAAIytB,KAAc,IAATztB,GAAeuzB,cAAc5yB,OAAO,GAAI,IAG7C4sB,GAAc,SAACH,GAC1B,GAAa3gB,MAAT2gB,GAA+B,GAATA,EAAY,MAAO,UAE7C,GAAa,GAATA,EAAY,MAAO,MACvB,IAAIzW,EAAI1W,SAASI,KAAKC,MAAMD,KAAK6S,IAAIka,GAAS/sB,KAAK6S,IAAI,OAAOsgB,YAC9D,OAAQpG,EAAQ/sB,KAAKitB,IAAI,KAAM3W,IAAI8c,QAAQ,GAAK,IAHpC,CAAC,IAAK,KAAM,KAAM,KAAM,MAGwB9c,IClCtDzV,GAAOtC,GAAGuC,KAAVD,GACR,GAA0DtC,GAAGyC,WAArDI,GAAR,GAAQA,OAAQwL,GAAhB,GAAgBA,YAAa4T,GAA7B,GAA6BA,SAAU8M,GAAvC,GAAuCA,KAAMC,GAA7C,GAA6CA,SAC7C,GAA4ChvB,GAAGC,QAAvC8C,GAAR,GAAQA,SAAsB5C,IAA9B,GAAkB20B,WAAlB,GAA8B30B,WAC9B,GAAgCH,GAAGW,KAA3BC,GAAR,GAAQA,SAAU+D,GAAlB,GAAkBA,UAYH,cACb,MAA0C5B,IAAS,GAAnD,mBAAO0sB,EAAP,KAAsBC,EAAtB,KACA,EAAgC3sB,IAAS,GAAzC,mBAAOgyB,EAAP,KAAiBC,EAAjB,KACA,EAA0BjyB,GAAS,MAAnC,mBAAO0uB,EAAP,KAAcwD,EAAd,KAEMnE,EAAYnsB,IAAU,SAACa,GAAD,OAC1BA,EAAO,6BAA6BsrB,eAEhCvU,EAAa5X,IAAU,SAACa,GAAD,OAC3BA,EAAO,6BAA6BytB,GAAG,iBAEnClC,EAASpsB,IAAU,SAACa,GAAD,OACvBA,EAAO,6BAA6BurB,YAGtC5wB,IAAU,WACR80B,EACE1Y,EAAawU,EAAO1kB,MAAK,SAAColB,GAAD,OAAWA,EAAMQ,OAAS1V,KAAc,QAElE,CAACwU,EAAQxU,IAEZ,IAAMgT,EAAQ,uCAAG,sBAAAviB,EAAA,sEACThN,GAAGmN,SAAS,CAChB1E,KAAK,wCAAD,OAA0CgpB,EAAMzlB,IACpDoB,OAAQ,SACRzM,KAAM,CACJG,KAAMgwB,EAAY,UAAY,YALnB,OAQflwB,GAAS,6BAA6ByyB,YAAY5B,GAClD7wB,GAAS,6BAA6BmzB,MAAM,aAAc,MAC1DiB,GAAY,GACZtF,GAAiB,GAXF,2CAAH,qDAcRwF,EAAa3xB,YAAH,sDAIhB,IAAKkuB,EACH,MAAO,GAGT,IDrB0BzU,EAEtB4S,EACApuB,EACAquB,ECiBEsF,EAAe,SAAC1D,GACpB,OAAOX,EAAYW,aAAH,EAAGA,EAAO2D,cAAgB3D,aAA1B,EAA0BA,EAAO4D,SAGnD,OACE5D,GACE,mBAAKjvB,UAAU,8CACb,YAAC,GAAD,CACEe,IAAKA,YAAF,0EAIH,YAAC,GAAD,CAAU6N,IAAKqgB,EAAMzlB,IAClBwoB,GAAa/C,IAAU0D,EAAa1D,IACnC,mBAAKrvB,IAAK+yB,EAAa1D,GAAQluB,IAAK,CAAEgU,SAAU,WAGpD,YAAC,GAAD,CACEuD,SAAO,EACPpW,WAAS,EACTkR,QAAS4e,GAAa/C,GACtBluB,IAAKA,YAAF,uPACCixB,GAAa/C,GAAS,sBAAwB,KASjDgD,GAAchD,KAGnB,YAAC,GAAD,KACE,YAAC,GAAY/f,YAAb,KACGpP,GAAG,OAAQ,kBAEd,kBAAIiB,IAAK2xB,GAAazD,EAAMjqB,UAG3BiqB,YAAOnoB,aACR,YAAC,GAAD,KACE,YAAC,GAAYoI,YAAb,KACGpP,GAAG,aAAc,kBAEpB,kBAAIiB,IAAK2xB,GAAazD,EAAMnoB,aAIhC,YAAC,GAAD,KACE,YAAC,GAAYoI,YAAb,KACGpP,GAAG,OAAQ,kBAEd,kBAAIiB,IAAK2xB,GAAavG,IAAY8C,aAAA,EAAAA,EAAO5D,OAAQ,KAGnD,YAAC,GAAD,KACE,YAAC,GAAYnc,YAAb,KACGpP,GAAG,SAAU,kBAEhB,kBAAIiB,IAAK2xB,GAAaR,GAAgBjD,aAAD,EAACA,EAAOrwB,UAG/C,YAAC,GAAD,KACE,YAAC,GAAYsQ,YAAb,KACGpP,GAAG,UAAW,kBAEjB,kBAAIiB,IAAK2xB,IDzFSlY,ECyFgByU,aAAD,EAACA,EAAOnB,WDvF7CV,GADJ5S,EAAI,IAAI6R,KAAK7R,IACCuT,WACV/uB,EAAUwb,EAAEwT,aACZX,EAAOD,GAAS,GAAK,KAAO,KAEhCA,GADAA,GAAgB,KACQ,GACxBpuB,EAAUA,EAAU,GAAK,IAAMA,EAAUA,EAGvCwb,EAAEyT,UACF,KACCzT,EAAE0T,WAAa,GAChB,IACA1T,EAAE2T,cACF,OACAf,EACA,IACApuB,EACAquB,KCyEI,YAAC,GAAD,KACGJ,EACC,YAAC,GAAD,KACE,YAAC,GAAD,KACE,qBACE,0BAASntB,GAAG,gBAAiB,mBAE/B,qBACGA,GACC,8CACA,kBAGJ,YAAC,GAAD,CACEkV,eAAa,EACb3B,SAAUkf,EACVnf,OAAQmf,EACRnxB,QAAS,SAACI,GACRA,EAAEuf,iBACFgM,IACAyF,GAAY,KAGb1yB,GAAG,MAAO,kBAEb,YAAC,GAAD,CAAQsB,QAAS,kBAAM8rB,GAAiB,KACrCptB,GAAG,SAAU,oBAKpB,YAAC,GAAD,CACEkV,eAAa,EACb5T,QAAS,WACP8rB,GAAkBD,KAGnBntB,GAAG,eAAgB,qBCrKnB,eAA8B,IAA3BE,EAA0B,EAA1BA,UAAWgO,EAAe,EAAfA,SAC3B,OACE,mBAAKhO,UAAWA,GACd,mBACEe,IAAKA,YAAF,kIAIHmC,MAAO,CAAElC,MAAM,GAAD,OAAKgN,EAAL,UCPP,eAAmB,IAAhBA,EAAe,EAAfA,SAChB,OACE,mBACEjN,IAAKA,YAAF,wZAgBH,YAAC+xB,GAAD,CACE9kB,SAAUA,EACVjN,IAAKA,YAAF,0LCtBI,YAACgI,GACd,IAAQ9E,EAAmD8E,EAAnD9E,UAAWe,EAAwC+D,EAAxC/D,MAAO+tB,EAAiChqB,EAAjCgqB,OAAQC,EAAyBjqB,EAAzBiqB,MAAOC,EAAkBlqB,EAAlBkqB,OAAQC,EAAUnqB,EAAVmqB,MACjD,OACE,iCACElzB,UAAU,6BACVe,IAAKA,YAAF,4XAcCgI,KAEDkqB,GAAUA,IAEVhvB,GAAaA,EAEhB,mBACElD,IAAKA,YAAF,kEAIAiyB,GACD,mBACEjyB,IAAKA,YAAF,kIAMFiyB,KAIFhuB,GACD,oBACEjE,IAAKA,YAAF,6TAWFiE,KAIF+tB,GACD,mBACEhyB,IAAKA,YAAF,4IAMFgyB,MAKJG,GAASA,ICzElB,GAAyB11B,GAAGyC,WAApByP,GAAR,GAAQA,KAAMrP,GAAd,GAAcA,OACd,GAAgC7C,GAAGC,QAA3BE,GAAR,GAAQA,UAAW4C,GAAnB,GAAmBA,SACnB,GAAgC/C,GAAGW,KAA3BgE,GAAR,GAAQA,UAAW/D,GAAnB,GAAmBA,SAYJ,eAAgB,IAAb6wB,EAAY,EAAZA,MAChB,EAAgC1uB,KAAhC,mBAAO0O,EAAP,KAAiBqK,EAAjB,KACMgV,EAAYnsB,IAAU,SAACa,GAAD,OAC1BA,EAAO,6BAA6BsrB,eAEhCvU,EAAa5X,IAAU,SAACa,GAAD,OAC3BA,EAAO,6BAA6BytB,GAAG,iBAGzC9yB,IAAU,WACR2b,EAAYS,EAAaA,IAAekV,EAAMQ,KAAO,QACpD,CAAC1V,IAkGJ,OACE,YAAC,GAAD,CACE3Y,QAAS,WACPhD,GAAS,6BAA6BmzB,MAAM,aAActC,aAA1D,EAA0DA,EAAOQ,OAEnE1uB,IAAKA,YAAF,2FACCkO,GACF,8EAEIA,EAAW,uCAAyC,WAE1DhL,UAnFoB,WACtB,GAAIgrB,EAAMhxB,OAAS,EACjB,OAAO,YAACk1B,GAAD,CAAiBnlB,SAAUihB,EAAMlD,iBAG1C,IAAM1lB,EAAMioB,EAAYW,aAAH,EAAGA,EAAOmE,mBAAqBnE,aAA/B,EAA+BA,EAAOoE,aAE3D,OAAIhtB,EAEA,mBACEtF,IAAKA,YAAF,yLAOHnB,IAAKyG,SAVX,EA4EaitB,GACXN,MAvGF,YAAC,GAAD,CACE1a,SAAO,EACPpW,WAAS,EACTkR,QAAS4e,GAAa/C,GACtBluB,IAAKA,YAAF,oJAOFkxB,GAAchD,IA6FfjqB,MAAOiqB,EAAMjqB,MACb+tB,OA9DF,mBACEhyB,IAAKA,YAAF,2FAKH,oBACEA,IAAKA,YAAF,gIAMH,YAAC2O,GAAD,CACE3O,IAAKA,YAAF,sLAOHkR,KAAK,QACLoZ,KAAM,KAER,wBAAO6G,GAAgBjD,EAAMrwB,UAE/B,oBACEmC,IAAKA,YAAF,iGAKH,YAAC2O,GAAD,CACE3O,IAAKA,YAAF,sLAOHkR,KAAK,WACLoZ,KAAM,KAER,wBAAOc,GAAY8C,EAAMsE,gBAoB3BL,MACmB,IAAjBjE,EAAMhxB,OACJ,YAAC60B,GAAD,CACE/xB,IAAKA,YAAF,yMAOHiN,SAAUihB,EAAMlD,iBAGlB,MCxJV,GAAqCvuB,GAAGyC,WAAhCK,GAAR,GAAQA,KAAMuP,GAAd,GAAcA,UAAW9D,GAAzB,GAAyBA,QAIV,eAAoB,IAAjB/L,EAAgB,EAAhBA,UAChB,OACE,YAAC,GAAD,CAAMA,UAAWA,GACf,YAAC,GAAD,CAAWe,IAAK,CAAEyT,UAAW,WAC3B,YAAC,GAAD,S,6kBCRR,I,8BAAQ1U,GAAOtC,GAAGuC,KAAVD,GACR,GAA0CtC,GAAGC,QAArC8C,GAAR,GAAQA,SAAU5C,GAAlB,GAAkBA,UAAW61B,GAA7B,GAA6BA,SAC7B,GAAyCh2B,GAAGyC,WAApCK,GAAR,GAAQA,KAAMgc,GAAd,GAAcA,eAAgB3M,GAA9B,GAA8BA,OAC9B,GAAgCnS,GAAGW,KAA3BC,GAAR,GAAQA,SAAU+D,GAAlB,GAAkBA,UAMH,cACb,MAAgC5B,IAAS,GAAzC,mBAAO0O,EAAP,KAAiBqK,EAAjB,KACA,EAA4B/Y,GAAS,IAArC,mBAAOkzB,EAAP,KAAeC,EAAf,KACM7R,EAAU1f,IAAU,SAACa,GAAD,OACxBA,EAAO,6BAA6BitB,mBAEhC1B,EAASpsB,IAAU,SAACa,GAAD,OACvBA,EAAO,6BAA6BurB,YAEhCjwB,EAAO6D,IAAU,SAACa,GAAD,OACrBA,EAAO,6BAA6B2tB,iBAEhCb,EAAa3tB,IAAU,SAACa,GAAD,OAC3BA,EAAO,6BAA6BwtB,uBAItC7yB,IAAU,WACHkkB,GACH8R,MAED,CAAC9R,IAGJlkB,IAAU,WACR,IAAMi2B,EAAWC,aAAY,WAC3BF,EAAM,CAAEG,MAAM,MACb,KACH,OAAO,kBAAMC,cAAcH,MAC1B,CAAC/R,IAGJ,IAAM8R,EAAK,uCAAG,8CAAAnpB,EAAA,8FAAkB,CAAEspB,MAAM,GAAjBA,EAAT,EAASA,KAAT,kBAEWt2B,GAAGmN,SAAS,CAC/B1E,KAAMzI,GAAG6I,IAAI8K,aAAP,8CACJ7S,QACIwxB,WAAYL,KAAO,CAAEK,WAAYA,aAAF,EAAEA,EAAYL,MAAS,IAFtD,IAGJuE,eAAgB,SANV,OAEJzF,EAFI,OASVnwB,GAAS,6BAA6BowB,UAAUD,aAAhD,EAAgDA,EAAQ3mB,OACxD8rB,EAAU,IAVA,mDAYc,OAApB,2CAAGv1B,YAAH,eAASF,QAZH,wBAaRy1B,EACE5zB,GACE,8EAfI,2BAqBLg0B,GACH11B,GAAS,6BAA6BozB,SAAS,KAAEtzB,SAtBzC,yBAyBVE,GAAS,6BAA6BkzB,kBAAiB,GAzB7C,4EAAH,qDA6DX,OAAImC,EAEA,YAAC,GAAD,CAAQx1B,OAAO,UAAUkV,eAAe,GACtC,mBAAKpS,IAAK,CAAEa,QAAS,OAAQC,WAAY,WACvC,YAACoyB,GAAD,CAASlzB,IAAK,CAAEmzB,KAAM,KACrBT,IAOJ5R,EAMH,YAAC2R,GAAD,KACGjF,GAAYA,EAAO3vB,OAClB,yBACIkxB,WAAYL,OAAQ,sBAAK3vB,GAAG,SAAU,kBACvCyuB,EAAOrkB,KAAI,SAAC+kB,GACX,IAAIA,aAAA,EAAAA,EAAOkF,kBAAkBrE,aAAA,EAAAA,EAAYL,OAAQ,IAGjD,OACE,YAAC2E,GAAD,CACExlB,IAAKqgB,EAAMzlB,GACXylB,MAAOA,EACP7tB,QAAS,WACPkY,EAAYrK,EAASwgB,OAASR,EAAMQ,KAAO,GAAKR,IAElDhgB,SAAUA,EAASwgB,OAASR,EAAMQ,WA9D5C,YAAC,GAAD,CACE1nB,MAAM,SACNwf,QAAQ,SACRxmB,IAAKA,YAAF,+FAKH,uBACE,sBAAKjB,GAAG,kCAAmC,kBAC3C,qBAAIA,GAAG,wBAAyB,kBAChC,YAAC,GAAD,CACE+Y,aAAW,EACX0G,OAAO,gCACPrS,SAAU,SAAC1L,GACJA,EAAEyV,OAAOmI,QAGdhhB,GAAS,6BAA6BgzB,WAAW5vB,EAAEyV,OAAOmI,OAC1DmO,OAAO/rB,EAAEyV,QAAQsE,IAAI,SAGtBzb,GAAG,mBAAoB,qBAoBzB,YAACm0B,GAAD,CAASlzB,IAAK,CAAEmzB,KAAM,MClHzBxkB,GAASlS,GAAGyC,WAAZyP,KACAtR,GAAaZ,GAAGW,KAAhBC,SAMO,eAAqB,IAAlB0xB,EAAiB,EAAjBA,WAQhB,OACE,YAAC,GAAD,CACE1uB,QARgB,SAACI,GACnBA,EAAEuf,iBACF3iB,GAAS,6BAA6B8yB,qBAAqBpB,GAC3D1xB,GAAS,6BAA6BkzB,kBAAiB,IAMrDtsB,MACE,uBACE,YAAC,GAAD,CACEiN,KAAK,cACLlR,IAAKA,YAAF,kIAKJ+uB,EAAW3f,MAGhB4iB,OAAQ,uBAAMjD,EAAWuE,WAAjB,cC7BNv0B,GAAOtC,GAAGuC,KAAVD,GACAnC,GAAcH,GAAGC,QAAjBE,UACR,GAAgCH,GAAGW,KAA3BgE,GAAR,GAAQA,UAAW/D,GAAnB,GAAmBA,SAIJ,cACb,IAAMgyB,EAAcjuB,IAAU,SAACa,GAAD,OAC5BA,EAAO,6BAA6BotB,iBAEhC9xB,EAAO6D,IAAU,SAACa,GAAD,OACrBA,EAAO,6BAA6B2tB,iBAGhC2D,EAAgB,uCAAG,8BAAA9pB,EAAA,+EAEEhN,GAAGmN,SAAS,CACjC1E,KAAMzI,GAAG6I,IAAI8K,aAAP,4CAAiE,CACrE7S,OACA01B,eAAgB,QALC,OAEftiB,EAFe,OAQrBtT,GAAS,6BAA6B0yB,eAAepf,aAArD,EAAqDA,EAAU9J,OAR1C,mDAUG,OAApB,2CAAGzJ,YAAH,eAASF,QAVQ,mDAarBG,GAAS,6BAA6BozB,SAAS,KAAEtzB,SAb5B,yDAAH,qDAqBtB,OAJAP,IAAU,WACR22B,MACC,MAGClE,EAAYxxB,QACZ,uBACE,sBAAKkB,GAAG,cAAe,kBACvB,mBACEiB,IAAKA,YAAF,qIAMFqvB,EAAYlmB,KAAI,SAAC4lB,GAAD,OACf,YAACyE,GAAD,CAAYzE,WAAYA,EAAYlhB,IAAKkhB,EAAWL,aCjDxD3vB,GAAOtC,GAAGuC,KAAVD,GACR,GAAoDtC,GAAGyC,WAA/CI,GAAR,GAAQA,OAAQoP,GAAhB,GAAgBA,YAAaK,GAA7B,GAA6BA,MAAOjE,GAApC,GAAoCA,YACpC,GAA+BrO,GAAGC,QAA1B8C,GAAR,GAAQA,SAAUizB,GAAlB,GAAkBA,SAClB,GAAgCh2B,GAAGW,KAA3BC,GAAR,GAAQA,SAAU+D,GAAlB,GAAkBA,UAIH,cACb,MAAwB5B,GAAS,IAAjC,mBAAO4P,EAAP,KAAa+E,EAAb,KACA,EAAwB3U,IAAS,GAAjC,mBAAOi0B,EAAP,KAAaC,EAAb,KACMn2B,EAAO6D,IAAU,SAACa,GAAD,OACrBA,EAAO,6BAA6B2tB,iBAEhC1kB,EAAQ9J,IAAU,SAACa,GAAD,OACtBA,EAAO,6BAA6BytB,GAAG,uBAEnCvkB,EAAW,SAACrO,GAChBO,GAAS,6BAA6BmzB,MAAM,mBAAoB1zB,IAG5D62B,EAAQ,uCAAG,4BAAAlqB,EAAA,6DACfiqB,GAAQ,GADO,kBAGUj3B,GAAGmN,SAAS,CACjC1E,KAAM,4CACN2E,OAAQ,OACRzM,KAAM,CACJG,OACA6R,UARS,OAGT2f,EAHS,OAWb1xB,GAAS,6BAA6B2yB,cAAcjB,GACpD1xB,GAAS,6BAA6B8yB,qBAAqBpB,GAC3D1xB,GAAS,6BAA6BkzB,kBAAiB,GACvDpc,EAAQ,IACRhJ,GAAS,GAfI,kDAiBb2F,QAAQpB,MAAR,MAjBa,yBAmBbgkB,GAAQ,GAnBK,6EAAH,qDAuBd,OACE,YAAC,GAAD,KACE,YAAC,GAAD,CAAQ5b,aAAW,EAACzX,QAAS,kBAAM8K,GAAS,KACzCpM,GAAG,oBAAqB,kBAE1BmM,GACC,YAAC,GAAD,CACE0G,iBAAiB,eACjB3N,MAAO,wBACPmhB,2BAA2B,EAC3BhT,eAAe,GAEf,YAAC1D,GAAD,CACE1O,IAAKA,YAAF,8EAGHiT,SAAS,IACTlB,YAAahT,GAAG,0BAA2B,iBAC3CjC,MAAOsS,EACPjD,SAAU,SAACiD,GAAD,OAAU+E,EAAQ/E,MAG9B,YAAC,GAAD,KACE,YAAC,GAAD,CACEiD,OAAQohB,EACRnhB,SAAUmhB,EACVtyB,WAAS,EACTd,QAAS,WACPszB,MAGD50B,GAAG,SAAU,kBACN,IACV,YAAC,GAAD,CAAQsB,QAAS,kBAAM8K,GAAS,KAC7BpM,GAAG,SAAU,sBC7EpBA,GAAOtC,GAAGuC,KAAVD,GACR,GAA8DtC,GAAGyC,WAAzDK,GAAR,GAAQA,KAAMuP,GAAd,GAAcA,UAAWD,GAAzB,GAAyBA,SAAkB0M,IAA3C,GAAmCjc,OAAnC,GAA2Cic,gBACnCle,GAAaZ,GAAGW,KAAhBC,SAKO,eAAsB,IAAnBu2B,EAAkB,EAAlBA,YAChB,OACE,YAAC,GAAD,KACE,YAAC,GAAD,KACE,YAAC,GAAD,CAAMpN,QAAQ,cACZ,YAAC,GAAD,CACEqN,UAAQ,EACR1yB,WAAS,EACTqd,OAAO,gCACPrS,SAAU,SAAC1L,GACJA,EAAEyV,OAAOmI,QAGdhhB,GAAS,6BAA6BgzB,WAAW5vB,EAAEyV,OAAOmI,OAC1DmO,OAAO/rB,EAAEyV,QAAQsE,IAAI,SAGtBzb,GAAG,gBAAiB,kBACL,IAClB,YAAC+0B,GAAD,QACGF,GAAeA,IAGtB,YAAC/kB,GAAD,QC5BE9P,GAAOtC,GAAGuC,KAAVD,GACAO,GAAW7C,GAAGyC,WAAdI,OACR,GAAgC7C,GAAGC,QAA3B8C,GAAR,GAAQA,SAAU5C,GAAlB,GAAkBA,UACVwE,GAAc3E,GAAGW,KAAjBgE,UAEO,eAAmB,IAAhB2yB,EAAe,EAAfA,SAChB,EAA0Bv0B,GAAS,MAAnC,mBAAO0uB,EAAP,KAAcwD,EAAd,KACA,EAAkClyB,IAAS,GAA3C,mBAAOw0B,EAAP,KAAkBC,EAAlB,KAEMjb,EAAa5X,IAAU,SAACa,GAAD,OAC3BA,EAAO,6BAA6BytB,GAAG,iBAEnClC,EAASpsB,IAAU,SAACa,GAAD,OACvBA,EAAO,6BAA6BurB,YAmBtC,OAfA5wB,IAAU,WACR80B,EACE1Y,EAAawU,EAAO1kB,MAAK,SAAColB,GAAD,OAAWA,EAAMQ,OAAS1V,KAAc,QAElE,CAACwU,EAAQxU,IAGZpc,IAAU,WACa,IAAjBsxB,aAAA,EAAAA,EAAOhxB,SAAP,MAAsBgxB,KAAO8C,qBAAqBnzB,OACpDo2B,GAAa,GAGfA,GAAa/F,aAAA,EAAAA,EAAOhxB,QAAS,IAAKgxB,aAAA,EAAAA,EAAOhxB,QAAS,KACjD,CAACgxB,aAAD,EAACA,EAAO8C,uBAGT,oBAAC,GAAD,CAAQ7vB,WAAS,EAACmR,UAAW0hB,EAAW3zB,QAAS,kBAAM0zB,EAAS7F,KAC7DA,WAAOzlB,KAAOurB,EACXj1B,GAAG,oCAAqC,iBACxCA,GAAG,SAAU,mBCtCf4P,GAASlS,GAAGyC,WAAZyP,KAGO,eAA4B,IAAzByJ,EAAwB,EAAxBA,SAAU/X,EAAc,EAAdA,QAC1B,OACE,oBACEA,QAASA,EACTL,IAAKA,YAAF,2MAQH,YAAC,GAAD,CACEA,IAAKA,YAAF,iJAMHkR,KAAK,iBACLoZ,KAAM,KAER,wBAAOlS,KCrBLrZ,GAAOtC,GAAGuC,KAAVD,GACAS,GAAa/C,GAAGC,QAAhB8C,SACR,GAAgC/C,GAAGW,KAA3BC,GAAR,GAAQA,SAAU+D,GAAlB,GAAkBA,UAClB,GAAuC3E,GAAGyC,WAAlCI,GAAR,GAAQA,OAAQyP,GAAhB,GAAgBA,MAAOjE,GAAvB,GAAuBA,YAKR,cACb,MAA0BtL,IAAS,GAAnC,mBAAO0L,EAAP,KAAcC,EAAd,KACA,EAAgC3L,IAAS,GAAzC,mBAAOgyB,EAAP,KAAiBC,EAAjB,KACA,EAA0BjyB,GAAS,IAAnC,mBACMuvB,GADN,UACmB3tB,IAAU,SAACa,GAAD,OAC3BA,EAAO,6BAA6BwtB,wBAEhClyB,EAAO6D,IAAU,SAACa,GAAD,OACrBA,EAAO,6BAA6B2tB,iBAGhCsE,EAAgB,uCAAG,sBAAAzqB,EAAA,6DACvBgoB,GAAY,GADW,kBAGfh1B,GAAGmN,SAAS,CAChB1E,KAAK,6CAAD,OAA+C6pB,aAA/C,EAA+CA,EAAYL,MAC/D7kB,OAAQ,SACRzM,KAAM,CACJG,UAPiB,OAUrB4N,GAAS,GACT9N,GAAS,6BAA6B8yB,qBAAqB,IAC3D9yB,GAAS,6BAA6BkzB,kBAAiB,GAZlC,gDAcrBplB,GAAS,GACT9N,GAAS,6BAA6BozB,SAAS,KAAEtzB,SAf5B,yBAiBrBs0B,GAAY,GAjBS,4EAAH,qDAqBtB,OACE,mBACEzxB,IAAKA,YAAF,iKAOH,uBACE,YAACm0B,GAAD,CACE9zB,QAAS,WACPhD,GAAS,6BAA6B8yB,qBAAqB,IAC3D9yB,GAAS,6BAA6BkzB,kBAAiB,KAGxDxxB,GAAG,sBAAuB,kBAE7B,sBAAKgwB,EAAW3f,OAElB,YAAC,GAAD,CAAQ6E,eAAa,EAAC5T,QAAS,kBAAM8K,GAAS,KAC3CpM,GAAG,oBAAqB,kBAE1BmM,GACC,YAAC,GAAD,CACEka,2BAA2B,EAC3BxT,iBAAiB,eACjB3N,MAAO,oBACP0N,eAAgB,kBAAMxG,GAAS,KAE/B,sBACGpM,GACC,mDACA,kBAGJ,qBACGA,GACC,6DACA,kBAGJ,YAAC,GAAD,KACE,YAAC,GAAD,CACEkV,eAAa,EACb3B,SAAUkf,EACVnf,OAAQmf,EACRnxB,QAAS6zB,GAERn1B,GAAG,SAAU,kBACN,IACV,YAAC,GAAD,CAAQsB,QAAS,kBAAM8K,GAAS,KAC7BpM,GAAG,SAAU,sB,6kBC9FXtC,GAAGyC,WAAZyP,KAAR,I,uCACA,GAA4ClS,GAAGC,QAAvC8C,GAAR,GAAQA,SAAU5C,GAAlB,GAAkBA,UAClB,IADA,GAA6B20B,WACG90B,GAAGW,MAA3BgE,GAAR,GAAQA,UACArC,IADR,GAAmB1B,SACJZ,GAAGuC,KAAVD,IAMO,eAAiC,IAY1Cq1B,EAZY9K,EAA6B,EAA7BA,KAAMla,EAAuB,EAAvBA,KAAMoa,EAAiB,EAAjBA,WAC5B,EAAgChqB,GAAS,GAAzC,mBAAOyN,EAAP,KAAiBygB,EAAjB,KACA,EAA8BluB,GAAST,GAAG,YAAa,kBAAvD,mBAAgBs1B,GAAhB,WACA,EAA0B70B,GAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KACA,EAA8BnQ,IAAS,GAAvC,mBAAO80B,EAAP,KAAgBC,EAAhB,KACMh3B,EAAO6D,IAAU,SAACa,GAAD,OACrBA,EAAO,6BAA6B2tB,iBAEhCb,EAAa3tB,IAAU,SAACa,GAAD,OAC3BA,EAAO,6BAA6BwtB,uBAKhC+E,EAAM,uCAAG,sBAAA/qB,EAAA,sDACb4qB,EAAWt1B,GAAG,YAAa,kBAC3Bq1B,EAAWtG,EAAY,CACrBxE,KAAMA,WAAO,GAAKA,aAAZ,EAAYA,EAAO,GAAKA,EAC9BpkB,KAAK,uCACLqkB,WAAY,SAACwE,GACXL,EAAYK,IAEdvE,WAAYhgB,EACZigB,QAAS,SAAChpB,GACRkP,EAASlP,EAAEtD,SACXk3B,EAAWt1B,GAAG,QAAS,kBACvB2uB,EAAY,MAZH,2CAAH,qDAiBNlkB,EAAW,uCAAG,iCAAAC,EAAA,6DAASvE,EAAT,EAASA,KAAMkK,EAAf,EAAeA,KACjCilB,EAAWt1B,GAAG,WAAY,kBADR,kBAGItC,GAAGmN,SAAS,CAC9B1E,KAAM,uCACN2E,OAAQ,OACRzM,KAAK,IACHG,OACA6R,QACI2f,WAAYL,KAAO,CAAEK,WAAYA,EAAWL,MAAS,MAT7C,OAGVR,EAHU,OAYhBqG,GAAW,GACXE,EAAW,CAAEvvB,OAAMgpB,UAbH,kDAehBve,EAAS,KAAExS,SAfK,yBAiBhBuwB,EAAY,GAjBI,6EAAH,sDAwBX+G,EAAU,uCAAG,+BAAAhrB,EAAA,6DAASvE,EAAT,EAASA,KAAMgpB,EAAf,EAAeA,MAAf,SACXzxB,GAAGmN,SAAS,CAChB1E,KAAM,sCACN2E,OAAQ,OACRzM,KAAM,CACJG,OACA2H,OACAwpB,KAAMR,EAAMQ,QAPC,OAWjBlF,IAXiB,2CAAH,sDA0BhB,OAPA5sB,IAAU,WAER,OADA43B,IACO,WACLJ,GAAYA,EAASvJ,YAEtB,IAECyJ,EACK,GAIP,mBACEt0B,IAAKA,YAAF,whBAmBH,mBACEA,IAAKA,YAAF,yNASA0P,GAASA,IACTN,GAAQA,EAXb,IAWoBka,EAAKla,KAXzB,OAaA,mBACEpP,IAAKA,YAAF,iGAKH,YAAC+xB,GAAD,CACE/xB,IAAKA,YAAF,6NAQHiN,SAAUA,OC9IZ7L,GAAc3E,GAAGW,KAAjBgE,UAEO,eAAkC,IAA/BkvB,EAA8B,EAA9BA,aACVhB,GADwC,EAAhB/B,UACdnsB,IAAU,SAACa,GAAD,OACxBA,EAAO,6BAA6BqtB,cAGtC,OAAKA,EAAQzxB,OAKX,mBACEmC,IAAKA,YAAF,iJAOFsvB,EAAQzxB,QACPyxB,EAAQnmB,KAAI,SAACqrB,GACX,OACE,YAACE,GAAD,CACE10B,IAAKA,YAAF,gFAGHspB,KAAMkL,EACNhL,WAAY,kBAAM8G,EAAakE,UApBlC,ICRHz1B,GAAOtC,GAAGuC,KAAVD,GACAgQ,GAAUtS,GAAGyC,WAAb6P,MAIO,eAQR,IAPL8B,EAOI,EAPJA,QACA5M,EAMI,EANJA,MACA2nB,EAKI,EALJA,OACAlc,EAII,EAJJA,MACAilB,EAGI,EAHJA,YACAC,EAEI,EAFJA,QACA5C,EACI,EADJA,OAEA,OACE,YAAC,GAAD,CACE/tB,MAAOA,GAAgBlF,GAAG,YAAa,iBACvC4S,eAAgBd,EAChB7Q,IAAKA,YAAF,gRAWH4R,iBAAiB,gCAEjB,mBACE5R,IAAKA,YAAF,ghBAeH6R,UAAQ,eAER,mBACE7R,IAAKA,YAAF,oHAKH,mBACEA,IAAKA,YAAF,0LASF4rB,GAEFlc,GAEH,mBACE1P,IAAKA,YAAF,mVAeF20B,GAEH,mBACE30B,IAAKA,YAAF,4bAkBF40B,GAEH,mBACE50B,IAAKA,YAAF,mPASFgyB,MCrHHjzB,GAAOtC,GAAGuC,KAAVD,GACR,GAAuDtC,GAAGyC,WAA1CwsB,IAAhB,GAAQpsB,OAAR,GAAgBosB,UAAUC,GAA1B,GAA0BA,iBAAkB/c,GAA5C,GAA4CA,OAC5C,GAA0CnS,GAAGC,QAA3BE,IAAlB,GAAQ4C,SAAR,GAAkB5C,WAClB,IADA,GAA6B61B,SACGh2B,GAAGW,MAA3BC,GAAR,GAAQA,SAAU+D,GAAlB,GAAkBA,UAcH,eAA4B,IAAzByP,EAAwB,EAAxBA,QAASkjB,EAAe,EAAfA,SACnBxG,EAAYnsB,IAAU,SAACa,GAAD,OAC1BA,EAAO,6BAA6BsrB,eAEhC+B,EAAUluB,IAAU,SAACa,GAAD,OACxBA,EAAO,6BAA6BqtB,aAEhCG,EAAoBruB,IAAU,SAACa,GAAD,OAClCA,EAAO,6BAA6BwtB,uBAEhCD,EAASpuB,IAAU,SAACa,GAAD,OACvBA,EAAO,6BAA6ButB,YAGtC5yB,IAAU,WACRS,GAAS,6BAA6BkzB,kBAAiB,GACvDlzB,GAAS,6BAA6B0yB,eAAe,IACrD1yB,GAAS,6BAA6BowB,UAAU,MAC/C,IAEH,IAYMoH,EAAY,SAACxW,GACjBhhB,GAAS,6BAA6BgzB,WAAWhS,IAW7Cpa,EACFlF,GADUwuB,EACP,yBACA,wBAD0B,iBA+D3B3B,EACJ,YAACkJ,GAAD,CACElB,YACE,YAACmB,GAAD,CACEzF,QAASA,EACTgB,aA9Ea,SAAChH,GACpBjsB,GAAS,6BAA6BizB,aAAahH,IA8E7CiE,UAAWA,MAMbqH,EAAU,YAACI,GAAD,MAKVhD,EAAS,YAACiD,GAAD,CAAQlB,SAAUA,IAEjC,OACE,YAACmB,GAAD,CACEjxB,MAAOA,EACP2nB,OAAQA,EACR+I,YA5EA,YAAC,GAAD,CACE30B,IAAKA,YAAF,+HAMH,mBACEA,IAAKA,YAAF,0KAOAwvB,EAAO3xB,QACR2xB,EAAOrmB,KAAI,SAACuG,GACV,OACE,YAAC,GAAD,CACE1P,IAAKA,YAAF,yFAGH9C,OAAO,QACPuf,SAAU,kBACRpf,GAAS,6BAA6BqzB,YAAYhhB,KAGnDA,MAMN+f,EAAoB,YAAC0F,GAAD,MAAuB,YAACC,GAAD,MAE9C,mBACEp1B,IAAKA,YAAF,8GAKH,YAACq1B,GAAD,OAGF,YAAC,GAAD,CAAU3xB,MAAO,aAAcmpB,YAAagI,MAiChDhkB,QAhHmB,WACjBye,EAAQzxB,OACAwM,QAAQ,2BAEhBwG,IACAxT,GAAS,6BAA6B+yB,WAAW,KAIrDvf,KAwGEmhB,OAAQA,EACR4C,QAASA,KC5JP71B,GAAOtC,GAAGuC,KAAVD,GACAnC,GAAcH,GAAGC,QAAjBE,UACAS,GAAaZ,GAAGW,KAAhBC,SAKO,eAA0C,IAAvCgwB,EAAsC,EAAtCA,WAAYnb,EAA0B,EAA1BA,SAAUqb,EAAgB,EAAhBA,UActC,OALA3wB,IAAU,WACRS,GAAS,6BAA6B4yB,aAAa1C,KAClD,CAACA,IAIF,oBAAC,GAAD,CACE1c,QAASwc,EACT0G,SAhBa,SAAC7F,GAChBA,EAAM5oB,IAAM4oB,EAAMoH,YAClBpH,EAAMhrB,UAAYgrB,EAAMoE,aACxBpE,EAAM9qB,QAAU8qB,EAAM4D,QACtB5f,EAASgc,IAaPtC,OAEM7sB,GADJwuB,EACO,yBACA,wBAD0B,iBAGnCtpB,MAEMlF,GADJwuB,EACO,uBACA,sBADwB,oBChC/BxuB,GAAOtC,GAAGuC,KAAVD,GACAS,GAAa/C,GAAGC,QAAhB8C,SACF+1B,GAAO,UAAMnqB,aAAaiF,MAAnB,OAA0BjF,aAAakF,oBAAvC,UCFLvR,GAAOtC,GAAGuC,KAAVD,GACAS,GAAa/C,GAAGC,QAAhB8C,SACF+1B,GAAO,UAAMnqB,aAAaiF,MAAnB,OAA0BjF,aAAakF,oBAAvC,iBCFLvR,GAAOtC,GAAGuC,KAAVD,GAER,GAUItC,GAAGyC,WATLI,GADF,GACEA,OACAoP,GAFF,GAEEA,YACAyR,GAHF,GAGEA,YACA5gB,GAJF,GAIEA,KACAuP,GALF,GAKEA,UACA8U,GANF,GAMEA,aACA5Y,GAPF,GAOEA,QACA6D,GARF,GAQEA,SACAD,GATF,GASEA,OAEMhS,GAAcH,GAAGC,QAAjBE,UAKO,eAAsC,IAAnC44B,EAAkC,EAAlCA,UAAWj4B,EAAuB,EAAvBA,KAAMk4B,EAAiB,EAAjBA,WACjC,EAUW,WAATl4B,EDzBW,SAACi4B,GACd,MAA4Bh2B,GAAS,IAArC,mBAAOk2B,EAAP,KAAeC,EAAf,KACA,EAAsCn2B,GAAS,IAA/C,mBAAOo2B,EAAP,KAAoBC,EAApB,KACA,EAA4Br2B,IAAS,GAArC,mBAAOqkB,EAAP,KAAeC,EAAf,KACA,EAAwBtkB,GAAS,GAAjC,mBAAOs2B,EAAP,KAAaC,EAAb,KACA,EAA0Bv2B,GAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KAEMqmB,EAAW,SAACC,GAChB,OAAIA,EAAY13B,SAAS,iCAChB,0FAEL03B,EAAY13B,SAAS,aAChB,kGAEF03B,GAuGT,MAAO,CAAEC,QApGI,uCAAG,8BAAAzsB,EAAA,6DACdkG,EAAS,IADK,SAIZmU,GAAU,GACViS,EAAQ,GACRF,EAAe92B,GAAG,wBAAyB,kBAN/B,SAOctC,GAAGmN,SAAS,CACpCtE,IAAI,GAAD,OAAKiwB,GAAL,WACH1rB,OAAQ,OACRzM,KAAM,CACJ+4B,QAAST,KAXD,qBAOJU,QAPI,sBAgBJ,CACJj5B,QACE,iFAlBM,iEAsBZ44B,EAAQ,GACRpmB,EACE,iCAAGxS,QACC64B,EAAS,KAAE74B,SACX,0CA1BM,4CA8BZ44B,EAAQ,GACRjS,GAAU,GACV+R,EAAe,IAhCH,sCAqCZ/R,GAAU,GACV+R,EACE92B,GACE,mEACA,kBAzCQ,UA4CStC,GAAGmN,SAAS,CAC/BtE,IAAI,GAAD,OAAKiwB,GAAL,WACH1rB,OAAQ,OACRzM,KAAM,CACJG,KAAM,YAhDE,mBA4CJkL,GA5CI,0DAoDZstB,EAAQ,GACRpmB,EACE,iCAAGxS,QACC64B,EAAS,KAAE74B,SACX,0CAxDM,4CA4DZ44B,EAAQ,GACRjS,GAAU,GACV+R,EAAe,IA9DH,sCAmEZ/R,GAAU,GACV+R,EACE92B,GACE,oEACA,kBAvEQ,UA0ENtC,GAAGmN,SAAS,CAChBtE,IAAI,GAAD,OAAKiwB,GAAL,WACH1rB,OAAQ,OACRzM,KAAM,CACJG,KAAM,aA9EE,kEAkFZw4B,EAAQ,GACRpmB,EACE,iCAAGxS,QACC64B,EAAS,KAAE74B,SACX,0CAtFM,4CA0FZ44B,EAAQ,GACRjS,GAAU,GACV+R,EAAe,IA5FH,qBA+FdL,IA/Fc,4FAAH,qDAoGKG,YAAWG,OAAMF,cAAa/R,SAAQnU,QAAO2mB,WAF5C,GCzFbC,CAAoBd,GF1Bb,SAACA,GACd,MAA4Bh2B,GAAS,IAArC,mBAAOk2B,EAAP,KAAeC,EAAf,KACA,EAAsCn2B,GAAS,IAA/C,mBAAOo2B,EAAP,KAAoBC,EAApB,KACA,EAA4Br2B,IAAS,GAArC,mBAAOqkB,EAAP,KAAeC,EAAf,KACA,EAAwBtkB,GAAS,GAAjC,mBAAOs2B,EAAP,KAAaC,EAAb,KACA,EAA0Bv2B,GAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KAEMqmB,EAAW,SAACC,GAChB,OAAIA,EAAY13B,SAAS,iCAChB,0FAEL03B,EAAY13B,SAAS,aAChB,kGAEF03B,GAiGT,MAAO,CAAEC,QA9FI,uCAAG,gCAAAzsB,EAAA,6DACdkG,EAAS,IADK,SAIZmU,GAAU,GACViS,EAAQ,GACRF,EAAe92B,GAAG,wBAAyB,kBAN/B,SAOctC,GAAGmN,SAAS,CACpCtE,IAAI,GAAD,OAAKiwB,GAAL,WACH1rB,OAAQ,OACRzM,KAAM,CACJ+4B,QAAST,KAXD,qBAOJU,QAPI,sBAgBJ,CACJj5B,QACE,iFAlBM,iEAsBZ44B,EAAQ,GACRpmB,EACE,iCAAGxS,QACC64B,EAAS,KAAE74B,SACX,0CA1BM,4CA8BZ44B,EAAQ,GACRjS,GAAU,GACV+R,EAAe,IAhCH,sCAqCZ/R,GAAU,GACV+R,EACE92B,GACE,4DACA,kBAzCQ,UA4CStC,GAAGmN,SAAS,CAC/BtE,IAAI,GAAD,OAAKiwB,GAAL,iBACH1rB,OAAQ,SA9CE,mBA4CJpB,GA5CI,0DAiDZstB,EAAQ,GACRpmB,EACE,iCAAGxS,QACC64B,EAAS,KAAE74B,SACX,0CArDM,4CAyDZ44B,EAAQ,GACRjS,GAAU,GACV+R,EAAe,IA3DH,sCAgEZ/R,GAAU,GACV+R,EACE92B,GACE,yDACA,kBApEQ,UAuEStC,GAAGmN,SAAS,CAC/BtE,IAAI,GAAD,OAAKiwB,GAAL,cACH1rB,OAAQ,SAzEE,mBAuEJpB,GAvEI,0DA4EZstB,EAAQ,GACRpmB,EACE,iCAAGxS,QACC64B,EAAS,KAAE74B,SACX,0CAhFM,4CAoFZ44B,EAAQ,GACRjS,GAAU,GACV+R,EAAe,IAtFH,qBAyFdL,IAzFc,4FAAH,qDA8FKG,YAAWG,OAAMF,cAAa/R,SAAQnU,QAAO2mB,WAF5C,GElFbE,CAAqBf,GAXzBU,EADF,EACEA,QACAR,EAFF,EAEEA,OACAC,EAHF,EAGEA,UACAC,EAJF,EAIEA,YACA/R,EALF,EAKEA,OACAwS,EANF,EAMEA,WACAP,EAPF,EAOEA,KACApmB,EARF,EAQEA,MAYF,OANA9S,IAAU,WACJ64B,GACFS,MAED,CAACT,IAGF,oBAACtV,GAAD,CACEzc,MAAO3E,GAAG,kBAAmB,iBAC7BshB,aACE,wCACGthB,GACC,mFACA,iBAHJ,IAME,oBAAC6kB,GAAD,CAAc9e,KAAK,0CAChB/F,GAAG,iBAAkB,oBAK3B8kB,EACC,oBAAC,GAAD,KACE,oBAAC,GAAD,KACE,oBAAC,GAAD,OAEF,oBAAC,GAAD,KACG+R,EACD,gCACE32B,UAAU,kBACVqP,IAAK+nB,EACLv5B,MAAOg5B,EACP3zB,MAAO,CAAElC,MAAO,YAKtB,4BACEqgB,SAAU,SAAC7f,GACTA,EAAEuf,iBACFkW,MAGDxmB,GACC,oBAAC,GAAD,CAAMvN,MAAO,CAAElC,MAAO,SACpB,oBAAC,GAAD,KACE,oBAAC,GAAD,CAAQ/C,OAAO,QAAQkV,eAAe,GACnC1C,KAKT,oBAAC,GAAD,CAAMvN,MAAO,CAAElC,MAAO,OAAQ+T,SAAU,UACtC,oBAAC,GAAD,KACE,oBAAC,GAAD,CACElX,MAAO44B,EACPvpB,SAAU,SAACupB,GAAD,OAAYC,EAAUD,IAChCz2B,UAAW,gCACX1B,KAAK,WACL2iB,aAAa,MACbnO,YAAahT,GAAG,yBAA0B,iBAC1Cy3B,UAAQ,KAGZ,oBAAC,GAAD,KACE,oBAAC,GAAD,CAAQr1B,WAAS,EAACgB,MAAO,CAAEoe,aAAc,OAAShjB,KAAK,UACpDwB,GAAG,OAAQ,iBADd,W,+lBChGd,OAUItC,GAAGyC,WATLI,GADF,GACEA,OACAof,GAFF,GAEEA,SACA+X,GAHF,GAGEA,aACAzrB,GAJF,GAIEA,QACA0rB,GALF,GAKEA,QACA3rB,GANF,GAMEA,YACAD,GAPF,GAOEA,YACAqV,GARF,GAQEA,YACAxU,GATF,GASEA,cAEF,GAA6ClP,GAAGk6B,OAAxCC,GAAR,GAAQA,cAAeC,GAAvB,GAAuBA,kBACf93B,GAAOtC,GAAGuC,KAAVD,GACA+I,GAAYrL,GAAGqL,QAAfA,QACR,GAA0CrL,GAAGC,QAArCE,GAAR,GAAQA,UAAW4C,GAAnB,GAAmBA,SAAUizB,GAA7B,GAA6BA,SACrBp1B,GAAaZ,GAAGW,KAAhBC,SAkBOyK,MAAQ,CAACgvB,cAAkBC,eAA3BjvB,CACbiD,IACE,YAaO,IAAD,IAZJvJ,EAYI,EAZJA,WACA0G,EAWI,EAXJA,cACAolB,EAUI,EAVJA,iBACA/rB,EASI,EATJA,SAEA8G,GAOI,EARJD,WAQI,EAPJC,YACAmB,EAMI,EANJA,YACAQ,EAKI,EALJA,SACAE,EAII,EAJJA,WACAE,EAGI,EAHJA,YACAI,EAEI,EAFJA,UACArC,EACI,EADJA,cAGErE,EAOEtC,EAPFsC,OACAjF,EAME2C,EANF3C,IACA4J,EAKEjH,EALFiH,GACAlF,EAIE/B,EAJF+B,OACAwC,EAGEvE,EAHFuE,WACAwE,EAEE/I,EAFF+I,WACArH,EACE1B,EADF0B,UAGF,EAAoC1D,GAAS,IAA7C,mBAAOw3B,EAAP,KAAmBC,EAAnB,KACA,EAA8Bz3B,IAAS,GAAvC,mBAAOkL,EAAP,KAAgB+E,EAAhB,KAGA,EAA0BjQ,GAAS,IAAnC,mBAAO03B,EAAP,KAAcC,EAAd,KACA,EAA8B33B,GAAS,CACrC43B,QAAQ,EACRC,SAAS,IAFX,mBAAOC,EAAP,KAAgBC,EAAhB,KAIA,EAA0C/3B,IAAS,GAAnD,mBAAOg4B,EAAP,KAAsBC,EAAtB,KAGA,EAAsCj4B,IAAS,GAA/C,mBAAOk4B,EAAP,KAAoBC,EAApB,KACA,EAAgDn4B,IAAS,GAAzD,mBAAyBo4B,GAAzB,WACA,GAAgDp4B,IAAS,GAAzD,qBAAOq4B,GAAP,MAAyBC,GAAzB,MAEM/T,GAAsBtnB,GAAGW,KAAKgE,WAAU,SAACa,GAAD,OAC5CA,EAAO,QAAQ+hB,QAAQ,OAAQ,eAI3BuJ,GAA2B,YAAfxnB,EAGZgyB,GAAoB,UACxBnY,yBADwB,iBACxB,EAAmB3c,aADK,aACxB,EAA0B+0B,uBAgB5B,SAASC,GAAYC,GACdA,EAAM5yB,KASX4C,EAAc,OACZrJ,IAAKq5B,EAAM5yB,IACXhE,OAAQ6G,aAAF,EAAEA,EAAeM,IACnByvB,WAAOh1B,UAAY,CAAEA,UAAWg1B,EAAMh1B,WAAc,IACpDg1B,WAAO90B,QAAU,CAAEA,QAAS80B,EAAM90B,SAAY,KAIpDqM,GAAW,GACXzF,IACAR,EAAY,IACV3K,IAAKq5B,EAAM5yB,IACX/H,KAAM,QACN0G,MAAOi0B,EAAMj0B,OACTi0B,WAAOxJ,KAAO,CAAEhlB,YAAawuB,EAAMxJ,MAAS,KAE/CyJ,OAAM,SAAC13B,GACNyH,EAAc,CAAErJ,IAAK,KACrBiS,QAAQpB,MAAMjP,MAEf23B,SAAQ,WACPluB,IACAuF,GAAW,OA3BbvH,EAAc,CAAErJ,SAAKyL,EAAW7B,QAAI6B,IAlBxC1N,IAAU,WACRS,GAAS,6BAA6B4yB,aACrB,YAAflqB,KAED,CAACA,IAEJnJ,IAAU,WAAO,IAAD,YACd26B,EAAW,CACTF,QAAO,UAAEzX,yBAAF,iBAAE,EAAmB0X,eAArB,iBAAE,EAA4Br0B,aAA9B,aAAE,EAAmCo0B,QAC5CD,OAAM,UAAExX,yBAAF,iBAAE,EAAmB0X,eAArB,iBAAE,EAA4Br0B,aAA9B,aAAE,EAAmCm0B,WAE5C,IAuCH,IAAM/U,GAAa,uCAAG,0CAAA5Y,EAAA,+EAORhN,GAAGmN,SAAS,CACpB1E,KAAK,mBARW,gBAGhBmzB,EAHgB,EAGhBA,+BACAC,EAJgB,EAIhBA,kCACAC,EALgB,EAKhBA,mCACAC,EANgB,EAMhBA,kCAIFb,GAAe,GAEVY,GACHd,GAAiB,GAQbgB,GAJAnB,EAAU,SAACoB,GACf,QAAUA,YAAQC,YAARD,MAAsBA,MAAQE,aAIhCP,IACRf,EAAQgB,GACJO,GACJN,aAAA,EAAAA,EAAoCO,iBACpCN,aADA,EACAA,EAAmCM,eAErCvB,EAAW,CACTF,QAASoB,EACTrB,OAAQyB,IAMR1B,EAHGsB,GAAiBI,EAGX,GAFA,UAlCO,yBAuClBjB,GAAoB,GAvCF,2EAAH,qDA4CnBh7B,IAAU,WACJmnB,GACF1B,KAEAsV,GAAe,KAEhB,CAAC5T,KAEJ,IAAMgV,GAAU,uCAAG,4BAAAtvB,EAAA,0DACb8jB,GADa,gCAEQlE,EAAQxqB,GAFhB,OAEX0L,EAFW,OAGfrC,EAAc,CAAEqC,eAHD,sBAKfrC,EAAc,CAAEqC,WAAY1L,IALb,2CAAH,qDAQhBjC,IAAU,WACRm8B,OACC,CAACl6B,IAEJ,IAAMm6B,GAAY,uCAAG,4BAAAvvB,EAAA,0DACf8jB,GADe,gCAEYlE,EAAQnmB,GAFpB,QAEbC,EAFa,SAIf+E,EAAc,CAAE/E,qBAJD,sBAOjB+E,EAAc,CAAE/E,iBAAkBD,IAPjB,2CAAH,qDAUlBtG,IAAU,WACRo8B,OACC,CAAC91B,IAEJ,IAwCM+1B,GAAc,WAClB,IAAMC,EAAW,GAoBjB,OAnBC1B,GACC0B,EAASC,KAAK,CACZl1B,MAAOqzB,EAAQF,OACXr4B,GAAG,mBAAoB,iBACvBA,GAAG,iBAAkB,iBACzBsB,QAAS,WACP82B,EAAS,UACTW,IAAoB,OAIzBC,IACCmB,EAASC,KAAK,CACZl1B,MAAOqzB,EAAQD,QACXt4B,GAAG,8BAA+B,iBAClCA,GAAG,4BAA6B,iBACpCsB,QAAS,kBAAM82B,EAAS,cAI1B,oBAACV,GAAD,CACEvlB,KAAK,WACLxN,MAAO3E,GAAG,qBAAsB,iBAChCm6B,SAAUA,KAKhB,OAAIxuB,IAAYgtB,EAEZ,oBAAC,GAAD,CAAaz4B,UAAU,yCACrB,oBAAC,GAAD,OAKQ,WAAVi4B,EAEA,oBAACkC,GAAD,CACE77B,KAAK,SACLk4B,WAAYoC,GACZrC,UAAW,WACTmC,GAAe,GACftV,QAMM,YAAV6U,EAEA,oBAACkC,GAAD,CACE77B,KAAK,UACLi4B,UAAW,WACTmC,GAAe,GACftV,QAMH5Z,EAuFH,wCACE,oBAACmuB,GAAD,KACE,oBAAC1Z,EAAA,EAAD,CACE3Z,OAAQA,EACR4I,SAAU,SAAC6R,GACT9V,EAAc,CAAE3E,OAAQya,OAG5B,oBAAC0Y,GAAD,KACE,oBAAC,GAAD,CAAQr2B,QAAS,kBAAM+J,MACpBrL,GAAG,UAAW,oBAKrB,oBAAC83B,GAAD,KACE,oBAACwC,GAAA,EAAD,CACEnxB,cAAeA,EACf1G,WAAYA,KAIhB,8BAAQvC,UAAU,kBAKhB,oBAAC,GAAD,KACE,oBAACq6B,GAAA,EAAD,CACEx1B,OAAQA,EACRjF,IAAK0L,EACL9B,GAAIA,EACJlL,KAAM,QACNiE,WAAYA,EACZ0G,cAAeA,EACf5G,OAAQ+G,EACR9G,SAAUA,EACVsM,IAAKrD,OA1HX,+BACE,oBAAC,GAAD,CACE9G,MAEM3E,GADJwuB,GACO,0BACA,kBAD2B,iBAGpCrc,KACEqc,GACE,2BACElU,MAAM,6BACNC,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMwa,EAAE,iDAGV,2BACEJ,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,gCAAUgqB,OAAO,qBACjB,4BAAMlB,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OACjC,4BAAMzO,EAAE,yDAId4G,aACE,wCAAGthB,GAAG,kCAAmC,mBAG3C,oBAAC,GAAD,CAAaE,UAAU,sCACrB,oBAAC0M,GAAD,CACEjI,MAAM,gBACNwI,KACEqhB,GACI,uDACA,mCAENlhB,QAASkhB,GACTphB,SAAU,SAACohB,GACTrlB,EAAc,CACZnC,WAAYwnB,EAAY,UAAY,eA9JhD,oBAAC,GAAD,KACG+J,EAAQF,QACP,oBAAC,GAAD,CAAQj2B,WAAS,EAACd,QAAS,kBAAM42B,EAAc,YAEzCl4B,GADHwuB,GACM,kCACA,0BADmC,mBAK5CwK,IAAwBT,EAAQD,SAChC,oBAAC,GAAD,CACEvf,YAAawf,EAAQF,OACrBj2B,WAAYm2B,EAAQF,OACpB/2B,QAAS,kBAAM42B,EAAc,aAGzBl4B,GADHwuB,GACM,qCACA,6BADsC,mBAK/C+J,EAAQF,SAAWI,GAAiBF,EAAQD,SAC5C,oBAAC,GAAD,CACEvf,aAAW,EACXzX,QAAS,WACPy3B,IAAoB,GACpBX,EAAS,YAGVp4B,GAAG,2BAA4B,oBAIjCglB,IAAuBkV,OAqIV,YAAfjC,GACC,oBAACuC,EAAD,CACEhM,UAAWA,GACXF,WAAY,kBAAM4J,EAAc,KAChC3J,iBAAkBA,EAClBpb,SAAU+lB,KAIE,WAAfjB,GACC,oBAACwC,GAAD,CACEjM,UAAWA,GACXF,WAAY,kBAAM4J,EAAc,KAChC3J,iBAAkBA,EAClBpb,SAAU+lB,U,slBChZ1B,IAAQl5B,GAAOtC,GAAGuC,KAAVD,GAOKqQ,GAAO,sBAKPxC,GAAO,SACf6sB,MADe,IAGlBj4B,WAAW,SACNi4B,KAAaj4B,YACb,CACD0B,UAAW,CACT3F,KAAMyI,OACNpC,QAAS,IAEXR,QAAS,CACP7F,KAAMyI,OACNpC,QAAS,MAKf81B,SAAS,EAETz1B,MAAOlF,GAAG,yBAA0B,iBAEpC46B,YAAa56B,GAAG,qCAAsC,iBAEtD66B,WAAY,CACV,CACExqB,KAAM,SACNyqB,WAAW,EACX51B,MAAOlF,GAAG,yBAA0B,iBACpC46B,YAAa56B,GACX,4CACA,iBAEFyC,WAAY,CAAEuE,WAAY,WAE5B,CACEqJ,KAAM,UACNnL,MAAOlF,GAAG,iCAAkC,iBAC5CmS,KACE,2BACEmI,MAAM,6BACNC,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMwa,EAAE,iDAGZkgB,YAAa56B,GACX,qDACA,iBAEFyC,WAAY,CAAEuE,WAAY,aAI9BmL,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,gCAAUgqB,OAAO,qBACjB,4BAAMlB,GAAG,KAAKC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OACjC,4BAAMzO,EAAE,yDAIZ0O,W,2MCrFI2R,EAAiBt9B,OAAOqI,SAASC,KAgBjCi1B,EAAuB,SAAC,GAAD,IAAGl7B,EAAH,EAAGA,IAAKsN,EAAR,EAAQA,SAAUmU,EAAlB,EAAkBA,SAAUzP,EAA5B,EAA4BA,QAA5B,OAC3B,oBAAC,aAAD,CAAYA,QAASA,GACnB,4BACE5R,UAAU,iDACVqhB,SAAUA,GAEV,6BACEzO,UAAQ,YACR5S,UAAU,kDACV1B,KAAK,MACL2V,aAAYnU,aAAG,MAAO,iBACtBgT,YAAahT,aAAG,mBAAoB,iBACpCoN,SAAUA,EACVrP,MAAO+B,IAET,oBAAC,SAAD,CACEgT,UAAQ,aACR5S,UAAU,0DACViS,KAAM,eACNxN,MAAO3E,aAAG,QAAS,iBACnBxB,KAAK,cA6MEy8B,4BAAY,0BAAZA,EAvMR,YAkBH,IAAD,IAjBDl9B,aAiBC,MAjBO,GAiBP,MAhBDqY,oBAgBC,MAhBc,GAgBd,EAfDlW,EAeC,EAfDA,UACAiS,EAcC,EAdDA,KAcC,IAbD5L,WAaC,aAZD20B,cAYC,MAZQ,GAYR,EAXDC,EAWC,EAXDA,aACAC,EAUC,EAVDA,QACAC,EASC,EATDA,WACA7M,EAQC,EARDA,UACA8M,EAOC,EAPDA,aACAnoB,EAMC,EANDA,SACAooB,EAKC,EALDA,SACAla,EAIC,EAJDA,YACAma,EAGC,EAHDA,cACAniB,EAEC,EAFDA,SACAoiB,EACC,EADDA,UAEMrd,EAAc/b,qBAAU,SAACa,GAE7B,OAAOmb,EADiBnb,EAAO,qBAAvBmb,eACaD,cACpB,IAEH,EAAsB3d,mBAAS,IAA/B,mBAAOX,EAAP,KAAY47B,EAAZ,KACA,EAAkDj7B,oBAAS,GAA3D,mBAAOk7B,EAAP,KAA0BC,EAA1B,KAEA/9B,qBAAU,WAAO,IAAD,EACd69B,EAAM,UAAC39B,aAAD,EAACA,EAAO+B,WAAR,QAAe,MACpB,CAAC/B,IAEJ,IAAM89B,EAAc,SAACxc,GACnBqc,EAAOrc,EAAMlI,OAAOpZ,QAGhB+9B,EAAe,WACnBF,GAAqB,IAGjBG,EAAgB,WACpBH,GAAqB,IAGjBI,EAAc,SAAC3c,GACnBA,EAAM4B,iBACFnhB,GAAOuhB,IACTA,EAAYvhB,GACZi8B,MAIEE,EAAoB,SAAC3e,EAAShc,GAClC,IAAMggB,EAAwB4Z,EAAxB5Z,aAAcpc,EAAUg2B,EAAVh2B,MAEfkZ,GAAgBiD,IACnBC,EAAethB,aACb,2DACA,kBAKJ,IAAMk8B,EAAuB9hB,IAC3B,iCACAla,EACA,CACE,cAAem7B,IAInB,OACE,oBAAC,cAAD,CACElpB,KAAMA,EACNxN,MAAOO,EACPoc,aAAcA,EACdphB,UAAWg8B,EACXd,QAASA,EACT95B,QAASA,EACTk6B,cAAeA,EACfn3B,QAAS82B,GAER9hB,EACAiE,IAoBD6e,EAAuB,WAC3B,OACE9a,GACE,2BAAKnhB,UAAU,uDACZqG,IAAqB,IAAdioB,GACN,oBAAC,SAAD,CACEtuB,UAAU,yCACVoB,QAASw6B,EACTM,UAAWT,EACXx5B,YAAU,GAETnC,aAAG,YAAa,kBAGpB27B,GACC,oBAAC,EAAD,CACE77B,IAAKA,EACLsN,SAAUyuB,EACVta,SAAUya,EACVlqB,QAASiqB,MAoErB,OACE,oBAAC,mBAAD,CAAkBM,SAAUJ,EAAkBE,MA7Df,WAC/B,IAAMG,EACJ,oBAAC,cAAD,CACEp3B,MACEspB,EACIxuB,aAAG,iCAAkC,iBACrCA,aAAG,yBAA0B,iBAEnCs7B,aAAcA,EACdiB,SAAS,EACTzH,UAAU,EACV3hB,SAAU,SAACkM,GAET1Z,IAAQU,iBACR8M,EAASkM,IAEXvN,QAAS,WAEPnM,IAAQU,kBAEV+P,aAAcA,EACdrY,MAAO8J,MAAM20B,QAAQz+B,GAASA,EAAMqM,KAAI,qBAAGV,MAAe3L,EAAM2L,GAChE2M,OAAQ,YAAe,IAAZxV,EAAW,EAAXA,KACT,OACE,oBAAC,SAAD,CACEuB,WAAS,EACTd,QAAS,SAAC+d,GACRA,EAAMod,kBACN92B,IAAQU,iBACJmoB,EACF7oB,IAAQC,cAAcm1B,GAEtBp1B,IAAQS,aAAa20B,GAEvBl6B,MAGD2tB,EACGxuB,aAAG,2BAA4B,iBAC/BA,aAAG,mBAAoB,qBAOrC,GAAIoe,EAAa,CACf,IAAMd,EACJ,wCACGgf,IACEb,GAAaU,IA1FpBZ,GACE,oBAAC,SAAD,CACEr7B,UAAU,gDACVgF,MAAOlF,aAAG,SAAU,iBACpBwb,QAAM,EACNla,QAASi6B,GAERv7B,aAAG,SAAU,mBAuFlB,OAAOi8B,EAAkB3e,GAG3B,OAAO2e,EAAkBK,GAKtBI,O,QC7OC18B,EAAOtC,GAAGuC,KAAVD,GACR,EAA4DtC,GAAGyC,WAA1C4L,GAArB,EAAQC,YAAR,EAAqBD,aAAaa,EAAlC,EAAkCA,cAAeiD,EAAjD,EAAiDA,OAI3C8sB,EAAsB,CAAC,SAEd,cAMR,IAAD,IALJl6B,EAKI,EALJA,WACA0G,EAII,EAJJA,cACAkY,EAGI,EAHJA,YACAlO,EAEI,EAFJA,SACAkG,EACI,EADJA,SAGMmV,EAA2B,YADV/rB,EAAfuE,WAGR,OACE,oBAAC,GAAD,GACEmL,KACEqc,EACE,2BACElU,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMqF,EAAE,IAAIE,EAAE,KAAKvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,MACpD,4BAAM1P,EAAE,8BAGV,2BACEJ,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACP+b,KAAK,OACL3C,QAAQ,YACRmO,OAAO,eACPxoB,UAAU,qBAEV,4BACE0oB,cAAc,QACdC,eAAe,QACfF,YAAa,EACbjO,EAAE,yJAKVwgB,OAAQ,CACNh2B,MAAOlF,EAAG,eAAgB,iBAC1BshB,aAActhB,EACZ,4DACA,kBAGJyf,OAAO,UACPtW,cAAeA,EACfiN,aAAcumB,EACdC,UAAU,EACVpO,UAAWA,EACXiN,WAAYjN,EACZnN,YAAaA,EACblO,SAAUA,EACVpV,MAAO0E,GApDT,2BAqDa,GArDb,yBAsDW,kBAAMsP,QAAQC,IAAI,YAtD7B,GAwDE,2BAAK5O,MAAO,CAAElC,MAAO,SACnB,oBAAC6K,EAAD,CAAa7L,UAAU,sCACrB,oBAAC0M,EAAD,CACEjI,MACE,+BACG3E,EAAG,eAAgB,iBAAkB,MACrC,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAGjCW,KAEMnN,EADJwuB,EAEM,4DAIA,kDAHA,iBAORlhB,QAASkhB,EACTphB,SAAU,SAACohB,GAAe,IAAD,EACnB,UAACniB,oBAAD,OAAC,EAAcC,UAInBnD,EAAc,CACZnC,WAAYwnB,EAAY,UAAY,WAJpClwB,mBAAS,wBAAwBiO,aAAY,SAUlD8M,GAAY,2BAAKjW,MAAO,CAAElC,MAAO,SAAWmY,KAE5CmV,GACD,oBAAC3e,EAAD,CAAQ1R,OAAO,UAAUkV,eAAe,GACtC,+BACE,+BACE,kCAASrT,EAAG,OAAQ,mBAErBA,EACC,6JACA,sB,6qBC/GD,I,IAAA,cAWR,IAAD,EAVJiN,EAUI,EAVJA,MACAzK,EASI,EATJA,SACAqO,EAQI,EARJA,KACA/Q,EAOI,EAPJA,IACAiF,EAMI,EANJA,OACApC,EAKI,EALJA,YACAC,EAII,EAJJA,QACAqC,EAGI,EAHJA,WACApC,EAEI,EAFJA,SAEI,IADJ+c,kBACI,SACJ,EAAkCnf,mBAAS,GAA3C,mBAAOgL,EAAP,KAAkBoU,EAAlB,KACQ9b,EAA0BkJ,EAA1BlJ,iBAAkByM,EAAQvD,EAARuD,IAE1B3S,qBAAU,WACRgiB,EAAapU,EAAY,KACxB,CACDwB,EAAMsD,KACNtD,EAAM,cACNA,EAAMgB,OACNhB,EAAMe,KACNf,EAAM,gBACNA,EAAMiB,SACNjB,EAAM,gBACNA,EAAMmB,KACNnB,EAAMkB,OACNlB,EAAMoB,MACNpB,EAAMqB,IACNrB,EAAMsB,WACNtB,EAAMxI,SACNwI,EAAMuC,YAGR,IAAMsQ,EAAW,CACfC,QAAShc,YAAkBqB,UACzB,oBAAC,IAAD,CACElF,UAAU,gBACViF,KAAK,aACL8V,SAAUlX,aAAF,EAAEA,EAAkBkX,SAC5B7X,MAAK,KACH,uCAAuC,GAAvC,OAA2CW,aAA3C,EAA2CA,EAAkB4X,cAA7D,MACA,qBAAqB1O,aAAA,EAAAA,EAAO3J,oBAAoBd,aAA3B,EAA2BA,EAAU9B,QACtDqD,EAAiB6X,aACjB,CACE,+BAA+B,GAA/B,OAAmC7X,EAAiB6X,eAEtD,IACA7X,EAAiB8X,kBACjB,CACE,8BAA8B,GAA9B,OAAkC9X,EAAiB8X,oBAErD,IAENmE,gBAAiBhgB,aAAG,4BAA6B,iBACjDigB,WAAYlc,aAAF,EAAEA,EAAkB2X,YAC9BwE,UAAWnc,aAAF,EAAEA,EAAkBoc,WAC7BC,SAAUpgB,aAAG,OAAQ,iBACrBqgB,WAAYtc,aAAF,EAAEA,EAAkBoX,YAC9BnI,YAAahT,aAAG,gBAAiB,iBACjCC,KAAMxC,OAAO4O,aAAapM,KAC1BzB,KAAM,UAGVgS,MAAOA,YAAKpL,UACV,oBAAC,IAAD,CACElF,UAAU,cACVkD,MAAK,OACH,uCAAuC,GAAvC,OAA2CoN,EAAImL,cAA/C,OACInL,WAAKsL,mBACL,CACE,yCAAyC,GAAzC,QACEtL,aAAA,EAAAA,EAAKsL,oBAAqB,MAG9B,IACAtL,EAAIoL,aACJ,CACE,+BAA+B,GAA/B,OAAmCpL,EAAIoL,eAEzC,IACApL,EAAIqL,kBACJ,CACE,8BAA8B,GAA9B,OAAkCrL,EAAIqL,oBAExC,IAEN1W,KAAK,aACL8V,SAAUzK,aAAF,EAAEA,EAAKyK,SACfqF,cAAa9P,aAAb,EAAaA,EAAKkL,YAClB6E,cAAa/P,aAAb,EAAaA,EAAK4K,YAClBoF,aAAgC,OAApBhQ,aAAA,EAAAA,EAAKsK,cAAsBtK,aAA3B,EAA2BA,EAAKwK,WAC5C5Z,aAAcoP,aAAF,EAAEA,EAAKnN,cACnBod,gBAAmC,OAApBjQ,aAAA,EAAAA,EAAKsK,cAAsBtK,aAA3B,EAA2BA,EAAKuK,cAC/C2F,YAAW1gB,aAAG,OAAQ,iBACtB2gB,cAAanQ,aAAb,EAAaA,EAAK0K,YAClB0F,cAAapQ,aAAb,EAAaA,EAAK2K,YAClBlb,KAAMxC,OAAO4O,aAAapM,KAC1BzB,KAAM,WAKZ,OACE,oBAAC,WAAD,CAAUohB,WAAYA,EAAY1f,UAAU,kBAC1C,2BAAKA,UAAU,0BACb,oBAACq6B,EAAA,EAAD,CACEz6B,IAAKA,GAAO,uBACZwC,QAAO,wBACM,QAATuO,KAAoBL,YAAKpL,UAAW,aADjC,0BAGM,UAATyL,KAAsB9M,YAAkBqB,UAAW,gBAEvD7C,OAAQ0K,EACRzK,SAAUA,EACVvC,KAAI,UAAE4gB,yBAAF,aAAE,EAAmB5gB,KACzB2C,QAASA,EACTH,WAAY,CACVK,SAAU,GACViC,OAAQA,EACRG,MAAOD,GAETzG,KAAM,QACNmE,YAAaA,EAAclE,YAAckE,GAAe,GACxDE,SAAUA,EACViM,IAAKrD,EACL/I,cAAcod,aAAA,EAAAA,EAAWjP,KAAS,QClIpC7Q,EAAOtC,GAAGuC,KAAVD,GACR,EAMItC,GAAGyC,WALLyM,EADF,EACEA,cACAb,EAFF,EAEEA,YAGAiB,GALF,EAGEH,eAHF,EAIEE,qCAJF,EAKEC,eAGa,cAA8C,IAAlCC,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,YAAahN,EAAa,EAAbA,UAC7C,OACE,2BAAKA,UAAWA,GACd,oBAAC,EAAD,KACE,8BAAKF,EAAG,WAAY,mBAEtB,oBAAC,EAAD,KACE,oBAAC,EAAD,CACE2E,MAAO3E,EAAG,qBAAsB,iBAChCmN,KAAMnN,EACJ,0HACA,iBAEFoN,SAAU,SAACG,GACTL,EAAY,CAAEK,0BAEhBD,QAASL,EAAMM,wBAGnB,oBAAC,EAAD,KACE,oBAAC,EAAD,CACE5I,MAAO3E,EAAG,aAAc,iBACxBmN,KAAMnN,EACJ,0DACA,iBAEFoN,SAAU,SAACK,GACTP,EAAY,CAAEO,yBAEhBH,QAASL,EAAMQ,uBAInB,oBAAC,EAAD,KACE,oBAAC,EAAD,CACE9I,MAAO3E,EAAG,mBAAoB,iBAC9BmN,KAAMnN,EACJ,6FACA,iBAEFoN,SAAU,SAACM,GACTR,EAAY,CAAEQ,mBAEhBJ,QAASL,EAAMS,iBAInB,oBAAC,EAAD,KACE,oBAACV,EAAD,CACErI,MAAO3E,EAAG,eAAgB,iBAC1BjC,MAAOkP,EAAMW,aACbC,QAAS,CACP,CACE9P,MAAO,SACP4G,MAAO3E,EAAG,SAAU,kBAEtB,CACEjC,MAAO,OACP4G,MAAO3E,EAAG,OAAQ,kBAEpB,CACEjC,MAAO,cACP4G,MAAO3E,EAAG,cAAe,mBAG7BoN,SAAU,SAACQ,GACTV,EAAY,CAAEU,uBC3ElB5N,EAAOtC,GAAGuC,KAAVD,GACR,EAAuCtC,GAAGyC,WAAlCyM,EAAR,EAAQA,cAAeb,EAAvB,EAAuBA,YAER,eAA8C,IAAlCkB,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,YAAahN,EAAa,EAAbA,UAC7C,OACE,2BAAKA,UAAWA,GACd,oBAAC,EAAD,KACE,8BAAKF,EAAG,WAAY,mBAEtB,oBAAC,EAAD,CAAaE,UAAU,sCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,oBAAqB,iBAC/BmN,KAAMnN,EACJ,uDACA,iBAEFoN,SAAU,SAACY,GACTd,EAAY,CAAE,aAAcc,KAE9BV,QAASL,EAAM,iBAGnB,oBAAC,EAAD,CAAa/M,UAAU,kCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,SAAU,iBACpBmN,KAAMnN,EACJ,gDACA,iBAEFoN,SAAU,SAACa,GACTf,EAAY,CAAEe,YAEhBX,QAASL,EAAMgB,UAGnB,oBAAC,EAAD,CAAa/N,UAAU,gCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,oBAAqB,iBAC/BmN,KAAMnN,EACJ,wDACA,iBAEFoN,SAAU,SAACY,GACTd,EAAY,CAAEc,UAEhBV,QAASL,EAAMe,QAGnB,oBAAC,EAAD,CAAa9N,UAAU,wCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,eAAgB,iBAC1BmN,KAAMnN,EACJ,gDACA,iBAEFoN,SAAU,SAACrP,GACTmP,EAAY,CAAE,eAAgBnP,KAEhCuP,QAASL,EAAM,mBAGnB,oBAAC,EAAD,CAAa/M,UAAU,oCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,eAAgB,iBAC1BmN,KAAMnN,EAAG,iCAAkC,iBAC3CoN,SAAU,SAACc,GACThB,EAAY,CAAEgB,cAEhBZ,QAASL,EAAMiB,YAGnB,oBAAC,EAAD,CAAahO,UAAU,wCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,eAAgB,iBAC1BmN,KAAMnN,EAAG,6BAA8B,iBACvCoN,SAAU,SAACrP,GACTmP,EAAY,CAAE,eAAgBnP,KAEhCuP,QAASL,EAAM,mBAGnB,oBAAC,EAAD,CAAa/M,UAAU,kCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,SAAU,iBACpBmN,KAAMnN,EAAG,sBAAuB,iBAChCoN,SAAU,SAACrP,GACTmP,EAAY,CAAEiB,OAAQpQ,EAAOqQ,KAAMrQ,KAErCuP,QAASL,EAAMkB,UAGnB,oBAAC,EAAD,CAAajO,UAAU,iCACrB,oBAAC,EAAD,CACEyE,MAAO3E,EAAG,QAAS,iBACnBmN,KAAMnN,EAAG,iCAAkC,iBAC3CoN,SAAU,SAACiB,GACTnB,EAAY,CAAEmB,WAEhBf,QAASL,EAAMoB,W,SCzFV,eAA8C,IAAlCpB,EAAiC,EAAjCA,MAAOC,EAA0B,EAA1BA,YAAahN,EAAa,EAAbA,UAC7C,OACE,2BAAKA,UAAWA,GACd,oBAAC,cAAD,KACE,8BAAKF,aAAG,QAAS,mBAEnB,oBAAC,cAAD,KACE,oBAAC,eAAD,CACE2E,MAAO3E,aAAG,gBAAiB,iBAC3BmN,KAAMnN,aAAG,6BAA8B,iBACvCjC,OAAOkP,aAAA,EAAAA,EAAO5J,gBAAiB,EAC/B+J,SAAU,SAAC/J,GAAD,OAAmB6J,EAAY,CAAE7J,mBAC3CiM,IAAK,EACLC,IAAK,MAIT,oBAAC,cAAD,KACE,oBAAC,OAAD,KACE,oBAAC,cAAYH,YAAb,KACE,6BAAIpP,aAAG,mBAAoB,mBAG7B,oBAACqP,GAAA,EAAD,CACE3O,OAAOuM,aAAA,EAAAA,EAAO3J,mBAAoB,UAClC3C,SAAU,SAAC5C,GACTmP,EAAY,CAAE5J,iBAAkBvF,EAAM6D,WAK9C,oBAAC,cAAD,KACE,oBAAC,OAAD,KACE,oBAAC,cAAYwN,YAAb,KACE,6BAAIpP,aAAG,gBAAiB,mBAG1B,oBAACqP,GAAA,EAAD,CACE3O,OAAOuM,aAAA,EAAAA,EAAO1J,gBAAiB,UAC/B5C,SAAU,SAAC5C,GACTmP,EAAY,CAAE3J,cAAexF,EAAM6D,a,wmBChDjD,IAAQ5B,GAAOtC,GAAGuC,KAAVD,GACR,GAWItC,GAAGyC,WAVLwP,GADF,GACEA,YACA5D,GAFF,GAEEA,YACA6D,GAHF,GAGEA,KACAC,GAJF,GAIEA,OACAtP,GALF,GAKEA,OACAC,GANF,GAMEA,KACAsP,GAPF,GAOEA,SACA9C,GARF,GAQEA,cACA+C,GATF,GASEA,UACAC,GAVF,GAUEA,MAEF,GAAgCtS,GAAGC,QAA3B8C,GAAR,GAAQA,SAAU5C,GAAlB,GAAkBA,UAClB,GAAgCH,GAAGW,KAA3BgE,GAAR,GAAQA,UAAW/D,GAAnB,GAAmBA,SAoVJ2R,I,GAAAA,GAvUf,YAmCI,IAAD,IAlCDzR,YAkCC,MAlCM,MAkCN,EAjCDkO,EAiCC,EAjCDA,WACAwD,EAgCC,EAhCDA,UACAC,EA+BC,EA/BDA,OACAC,EA8BC,EA9BDA,aA8BC,IA7BDC,YA6BC,MA7BM,GA6BN,EA5BD5N,EA4BC,EA5BDA,WA4BC,IA3BDF,cA2BC,MA3BQ,CACP,cAAc,EACd0L,QAAQ,EACRD,MAAM,EACN,gBAAgB,EAChBE,UAAU,EACV,gBAAgB,EAChBE,MAAM,EACND,QAAQ,EACRE,OAAO,EACPC,KAAK,EAELf,sBAAsB,EACtB+C,cAAc,EACd5C,eAAe,EAEf8B,WAAW,EACXnM,cAAe,EACfkN,KAAM,UACNjN,iBAAkB,GAClBC,cAAe,GAGfiN,IAAK,GACLzM,iBAAkB,GAClB0M,WAAY,IAEb,EACD,EAA8BhQ,IAAS,GAAvC,mBAAOkL,EAAP,KAAgB+E,EAAhB,KACA,EAA0BjQ,GAAS,IAAnC,mBAAOkQ,EAAP,KAAcC,EAAd,KACA,EAAwBnQ,GAAS,IAAjC,mBAAOoQ,EAAP,KAAaC,EAAb,KACA,EAAgCrQ,GAAS4P,GAAzC,mBAAOU,EAAP,KAAiBC,EAAjB,KACA,EAA0BvQ,GAAS8B,GAAnC,mBAAO0K,EAAP,KAAcgE,EAAd,KACMzO,EAAWH,IAAU,SAACa,GAC1B,OAAOA,EAAO,wBAAwBV,cAGxC,EAA0B/B,GAAS,IAAnC,mBAAO1C,EAAP,KAAcmT,EAAd,KAEMC,EAAe,CACnB/S,QAAS4B,GACP,uEACA,kBAKEiD,EAAUZ,IAAU,SAACa,GACzB,OAAOA,EAAO,wBAAwBD,aAGxCpF,IAAU,WACRqT,EAASjO,EAAQsB,cAChB,CAACtB,aAAD,EAACA,EAASsB,aAGb,IAAM2I,EAAc,WAAmB,IAAlB8B,EAAiB,uDAAP,GAC7BiC,EAAS,SAAKhE,GAAU+B,KAGpBoC,EAAS,uCAAG,kCAAA1G,EAAA,6DAChBgG,GAAW,GADK,SAGRrS,EAHQ,SAIT4O,GACA,CAAEoD,KAAMU,IALC,SAOIrT,GAAGmN,SAAS,CAC5BC,OAAQ,OACRvE,IAAK7I,GAAG6I,IAAI8K,aAAP,UACAhF,aAAaiF,MADb,OACoBjF,aAAakF,oBADjC,wBACoEhP,EAAOmH,IAC9E,CAAE8H,QAAS,QAEbnT,SAbY,UAOVoT,EAPU,6BAiBNN,EAjBM,OAqBdf,EAAaqB,GACb/E,IACEyD,GAAUA,EAAOsB,GACnBvT,YAAe,CAAEE,QAAS4B,GAAG,kBAAmB,mBAxBlC,kDA0Bd4Q,EAAS,iCAAGxS,QAAU,KAAEA,QAAU+S,GA1BpB,yBA4BdT,GAAW,GA5BG,4BAgChBpS,GAAS,wBAAwBoT,cAAc,CAAEnN,WAAYxG,IAEvDM,EAlCU,SAmCX4E,GACA,CAAEsB,WAAYxG,IApCH,oBAwCOL,GAAGmN,SAAS,CAC/B1E,KAAM,iBACN2E,OAAQ,OACRzM,KAAM,CACJsT,sBAAuBtT,KA5Cb,QA+CVuT,OAPAA,EAxCU,SA+CVA,EAAUD,wBACZrT,GAAS,wBAAwBuT,WAC/BD,aADF,EACEA,EAAUD,uBAEZG,WAnDY,mDAsDdC,QAAQC,IAAR,MAtDc,wEAAH,qDA0DTC,EAAY,uCAAG,4BAAAvH,EAAA,6DACnBgG,GAAW,GADQ,kBAGChT,GAAGmN,SAAS,CAC5BC,OAAQ,OACRvE,IACE8F,aAAaiF,KAAOjF,aAAakF,oBAAsB,eACzDlT,KAAK,SACA,CAAEgS,KAAMU,IACR9D,KATU,UAGbwE,EAHa,6BAaTN,EAbS,OAiBjBjB,EAAUuB,GACV/E,IACEyD,GAAUA,EAAOsB,GACnBvT,YAAe,CAAEE,QAAS4B,GAAG,kBAAmB,mBApB/B,kDAsBjB4Q,EAAS,iCAAGxS,QAAU,KAAEA,QAAU+S,GAtBjB,yBAwBjBT,GAAW,GAxBM,6EAAH,qDAqCZwB,EAAO,CACX,CACE7B,KAAM,WACNnL,MAAOlF,GAAG,WAAY,iBACtBmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,mBACjBC,UAAW,YAACC,GAAD,CAAUnF,YAAaA,EAAaD,MAAOA,KAExD,CACEoD,KAAM,WACNnL,MAAOlF,GAAG,WAAY,iBACtBmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,kBACjBC,UAAW,YAACE,EAAD,CAAUpF,YAAaA,EAAaD,MAAOA,KAExD,CACEoD,KAAM,QACNnL,MAAOlF,GAAG,QAAS,iBACnBmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,qBACjBC,UAAW,YAACG,GAAD,CAAOrF,YAAaA,EAAaD,MAAOA,KAErD,CACEoD,KAAM,QACNnL,MAAOlF,GAAG,gBAAiB,iBAC3BmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,UACjBC,UAAW,YAACI,GAAA,EAAD,CAAOtF,YAAaA,EAAaD,MAAOA,KAErD,CACEoD,KAAM,MACNnL,MAAOlF,GAAG,iBAAkB,iBAC5BmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,cACjBC,UAAW,YAACK,GAAA,EAAD,CAAKvF,YAAaA,EAAaD,MAAOA,KAEnD,CACEoD,KAAM,aACNnL,MAAOlF,GAAG,aAAc,iBACxBmS,KAAM,YAACvC,GAAD,CAAMuC,KAAK,gBACjBC,UACE,YAACM,GAAA,EAAD,CACExF,YAAaA,EACbD,MAAOA,EACPlP,MAAOA,EACPmT,SAAUA,MAMlB,OACE,YAAClB,GAAD,CACE9K,MAEMlF,GADI,QAARxB,EACO,sBACA,4BADuB,iBAGhCoU,eAAgBlG,EAChBxM,UAAU,+BACV2S,iBAAiB,wCAEjB,mBAAK3S,UAAU,gCAAgC4S,UAAQ,gBACrD,YAACnD,GAAD,CACE5R,MAAOgT,EACPgC,qBAAqB,EACrBpO,MAAO3E,GAAG,cAAe,iBACzBoN,SAAU,SAACiD,GAAD,OAAUW,EAAYX,IAChC2C,YAAahT,GAAG,yBAA0B,iBAC1CE,UAAU,mCACV+S,WAAS,IAGX,YAACzS,GAAD,CAAMyH,MAAM,UAAU/H,UAAU,qCAC9B,YAAC4P,GAAD,CAAU5P,UAAU,gCAClB,uBACE,YAACgT,EAAA,EAAD,CACEpL,MAAOoK,EACPhN,MAAOlF,GAAG,YAAa,iBACvBmT,SAAUrC,IAET,SAACzG,GAAD,OAAUA,EAAK+H,eAItB,YAACrC,GAAD,CAAW7P,UAAU,sCACnB,mBACEkD,MAAO,CAAE7B,SAAU,WAAYiE,IAAK,EAAGH,KAAM,EAAGpD,QAAS,SAEzD,YAAC,GAAD,CACE0C,MAAO3E,GAAG,OAAQ,iBAClByP,cAAc,OACd1R,MAAOkP,aAAF,EAAEA,EAAOsD,KACdwC,qBAAqB,EACrBlF,QAAS,CACP,CAAElJ,MAAO3E,GAAG,QAAS,iBAAkBjC,MAAO,WAC9C,CAAE4G,MAAO3E,GAAG,UAAW,iBAAkBjC,MAAO,YAElDqP,SAAU,SAACmD,GACTrD,EAAY,CAAEqD,aASpB,YAAC6C,EAAD,CACErO,OAAQtC,EAAWsC,OACnBjF,IAAK2C,EAAW3C,IAChBmN,MAAOA,EACPzK,SAAUA,EACVqO,KAAMA,EACN5L,WAAYxC,EAAWyC,UAK7B,uBAECyL,GACC,YAAC,GAAD,KACE,YAAC,GAAD,CACEzQ,UAAU,qCACV/B,OAAO,QACPkV,eAAe,EACfjQ,MAAO,CAAElB,OAAQ,IAEhByO,EAAMpR,QAAQ,gBAAiB,MAItC,mBACE0B,IAAKA,YAAF,kJAMH,mBACEA,IAAKA,YAAF,sGADL,cAMcsB,EAAOmH,IAErB,uBACE,YAACnJ,GAAD,CAAQ4B,YAAU,EAACb,QAASoL,EAAYtJ,MAAO,CAAElB,OAAQ,UACtDlC,GAAG,SAAU,kBAEhB,YAACO,GAAD,CACE6B,WAAS,EACTkR,OAAQ3H,EACR4H,SAAU5H,EACVrK,QA/JC,WACX,GAAKyP,EAIL,MAAgB,SAATvS,EAAkB4S,IAAca,IAHrCrB,EAAS5Q,GAAG,wCAAyC,mBA8J7C8S,UAAQ,iBAGJ9S,GADK,QAARxB,EACM,gBACA,gBADiB,uBC1V9BwB,GAAOtC,GAAGuC,KAAVD,GACR,GAAsDtC,GAAGyC,WAAjDyP,GAAR,GAAQA,KAAM3D,GAAd,GAAcA,QAAS+D,GAAvB,GAAuBA,MAAOzP,GAA9B,GAA8BA,OAAQiT,GAAtC,GAAsCA,YAC9B/S,GAAa/C,GAAGC,QAAhB8C,SAEO,eAOX,IAAD,IAND8B,EAMC,EANDA,OACA5C,EAKC,EALDA,MACA8T,EAIC,EAJDA,SACAC,EAGC,EAHDA,OACAC,EAEC,EAFDA,UACAC,EACC,EADDA,OAEA,EAA8BnT,IAAS,GAAvC,mBAAOkL,EAAP,KAAgB+E,EAAhB,KACA,EAAsCjQ,IAAS,GAA/C,mBAAOoT,EAAP,KAAoBC,EAApB,KAGMC,EAAe,kBAAMD,GAAe,IAIpCE,EAAW,uCAAG,sBAAAtJ,EAAA,yDAEbnI,EAAOmH,GAFM,uBAGhBgK,EAAOnR,GAHS,0CAQhBmO,GAAW,GARK,SASIhT,GAAGmN,SAAS,CAC9BC,OAAQ,OACRvE,IAAK7I,GAAG6I,IAAI8K,aAAP,UACAhF,aAAaiF,MADb,OACoBjF,aAAakF,oBADjC,wBACoEhP,EAAOmH,IAC9E,CAAE8H,QAAS,aAbC,gBAiBdkC,EAAOnR,GACP7E,GAAGW,KAAKC,SAAS,gBAAgBC,aAC/B,UACAyB,GAAG,kBAAmB,iBACtB,CACExB,KAAM,WACN6U,eAAe,KAvBL,kDAoChBtB,QAAQpB,MAAR,MACA,4BAAI,KAAGvS,SACLV,GAAGW,KAAKC,SAAS,gBAAgBC,aAC/B,QACA,KAAEH,QACF,CACEI,KAAM,WACN6U,eAAe,IA3CL,yBAgDhBS,GAAe,GACfpD,GAAW,GAjDK,6EAAH,qDAqDjB,OAAI/E,EAEA,2BACEzL,UAAU,kCACV+T,KAAK,SACLC,SAAUvU,EACVwU,aAAW,OACX/Q,MAAO,CACL1C,MAAO+S,EAAW,8BAAgC,UAClDvS,MAAO,kBACPgB,OAAQ,QACR,cAAe,IACfkS,OAAQ,UACRC,SAAU,SACV,gBAAiB,MACjBpS,QAAS,MACTH,QAAS,OACT,iBAAkB,WAGpB,2BACE5B,UAAU,0CACVkD,MAAO,CACLkR,OAAQb,EACJ,wCACA,oBACJvR,OAAQ,EACRqS,QAAS,wBACTtS,QAAS,IACTH,QAAS,OACTuS,SAAU,SACVG,WAAY,OACZ,cAAe,SACf,YAAa,IACb,aAAc,OACd,aAAc,UAGhB,oBAACvI,GAAD,QAON,2BACE/L,UAAS,wDAAmDqC,EAAOkS,MACnEnT,QAAS,WACPqS,EAAUpR,IAEZ0R,KAAK,SACLC,SAAUvU,EACVwU,aAAW,OACX/Q,MAAO,CACL1C,MAAO+S,EAAW,8BAAgC,UAClDvS,MAAO,kBACPgB,OAAQ,QACR,cAAe,IACfkS,OAAQ,UACRC,SAAU,SACV,gBAAiB,MACjBpS,QAAS,MACTH,QAAS,OACT,iBAAkB,WAGpB,2BACE5B,UAAU,0CACVkD,MAAO,CACLkR,OAAQb,EACJ,wCACA,oBACJvR,OAAQ,EACRqS,QAAS,wBACTtS,QAAS,IACTH,QAAS,OACTuS,SAAU,SACVG,WAAY,OACZ,cAAe,SACf,YAAa,IACb,aAAc,OACd,aAAc,UAGhB,2BACEpR,MAAO,CACLsR,UAAW,SACXxT,MAAO,OACPR,MAAO+S,EAAW,8BAAgC,UAClDhQ,QAASgQ,EAAW,EAAI,MAGzBlR,WAAQ4P,KACP,oBAAC,GAAD,CACEA,KAAM5P,aAAF,EAAEA,EAAQ4P,KACd/O,MAAO,CACLuR,SAAU,OACVzT,MAAO,OACPC,OAAQ,UAIZ,0BAAIiC,MAAO,CAAEK,QAAS,OACnBlB,SAAA,UAAAA,EAAQ8N,YAAR,mBAAcuE,OAAO,UAArB,eAAyBC,gBAAiB,cAKnD,2BACE3U,UAAU,wCACVkD,MAAO,CACL0R,WAAY,OACZC,cAAe,aACf,aAAc,SACd9S,QAAS,WAGVM,aAAA,EAAAA,EAAQ8N,OAAQ,cAGjB9N,WAAQyS,YACR,2BAAK9U,UAAU,wCACb,2BACEA,UAAU,4CACVoB,QAASsS,GAET,oBAAC,GAAD,CAAMzB,KAAK,UAEb,2BACEjS,UAAU,4CACVoB,QA5LU,kBAAMwS,GAAe,KA8L/B,oBAAC,GAAD,CAAM3B,KAAK,YAKhB0B,GACC,oBAAC,GAAD,CACE3O,MAAOlF,GAAG,gBAAiB,iBAC3B4S,eAAgBmB,EAChB3Q,MAAO,CAAE6R,SAAU,UAEnB,6BACE,kCAASjV,GAAG,WAAY,iBAAxB,KACCA,GACC,gFACA,kBAIJ,oBAACwT,GAAD,KACE,oBAAC,GAAD,CACE0B,eAAa,EACb5T,QAAS0S,EACT5Q,MAAO,CAAElB,OAAQ,UAEhBlC,GAAG,QAAS,kBAEf,oBAAC,GAAD,CACEmC,YAAU,EACVb,QAASyS,EACT3Q,MAAO,CAAElB,OAAQ,QAASiT,UAAW,SAEpCnV,GAAG,SAAU,sB,SC7OpBA,GAAOtC,GAAGuC,KAAVD,GACR,GAAsDtC,GAAGyC,WAAjD6L,GAAR,GAAQA,YAAaD,GAArB,GAAqBA,YAAaE,GAAlC,GAAkCA,QAAS1L,GAA3C,GAA2CA,OAC3C,GAAgC7C,GAAGC,QAA3B8C,GAAR,GAAQA,SACR,IADA,GAAkB5C,UACcH,GAAGW,MAA3BgE,GAAR,GAAQA,UAAW/D,GAAnB,GAAmBA,SAqIJ0N,WA9Hf,YAAuD,IAAD,EAA7BvJ,EAA6B,EAA7BA,WAAY0G,EAAiB,EAAjBA,cAEnC,EAA0B1I,IAAS,GAAnC,mBAAO0L,EAAP,KAAcC,EAAd,KAEMM,EAAa,kBAAMN,GAAS,IAClC,EAAoC3L,GAAS,MAA7C,mBAAO6I,EAAP,KAAmBC,EAAnB,KACA,EAAwB9I,GAAS,MAAjC,mBAAO4P,EAAP,KAAa+E,EAAb,KAIA,EAA6B/S,IAAU,SAACa,GACtC,MAAO,CACLgG,QAAShG,EAAO,wBAAwB25B,kBACxClxB,QAASzI,EAAO,wBAAwB0I,YAAY,uBAHhD1C,EAAR,EAAQA,QAASyC,EAAjB,EAAiBA,QAQXuE,EAAY,SAAC3N,GACjBjE,GAAS,wBAAwBw+B,eAAev6B,IAK5C8S,EAAe,SAAC9S,GACpBjE,GAAS,wBAAwBy+B,kBAAkBx6B,IAI/CoR,EAAY,SAACpR,GACjB4G,EAAc,CAAE5G,OAAQA,EAAOmH,MAG3B4L,EAAaC,KAAOC,IAAV,+GAMhB,OAAI7J,EAEA,2BAAKzL,UAAU,4BACb,oBAAC,GAAD,OAMJ,wCACGgJ,EAAQpK,OACP,6BACGkB,GACC,wDACA,kBAIJ,GAGF,oBAAC,GAAD,KACE,oBAACsV,EAAD,MACIpM,GAAW,IAAIpK,OACboK,EAAQkB,KAAI,SAAC7H,EAAQkT,GACnB,OACE,oBAACC,GAAD,CACE/B,UAAWA,EACXhU,MAAO8V,EACPhC,UAAUhR,aAAA,EAAAA,EAAYF,UAAWA,EAAOmH,GACxCnH,OAAQA,EACRuM,IAAKvM,EAAOmH,GACZkK,OAAQ,WACNwB,EAAQ7S,EAAO8N,MACf9G,EAAchH,GACd6J,EAAS,SAEXsH,OAAQ2B,OAIdrV,GACE,4EACA,mBAIV,oBAAC,GAAD,KACE,oBAAC,GAAD,CACEoC,WAAS,EACT0Q,UAAQ,iBACRxR,QAAS,WAAO,IAAD,EACT,UAAC+K,oBAAD,OAAC,EAAcC,UAxFDF,EA4FR,OAHR9N,GAAS,wBAAwBiO,aAAY,KAMhDvM,GAAG,iBAAkB,oBAEvB,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAErB,OAATL,GACC,oBAACM,GAAD,CACEC,WAAYA,EACZwD,UAAWA,EACX1R,KAAK,MACL2R,OAAQwD,EACRlR,WAAYA,IAGN,QAAT0J,GACC,oBAACM,GAAD,CACEC,WAAYA,EACZwD,UAAWA,EACXE,aA9Fa,SAAC7N,GACpBjE,GAAS,wBAAwB0+B,kBAAkBz6B,IA8F7C/D,KAAK,OACL+D,OAAQ+G,EACR+G,KAAMA,EACN5N,WAAYA,QChHhBw6B,GAAmC,CAAC,SA4J3BC,OA1Jf,SAASA,EAAT,GAAoE,IAAD,IAA7Bz6B,EAA6B,EAA7BA,WAAY0G,EAAiB,EAAjBA,cAC1C8M,EAAaS,wBAAcwmB,GAC3BC,EAAsB,gDAA4ClnB,GAEhEW,EAAqCnU,EAArCmU,SAAU7R,EAA2BtC,EAA3BsC,OAAQnC,EAAmBH,EAAnBG,QAASsC,EAAUzC,EAAVyC,MAQnC,OACE,wCACE,oBAAC,YAAD,CACEA,MAAO,wCAAGlF,aAAG,QAAS,iBAAf,KACPuX,aAAa,GAEb,oBAAC,YAAD,KACE,oBAAC,cAAD,CACErX,UAAW,gCACX8S,YAAahT,aAAG,QAAS,iBACzBjC,MAAOmH,GAAS,GAChBkI,SAAU,SAAClI,GAAD,OAAWiE,EAAc,CAAEjE,MAAOA,KAC5Cic,aAAa,UAMnB,oBAAC,YAAD,CACEjc,MACE,wCACGlF,aAAG,WAAY,iBAAkB,MACjC,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAGjC+K,YAAW,UAAElL,oBAAF,aAAE,EAAcC,WAE3B,oBAAC,IAAD,CAAenD,cAAeA,EAAe1G,WAAYA,KAG3D,oBAAC,YAAD,CAAWyC,MAAO,wCAAGlF,aAAG,iBAAkB,iBAAxB,MAEhB,oBAAC,gBAAD,CACE2E,MAAO,wCAAG3E,aAAG,WAAY,iBAAlB,KACPsN,QAASsJ,EACTxJ,SAAU,SAACwJ,GACTzN,EAAc,CAAEyN,gBAKpB,oBAAC,WAAD,KACE,oBAAC,gBAAD,CACEjS,MACE,oBAAC,OAAD,KACE,+BAAM3E,aAAG,yBAA0B,kBACnC,yBACE+F,KAAK,kEACLoR,OAAO,SACP/T,MAAO,CAAEgU,eAAgB,SAEzB,oBAAC,OAAD,CAAMjF,KAAK,kBAIjBjS,UAAU,0BACVnC,MAAO6E,EACPwK,SAAU,SAACrP,GAAD,OAAWoL,EAAc,CAAEvG,QAAS7E,KAC9C8P,QAAS,CACP,CACE9P,MAAO,OACP4G,MAAO3E,aAAG,uBAAwB,kBAEpC,CACEjC,MAAO,WACP4G,MAAO3E,aAAG,kBAAmB,kBAE/B,CACEjC,MAAO,OACP4G,MAAO3E,aAAG,4BAA6B,sBAO/C,oBAAC,mBAAD,KACE,oBAAC,cAAD,CAAaE,UAAU,+BACrB,oBAAC,cAAYkP,YAAb,KACE,6BAAIpP,aAAG,eAAgB,mBAEzB,oBAAC,cAAD,CACEkF,MAAOlF,aAAG,sBAAuB,iBACjCmT,SAzFZ,SAAwBgD,GACtBhN,EAAc,CAAEpE,OAAQoR,EAAM5P,OAyFpB6P,aAAc6mB,GACd5mB,OAAQ,gBAAGxV,EAAH,EAAGA,KAAH,OACN,oBAAC,SAAD,CACEX,UAAU,yBACVkC,WAAS,EACTd,QAAST,EACTwW,mBAAkB8lB,GAEhBp4B,EAEE/E,aAAG,UAAW,iBADdA,aAAG,SAAU,qBAKvB,yBAAG0J,GAAIyzB,EAAwB7mB,QAAM,GAClCvR,EACGwR,QACEvW,aAAG,qCAAsC,iBACzC+E,GAEF/E,aACE,8CACA,oBAGL+E,GACD,oBAAC,SAAD,CACEzD,QAlHd,WACE6H,EAAc,CAAEpE,OAAQ,MAkHZ7E,UAAU,gCACViC,YAAU,GAETnC,aAAG,SAAU,qBAQxB,oBAAC,YAAD,CAAWkF,MAAOlF,aAAG,eAAgB,kBACnC,oBAAC,GAAD,CAAcmJ,cAAeA,EAAe1G,WAAYA,KAI1D,oBAAC,YAAD,CACEyC,MAAO,wCAAGlF,aAAG,yBAA0B,kBACvCuX,aAAa,GAEb,oBAAC,IAAD,CACEpO,cAAeA,EACf1G,WAAYA,EACZjE,KAAK,a,slBCxJA,ICjBPkN,GAAehO,GAAGW,KAAlBqN,W,6kBCIR,I,MAae3C,MAbKrL,GAAGqL,QAAfA,SAae,CDdd2C,IAAW,SAACxI,GACjB,MAAO,CACLV,SAAUU,EAAO,wBAAwBV,WACzCmJ,QAASzI,EAAO,wBAAwB0I,YAAY,mBACpD1C,QAAShG,EAAO,wBAAwB25B,kBACxCzzB,cAAelG,EAAO,wBAAwBk6B,4BDUlDt0B,sCACE,SAACE,GAAD,OAAsB,SAACC,GACrB,IACEC,EAMED,EANFC,QACAzG,EAKEwG,EALFxG,WACA0G,EAIEF,EAJFE,cACAC,EAGEH,EAHFG,cACAC,EAEEJ,EAFFI,WACA7G,EACEyG,EADFzG,SAEF,EAAoC/B,mBAAS,IAA7C,mBAAO6I,EAAP,KAAmBC,EAAnB,KACA,EAA0B9I,mBAAS,GAAnC,mBAAO+I,EAAP,KAAcC,EAAd,KACM1E,EAAqBtC,EAArBsC,OAAQjC,EAAaL,EAAbK,SAEdjF,qBAAU,WACJwL,SAAc5G,KAAYiH,IAC5BpL,mBAAS,kBAAkBqL,mBAAmB,qBAE/C,CAACN,IAGJxL,qBAAU,WACJwL,SAAc5G,KAAYmH,2BAC5BtL,mBAAS,qBAAqBuL,YAC5BpH,aADF,EACEA,EAAYmH,6BAGf,CAACP,IAGJxL,qBAAU,WACR,GAAIqL,GAAWA,EAAQpK,OAAQ,CAC7B,IAAMgL,EAAaZ,EAAQa,MAAK,SAACxH,GAC/B,OAAOA,EAAOmH,MAAOjH,aAAd,EAAcA,EAAYF,WAE/BuH,EACFP,EAAcO,IAEdP,EAAcH,GACdD,EAAc,CAAE5G,OAAQ6G,aAAF,EAAEA,EAAeM,SAG1C,CAACR,EAASzG,aAAV,EAAUA,EAAYF,SAGzB1E,qBAAU,WACRmM,MACC,CAACjF,EAAQuE,EAAYxG,EAAUN,EAASyH,OAG3C,IAAMD,EAAW,WACfP,EAASD,EAAQ,IAIbU,EAAepM,YAAYgF,GACjCjF,qBAAU,WACR,IAAIsM,EAAQrH,aAAH,EAAGA,EAAUsH,KAAI,SAACC,GAAD,OAAUA,EAAK3L,QACrC4L,EAAYJ,aAAH,EAAGA,EAAcE,KAAI,SAACC,GAAD,OAAUA,EAAK3L,QAC7C6L,EAAEC,WAAWL,EAAOG,GAAWxL,QACjCkL,MAED,CAAClH,IAEJ,IAAM2H,EAAW,uCAAG,yCAAAC,EAAA,yDAClB5K,EADkB,EAClBA,IACA6K,EAFkB,EAElBA,YACAC,EAHkB,EAGlBA,cACApM,EAJkB,EAIlBA,KACA0G,EALkB,EAKlBA,MAEKpF,GAAQ6K,GAAgBC,EAPX,iEAUGC,aAAS,CAC5BC,OAAQ,OACR3E,KAAM,2BACN9H,KAAK,OACHuM,gBACAG,QAASrN,GAAGW,KAAK6E,OAAO,eAAe8H,mBACvCL,eACIzF,EAAQ,CAAEA,SAAU,IAJtB,IAKFpF,MACAtB,WAnBc,gBAUVkL,EAVU,EAUVA,GAYRP,EAAc,CAAEO,OAtBE,2CAAH,sDAgDjB,OAJKjH,WAAYF,QACf4G,EAAc,CAAE5G,OAAQ6G,aAAF,EAAEA,EAAeM,KAIvC,oBAACV,EAAD,iBACMC,EADN,CAEEgC,SA1BS,WACX,OAAO3M,mBAAS,eAAe4M,eAAe,kBA0B5CC,WAvBW,WACb,OAAO7M,mBAAS,eAAe8M,iBAAiB,kBAuB9CX,YAAaA,EACbT,SAAUA,EACVqB,YAtBJ,WACUC,QAAQtL,aAAG,cAAe,mBAEhCmJ,EAAc,CACZrJ,IAAK,GACL4J,QAAI6B,KAkBNjC,WAAYA,EACZC,cAAeA,EACfkC,UAAWjC,QAIjB,mBE/HWT,CACbiD,uBACE,YAYO,IAXLvJ,EAWI,EAXJA,WACA0G,EAUI,EAVJA,cACA3G,EASI,EATJA,SACA8G,EAQI,EARJA,WACAmC,EAOI,EAPJA,UACArC,EAMI,EANJA,cACA6B,EAKI,EALJA,SACAE,EAII,EAJJA,WACAQ,EAGI,EAHJA,QACAlB,EAEI,EAFJA,YACAY,EACI,EADJA,YAEQtG,EAAoBtC,EAApBsC,OAAQjF,EAAY2C,EAAZ3C,IAAK4J,EAAOjH,EAAPiH,GA4DrB,OAAK5J,EAcD6L,IAAYjC,EAEZ,oBAAC,cAAD,CAAaxJ,UAAU,yCACrB,oBAAC,UAAD,OAMJ,wCACE,oBAAC,gBAAD,KAQE,oBAAC,UAAD,KACE,oBAAC,SAAD,CAAQoB,QAAS,kBAAM+J,MACpBrL,aAAG,UAAW,oBAMrB,oBAAC,oBAAD,KACE,oBAAC,GAAD,CACEyC,WAAYA,EACZ0G,cAAeA,KAInB,kCAKE,oBAAC,WAAD,KACE,oBAACoxB,EAAA,EAAD,CACEx1B,OAAQA,EACRjF,IAAKA,EACL4J,GAAIA,EACJlL,KAAM,QACNiE,WAAYA,EACZ0G,cAAeA,EACf5G,OAAQ+G,EACR9G,SAAUA,EACVsM,IAAKrD,OA5DX,wCACE,oBAAC4xB,EAAD,CACE56B,WAAYA,EACZ0G,cAAeA,EACfkY,YAhEY,SAAC9I,GACnBpP,EAAc,SACT1G,GADQ,IAEX3C,IAAKyY,EACLrT,MAAOqT,EACPhW,OAAQ6G,aAAF,EAAEA,EAAeM,MAEzBuB,IACAR,EAAY,CACV3K,IAAKyY,EACL/Z,KAAM,SAEL46B,OAAM,SAAC13B,GACNyH,EAAc,CAAErJ,IAAK,KACrBqkB,WAAWziB,MAEZ23B,QAAQluB,IAiDLgI,SA9CR,SAAuBmqB,GAChBA,GAAUA,EAAM/2B,IASjB+2B,EAAMp4B,OACRiE,EAAc,CACZrJ,IAAKw9B,EAAM/2B,IACXhE,OAAQ6G,aAAF,EAAEA,EAAeM,GACvBxE,MAAOo4B,EAAMp4B,MACb0F,cAAe0yB,EAAM5zB,KAGvBuB,IACAR,EAAY,CACV3K,IAAKw9B,EAAM/2B,IACX/H,KAAM,aACNoM,cAAe0yB,EAAM5zB,KAEpB0vB,OAAM,SAAC13B,GACNyH,EAAc,CAAErJ,IAAK,KACrBqkB,WAAWziB,MAEZ23B,QAAQluB,IAEXhC,EAAc,CACZrJ,IAAKw9B,EAAM/2B,IACXrB,MAAOo4B,EAAM/2B,IACbhE,OAAQ6G,aAAF,EAAEA,EAAeM,KA5BzBP,EAAc,CAAErJ,SAAKyL,EAAW7B,QAAI6B,YCxDjC8E,GAAO,sBAEPxC,GAAU,CACrB9F,SAAU,SAEVtF,YAAU,IACR3C,IAAK,CACHtB,KAAM,UAERoY,SAAU,CACRpY,KAAM6I,QACNxC,SAAS,GAEXE,OAAQ,CACNvG,KAAM,UAERsE,SAAU,CACRtE,KAAM,QACNqG,QAAS,IAEXjC,QAAS,CACPpE,KAAM,UAER0G,MAAO,CACL1G,KAAM,UAERgG,OAAQ,CACNhG,KAAM,QACNsJ,MAAO,CACLtJ,KAAM,UAERqG,QAAS,IAEXtC,OAAQ,CACN/D,KAAMkJ,QAERgC,GAAI,CACFlL,KAAMkJ,QAERkD,cAAe,CACbpM,KAAMkJ,SAnCA,qBAqCH,CACHlJ,KAAMyI,SAtCA,4BAwCI,CACVzI,KAAMyI,OACNpC,QAAS,WA1CH,IA8CVK,MAAOlF,aAAG,eAAgB,iBAE1B46B,YAAa56B,aAAG,0BAA2B,iBAE3C66B,WAAW,CACT,CACExqB,KAAM,SACNyqB,WAAW,EACX51B,MAAOlF,aAAG,eAAgB,iBAC1B46B,YAAa56B,aAAG,kCAAmC,iBACnDyC,WAAY,CAAEuE,WAAY,YANpB,mBAQQ,QAAZ,GAAAqF,oBAAA,WAAcC,UACd,CACE,CACE+D,KAAM,UACNnL,MAAOlF,aAAG,uBAAwB,iBAClCmS,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMqF,EAAE,IAAIE,EAAE,KAAKvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,MACpD,4BAAM1P,EAAE,8BAGZkgB,YAAa56B,aACX,mCACA,iBAEFyC,WAAY,CAAEuE,WAAY,aAG9B,KAGNmL,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACP+b,KAAK,OACL3C,QAAQ,YACRmO,OAAO,eACPxoB,UAAU,qBAEV,4BACE0oB,cAAc,QACdC,eAAe,QACfF,YAAa,EACbjO,EAAE,yJAIR0O,U,g0ECnHF,MAAsC1rB,GAAGW,KAAjCmxB,EAAR,EAAQA,gBAAiBlxB,EAAzB,EAAyBA,SACjBuM,EAAanN,GAAbmN,SACA0yB,EAASvkB,OAATukB,KAiGFC,EAAW,SAAC/O,EAAQU,GAGxB,OADcV,EAAO1kB,MAAK,SAACrI,GAAD,OAAOA,EAAEgI,KAAOylB,EAAMzlB,MAEvC+kB,EAEH,GAAN,mBAAWA,GAAW,CAACU,KAoKVK,IAAgB,CAC7BiO,cApQoB,WAAyB,IAAxBxwB,EAAuB,uDAAf,GAAIyiB,EAAW,uCAC5C,OAAQA,EAAOlxB,MACb,IAAK,aACH,OAAOkxB,EAAO3xB,MAChB,IAAK,aACH,MAAM,GAAN,mBAAWkP,GAAU,CAACyiB,EAAO3xB,QAC/B,IAAK,gBACH,OAAOkP,EAAM7C,KAAI,SAACC,EAAM1K,GAAW,IAAD,EAChC,OAAI0K,EAAKX,MAAL,UAAYgmB,EAAO3xB,aAAnB,aAAY,EAAc2L,IACrBW,EAEF,EAAP,KACKA,GACAqlB,EAAO3xB,UAGhB,IAAK,gBACH,OAAOkP,EAAMiS,QAAO,SAAC7U,GACnB,OAAOA,IAASqlB,EAAO3xB,SAG7B,OAAOkP,GAgPPywB,mBAvO0B,WAAyB,IAAxBzwB,EAAuB,uDAAf,GAAIyiB,EAAW,uCAClD,OAAQA,EAAOlxB,MACb,IAAK,mBAEL,IAAK,mBACD,OAAOkxB,EAAO3xB,MAClB,IAAK,mBACH,MAAM,GAAN,mBAAWkP,GAAU,CAACyiB,EAAO3xB,QAC/B,IAAK,sBACH,OAAOkP,EAAM7C,KAAI,SAACC,EAAM1K,GAAW,IAAD,EAChC,OAAI0K,EAAKX,MAAL,UAAYgmB,EAAO3xB,aAAnB,aAAY,EAAc2L,IACrBW,EAEF,EAAP,KACKA,GACAqlB,EAAO3xB,UAGhB,IAAK,sBACH,OAAOkP,EAAMiS,QAAO,SAAC7U,GACnB,OAAOA,IAASqlB,EAAO3xB,SAG7B,OAAOkP,GAiNP0wB,qBAxM2B,WAA2B,IAAZjO,EAAW,uCACrD,OAAQA,EAAOlxB,MACb,IAAK,qBACH,OAAOkxB,EAAO3xB,QAsMlB6/B,qBA5L2B,WAA2B,IAAZlO,EAAW,uCACrD,OAAQA,EAAOlxB,MACb,IAAK,qBACH,OAAOkxB,EAAO3xB,QA0LlB0xB,cAtKoB,WAShB,IARJxiB,EAQG,uDARK,CACN4wB,MAAO,EACPC,YAAa,EACbrP,OAAQ,GACRsP,aAAa,EACbC,SAAS,GAEXtO,EACG,uCACH,OAAQA,EAAOlxB,MACb,IAAK,aACH,OAAOkxB,EAAO3xB,MAChB,IAAK,gBACH,OAAO,EAAP,KAAYkP,GAAUyiB,EAAO3xB,OAC/B,IAAK,gBACH,IAAIuB,EAAQ2N,EAIZ,OAHCyiB,EAAO3xB,OAAS,IAAI4I,SAAQ,SAACwoB,GAC5B7vB,EAAMmvB,OAAS+O,EAASl+B,EAAMmvB,OAAQU,MAEjC7vB,EACT,IAAK,YACH,OAAO,EAAP,KAAY2N,GAAZ,IAAmBwhB,OAAQ+O,EAASvwB,EAAMwhB,OAAQiB,EAAO3xB,SAC3D,IAAK,eACH,OAAO,EAAP,KACKkP,GADL,IAEEwhB,OAAQxhB,EAAMwhB,OAAOrkB,KAAI,SAACC,EAAM1K,GAAW,IAAD,EACxC,OAAI0K,EAAKX,MAAL,UAAYgmB,EAAO3xB,aAAnB,aAAY,EAAc2L,IACrBW,EAEF,EAAP,KACKA,GACAqlB,EAAO3xB,YAIlB,IAAK,eACH,OAAO,EAAP,KACKkP,GADL,IAEEwhB,OAAQxhB,EAAMwhB,OAAOvP,QAAO,SAAC7U,GAC3B,OAAOA,IAASqlB,EAAO3xB,WAI/B,OAAOkP,GA2HPgxB,gBAvLsB,WAA4B,IAAZvO,EAAW,uCACjD,OAAQA,EAAOlxB,MACb,IAAK,gBACH,OAAOkxB,EAAO3xB,QAqLlBmgC,gBApHsB,WAAyB,IAAxBjxB,EAAuB,uDAAf,GAAIyiB,EAAW,uCAC9C,OAAQA,EAAOlxB,MACb,IAAK,eACH,OAAOkxB,EAAO3xB,MAChB,IAAK,kBACH,OAAO,EAAP,KACKkP,GADL,kBAEGyiB,EAAOrf,KAAOqf,EAAO3xB,QAG5B,OAAOkP,GA2GPkxB,eAnGqB,WAAyB,IAAxBlxB,EAAuB,uDAAf,GAAIyiB,EAAW,uCAC7C,OAAQA,EAAOlxB,MACb,IAAK,cACH,OAAOkxB,EAAO3xB,MAChB,IAAK,iBACH,OAAO,EAAP,KACKkP,GADL,kBAEGyiB,EAAOrf,KAAOqf,EAAO3xB,QAG5B,OAAOkP,GA0FPmxB,sBAlF4B,WAAyB,IAAxBnxB,EAAuB,uDAAf,GAAIyiB,EAAW,uCACpD,OAAQA,EAAOlxB,MACb,IAAK,sBACH,OAAOkxB,EAAO3xB,MAElB,OAAOkP,GA8EPoxB,WA/DiB,SAACpxB,EAAOyiB,GACzB,OAAQA,EAAOlxB,MAIb,IAAK,gBACH,OAAOqM,EAAS,CACd1E,KAAM,gCACLm4B,MAAK,SAACzmB,GACPvZ,EAAS,wBAAwBigC,YAC/B1mB,EAAS2mB,wBAEXlgC,EAAS,wBAAwBuT,WAC/BgG,EAASlG,uBAEXrT,EAAS,wBAAwBmgC,kBAC/B5mB,EAAS6mB,uBAEXpgC,EAAS,wBAAwBqgC,uBAC/B9mB,EAAS+mB,gCAOf,IAAK,eACH,IAAMvgC,EAAO,CACXmgC,uBAAwBjB,EAAK7N,aAAD,EAACA,EAAQltB,SAAU,CAC7C,OACA,QACA,aACA,gBAiBJ,OAZA2E,OAAO0H,KAAKxQ,GAAMsI,SAChB,SAACmI,GAAD,OACgB,MAAbzQ,EAAKyQ,KAAiB3H,OAAO0H,MAAKxQ,aAAA,EAAAA,EAAOyQ,KAAQ,IAAIhQ,gBAC/CT,EAAKyQ,MAGhBjE,EAAS,CACP1E,KAAM,6BACN2E,OAAQ,OACRzM,SAGKA,IAeXwgC,2BA7EiC,WAAyB,IAAxB5xB,EAAuB,uDAAf,GAAIyiB,EAAW,uCACzD,OAAQA,EAAOlxB,MACb,IAAK,4BACH,OAAOkxB,EAAO3xB,MAElB,OAAOkP,KChNF,SAASpB,EAAWoB,GACzB,OAAOA,aAAA,EAAAA,EAAOwwB,gBAAiB,GAE1B,SAASZ,EAAgB5vB,GAC9B,OAAOA,aAAA,EAAAA,EAAOywB,qBAAsB,GAE/B,SAAS5X,EAAU7Y,EAAOvD,GAAK,IAAD,EACnC,OAAIuD,SAAJ,UAAIA,EAAOwwB,qBAAX,OAAI,EAAsB3+B,OACjBmO,aAAP,EAAOA,EAAOwwB,cAAc1zB,MAAK,SAACM,GAAD,OAAUA,EAAKX,KAAOA,KAElD,GAEF,SAASo1B,EAAkB7xB,GAChC,OAAOA,aAAA,EAAAA,EAAOwiB,gBAAiB,GAE1B,SAASsP,EAAiB9xB,EAAOvD,GAAK,IAAD,IAC1C,OAAOuD,SAAA,UAAAA,EAAOwiB,qBAAP,mBAAsBhB,cAAtB,eAA8B1kB,MAAK,SAAColB,GAAD,OAAWA,aAAA,EAAAA,EAAOzlB,MAAOA,OAAO,GAErE,SAASoC,EAAiBmB,GAAQ,IAAD,EAChC+xB,EAAiB/xB,SAAH,UAAGA,EAAOmxB,6BAAV,aAAG,EAA8Ba,sBAEjD18B,EACFy8B,KACC/xB,aAAA,EAAAA,EAAOwwB,gBAAiB,IAAI1zB,MAAK,SAACxH,GACjC,OAAOA,EAAOmH,IAAMnH,EAAOmH,KAAOs1B,KAWtC,OARKz8B,IACHA,IAAU0K,aAAA,EAAAA,EAAOwwB,gBAAiB,IAAI1zB,MAAK,SAACxH,GAC1C,MAAsB,WAAfA,EAAOkS,SAGblS,IACHA,IAAU0K,aAAA,EAAAA,EAAOwwB,gBAAiB,IAAI,IAEjCl7B,EAEF,SAAS66B,EAAsBnwB,GAAQ,IAAD,EACrC+xB,EAAiB/xB,SAAH,UAAGA,EAAO4xB,kCAAV,aAAG,EAAmCI,sBAEtD18B,EACFy8B,KACC/xB,aAAA,EAAAA,EAAOywB,qBAAsB,IAAI3zB,MAAK,SAACxH,GACtC,OAAOA,EAAOmH,IAAMnH,EAAOmH,KAAOs1B,KAWtC,OARKz8B,IACHA,IAAU0K,aAAA,EAAAA,EAAOywB,qBAAsB,IAAI3zB,MAAK,SAACxH,GAC/C,MAAsB,WAAfA,EAAOkS,SAGblS,IACHA,IAAU0K,aAAA,EAAAA,EAAOywB,qBAAsB,IAAI,IAEtCn7B,EAEF,SAAS28B,EAAejyB,GAC7B,QAASA,YAAO0wB,sBAEX,SAASn7B,EAASyK,GACvB,OAAOA,aAAP,EAAOA,EAAOixB,gBAET,SAAS/6B,EAAU8J,GAAQ,IAAD,EAC/B,OAAOA,SAAP,UAAOA,EAAOixB,uBAAd,aAAO,EAAwBiB,WAE1B,SAASl8B,EAAQgK,GACtB,OAAOA,aAAP,EAAOA,EAAOkxB,eAET,SAASiB,EAASnyB,GACvB,OAAOA,aAAP,EAAOA,EAAOgxB,gB,8NCrET,SAASoB,EAAiBthC,GAC/B,MAAO,CACLS,KAAM,qBACNT,SAIG,SAASuhC,EAAiBvhC,GAC/B,MAAO,CACLS,KAAM,qBACNT,SAIG,SAASwO,EAAYxO,GAC1B,MAAO,CACLS,KAAM,gBACNT,SAOG,SAAS2wB,EAAU3wB,GACxB,MAAO,CACLS,KAAM,aACNT,SAGG,SAASwhC,EAAaxhC,GAC3B,MAAO,CACLS,KAAM,gBACNT,SAGG,SAASyhC,EAAazhC,GAC3B,MAAO,CACLS,KAAM,gBACNT,SAGG,SAASy/B,EAASz/B,GACvB,MAAO,CACLS,KAAM,YACNT,SAOG,SAAS0hC,EAAW1hC,GACzB,MAAO,CACLS,KAAM,aACNT,SAGG,SAASmS,EAAUnS,GACxB,MAAO,CACLS,KAAM,aACNT,SAGG,SAASqS,EAAarS,GAC3B,MAAO,CACLS,KAAM,gBACNT,SAGG,SAASsX,EAAatX,GAC3B,MAAO,CACLS,KAAM,gBACNT,SAQG,SAAS2hC,EAAgB3hC,GAC9B,MAAO,CACLS,KAAM,mBACNT,SAIG,SAAS++B,EAAe/+B,GAC7B,MAAO,CACLS,KAAM,mBACNT,SAGG,SAASi/B,EAAkBj/B,GAChC,MAAO,CACLS,KAAM,sBACNT,SAGG,SAASg/B,EAAkBh/B,GAChC,MAAO,CACLS,KAAM,sBACNT,SAOG,SAASwgC,EAAYxgC,GAC1B,MAAO,CACLS,KAAM,eACNT,SAGG,SAAS+a,EAAezI,EAAMtS,GACnC,MAAO,CACLS,KAAM,kBACN6R,OACAtS,SAOG,SAAS8a,EAAY8mB,GAC1B,O,yWAAO,EACLnhC,KAAM,gBACHmhC,GAOA,SAASC,IACd,MAAO,CACLphC,KAAM,iBAIH,SAASqhC,EAAa15B,GAC3B,MAAO,CACL3H,KAAM,iBACN2H,QAIG,SAAS25B,EAAe35B,EAAMw5B,GACnC,MAAO,CACLnhC,KAAM,oBACN2H,OACAw5B,QAIG,SAAS9tB,EAAW9T,GACzB,MAAO,CACLS,KAAM,cACNT,SAIG,SAAS2T,EAAcrB,EAAMtS,GAClC,MAAO,CACLS,KAAM,iBACN6R,OACAtS,SAIG,SAAS0gC,EAAkB1gC,GAChC,MAAO,CACLS,KAAM,sBACNT,SAIG,SAAS4gC,EAAuB5gC,GACrC,MAAO,CACLS,KAAM,4BACNT,S,4mBCvLJ,IAAQ8M,GAAanN,GAAbmN,SAEO,IACbk1B,eADa,SACErQ,GACb,OAAO7kB,GAAS,CACdtE,IAAK8F,aAAaiF,KAAOjF,aAAakF,oBAAsBme,EAAOvpB,QAGjE65B,kBANO,YAMiC,OAAD,gIAAnBL,EAAmB,EAAnBA,KAAmB,IAAbx5B,YAAa,MAAN,GAAM,WAC3B0E,GAAS,UACvB1E,KAAMzI,GAAG6I,IAAI8K,aAAP,gBAA6BlL,GAAQw5B,aAArC,EAAqCA,EAAMM,QAC7CN,WAAMthC,KAAO,CAAEA,KAAMshC,EAAKthC,MAAS,IACpCshC,aAHmB,EAGnBA,EAAM9xB,SAHa,IAItBqyB,OAAO,KALkC,cACvCC,EADuC,gBAQxBA,EAAIC,OARoB,cAQrC/hC,EARqC,OASrCw/B,EAAQsC,EAAIE,SAAWF,EAAIE,QAAQC,IAAI,cACvCxC,EAAcqC,EAAIE,SAAWF,EAAIE,QAAQC,IAAI,mBAVR,kBAYpC,IAAIC,SAAQ,SAACtY,EAASuY,GAC3BvY,EAAQ,CACN5pB,OACAw/B,QACAC,oBAhBuC,gDCNhC,IACZjyB,WADY,gGAEK,OAFL,SAEWkmB,EAAqB,UAFhC,cAEL7oB,EAFK,yBAGJ6oB,EAAmB7oB,IAHf,0CAKZ2zB,gBALY,gGAMK,OANL,SAMW9K,EAAqB,gBANhC,cAML7oB,EANK,yBAOJ6oB,EAAwB7oB,IAPpB,0CASZ61B,iBATY,sBASKr1B,GATL,0EAWI,OADTvD,EAVK,wBAUmBuD,GAVnB,SAWUqoB,EAAuB5rB,EAAM,IAXvC,cAWL5D,EAXK,yBAYJwvB,GAAiBxvB,aAAA,EAAAA,EAAQlE,OAAQ,KAZ7B,2CCYAuzB,MAXWl0B,GAAGW,KAArBuzB,eAWqB,uBAAwB,CACnDC,UACAC,YACAC,UACAoI,YACAsG,e,SCnBF,GAA0B/iC,GAAGyC,WAArB6P,GAAR,GAAQA,MAAOzP,GAAf,GAAeA,OACf,GAAgC7C,GAAGW,KAA3BC,GAAR,GAAQA,SAAU+D,GAAlB,GAAkBA,UAGH,cASb,OAJaA,IAAU,SAACa,GACtB,OAAOA,EAAO,wBAAwBk8B,cAItC,oBAACpvB,GAAD,CAAO9K,MAAO,cAAe0N,eATZ,WACjBtU,GAAS,wBAAwBiO,aAAY,KAS3C,sDACuB,oBAACC,GAAA,EAAD,OAEvB,iGACA,oBAACjM,GAAD,CAAQwF,KAAK,2BAA2BoR,OAAO,SAAS/U,WAAS,GAAjE,eAKF,ICrBJ,GAAmD1E,GAAGksB,OAA9C8W,GAAR,GAAQA,kBAAmBC,GAA3B,GAA2BA,oBAC3B,GAA6CjjC,GAAG0qB,QAAxCwY,GAAR,GAAQA,eAAgBvY,GAAxB,GAAwBA,iBACxB,GAA6B3qB,GAAGW,KAAxB6E,GAAR,GAAQA,OAAQ5E,GAAhB,GAAgBA,SACR+X,GAAW3Y,GAAGC,QAAd0Y,OAYF6C,GAAO,kBAAM,MAiBb2nB,GAAW,SAAC,GAMX,IALLC,EAKI,EALJA,WACAC,EAII,EAJJA,SACAC,EAGI,EAHJA,WAGI,IAFJ7N,cAEI,MAFKja,GAEL,MADJka,aACI,MADIla,GACJ,EACE+nB,EAAQ,IACM,WAClB9N,IAEA,IAAM+N,EAAUJ,IACVK,EAAe,GACrBD,EAAQryB,OAAOlI,SAAQ,SAACmI,GACtB,IAAMvR,EAAS2jC,EAAQpyB,GACnBvR,IAAW0jC,EAAMnyB,KAIjBmyB,EAAMnyB,IAERkyB,EAAWC,EAAMnyB,IAGnBiyB,EAASxjC,GACT4jC,EAAa/G,KAAK78B,EAAO8S,MACzB4wB,EAAMnyB,GAAOvR,MAGf61B,EAAM+N,GAMQC,IAQdC,GAAkB,KAwBtBR,GAAS,CACPC,WAAY,kBAAMQ,OAClBP,SAAU,YAAwB,IAAD,EAApB1wB,EAAoB,EAApBA,KAAMxC,EAAc,EAAdA,QACjB,UAAIxB,oBAAJ,OAAI,EAAcC,UAChBo0B,GAAkBrwB,EAAMxC,GACdA,EAAQ8sB,SAClB+F,GAAkBrwB,EAAMxC,IAG5BmzB,WAAY,gBAAG3wB,EAAH,EAAGA,KAAH,OAAcswB,GAAoBtwB,IAC9C8iB,OAjCyB,WACzBkO,GAAkBn+B,GAAO,eAAeq+B,2BACxCjjC,GAAS,eAAekjC,sBAgCxBpO,MA9BuB,WAAwB,IAAvB+N,EAAsB,uDAAP,GAEvCj+B,GAAO,eACJu+B,YACA96B,SAAQ,YAAyB,IAAtB0J,EAAqB,EAArBA,KAAMiZ,EAAe,EAAfA,SACZ6X,EAAa3hC,SAAS6Q,IACxB/R,GAAS,eAAeuL,YAAYyf,MAItC+X,GACF/iC,GAAS,eAAeuL,YAAYw3B,IAEpC/iC,GAAS,eAAekjC,qBAE1BH,GAAkB,QAmBpBR,GAAS,CACPC,WAAY,kBAAMQ,OAClBP,SAAU,gBAAG1wB,EAAH,EAAGA,KAAMxC,EAAT,EAASA,QAAT,OAAuB+yB,GAAevwB,EAAMxC,IACtDmzB,WAAY,gBAAG3wB,EAAH,EAAGA,KAAH,OAAcgY,GAAiBhY,MAG7Cod,OAAO,QAAQ/B,OAAO,sCACtBrV,GAAO,oBAACqrB,GAAD,MAAqBC,SAASC,eAAe,sBAGpDtjC,GAAS,wBAAwBshC,eAEjC,IAAI9a,IAAS,EAEbpnB,GAAGW,KAAKwjC,WAAU,WAChB,IAAIC,EAAepkC,GAAGW,KAAK6E,OAAO,eAAe4+B,eAC7CC,EAAmBrkC,GAAGW,KAAK6E,OAAO,eAAe6+B,mBAErD,GAAID,IAAiBC,EAAkB,CACrC,GAAIjd,GACF,OAEFA,IAAS,EACT,IAAMoZ,EAAoB8D,GAAMC,WAA1B/D,gBACN5/B,GAAS,wBACNua,YAAY,CACXrW,SAAU07B,IAEXI,MAAK,WACJxZ,IAAS,U,mJC1ITpO,G,MAAkBhZ,GAAGqL,QAArB2N,eACA1W,EAAOtC,GAAGuC,KAAVD,GACR,EAAyCtC,GAAGyC,WAApC+hC,EAAR,EAAQA,eAAgB3hC,EAAxB,EAAwBA,OAAQqP,EAAhC,EAAgCA,KACxBhS,EAAWF,GAAGC,QAAdC,OAyCOukC,MAvCf,SAASA,EAAT,GAAyE,EAA3CjiC,UAA4C,IAAjCkN,EAAgC,EAAhCA,SAAUrP,EAAsB,EAAtBA,MAAOiV,EAAe,EAAfA,YAClDiD,EAAaS,EAAcyrB,GAC3BC,EAAcxkC,IAEpB,OACE,2BAAKsC,UAAW,gCAAiCkD,MAAO,CAAEnB,QAAS,IACjE,oBAACigC,EAAD,CACEG,GAAG,QACHC,QAAO,wCAAmCrsB,IAEzCjD,GAEH,6BACEhV,IAAKokC,EACLliC,UAAU,sCACVwJ,GAAE,wCAAmCuM,GACrCzX,KAAK,SACLwU,YAAaA,EACb5F,SAAU,SAACiS,GAAD,OAAWjS,EAASiS,EAAMlI,OAAOpZ,QAC3CojB,aAAa,MACbpjB,MAAOA,GAAS,KAElB,2BAAKmC,UAAU,wCACVnC,GACD,oBAACwC,EAAD,CACE4R,KAAM,cACNxN,MAAO3E,EAAG,eAAgB,iBAC1BsB,QAAS,WACP8L,EAAS,IACTg1B,EAAYnkC,QAAQskC,YAIxBxkC,GAAS,oBAAC6R,EAAD,CAAMuC,KAAM,c,uBC3ChBqwB,E,8EAAf,WAAmC9gC,GAAnC,qBAAAgJ,EAAA,yDACM+3B,EAAad,SAASC,eAAe,0BAA0B7jC,MAC/D2kC,EAAMhhC,EAAEihC,cACRtiB,EAAaqiB,EAAIE,YACrBlhC,EAAEihC,cAAcC,YAAc5iC,aAAG,UAAW,iBAE5C6iC,YAAW,WACTH,EAAIE,YAAcviB,IACjB,OAECyiB,UAAUC,YAAatlC,OAAOulC,gBAVpC,yCAYWF,UAAUC,UAAUE,UAAUR,IAZzC,cAeQS,EAAWvB,SAASwB,cAAc,aAC7BplC,MAAQ0kC,EAEjBS,EAAS9/B,MAAM7B,SAAW,QAC1B2hC,EAAS9/B,MAAMiC,KAAO,YACtB69B,EAAS9/B,MAAMoC,IAAM,YACrBm8B,SAASnW,KAAK4X,YAAYF,GAC1BA,EAASX,QACTW,EAAShgC,SAvBb,kBAwBW,IAAIq9B,SAAQ,SAACJ,EAAKkD,GACvB1B,SAAS2B,YAAY,QAAUnD,IAAQkD,IACvCH,EAASxvB,aA1Bf,6C,sBA4De6vB,MA7Bf,WACE,OACE,oBAAC,YAAD,CAAWr+B,MAAOlF,aAAG,sBAAuB,kBAC1C,2BAAKE,UAAW,0CACd,6BACGF,aACC,mEACA,kBAGJ,6BACE0J,GAAG,yBACHtG,MAAO,CAAElC,MAAO,OAAQyT,SAAU,OAAQ6M,aAAc,QACxDhjB,KAAK,OACLglC,UAAQ,EACRzlC,MAAM,+CAER,8BACES,KAAK,SACL0B,UAAU,+BACVoB,QAASkhC,GAERxiC,aAAG,oBAAqB,qBCxDpB,cAA0C,IAAvCmS,EAAsC,EAAtCA,KAAMjN,EAAgC,EAAhCA,MAAOwE,EAAyB,EAAzBA,GAAIG,EAAqB,EAArBA,YAAa4L,EAAQ,EAARA,EAC9C,OACE,8BACEjX,KAAK,SACLkL,GAAE,gBAAWA,GACbwK,SAAUuB,EACVnU,QAASuI,EACToK,KAAK,SACL/T,UAAU,+FAEV,4BAAMA,UAAU,4CACd,4BAAMA,UAAU,sCAAsCiS,IAExD,4BAAMjS,UAAU,6CAA6CgF,KCb3DlF,EAAOtC,GAAGuC,KAAVD,GAER,EAA8CtC,GAAGyC,WAAlCmX,GAAf,EAAQmsB,MAAR,EAAensB,WAAW/W,EAA1B,EAA0BA,OAAQ0L,EAAlC,EAAkCA,QAClC,EAAqDvO,GAAGgmC,SAAhDC,EAAR,EAAQA,cAAeC,EAAvB,EAAuBA,0BACvB,EAAuDlmC,GAAGC,QAAlD+1B,EAAR,EAAQA,SAAU71B,EAAlB,EAAkBA,UAAW4C,EAA7B,EAA6BA,SAAUojC,EAAvC,EAAuCA,YACvC,EAAgCnmC,GAAGW,KAA3BC,EAAR,EAAQA,SAAU+D,EAAlB,EAAkBA,UAClB,EAAsC3E,GAAGksB,OAAjCC,EAAR,EAAQA,YAAaia,EAArB,EAAqBA,aACbj5B,EAAanN,GAAbmN,SAKAq1B,EAAUxiC,GAAGqmC,gCAAb7D,MAQO,ICfF7vB,EAAO,gBAEPxC,EAAU,CACrBwI,ODYa,WACb,IALA,IAAcnF,EAKR8yB,GALN,EAA0BvjC,EAAS,IAAnC,uBAAcyQ,EAAd,KACO,kBAAMA,GAAS,SAACnT,GAAD,OAAWA,EAAQ,OAKnCoU,EACJ,2BAAKoI,QAAQ,YAAY2C,KAAK,OAAO5C,MAAM,8BACzC,6BACE,4BACEI,EAAE,oEACFupB,YAAY,QAEd,4BACEvpB,EAAE,kEACFupB,YAAY,SAEd,4BACEvpB,EAAE,oEACFupB,YAAY,QAEd,4BACEvpB,EAAE,iEACFupB,YAAY,SAEd,4BACEvpB,EAAE,oEACFupB,YAAY,QAEd,4BACEvpB,EAAE,yEACFupB,YAAY,QAEd,4BACEvpB,EAAE,+DACFupB,YAAY,QAEd,4BACEvpB,EAAE,oEACFupB,YAAY,SAEd,4BACEvpB,EAAE,oEACFupB,YAAY,SAEd,4BACEvpB,EAAE,oEACFupB,YAAY,SAEd,4BACEvpB,EAAE,oEACFupB,YAAY,SAGhB,gCACE,gCAAUv6B,GAAG,SACX,4BAAMxI,MAAM,KAAKC,OAAO,KAAK+b,KAAK,aAM1C,EAA8Bzc,GAAS,GAAvC,mBAAOyjC,EAAP,KAAgBC,EAAhB,KACA,EAAwB1jC,EAAS,GAAjC,mBAAO2jC,EAAP,KAAaC,EAAb,KACA,EAAkC5jC,GAAS,GAA3C,mBAAO+vB,EAAP,KAAkB8T,EAAlB,KAGA,EAA4B7jC,EAAS,IAArC,mBAAOwvB,EAAP,KAAekB,EAAf,KAKMoT,EAAmBV,EACvBt5B,EAAEi6B,UAAS,SAACC,GACVC,EAAQ,CAAEnlC,SAAS,EAAMklC,WACxB,KACH,IAEF5mC,GAAU,WACR0mC,EAAiBtU,KAChB,CAACA,IAGJpyB,GAAU,WACRymC,GAAa,GACbI,EAAQ,CAAEnlC,SAAS,MAClB,CAAC6kC,IAGJ,MAA6C/hC,GAC3C,SAACa,GACC,OAAOA,EAAO,wBAAwB47B,sBAExC,CAAC7O,EAAQmU,IAJH3V,EAAR,EAAQA,OAAQqP,EAAhB,EAAgBA,YAAaC,EAA7B,EAA6BA,YAOvB2G,EAAO,uCAAG,uCAAAh6B,EAAA,6DAASnL,EAAT,EAASA,QAASklC,EAAlB,EAAkBA,KAAlB,SACE55B,EAAS,CACvB1E,KAAMzI,GAAG6I,IAAI8K,aAAP,sBAA2C,CAC/C4e,OAAQwU,EACRL,OACAO,SAAU,KAEZzE,OAAO,IAPK,cACVC,EADU,gBASKA,EAAIC,OATT,OASV3R,EATU,OAURoP,EAAQsC,EAAIE,SAAWthC,SAASohC,EAAIE,QAAQC,IAAI,eAChDxC,EACJqC,EAAIE,SAAWthC,SAASohC,EAAIE,QAAQC,IAAI,oBAErC/gC,EAQHjB,EAAS,wBAAwBihC,aAAa,CAC5C9Q,SACAsP,aAAa,EACbF,QACAC,iBAXFx/B,EAAS,wBAAwBkhC,aAAa/Q,GAC9CnwB,EAAS,wBAAwBihC,aAAa,CAC5CxB,aAAa,EACbF,QACAC,iBAUJkG,IACAM,GAAa,GA9BC,4CAAH,sDAiCbzmC,GAAU,WACRsmC,EAAWC,EAAOtG,KACjB,CAACsG,EAAMtG,IAEV,IAAM8G,EAAW,WACf,IAAIC,EAAUT,EAAO,EAErBC,EADAQ,EAAUA,EAAU/G,EAAcA,EAAc+G,IAI5CC,EAAU,SAAC3V,GAAW,IAAD,QACnBvF,EAASsW,EAAM/Q,SAAD,UAACA,EAAO7R,eAAR,aAAC,EAAgBynB,KACrC,GAAInb,SAAJ,UAAIA,EAAS,UAAb,iBAAI,EAAaL,mBAAjB,iBAAI,EAA2B,UAA/B,OAAI,EAA+Byb,UAAW,CAAC,IAAD,QACtCxmC,EAAOslC,EAAala,SAAD,UAACA,EAAS,UAAV,iBAAC,EAAaL,mBAAd,iBAAC,EAA2B,UAA5B,aAAC,EAA+Byb,WACzD,OAAOxmC,SAAA,UAAAA,EAAM2T,YAAN,SAAYrS,IAAMtB,EAAK2T,KAAKrS,IAAM,GAE3C,MAAO,IA2ET,OACE,oBAAC4zB,EAAD,KACE,oBAACkQ,EAAD,CAA2BzsB,OAAO,wBAAwBhF,KAAMA,GAC7DnS,EAAG,gBAAiB,kBAEvB,oBAAC2jC,EAAD,CACEtzB,KAAK,wBACLnL,MAAOlF,EAAG,gBAAiB,iBAC3BmS,KAAMA,GAEN,oBAAC,EAAD,MAEA,oBAACmF,EAAD,CAAWpS,MAAOlF,EAAG,YAAa,kBAChC,oBAACilC,EAAD,CACEjyB,YAAY,kBACZjV,MAAOkyB,EACP7iB,SAAU,SAAC6iB,GAAD,OAxKDwU,EAwKuBxU,EAvKxCoU,EAAQ,QACRlT,EAAUsT,GAFM,IAACA,KA0KX,2BAAKvkC,UAAU,wCAzEhB69B,EAKH,2BACE9pB,KAAK,UACL/T,UAAU,+DACVkD,MAAO,CACLtB,QAAS,OACTojC,SAAU,QAEZ/wB,aAAYnU,EAAG,YAAa,kBAE3ByuB,EAAO3vB,OACJ2vB,EAAOrkB,KAAI,SAAC+kB,EAAO1Z,GAAO,IAAD,EACvB,OACE,oBAAC6e,EAAD,CACEzqB,YAAa,SAACnI,GACZpD,EAAS,eAAewrB,YACtBD,EAAY,iCAAkC,CAC5CngB,GAAIylB,aAAF,EAAEA,EAAOzlB,OAIjByI,KAAM2yB,EAAQ3V,GACdjqB,OAAOiqB,SAAA,UAAAA,EAAOjqB,aAAP,eAAc6/B,MAAO,WAC5Br7B,GAAIylB,aAAF,EAAEA,EAAOzlB,GACX+L,EAAGA,EACH3G,IAAKqgB,aAAF,EAAEA,EAAOzlB,QA9CH,WACvB,IAAI+kB,EAAO3vB,OAIX,OAAImxB,EACK,6BAAIjwB,EAAG,mBAAoB,kBAIlC,oBAAC,EAAD,CAAQ+F,KAAK,wCAAwCgT,aAAW,GAC7D/Y,EAAG,0BAA2B,kBAuC3BmlC,IACFlV,GAAUiU,GAAWzV,EAAO3vB,OAC5B,2BACEsE,MAAO,CACL,aAAc,OACd,aAAc,SACdtB,QAAS,OACT,kBAAmB,SACnBZ,MAAO,SAGT,oBAAC,EAAD,CAAQ6X,aAAW,EAACP,SAAO,EAAClX,QAASsjC,EAAUtxB,OAAQkd,GAAvD,cAKF,IAhDG,oBAACvkB,EAAD,a,6LEhLP8uB,GAFW/hB,OAATE,KAEezb,OAAOqI,SAASC,MAMvC,EASIrI,GAAGyC,WARLI,EADF,EACEA,OAEA6gB,GAHF,EAEEvR,OAFF,EAGEuR,aAEA6Z,GALF,EAIEtO,SAJF,EAKEsO,aAMMj7B,GAXR,EAME+L,YANF,EAOEa,cAPF,EAQE4P,eAGa9e,GAAGuC,KAAVD,IACR,EAAgCtC,GAAGC,QAA3B8C,EAAR,EAAQA,SAAU5C,EAAlB,EAAkBA,UACVwE,EAAc3E,GAAGW,KAAjBgE,UAER,GADmB3E,GAAG0nC,WACgC1nC,GAAGk6B,QAAjD9hB,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,iBAAkBsvB,EAAvC,EAAuCA,WAGjCrK,EAAuB,SAAC,GAAD,IAAGl7B,EAAH,EAAGA,IAAKsN,EAAR,EAAQA,SAAUmU,EAAlB,EAAkBA,SAAUzP,EAA5B,EAA4BA,QAA5B,OAC3B,oBAACuzB,EAAD,CAAYvzB,QAASA,GACnB,4BACE5R,UAAU,iDACVqhB,SAAUA,GAEV,6BACEzO,UAAQ,YACR5S,UAAU,kDACV1B,KAAK,MACL2V,aAAYnU,EAAG,MAAO,iBACtBgT,YAAahT,EACX,mDACA,iBAEFoN,SAAUA,EACVrP,MAAO+B,IAET,oBAACS,EAAD,CACEuS,UAAQ,aACR5S,UAAU,0DACViS,KAAM,eACNxN,MAAO3E,EAAG,QAAS,iBACnBxB,KAAK,cA+MEy8B,I,EAAAA,IAAY,0BAAZA,EAzMR,YAkBH,IAAD,IAjBDl9B,aAiBC,MAjBO,GAiBP,MAhBDqY,oBAgBC,MAhBc,GAgBd,EAfDlW,EAeC,EAfDA,UACAiS,EAcC,EAdDA,KAcC,IAbD5L,WAaC,aAZD20B,cAYC,MAZQ,GAYR,EAXDC,EAWC,EAXDA,aACAC,EAUC,EAVDA,QACAC,EASC,EATDA,WACA7M,EAQC,EARDA,UACA8M,EAOC,EAPDA,aACAnoB,EAMC,EANDA,SACAooB,EAKC,EALDA,SACAla,EAIC,EAJDA,YACAma,EAGC,EAHDA,cACAniB,EAEC,EAFDA,SACAoiB,EACC,EADDA,UAEMrd,EAAc/b,GAAU,SAACa,GAE7B,OAAOmb,EADiBnb,EAAO,qBAAvBmb,eACaD,cACpB,IAEH,EAAsB3d,EAAS,IAA/B,mBAAOX,EAAP,KAAY47B,EAAZ,KACA,EAAkDj7B,GAAS,GAA3D,mBAAOk7B,EAAP,KAA0BC,EAA1B,KAEA/9B,GAAU,WAAO,IAAD,EACd69B,EAAM,UAAC39B,aAAD,EAACA,EAAO+B,WAAR,QAAe,MACpB,CAAC/B,IAEJ,IAAM89B,EAAc,SAACxc,GACnBqc,EAAOrc,EAAMlI,OAAOpZ,QAGhB+9B,EAAe,WACnBF,GAAqB,IAGjBG,EAAgB,WACpBH,GAAqB,IAGjBI,EAAc,SAAC3c,GACnBA,EAAM4B,iBACFnhB,GAAOuhB,IACTA,EAAYvhB,GACZi8B,MAIEE,EAAoB,SAAC3e,EAAShc,GAClC,IAAMggB,EAAwB4Z,EAAxB5Z,aAAcpc,EAAUg2B,EAAVh2B,MAEfkZ,GAAgBiD,IACnBC,EAAethB,EACb,2DACA,kBAKJ,IAAMk8B,EAAuB9hB,IAC3B,iCACAla,EACA,CACE,cAAem7B,IAInB,OACE,oBAACja,EAAD,CACEjP,KAAMA,EACNxN,MAAOO,EACPoc,aAAcA,EACdphB,UAAWg8B,EACXd,QAASA,EACT95B,QAASA,EACTk6B,cAAeA,EACfn3B,QAAS82B,GAER9hB,EACAiE,IAoBD6e,EAAuB,WAC3B,OACE9a,GACE,2BAAKnhB,UAAU,uDACZqG,GACC,oBAAChG,EAAD,CACEuS,UAAQ,YACR5S,UAAU,yCACVoB,QAASw6B,EACTM,UAAWT,EACXx5B,YAAU,GAETnC,EAAG,YAAa,kBAGpB27B,GACC,oBAACX,EAAD,CACEl7B,IAAKA,EACLsN,SAAUyuB,EACVta,SAAUya,EACVlqB,QAASiqB,MAqErB,OACE,oBAAChmB,EAAD,CAAkBsmB,SAAUJ,EAAkBE,MA9Df,WAC/B,IAAMG,EACJ,oBAACxmB,EAAD,CACE5Q,MAEMlF,EADJwuB,EACO,iCACA,yBADkC,iBAG3C8M,aAAcA,EACdiB,SAAS,EACTzH,UAAU,EACV3hB,SAAU,SAACkM,GAET1Z,IAAQU,iBACR8M,EAASkM,IAEXvN,QAAS,WAEPnM,IAAQU,kBAEV+P,aAAcA,EACdrY,MAAO8J,MAAM20B,QAAQz+B,GAASA,EAAMqM,KAAI,qBAAGV,MAAe3L,EAAM2L,GAChE2M,OAAQ,YAAe,IAAZxV,EAAW,EAAXA,KACT,OACE,oBAACN,EAAD,CACEuS,UAAQ,YACR1Q,WAAS,EACTd,QAAS,SAAC+d,GACRA,EAAMod,kBACN92B,IAAQU,iBACJmoB,EACF7oB,IAAQC,cAAcm1B,GAEtBp1B,IAAQS,aAAa20B,GAEvBl6B,MAIEb,EADHwuB,EACM,2BACA,mBAD4B,qBAQ7C,GAAIpQ,EAAa,CACf,IAAMd,EACJ,wCACGgf,IACEb,GAAaU,IA5FpBZ,GACE,oBAACh7B,EAAD,CACEL,UAAU,gDACVgF,MAAOlF,EAAG,SAAU,iBACpBwb,QAAM,EACNla,QAASi6B,GAERv7B,EAAG,SAAU,mBAyFlB,OAAOi8B,EAAkB3e,GAG3B,OAAO2e,EAAkBK,GAKtBI,O,QC5PC18B,EAAOtC,GAAGuC,KAAVD,GACR,EAA4DtC,GAAGyC,WAAvD6L,EAAR,EAAQA,YAAaD,EAArB,EAAqBA,YAAaa,EAAlC,EAAkCA,cAAeiD,EAAjD,EAAiDA,OACzCvR,EAAaZ,GAAGW,KAAhBC,SAMFq+B,EAAsB,CAAC,SAEd3wB,KACb,YAQO,IAAD,EAPJs5B,EAOI,EAPJA,SACAnyB,EAMI,EANJA,SACAkG,EAKI,EALJA,SACAgI,EAII,EAJJA,YACAkkB,EAGI,EAHJA,cACAp8B,EAEI,EAFJA,cACA1G,EACI,EADJA,WAGM+rB,EAA2B,YADV/rB,EAAfuE,WAGR,OACE,+BACE,oBAAC,EAAD,CACEmL,KACEqc,EACE,2BACElU,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMqF,EAAE,IAAIE,EAAE,KAAKvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,MACpD,4BAAM1P,EAAE,8BAGV,2BACEJ,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,+BAASgqB,OAAO,0BAChB,4BAAM3kB,EAAE,IAAIE,EAAE,IAAIvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,OAIzD8Q,OAAQ,CACNh2B,MACIlF,EADGwuB,EACA,uBACA,eADwB,iBAE/BlN,aACIthB,EADUwuB,EAER,4DAIA,gFAHA,kBAORrb,SAAUA,EACVkO,YAAaA,EACbub,UAAU,EACVpO,UAAWA,EACXiN,WAAYjN,EACZ/O,OAAO,UACPtW,cAAeA,EACfiN,aAAcumB,EACd5+B,MAAO0E,EACP24B,QAASkK,EACT5a,QAAS6a,GAET,2BAAKniC,MAAO,CAAElC,MAAO,SACnB,oBAAC,EAAD,CAAahB,UAAU,sCACrB,oBAAC,EAAD,CACEyE,MACE,+BACG3E,EAAG,eAAgB,iBAAkB,MACrC,UAACqM,oBAAD,OAAC,EAAcC,YAAa,oBAACE,EAAA,EAAD,OAGjCW,KAEMnN,EADJwuB,EAEM,4DAIA,kDAHA,iBAORlhB,QAASkhB,EACTphB,SAAU,SAACohB,GAAe,IAAD,EACnB,UAACniB,oBAAD,OAAC,EAAcC,UAInBnD,EAAc,CACZnC,WAAYwnB,EAAY,UAAY,WAJpClwB,EAAS,wBAAwBiO,aAAY,SAUlD8M,GAAY,2BAAKjW,MAAO,CAAElC,MAAO,SAAWmY,KAE5CmV,GACD,oBAAC,EAAD,CAAQrwB,OAAO,UAAUkV,eAAe,GACtC,+BACE,+BACE,kCAASrT,EAAG,OAAQ,mBAErBA,EACC,6JACA,yB,wBC/HZA,EAAOtC,GAAGuC,KAAVD,GACR,EAAoCtC,GAAGytB,KAA/Bqa,EAAR,EAAQA,aAAcC,EAAtB,EAAsBA,UACtB,EAQI/nC,GAAGyC,WAPLI,EADF,EACEA,OACAof,EAFF,EAEEA,SACAgY,EAHF,EAGEA,QACA9nB,EAJF,EAIEA,OACA7D,EALF,EAKEA,YACAoV,EANF,EAMEA,YACAnV,EAPF,EAOEA,QAGF,GAA6CvO,GAAGk6B,OAAxCC,GAAR,GAAQA,cAAeC,GAAvB,GAAuBA,kBACf/uB,GAAYrL,GAAGqL,QAAfA,QACR,GAAgCrL,GAAGC,QAA3BE,GAAR,GAAQA,UAAW4C,GAAnB,GAAmBA,SACXnC,GAAaZ,GAAGW,KAAhBC,SACAurB,GAAgBnsB,GAAGksB,OAAnBC,YAmBF8S,GAAsB,CAAC,SAEd5zB,MAAQ,CAACgvB,cAAkBC,eAA3BjvB,CACbiD,GACE,YAgBM,EAfJs5B,SAeK,IAdL7iC,EAcI,EAdJA,WACA0G,EAaI,EAbJA,cAEAolB,GAWI,EAZJllB,WAYI,EAXJklB,kBACA/rB,EAUI,EAVJA,SACAmJ,EASI,EATJA,QACArC,EAQI,EARJA,WACAmB,EAOI,EAPJA,YACAY,EAMI,EANJA,YACAI,EAKI,EALJA,UACAR,EAII,EAJJA,SACAE,EAGI,EAHJA,WACAme,EAEI,EAFJA,SACAlgB,EACI,EADJA,cAEQrE,EAA4BtC,EAA5BsC,OAAQjF,EAAoB2C,EAApB3C,IAAK4J,EAAejH,EAAfiH,GAAIlF,EAAW/B,EAAX+B,OACzB,EAA0C/D,GAAS,IAAnD,mBAAOilC,EAAP,KAAsBC,EAAtB,KAEMxhB,EAAa,SAACziB,GAClB6sB,EAAiBe,mBACjBf,EAAiBgB,kBAAkB7tB,aAAnC,EAAmCA,EAAGtD,UAwHxC,OArHAP,IAAU,WACR,IAAK6L,GAAM+7B,EAAU3lC,GAAM,CACzB,IAAMyqB,EAAOib,EAAa1lC,GACtByqB,GACFnM,YAAY,CACVmB,UAAW,CAACgL,GACZ/K,aAAc,YAAgB,IAAZjZ,EAAW,oBAAXA,IAChB4C,EAAc,CAAErJ,IAAKyG,KAEvBmkB,QAAS,SAACtsB,GACRmwB,EAAiBgB,kBAAkBnxB,IAErCgY,aAAcumB,QAInB,IAqGE78B,EAiBD6L,IAAYjC,EAEZ,oBAAC,EAAD,CAAaxJ,UAAU,yCACrB,oBAAC+L,EAAD,OAMJ,+BACE,oBAAC4rB,GAAD,KACE,oBAAC1Z,EAAA,EAAD,CACE3Z,OAAQA,EACR4I,SAAU,SAAC6R,GACT9V,EAAc,CAAE3E,OAAQya,OAG5B,oBAAC0Y,EAAD,KACE,oBAAC,EAAD,CAAQr2B,QAAS,kBAAM+J,MACpBrL,EAAG,UAAW,oBAKrB,oBAAC83B,GAAD,KACE,oBAACwC,EAAA,EAAD,CACEnxB,cAAeA,EACf1G,WAAYA,KAIhB,kCAKE,oBAACkd,EAAD,KACE,oBAAC4a,EAAA,EAAD,CACEx1B,OAAQA,EACRjF,IAAKA,EACL4J,GAAIA,EACJlL,KAAM,SACNiE,WAAYA,EACZ0G,cAAeA,EACf5G,OAAQ+G,EACR9G,SAAUA,EACVsM,IAAKrD,OA7DX,+BACE,oBAACm6B,EAAD,CACEzyB,SAvGR,SAAuBgmB,GAChBA,GAAUA,EAAM5yB,KASrB4C,EAAc,CACZrJ,IAAKq5B,EAAM5yB,IACXhE,OAAQ6G,aAAF,EAAEA,EAAeM,GACvBkB,cAAeuuB,EAAMzvB,KAGvBuB,IACAR,EAAY,CACV3K,IAAKq5B,EAAM5yB,IACX/H,KAAM,aACNoM,cAAeuuB,EAAMzvB,KAEpB0vB,OAAM,SAAC13B,GACNyH,EAAc,CAAErJ,IAAK,KACrBqkB,EAAWziB,MAEZ23B,QAAQluB,IArBThC,EAAc,CAAErJ,SAAKyL,EAAW7B,QAAI6B,KAmGhC8V,YA3ER,SAAqBwkB,GAEW,IAAD,EAA7B,GADA18B,EAAc,CAAEyB,cAAe,OAC3Bi7B,GAAUh9B,YAAMg9B,KACd,UAACx5B,oBAAD,QAAC,EAAcC,WA2BjB,YA1BAq5B,EACE,oBAAC,EAAD,CAAQxnC,OAAO,OAAOuf,SAAU,kBAAMioB,EAAiB,MACrD,+BACE,+BACE,kCACG3lC,EACC,qDACA,mBAKLA,EACC,oDACA,iBAEF,2BACEoD,MAAO,CACL8d,UAAW,QAGb,oBAAC,EAAD,CAAQ9e,WAAS,GAAEpC,EAAG,UAAW,sBAS7C,GAAI6lC,IAAW/lC,EAAK,CAClB,IAAQtB,EAAS+J,YAAsBs9B,GAA/BrnC,KACR,GAAa,YAATA,EAAoB,CACtB,IAAMsnC,EAAejc,GAAY,wBAAyB,CACxD/pB,IAAK+lC,IAGP,YADAvnC,GAAS,eAAeynC,aAAazc,EAAUwc,GAIjD,GAAa,UAATtnC,EAAkB,CACpB,IAAMwnC,EAAanc,GAAY,sBAAuB,CACpD/pB,IAAK+lC,IAGP,YADAvnC,GAAS,eAAeynC,aAAazc,EAAU0c,GAIjD78B,EAAc,CAAErJ,IAAK+lC,EAAQI,cAAe,OAC5C98B,EAAc,CAAE5G,OAAQ6G,aAAF,EAAEA,EAAeM,KAEvCuB,IACAR,EAAY,CAAE3K,IAAK+lC,EAAQrnC,KAAM,SAC9B46B,OAAM,SAAC13B,GACNyH,EAAc,CAAErJ,IAAK,KACrBqkB,EAAWziB,MAEZ23B,QAAQluB,KAePhC,cAAeA,EACf1G,WAAYA,EACZioB,QAbR,SAAuBtsB,GACrBmwB,EAAiBe,mBACjBf,EAAiBgB,kBAAkBnxB,KAa5BsnC,Q,slBClMf,IAAQ1lC,GAAOtC,GAAGuC,KAAVD,GAOKqQ,GAAO,4BAKPxC,GAAO,SACf6sB,MADe,IAGlBx1B,MAAOlF,GAAG,eAAgB,iBAE1B46B,YAAa56B,GAAG,kCAAmC,iBAEnD66B,WAAW,CACT,CACExqB,KAAM,SACNyqB,WAAW,EACX51B,MAAOlF,GAAG,eAAgB,iBAC1B46B,YAAa56B,GAAG,kCAAmC,iBACnDyC,WAAY,CAAEuE,WAAY,YANpB,mBAQQ,QAAZ,EAAAqF,oBAAA,SAAcC,UACd,CACE,CACE+D,KAAM,UACNnL,MAAOlF,GAAG,uBAAwB,iBAClCmS,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMqF,EAAE,IAAIE,EAAE,KAAKvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,MACpD,4BAAM1P,EAAE,8BAGZkgB,YAAa56B,GACX,mCACA,iBAEFyC,WAAY,CAAEuE,WAAY,aAG9B,KAGNmL,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,+BAASgqB,OAAO,0BAChB,4BAAM3kB,EAAE,IAAIE,EAAE,IAAIvE,MAAM,KAAKC,OAAO,KAAKgpB,GAAG,IAAIC,GAAG,OAIvDhB,W,4HC5EMppB,EAAOtC,GAAGuC,KAAVD,GACR,EAAuCtC,GAAGmY,YAAlCqS,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,cACrB,EAA6CzqB,GAAGk6B,OAAzBE,GAAvB,EAAQD,cAAR,EAAuBC,mBACvB,EAQIp6B,GAAGyC,WAPLwf,EADF,EACEA,SAEApf,GAHF,EAEEo3B,QAFF,EAGEp3B,QACA+W,EAJF,EAIEA,UAEA8J,GANF,EAKEqiB,MALF,EAMEriB,aACAnV,EAPF,EAOEA,QAEF,EAAgCvO,GAAGW,KAA3BgE,EAAR,EAAQA,UAAW/D,EAAnB,EAAmBA,SACnB,EAAgCZ,GAAGC,QAA3B8C,EAAR,EAAQA,SAAU5C,EAAlB,EAAkBA,UACVqiC,EAAUxiC,GAAGqmC,gCAAb7D,MCdR,EAAuCxiC,GAAGmY,YAM7BxF,GANb,EAAQ6X,YAAR,EAAqBC,cAMD,kCAKPta,EAAU,CACrB3I,MAAO,yBAEP6C,SAAU,SAEVtF,WAAY,CACViH,GAAIhC,QAGNM,SAAU,CACRC,OAAO,EACPsgB,UAAU,EACVC,UAAU,EACVC,MAAM,GAGRtW,KACE,2BACEmI,MAAM,6BACNC,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,8BAAQ4oB,GAAG,KAAKC,GAAG,KAAKrlB,EAAE,OAC1B,4BAAMslB,GAAG,IAAIC,GAAG,KAAKC,GAAG,KAAKC,GAAG,OAChC,4BAAMzO,EAAE,gGAIZ0O,KD5Ba,YAA2C,IAAD,EAAvC3mB,EAAuC,EAAvCA,WAAY4G,EAA2B,EAA3BA,WAAYigB,EAAe,EAAfA,SAChC5f,EAAOjH,EAAPiH,GACF2f,EAAalB,IACnB,EAAsC1nB,GAAS,GAA/C,mBAAOs9B,EAAP,KAAoBmI,EAApB,KACA,EAA0BzlC,EAAS,IAAnC,mBAAOkpB,EAAP,KAAcwc,EAAd,KACA,EAAwB1lC,EAAS,IAAjC,mBAAO0lB,EAAP,KAAaigB,EAAb,KAEMjX,EAAQ9sB,GAAU,SAACa,GACvB,GAAKwG,EAGL,OAAOxG,EAAO,wBAAwB67B,iBAAiBr1B,MAGzD7L,GAAU,WACRH,GAAGW,KAAKC,SAAS,qBAAqBuL,YAAYyf,KACjD,CAACyU,IAGJ,IAAMxU,EAAclnB,GAAU,SAACa,GAC7B,OAAOA,EAAO,eAAemjC,oBAAoB/c,GAAU,GAAGC,eAwBhE,OAtBIA,SAAe4F,KAAOzlB,IACxB6f,EAAY5iB,SAAQ,SAAUgjB,GAC5BrrB,EAAS,eAAegoC,sBAAsB3c,EAAML,SAAU,CAC5D1f,0BAA2B0f,OAKjCzrB,GAAU,WACR,GAAIsxB,EAAMzlB,GAAI,CAAC,IAAD,MACZw8B,GAAe,GAEf,IAAMtc,EAASsW,EAAM/Q,SAAD,UAACA,EAAO7R,eAAR,aAAC,EAAgBynB,KACrCoB,EAAS,CACPvc,SADO,UACPA,EAAS,UADF,aACP,EAAaL,YAAY,GAAGyb,UAC5Bpb,SAFO,UAEPA,EAAS,UAFF,aAEP,EAAaL,YAAY,GAAGgd,QAG9BH,EAAQ,iBAAD,OAAkBjX,EAAMzlB,GAAxB,oBAER,CAACylB,IAEC4O,EAUApU,EAKH,wCACE,oBAACmO,EAAD,KACE,oBAACxgB,EAAD,KACE,oGAGA,oBAAC/W,EAAD,CAAQwY,aAAW,EAAChT,KAAM,qCACvB/F,EAAG,mBAAoB,oBAI9B,2BAAKE,UAAW,iDACd,0BAASmpB,EACNhgB,GACC,2BAAKnJ,UAAU,6BACb,yBAAGA,UAAU,mCACVivB,SADH,UACGA,EAAOjqB,aADV,aACG,EAAc6/B,KAEjB,oBAACxkC,EAAD,CACEwY,aAAW,EACXhT,KAAMogB,EACNjmB,UAAU,qCAETF,EAAG,sBAAuB,mBAIjC,oBAAC2f,EAAD,KACE,oBAACuI,EAAD,CACEse,SAAU,CAAC7c,GACXI,aAAc,MACdC,gBAAgB,aApC5B,EARI,0BAASX,EACP,oBAACjI,EAAD,KACE,oBAACnV,EAAD,SCjBR/D,KAAM,WACJ,OAAO,Q,mLC9CX,EAOIxK,GAAGyC,WANLI,EADF,EACEA,OACAof,EAFF,EAEEA,SACAgY,EAHF,EAGEA,QACAvW,EAJF,EAIEA,YACAnV,EALF,EAKEA,QACAD,EANF,EAMEA,YAEF,EAA6CtO,GAAGk6B,OAAxCC,EAAR,EAAQA,cAAeC,EAAvB,EAAuBA,kBACfj6B,EAAcH,GAAGC,QAAjBE,UACAmC,EAAOtC,GAAGuC,KAAVD,GAiBO+I,KAhBKrL,GAAGqL,QAAfA,SAgBe,CAACgvB,cAAkBC,eAA3BjvB,CACbiD,GACE,YAYO,IAXLvJ,EAWI,EAXJA,WACA0G,EAUI,EAVJA,cACA3G,EASI,EATJA,SACA+rB,EAQI,EARJA,iBACA5iB,EAOI,EAPJA,QACAlB,EAMI,EANJA,YACAQ,EAKI,EALJA,SACAE,EAII,EAJJA,WACA7B,EAGI,EAHJA,WACA+B,EAEI,EAFJA,YACAI,EACI,EADJA,UAEQ1G,EAAoBtC,EAApBsC,OAAQjF,EAAY2C,EAAZ3C,IAAK4J,EAAOjH,EAAPiH,GAQf+8B,EAAU3oC,YAAYgC,GAyB5B,OAxBAjC,GAAU,WAEJ4oC,GACFt9B,EAAc,CAAEO,GAAI,IAEtB,IAAIjB,EAAWL,YAAWtI,GAC1BqJ,EAAc,CAAEV,aAEhBwC,IACAR,EAAY,CAAE3K,MAAK6K,YAAalC,EAAUjK,KAAM,UAC7C46B,OAAM,SAAC13B,GACNyH,EAAc,CAAErJ,IAAK,KAlBR,SAAC4B,GAClB6sB,EAAiBe,mBACjBf,EAAiBgB,kBAAkB7tB,aAAnC,EAAmCA,EAAGtD,SAiBlC+lB,CAAWziB,MAEZ23B,QAAQluB,KACV,CAACrL,IASCA,EAgCD6L,IAAYjC,EAEZ,oBAAC0X,EAAD,CAAalhB,UAAU,yCACrB,oBAAC+L,EAAD,OAMJ,wCACE,oBAAC4rB,EAAD,KACE,oBAACF,EAAD,KAOE,oBAACp3B,EAAD,CAAQe,QAAS,kBAAM+J,MACpBrL,EAAG,UAAW,oBAKrB,oBAAC83B,EAAD,KACE,oBAACwC,EAAA,EAAD,CACEnxB,cAAeA,EACf1G,WAAYA,KAIhB,kCAKE,oBAACkd,EAAD,KACE,oBAAC4a,EAAA,EAAD,CACEx1B,OAAQA,EACRjF,IAAKA,EACLtB,KAAK,QACLkL,GAAIA,EACJjH,WAAYA,EACZ0G,cAAeA,EACf5G,OAAQ+G,EACR9G,SAAUA,EACVsM,IAAKrD,OA5EX,+BACE,oBAACi7B,EAAA,EAAD,CACEv0B,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMwa,EAAE,yVAGZ/V,MAAO3E,EAAG,qBAAsB,iBAChCshB,aAActhB,EAAG,wBAAyB,iBAC1CgT,YAAahT,EAAG,YAAa,iBAC7ByC,WAAYA,EACZ0G,cAAeA,EACfkY,YA/BR,SAAqBwkB,GACfA,IAAW/lC,GACbqJ,EAAc,CAAErJ,IAAK+lC,Y,ilBC1E/B,IAAQ7lC,EAAOtC,GAAGuC,KAAVD,GAOKqQ,EAAO,sBAKPxC,EAAO,OACf6sB,KADe,IAGlBj4B,WAAW,EAAD,KACLi4B,IAAaj4B,YADR,IAERgG,SAAU,CACRjK,KAAMyI,UAIV/B,MAAOlF,EAAG,qBAAsB,iBAEhC46B,YAAa56B,EACX,8CACA,iBAGFmS,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMwa,EAAE,yVAIZ0O,U,mLC3CF,EAOI1rB,GAAGyC,WANLI,EADF,EACEA,OACAof,EAFF,EAEEA,SACAgY,EAHF,EAGEA,QACAvW,EAJF,EAIEA,YACAnV,EALF,EAKEA,QACAD,EANF,EAMEA,YAEF,EAA6CtO,GAAGk6B,OAAxCC,EAAR,EAAQA,cAAeC,EAAvB,EAAuBA,kBACfj6B,EAAcH,GAAGC,QAAjBE,UACAmC,EAAOtC,GAAGuC,KAAVD,GAgBO+I,KAfKrL,GAAGqL,QAAfA,SAee,CAACgvB,cAAkBC,eAA3BjvB,CACbiD,GACE,YAYO,IAXLvJ,EAWI,EAXJA,WACA0G,EAUI,EAVJA,cACAolB,EASI,EATJA,iBACA/rB,EAQI,EARJA,SACAiI,EAOI,EAPJA,YACAkB,EAMI,EANJA,QACArC,EAKI,EALJA,WACA+B,EAII,EAJJA,YACAJ,EAGI,EAHJA,SACAE,EAEI,EAFJA,WACAM,EACI,EADJA,UAEQ1G,EAAoBtC,EAApBsC,OAAQjF,EAAY2C,EAAZ3C,IAAK4J,EAAOjH,EAAPiH,GAQf+8B,EAAU3oC,YAAYgC,GAyB5B,OAxBAjC,GAAU,WAEJ4oC,GACFt9B,EAAc,CAAEO,GAAI,IAEtB,IAAIjB,EAAWN,YAAarI,GAC5BqJ,EAAc,CAAEV,aAEhBwC,IACAR,EAAY,CAAE3K,MAAK6K,YAAalC,EAAUjK,KAAM,YAC7C46B,OAAM,SAAC13B,GACNyH,EAAc,CAAErJ,IAAK,KAlBR,SAAC4B,GAClB6sB,EAAiBe,mBACjBf,EAAiBgB,kBAAkB7tB,aAAnC,EAAmCA,EAAGtD,SAiBlC+lB,CAAWziB,MAEZ23B,QAAQluB,KACV,CAACrL,IASCA,EAiCD6L,IAAYjC,EAEZ,oBAAC0X,EAAD,CAAalhB,UAAU,yCACrB,oBAAC+L,EAAD,OAMJ,wCACE,oBAAC4rB,EAAD,KACE,oBAACF,EAAD,KACE,oBAACp3B,EAAD,CAAQe,QAAS,kBAAM+J,MACpBrL,EAAG,UAAW,oBAKrB,oBAAC83B,EAAD,KACE,oBAACwC,EAAA,EAAD,CACEnxB,cAAeA,EACf1G,WAAYA,KAIhB,kCAKE,oBAACkd,EAAD,KACE,oBAAC4a,EAAA,EAAD,CACEx1B,OAAQA,EACRjF,IAAKA,EACLtB,KAAK,UACLkL,GAAIA,EACJjH,WAAYA,EACZ0G,cAAeA,EACf5G,OAAQ+G,EACR9G,SAAUA,EACVsM,IAAKrD,OAvEX,+BACE,oBAACi7B,EAAA,EAAD,CACEv0B,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMwa,EAAE,sQACR,+BAASwP,OAAO,gDAGpBvlB,MAAO3E,EAAG,uBAAwB,iBAClCshB,aAActhB,EAAG,0BAA2B,iBAC5CgT,YAAahT,EAAG,cAAe,iBAC/ByC,WAAYA,EACZ0G,cAAeA,EACfkY,YAhCR,SAAqBwkB,GACfA,IAAW/lC,GACbqJ,EAAc,CAAErJ,IAAK+lC,Y,ilBCxE/B,IAAQ7lC,EAAOtC,GAAGuC,KAAVD,GAOKqQ,EAAO,wBAKPxC,EAAO,OACf6sB,KADe,IAGlBj4B,WAAW,EAAD,KACLi4B,IAAaj4B,YADR,IAERgG,SAAU,CACRjK,KAAMyI,UAIV/B,MAAOlF,EAAG,uBAAwB,iBAElC46B,YAAa56B,EACX,gDACA,iBAGFmS,KACE,2BACEmI,MAAM,6BACNpZ,MAAM,KACNC,OAAO,KACPoZ,QAAQ,YACR2C,KAAK,OACLwL,OAAO,eACPC,YAAY,IACZC,cAAc,QACdC,eAAe,QACf3oB,UAAU,qBAEV,4BAAMwa,EAAE,sQACR,+BAASwP,OAAO,gDAIpBd,W","file":"blocks/admin-75e32e72.js","sourcesContent":["(function() { module.exports = window[\"wp\"][\"i18n\"]; }());","(function() { module.exports = window[\"wp\"][\"components\"]; }());","const { useRef, useEffect } = wp.element;\n\nexport function usePrevious(value) {\n const ref = useRef();\n useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n}\n\nexport function snackbarNotice({ status = \"success\", message }) {\n wp.data.dispatch(\"core/notices\").createNotice(\n status, // Can be one of: success, info, warning, error.\n message, // Text string to display.\n { type: \"snackbar\" }\n );\n}\n\nexport const bytesToSize = (bytes) => {\n var sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n if (bytes == 0) return \"0 Byte\";\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\n return Math.round(bytes / Math.pow(1024, i), 2) + \" \" + sizes[i];\n};\n\nexport const toDate = (d) => {\n d = new Date(d);\n var hours = d.getHours();\n var minutes = d.getMinutes();\n var ampm = hours >= 12 ? \"pm\" : \"am\";\n hours = hours % 12;\n hours = hours ? hours : 12;\n minutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n return (\n d.getDate() +\n \"-\" +\n (d.getMonth() + 1) +\n \"-\" +\n d.getFullYear() +\n \" at \" +\n hours +\n \":\" +\n minutes +\n ampm\n );\n};\n\nexport function timeToSeconds(time) {\n let pieces = time.split(\":\");\n let seconds;\n if (pieces.length > 1) {\n seconds = parseInt(pieces[0]) * 60;\n }\n return parseInt(pieces[1]) + parseInt(seconds);\n}\n\nexport function secondsToTime(number) {\n let seconds = parseInt(number, 10);\n let minutes = Math.floor(seconds / 60);\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n return minutes + \":\" + seconds;\n}\n\nexport function sanitizeTime(time) {\n let draft = time;\n // remove any letters\n draft = draft.replace(/[^\\d\\d:\\d\\d.-]/g, \"\");\n // make sure we have :\n if (!draft.includes(\":\")) {\n return `${draft}:00`;\n }\n\n // must have something before :00\n if (draft.substr(0, draft.indexOf(\":\")).length === 0) {\n draft = `0${draft}`;\n }\n\n // only allow 2 characters after :\n let index = draft.indexOf(\":\");\n draft = draft.substring(0, index + 3);\n return draft;\n}\n\nexport function getProvider(src) {\n const provider = \"self-hosted\";\n\n if (src) {\n const yt_rx = /^(?:https?:\\/\\/)?(?:www\\.)?(?:youtu\\.be\\/|youtube\\.com\\/(?:embed\\/|v\\/|watch\\?v=|watch\\?.+&v=))((\\w|-){11})(?:\\S+)?$/;\n const has_match_youtube = src.match(yt_rx);\n\n if (has_match_youtube) {\n return \"youtube\";\n }\n\n const vm_rx = /(https?:\\/\\/)?(www\\.)?(player\\.)?vimeo\\.com\\/([a-z]*\\/)*([‌​0-9]{6,11})[?]?.*/;\n const has_match_vimeo = src.match(vm_rx);\n\n if (has_match_vimeo) {\n return \"vimeo\";\n }\n\n if (src.indexOf(\"https://vz-\") > -1 && src.indexOf(\"b-cdn.net\") > -1) {\n return \"bunny\";\n }\n\n if (src.indexOf(\".mp3\") > -1) {\n return \"audio\";\n }\n }\n return provider;\n}\n","const { __ } = wp.i18n;\n\nexport default function () {\n return (\n <div className=\"presto-player__pro-badge\">{__(\"Pro\", \"presto-player\")}</div>\n );\n}\n","/** @jsx jsx */\nconst { ColorPicker, ColorIndicator, Popover, Button, Flex } = wp.components;\nconst { useState, useEffect } = wp.element;\nconst { __ } = wp.i18n;\nimport { jsx } from \"@emotion/core\";\n\nexport default ({ color, setColor, onFocus }) => {\n const [open, setOpen] = useState(false);\n const [original, setOriginal] = useState(color);\n\n useEffect(() => {\n if (open && color) {\n setOriginal(color);\n }\n }, [open]);\n\n return (\n <span>\n <ColorIndicator\n css={{ width: \"25px\", height: \"25px\", borderRadius: \"9999px\" }}\n colorValue={color}\n onClick={() => {\n setOpen(!open);\n onFocus && onFocus();\n }}\n />\n {!!open && (\n <Popover\n position=\"bottom left\"\n focusOnMount\n onFocusOutside={(e) => {\n setOpen(false);\n }}\n >\n <ColorPicker\n color={color || \"\"}\n onChangeComplete={(value) => value?.hex && setColor(value)}\n disableAlpha\n />\n <div\n css={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"10px\",\n }}\n >\n <Button\n css={{ margin: \"0 5px\" }}\n isTertiary\n onClick={() => {\n setColor({ hex: null });\n setOpen(false);\n }}\n >\n {__(\"Reset\", \"presto-player\")}\n </Button>\n <div\n css={{\n display: \"flex\",\n justifyContent: \"flex-end\",\n padding: \"10px\",\n }}\n >\n <Button\n css={{ margin: \"0 5px\" }}\n isTertiary\n onClick={() => {\n setColor({ hex: original });\n setOpen(false);\n }}\n >\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n <Button isPrimary onClick={() => setOpen(false)}>\n {__(\"Apply\", \"presto-player\")}\n </Button>\n </div>\n </div>\n </Popover>\n )}\n </span>\n );\n};\n","(function() { module.exports = window[\"wp\"][\"element\"]; }());","import { PrestoPlayer } from \"@presto-player/react\";\nimport { getProvider } from \"../util\";\nconst { useSelect } = wp.data;\n\nexport default ({\n src,\n classes,\n preset,\n branding,\n attributes,\n adminPreview,\n currentTime,\n preload = \"metadata\",\n overlays,\n type,\n}) => {\n const { chapters, mutedOverlay, mutedPreview } = attributes;\n\n const youtube = useSelect((select) => {\n return select(\"presto-player/player\")?.youtube();\n });\n\n const css = useSelect((select) => {\n return select(\"presto-player/player\")?.playerCSS();\n });\n\n const convertHex = (hexCode, opacity = 1) => {\n var hex = hexCode.replace(\"#\", \"\");\n\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n\n var r = parseInt(hex.substring(0, 2), 16),\n g = parseInt(hex.substring(2, 4), 16),\n b = parseInt(hex.substring(4, 6), 16);\n\n /* Backward compatibility for whole number based opacity values. */\n if (opacity > 1 && opacity <= 100) {\n opacity = opacity / 100;\n }\n\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + opacity + \")\";\n };\n\n const mutedOverlayContent = () => {\n return (\n <div\n className=\"presto-player__overlay is-image\"\n style={{\n position: \"absolute\",\n width: `${mutedOverlay?.width || 100}%`,\n left: `${(mutedOverlay?.focalPoint?.x || 0.5) * 100}%`,\n top: `${(mutedOverlay?.focalPoint?.y || 0.5) * 100}%`,\n }}\n >\n <img\n src={mutedOverlay?.src}\n style={{\n transform: \"translateX(-50%) translateY(-50%)\",\n }}\n />\n </div>\n );\n };\n\n return (\n <div\n className={\"wp-block-video presto-block-video\"}\n style={\n type === \"audio\"\n ? {\n \"--presto-player-border-radius\": `${preset?.border_radius}px`,\n ...(preset?.background_color\n ? {\n \"--plyr-audio-controls-background\": preset.background_color,\n }\n : { \"--plyr-audio-controls-background\": branding?.color }),\n ...(preset?.control_color\n ? {\n \"--plyr-audio-control-color\": preset.control_color,\n \"--plyr-range-thumb-background\": preset.control_color,\n \"--plyr-range-fill-background\": preset.control_color,\n \"--plyr-audio-progress-buffered-background\": convertHex(\n preset.control_color || branding?.color || \"#00b3ff\",\n 0.5\n ),\n }\n : {\n \"--plyr-audio-control-color\": \"#ffffff\",\n \"--plyr-range-thumb-background\": \"#ffffff\",\n \"--plyr-range-fill-background\": \"#ffffff\",\n }),\n \"--plyr-range-thumb-shadow\": `0px`,\n }\n : {\n \"--presto-player-border-radius\": `${preset?.border_radius}px`,\n ...(preset?.caption_background\n ? { \"--plyr-captions-background\": preset.caption_background }\n : {}),\n ...(branding?.color\n ? { \"--plyr-color-main\": branding.color }\n : {}),\n \"--presto-player-email-border-radius\": `${\n preset?.email_collection?.border_radius || 0\n }px`,\n \"--presto-player-logo-width\": `${branding?.logo_width || 75}px`,\n }\n }\n >\n <PrestoPlayer\n src={src}\n css={css}\n classes={classes}\n currentTime={currentTime}\n overlays={overlays}\n isAdmin={true}\n preload={preload}\n preset={preset}\n bunny={{\n thumbnail: attributes?.previewThumbnail,\n preview: attributes?.preview,\n }}\n youtube={{\n channelId: youtube?.channel_id,\n }}\n tracks={\n !!preset?.captions && [\n {\n kind: \"captions\",\n label: \"English\",\n srclang: \"en\",\n src: \"/path/to/captions.en.vtt\",\n default: true,\n },\n ]\n }\n branding={branding}\n chapters={chapters}\n blockAttributes={attributes}\n poster={attributes.poster}\n provider={type === \"audio\" ? \"audio\" : getProvider(src)}\n mediaTitle={attributes.title}\n >\n <div slot=\"player-end\">\n {mutedPreview?.enabled &&\n mutedOverlay?.enabled &&\n mutedOverlayContent()}\n {adminPreview}\n </div>\n </PrestoPlayer>\n </div>\n );\n};\n","(function() { module.exports = window[\"wp\"][\"data\"]; }());","const helpers = {\n setUrlPrivate: () => {\n const separator = window.location.href.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n const newurl =\n window.location.href + separator + \"presto_video_type=private\";\n window.history.pushState({ path: newurl }, \"\", newurl);\n },\n setUrlPublic: () => {\n const separator = window.location.href.indexOf(\"?\") === -1 ? \"?\" : \"&\";\n const newurl =\n window.location.href + separator + \"presto_video_type=public\";\n window.history.pushState({ path: newurl }, \"\", newurl);\n },\n unsetUrlParams: () => {\n let removed = removeURLParameters(window.location.href, [\n \"presto_video_type\",\n ]);\n window.history.pushState({ path: removed }, \"\", removed);\n },\n};\n\nfunction removeURLParameters(url, parameters = []) {\n const parsedUrl = new URL(url);\n parameters.forEach((param) => {\n parsedUrl.searchParams.delete(param);\n });\n\n return parsedUrl.href;\n}\n\nexport default helpers;\n","export default {\n visibility: {\n type: String,\n default: \"public\",\n },\n color: {\n type: String,\n default: \"#00b3ff\",\n },\n blockAlignment: {\n type: String,\n },\n mutedPreview: {\n type: Object,\n default: {\n enabled: false,\n captions: false,\n },\n },\n mutedOverlay: {\n type: Object,\n default: {\n enabled: false,\n src: \"\",\n width: 200,\n focalPoint: {\n x: 0.5,\n y: 0.5,\n },\n },\n },\n mutedPreviewCaptions: {\n type: Boolean,\n },\n mutedOverlayType: {\n type: String,\n default: \"text\",\n },\n mutedOverlayText: {\n type: String,\n default: \"Click to play\",\n },\n mutedOverlaySrc: {\n type: String,\n },\n mutedOverlayImageWidth: {\n type: Number,\n default: 200,\n },\n mutedOverlayFocalPoint: {\n type: Object,\n },\n mutedOverlay: {\n type: Object,\n default: {\n enabled: false,\n type: \"text\",\n text: \"\",\n src: \"\",\n width: 200,\n focalPoint: {\n x: 0.5,\n y: 0.5,\n },\n },\n },\n autoplay: {\n type: Boolean,\n },\n preload: {\n type: String,\n },\n playsInline: {\n type: Boolean,\n },\n id: {\n type: Number,\n },\n attachment_id: {\n type: Number,\n },\n src: {\n type: String,\n },\n imageID: {\n type: Number,\n },\n poster: {\n type: String,\n },\n content: {\n type: Boolean,\n },\n preset: {\n type: Number,\n },\n chapters: {\n type: Array,\n default: [],\n },\n overlays: {\n type: Array,\n default: [],\n },\n tracks: {\n type: \"array\",\n items: {\n type: \"object\",\n },\n default: [],\n },\n};\n","import attributes from \"./attributes\";\n\nexport default {\n attributes,\n\n category: \"presto\",\n\n supports: {\n align: true,\n },\n\n // dynamic save function\n save: function () {\n return null;\n },\n};\n","export function getYoutubeId(url) {\n const regExp = /^.*(youtu.be\\/|v\\/|u\\/\\w\\/|embed\\/|watch\\?v=|&v=)([^#&?]*).*/;\n const match = (url || \"\").match(regExp);\n return match && match?.[2]?.length === 11 ? match[2] : null;\n}\n\nexport function getVimeoId(url) {\n const regExp = /^.*(vimeo\\.com\\/)((channels\\/[A-z]+\\/)|(groups\\/[A-z]+\\/videos\\/))?([0-9]+)/;\n const parseUrl = regExp.exec(url || \"\");\n return parseUrl?.[5] || \"\";\n}\n\nexport function saveAttachment({ video_id, src, type }) {\n return new Promise((resolve, reject) => {\n jQuery.post(\n prestoPlayer.ajaxurl,\n {\n action: \"presto_save_external_attachment\",\n _wpnonce: prestoPlayer.nonce,\n post_id: wp.data.select(\"core/editor\").getCurrentPostId(),\n video_id,\n src,\n type,\n },\n function ({ data }) {\n resolve(data);\n }\n );\n });\n}\n\nexport function determineVideoUrlType(url) {\n const youtube_id = getVimeoId(url);\n if (youtube_id) {\n return {\n video_id: youtube_id,\n type: \"vimeo\",\n };\n }\n\n const vimeo_id = getYoutubeId(url);\n if (vimeo_id) {\n return {\n video_id: vimeo_id,\n type: \"youtube\",\n };\n }\n\n return {\n $video_id: 0,\n $type: \"none\",\n };\n}\n\nexport function convertChapter(chapter) {\n let draft = time;\n // remove any letters\n draft = draft.replace(/[^\\d\\d:\\d\\d.-]/g, \"\");\n // make sure we have :\n if (!draft.includes(\":\")) {\n return `${draft}:00`;\n }\n\n // must have something before :00\n if (draft.substr(0, draft.indexOf(\":\")).length === 0) {\n draft = `0${draft}`;\n }\n\n // only allow 2 characters after :\n let index = draft.indexOf(\":\");\n draft = draft.substring(0, index + 3);\n return draft;\n}\n\n// get file extension\nexport function getFileExtension(url) {\n return url.split(/[#?]/)[0].split(\".\").pop().trim();\n}\n\n// is the source hls?\nexport function isHLS(url) {\n return typeof url === \"string\" && url.includes(\".m3u8\");\n}\n","/**\n * WordPress dependencies\n */\nconst { createHigherOrderComponent } = wp.compose;\nconst { useEffect, useState } = wp.element;\nimport { usePrevious } from \"@/admin/blocks/util\";\nimport apiFetch from \"@/shared/services/fetch\";\n\n/**\n * Higher order component factory for injecting the editor colors as the\n * `colors` prop in the `withColors` HOC.\n *\n * @return {Function} The higher order component.\n */\nexport default () =>\n createHigherOrderComponent(\n (WrappedComponent) => (props) => {\n const {\n presets,\n attributes,\n setAttributes,\n defaultPreset,\n isSelected,\n branding,\n } = props;\n const [presetData, setPresetData] = useState({});\n const [count, setCount] = useState(1);\n let { poster, chapters } = attributes;\n\n useEffect(() => {\n if (isSelected && attributes?.id) {\n wp.data\n .dispatch(\"core/edit-post\")\n .openGeneralSidebar(\"edit-post/block\");\n }\n }, [isSelected]);\n\n // don't allow selection if there is an override\n useEffect(() => {\n if (isSelected && attributes?.selectionOverrideClientId) {\n wp.data\n .dispatch(\"core/block-editor\")\n .selectBlock(attributes?.selectionOverrideClientId);\n }\n }, [isSelected]);\n\n // set preset data when presets are loaded\n useEffect(() => {\n if (presets && presets.length) {\n const thisPreset = presets.find((preset) => {\n return preset.id === attributes?.preset;\n });\n if (thisPreset) {\n setPresetData(thisPreset);\n } else {\n setPresetData(defaultPreset);\n setAttributes({ preset: defaultPreset?.id });\n }\n }\n }, [presets, attributes?.preset]);\n\n // re-render the player if presetdata, poster or chapters change\n useEffect(() => {\n onUpdate();\n }, [poster, presetData, chapters, branding.logo]);\n\n // increment update key\n const onUpdate = () => {\n setCount(count + 1);\n };\n\n // re-render only if times change\n const prevChapters = usePrevious(chapters);\n useEffect(() => {\n let times = chapters?.map((item) => item.time);\n let prevTimes = prevChapters?.map((item) => item.time);\n if (_.difference(times, prevTimes).length) {\n onUpdate();\n }\n }, [chapters]);\n\n const createVideo = async ({\n src,\n external_id,\n attachment_id,\n type,\n title,\n }) => {\n if (!src && !external_id && !attachment_id) {\n return;\n }\n const { id } = await apiFetch({\n method: \"POST\",\n path: \"/presto-player/v1/videos\",\n data: {\n attachment_id,\n post_id: wp.data.select(\"core/editor\").getCurrentPostId(),\n external_id,\n ...(title ? { title } : {}),\n src,\n type,\n },\n });\n setAttributes({ id });\n };\n\n const lock = () => {\n return wp.data.dispatch(\"core/editor\").lockPostSaving(\"presto-player\");\n };\n\n const unlock = () => {\n return wp.data\n .dispatch(\"core/editor\")\n .unlockPostSaving(\"presto-player\");\n };\n\n function onRemoveSrc() {\n let r = confirm(\"Remove this video?\");\n if (r) {\n setAttributes({\n src: \"\",\n id: undefined,\n ...(attributes?.thumbnail ? { thumbnail: null } : {}),\n ...(attributes?.preview ? { preview: null } : {}),\n ...(attributes?.previewSrc ? { previewSrc: null } : {}),\n ...(attributes?.previewThumbnail ? { previewThumbnail: null } : {}),\n });\n }\n }\n\n // make sure it's the default\n if (!attributes?.preset) {\n setAttributes({ preset: defaultPreset?.id });\n }\n\n return (\n <WrappedComponent\n {...props}\n lockSave={lock}\n unlockSave={unlock}\n createVideo={createVideo}\n onUpdate={onUpdate}\n onRemoveSrc={onRemoveSrc}\n presetData={presetData}\n setPresetData={setPresetData}\n renderKey={count}\n />\n );\n },\n \"withPlayerEdit\"\n );\n","const { withSelect } = wp.data;\n\nexport default function (props) {\n return withSelect((select) => {\n return {\n branding: select(\"presto-player/player\").branding(),\n loading: select(\"presto-player/player\").isResolving(\"getPresets\"),\n presets: select(\"presto-player/player\").getPresets(),\n defaultPreset: select(\"presto-player/player\").getDefaultPreset(),\n };\n });\n}\n","/** @jsx jsx */\n\nconst { __ } = wp.i18n;\nconst { useState } = wp.element;\nconst { useSelect, dispatch } = wp.data;\nconst { withNotices, BaseControl, Spinner, Button } = wp.components;\n\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\nimport EditOverlay from \"./Edit\";\n\nimport { css, jsx } from \"@emotion/core\";\n\nconst VideoOverlays = ({ setAttributes, attributes }) => {\n // modal\n const { overlays } = attributes;\n const [modal, setModal] = useState(false);\n const openModal = () => setModal(true);\n const closeModal = () => setModal(false);\n\n const updateOverlayAttribute = (overlays) => {\n setAttributes({ overlays: overlays });\n };\n\n return (\n <>\n <BaseControl>\n <Button\n isPrimary\n onClick={() => {\n if (!prestoPlayer?.isPremium) {\n dispatch(\"presto-player/player\").setProModal(true);\n return;\n }\n openModal(\"new\");\n }}\n >\n {!!overlays.length\n ? __(\"Update Overlays\", \"presto-player\")\n : __(\"Add Overlay\", \"presto-player\")}\n {!!overlays.length && (\n <div\n css={css`\n font-size: 10px;\n background: #fff;\n color: var(--wp-admin-theme-color);\n font-weight: bold;\n display: inline-block;\n line-height: 6px;\n padding: 5px;\n border-radius: 9999px;\n margin-left: 10px;\n `}\n >\n {overlays.length}\n </div>\n )}\n </Button>\n\n {!prestoPlayer?.isPremium && <ProBadge />}\n </BaseControl>\n\n {modal && (\n <EditOverlay\n closeModal={closeModal}\n attributes={attributes}\n setAttributes={setAttributes}\n updateOverlayAttribute={updateOverlayAttribute}\n />\n )}\n </>\n );\n};\n\nexport default VideoOverlays;\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n ToggleControl,\n BaseControl,\n HorizontalRule,\n __experimentalAlignmentMatrixControl: AlignmentMatrixControl,\n SelectControl,\n} = wp.components;\n\nexport default function ({ state, updateState, className }) {\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Behavior\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl>\n <ToggleControl\n label={__(\"Auto-Hide Controls\", \"presto-player\")}\n help={__(\n \"Hide video controls automatically after 2 seconds of no mouse movement.\",\n \"presto-player\"\n )}\n onChange={(auto_hide) => {\n updateState({ auto_hide });\n }}\n checked={state.auto_hide}\n />\n </BaseControl>\n {/* <BaseControl>\n <ToggleControl\n label={__(\"Reset On End\", \"presto-player\")}\n help={__(\n \"Reset the video to the beginning when it completes.\",\n \"presto-player\"\n )}\n onChange={(reset_on_end) => {\n updateState({ reset_on_end });\n }}\n checked={state.reset_on_end}\n />\n </BaseControl> */}\n <BaseControl>\n <ToggleControl\n label={__(\"Save Play Position\", \"presto-player\")}\n help={__(\n \"Saves the user's play position so when they come back to the page they can continue the video from where they left off.\",\n \"presto-player\"\n )}\n onChange={(save_player_position) => {\n updateState({ save_player_position });\n }}\n checked={state.save_player_position}\n />\n </BaseControl>\n <BaseControl>\n <ToggleControl\n label={__(\"Captions On By Default\", \"presto-player\")}\n help={__(\n \"Toggles if captions should be active by default.\",\n \"presto-player\"\n )}\n onChange={(captions_enabled) => {\n updateState({ captions_enabled });\n }}\n checked={state.captions_enabled}\n />\n </BaseControl>\n <BaseControl>\n <ToggleControl\n label={__(\"Focus Mode\", \"presto-player\")}\n help={__(\n \"Play only when tab is visible and video is in viewport.\",\n \"presto-player\"\n )}\n onChange={(play_video_viewport) => {\n updateState({ play_video_viewport });\n }}\n checked={state.play_video_viewport}\n />\n </BaseControl>\n\n <BaseControl>\n <ToggleControl\n label={__(\"Sticky On Scroll\", \"presto-player\")}\n help={__(\n \"Stick videos to the side of the screen when the page is scrolled and the video is playing.\",\n \"presto-player\"\n )}\n onChange={(sticky_scroll) => {\n updateState({ sticky_scroll });\n }}\n checked={state.sticky_scroll}\n />\n </BaseControl>\n {!!state.sticky_scroll && (\n <>\n <BaseControl\n label={__(\n \"Choose a position for your sticky player.\",\n \"presto-player\"\n )}\n >\n <AlignmentMatrixControl\n value={state.sticky_scroll_position}\n onChange={(sticky_scroll_position) => {\n updateState({ sticky_scroll_position });\n }}\n />\n </BaseControl>\n </>\n )}\n <BaseControl>\n <SelectControl\n label={__(\"On Video End\", \"presto-player\")}\n value={state.on_video_end}\n options={[\n {\n value: \"select\",\n label: __(\"Select\", \"presto-player\"),\n },\n {\n value: \"loop\",\n label: __(\"Loop\", \"presto-player\"),\n },\n {\n value: \"go-to-start\",\n label: __(\"Go to start\", \"presto-player\"),\n },\n ]}\n onChange={(on_video_end) => {\n updateState({ on_video_end });\n }}\n />\n </BaseControl>\n\n <HorizontalRule />\n <BaseControl />\n <BaseControl>\n <h3>{__(\"Youtube\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl>\n <ToggleControl\n label={__(\"Hide Youtube UI (Experimental)\", \"presto-player\")}\n help={__(\n \"Hides the Youtube logo and related videos.\",\n \"presto-player\"\n )}\n onChange={(hide_youtube) => {\n updateState({ hide_youtube });\n }}\n checked={state.hide_youtube}\n />\n </BaseControl>\n <BaseControl>\n <ToggleControl\n label={__(\"Lazy Load Videos\", \"presto-player\")}\n help={__(\n \"Improves page loading performance by only loading the video when clicked.\",\n \"presto-player\"\n )}\n onChange={(lazy_load_youtube) => {\n updateState({ lazy_load_youtube });\n }}\n checked={state.lazy_load_youtube}\n />\n </BaseControl>\n </div>\n );\n}\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { ToggleControl, BaseControl } = wp.components;\n\nexport default function ({ state, updateState, className }) {\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Controls\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl className=\"presto-player__control--large-play\">\n <ToggleControl\n label={__(\"Large Play Button\", \"presto-player\")}\n help={__(\n \"Adds a large play button over the top of the player.\",\n \"presto-player\"\n )}\n onChange={(play) => {\n updateState({ \"play-large\": play });\n }}\n checked={state[\"play-large\"]}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--rewind\">\n <ToggleControl\n label={__(\"Rewind\", \"presto-player\")}\n help={__(\n \"Adds a 10 second rewind button to the player.\",\n \"presto-player\"\n )}\n onChange={(rewind) => {\n updateState({ rewind });\n }}\n checked={state.rewind}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--play\">\n <ToggleControl\n label={__(\"Small Play Button\", \"presto-player\")}\n help={__(\n \"Adds a small play button to the bottom of the player.\",\n \"presto-player\"\n )}\n onChange={(play) => {\n updateState({ play });\n }}\n checked={state.play}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--fast-forward\">\n <ToggleControl\n label={__(\"Fast Forward\", \"presto-player\")}\n help={__(\n \"Adds a 10 second rewind button to the player.\",\n \"presto-player\"\n )}\n onChange={(value) => {\n updateState({ \"fast-forward\": value });\n }}\n checked={state[\"fast-forward\"]}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--progress\">\n <ToggleControl\n label={__(\"Progress Bar\", \"presto-player\")}\n help={__(\"Shows a seekable progress bar.\", \"presto-player\")}\n onChange={(progress) => {\n updateState({ progress });\n }}\n checked={state.progress}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--current-time\">\n <ToggleControl\n label={__(\"Current Time\", \"presto-player\")}\n help={__(\"Shows the video timestamp.\", \"presto-player\")}\n onChange={(value) => {\n updateState({ \"current-time\": value });\n }}\n checked={state[\"current-time\"]}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--volume\">\n <ToggleControl\n label={__(\"Volume\", \"presto-player\")}\n help={__(\"Shows a volume bar.\", \"presto-player\")}\n onChange={(value) => {\n updateState({ volume: value, mute: value });\n }}\n checked={state.volume}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--speed\">\n <ToggleControl\n label={__(\"Speed\", \"presto-player\")}\n help={__(\"Shows playback speed controls.\", \"presto-player\")}\n onChange={(speed) => {\n updateState({ speed });\n }}\n checked={state.speed}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--pip\">\n <ToggleControl\n label={__(\"Picture In Picture (HTML5 only)\", \"presto-player\")}\n help={__(\n \"Allows users to dock the player on their screen and watch when using other app on their computer.\",\n \"presto-player\"\n )}\n onChange={(pip) => {\n updateState({ pip });\n }}\n checked={state.pip}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--fullscreen\">\n <ToggleControl\n label={__(\"Fullscreen\", \"presto-player\")}\n help={__(\n \"Adds a button to allow the player to be fullscreen.\",\n \"presto-player\"\n )}\n onChange={(fullscreen) => {\n updateState({ fullscreen });\n }}\n checked={state.fullscreen}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--captions\">\n <ToggleControl\n label={__(\"Captions\", \"presto-player\")}\n help={__(\"Shows a dedicated caption toggle button.\", \"presto-player\")}\n onChange={(value) => {\n updateState({ captions: value });\n }}\n checked={state[\"captions\"]}\n />\n </BaseControl>\n </div>\n );\n}\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\n\nconst {\n ToggleControl,\n BaseControl,\n RadioControl,\n Flex,\n RangeControl,\n} = wp.components;\n\nconst { useEffect } = wp.element;\n\nimport DynamicText from \"../overlays/components/DynamicText\";\n\nimport ColorPopup from \"../components/ColorPopup\";\n\nexport default ({ state, updateState, className }) => {\n const { watermark } = state;\n\n const defaults = {\n text: __(\"Enter your watermark text.\", \"presto-player\"),\n position: \"top-right\",\n color: \"#fff\",\n backgroundColor: \"#333\",\n opacity: 80,\n };\n useEffect(() => {\n Object.keys(defaults).forEach((key) => {\n if (state?.watermark?.[key] === undefined) {\n updateWatermarkState({\n [key]: defaults[key],\n });\n }\n });\n }, [state]);\n\n const updateWatermarkState = (updated) => {\n updateState({\n ...state,\n watermark: {\n ...watermark,\n ...updated,\n },\n });\n };\n\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Dynamic Watermark Text\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl className=\"presto-player__control--watermark\">\n <ToggleControl\n label={__(\"Enable\", \"presto-player\")}\n help={__(\n \"Add a simulated dynamic watermark over your video.\",\n \"presto-player\"\n )}\n onChange={(enabled) => {\n updateWatermarkState({\n enabled,\n });\n }}\n checked={watermark?.enabled}\n />\n </BaseControl>\n\n {watermark?.enabled && (\n <div>\n <DynamicText\n text={watermark?.text}\n update={({ text }) => {\n updateWatermarkState({\n text,\n });\n }}\n />\n\n <BaseControl className={className}>\n <RadioControl\n label={__(\"Position\", \"presto-player\")}\n options={[\n { label: __(\"Top Right\", \"presto-player\"), value: \"top-right\" },\n { label: __(\"Top Left\", \"presto-player\"), value: \"top-left\" },\n {\n label: __(\"Change Every 10 Seconds\", \"presto-player\"),\n value: \"randomize\",\n },\n ]}\n selected={watermark?.position || \"top-right\"}\n onChange={(position) =>\n updateWatermarkState({\n position,\n })\n }\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control-text-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Text Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={watermark?.color || \"#fff\"}\n setColor={(value) =>\n updateWatermarkState({\n color: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n\n <BaseControl className=\"presto-player__control-text-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Background Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={watermark?.backgroundColor || \"#333\"}\n setColor={(value) =>\n updateWatermarkState({\n backgroundColor: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n\n <BaseControl>\n <RangeControl\n label={__(\"Opacity\", \"presto-player\")}\n help={__(\"Opacity percentage of the watermark.\", \"presto-player\")}\n value={watermark?.opacity || 100}\n onChange={(opacity) => updateWatermarkState({ opacity })}\n min={0}\n max={100}\n />\n </BaseControl>\n </div>\n )}\n </div>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n ToggleControl,\n BaseControl,\n RangeControl,\n SelectControl,\n ColorPicker,\n} = wp.components;\n\nexport default function ({ state, updateState, className }) {\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Style\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl>\n <ToggleControl\n label={__(\"Hide Logo\", \"presto-player\")}\n help={__(\"Hides the logo on this video.\", \"presto-player\")}\n onChange={(hide_logo) => {\n updateState({ hide_logo });\n }}\n checked={state.hide_logo}\n />\n </BaseControl>\n <BaseControl>\n <RangeControl\n label={__(\"Round Corners\", \"presto-player\")}\n help={__(\"Player border radius size.\", \"presto-player\")}\n value={state?.border_radius || 0}\n onChange={(border_radius) => updateState({ border_radius })}\n min={0}\n max={25}\n />\n </BaseControl>\n\n <BaseControl>\n <SelectControl\n label={__(\"Caption Style\", \"presto-player\")}\n labelPosition=\"top\"\n value={state?.caption_style}\n options={[\n { label: __(\"Default\", \"presto-player\"), value: \"default\" },\n { label: __(\"Full\", \"presto-player\"), value: \"full\" },\n ]}\n onChange={(caption_style) => {\n updateState({ caption_style });\n }}\n />\n </BaseControl>\n <BaseControl>\n <BaseControl.VisualLabel>\n <p>{__(\"Caption Background\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n\n <ColorPicker\n color={state?.caption_background || \"#000000\"}\n onChangeComplete={(value) => {\n updateState({ caption_background: value.hex });\n }}\n disableAlpha\n />\n </BaseControl>\n </div>\n );\n}\n","/** @jsx jsx */\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n TextControl,\n BaseControl,\n Icon,\n Notice,\n Button,\n Flex,\n FlexItem,\n SelectControl,\n FlexBlock,\n Modal,\n} = wp.components;\nconst { useState, useEffect } = wp.element;\nconst { useSelect, dispatch } = wp.data;\n\nimport { snackbarNotice } from \"@/admin/blocks/util\";\nimport Menu from \"@/admin/ui/Menu\";\nimport { css, jsx } from \"@emotion/core\";\nimport Preview from \"../Preview\";\nimport ActionBar from \"./ActionBar\";\nimport Behavior from \"./Behavior\";\nimport Controls from \"./Controls\";\nimport Watermark from \"./Watermark\";\nimport CTA from \"./CTA\";\nimport Email from \"./Email\";\nimport Style from \"./Style\";\n\nfunction EditPlayerPreset({\n type = \"new\",\n closeModal,\n addPreset,\n onSave,\n updatePreset,\n name = \"\",\n preset = {\n \"play-large\": true,\n rewind: true,\n play: true,\n \"fast-forward\": true,\n progress: true,\n \"current-time\": true,\n mute: true,\n volume: true,\n speed: false,\n pip: false,\n fullscreen: true,\n captions: false,\n // behavior\n save_player_position: false,\n reset_on_end: false,\n auto_hide: true,\n sticky_scroll: false,\n // style\n hide_logo: false,\n border_radius: 0,\n skin: \"modern\",\n caption_style: \"default\",\n caption_background: \"#000000\",\n // youtube\n hide_youtube: false,\n lazy_load_youtube: false,\n\n // features\n cta: {},\n email_collection: {},\n action_bar: {},\n },\n}) {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(\"\");\n const [menu, setMenu] = useState(\"\");\n const [thisName, setThisName] = useState(name);\n const [state, setState] = useState(preset);\n const branding = useSelect((select) => {\n return select(\"presto-player/player\").branding();\n });\n\n const [value, setValue] = useState(\"\");\n\n const genericError = {\n message: __(\n \"The preset could not be saved. Please reload the page and try again.\",\n \"presto-player\"\n ),\n };\n\n //you tube feature\n const youtube = useSelect((select) => {\n return select(\"presto-player/player\").youtube();\n });\n\n useEffect(() => {\n setValue(youtube.channel_id);\n }, [youtube?.channel_id]);\n\n // update state\n const updateState = (updated = {}) => {\n setState({ ...state, ...updated });\n };\n\n const putPreset = async () => {\n setLoading(true);\n try {\n const data = {\n ...state,\n ...{ name: thisName },\n };\n let saved = await wp.apiFetch({\n method: \"POST\",\n url: wp.url.addQueryArgs(\n `${prestoPlayer.root}${prestoPlayer.prestoVersionString}preset/${preset.id}`,\n { _method: \"PUT\" }\n ),\n data,\n });\n\n if (!saved) {\n throw genericError;\n }\n\n // update or create here\n updatePreset(saved);\n closeModal();\n !!onSave && onSave(saved);\n snackbarNotice({ message: __(\"Preset updated!\", \"presto-player\") });\n } catch (e) {\n setError(e?.message ? e.message : genericError);\n } finally {\n setLoading(false);\n }\n\n // youtube id save\n dispatch(\"presto-player/player\").updateYoutube({ channel_id: value });\n\n const data = {\n ...youtube,\n ...{ channel_id: value },\n };\n\n try {\n let response = await wp.apiFetch({\n path: \"wp/v2/settings\",\n method: \"POST\",\n data: {\n presto_player_youtube: data,\n },\n });\n if (response?.presto_player_youtube) {\n dispatch(\"presto-player/player\").setYoutube(\n response?.presto_player_youtube\n );\n onClose();\n }\n } catch (e) {\n console.log(e);\n }\n };\n\n const createPreset = async () => {\n setLoading(true);\n try {\n let saved = await wp.apiFetch({\n method: \"POST\",\n url: prestoPlayer.root + prestoPlayer.prestoVersionString + \"preset\",\n data: {\n ...{ name: thisName },\n ...state,\n },\n });\n if (!saved) {\n throw genericError;\n }\n\n // update or create here\n addPreset(saved);\n closeModal();\n !!onSave && onSave(saved);\n snackbarNotice({ message: __(\"Preset created!\", \"presto-player\") });\n } catch (e) {\n setError(e?.message ? e.message : genericError);\n } finally {\n setLoading(false);\n }\n };\n\n // validate and save\n const save = () => {\n if (!thisName) {\n setError(__(\"You must enter a name for the preset.\", \"presto-player\"));\n return;\n }\n return type === \"edit\" ? putPreset() : createPreset();\n };\n\n const tabs = [\n {\n name: \"controls\",\n title: __(\"Controls\", \"presto-player\"),\n icon: <Icon icon=\"admin-settings\" />,\n component: <Controls updateState={updateState} state={state} />,\n },\n {\n name: \"behavior\",\n title: __(\"Behavior\", \"presto-player\"),\n icon: <Icon icon=\"admin-generic\" />,\n component: <Behavior updateState={updateState} state={state} />,\n },\n {\n name: \"style\",\n title: __(\"Style\", \"presto-player\"),\n icon: <Icon icon=\"admin-customizer\" />,\n component: <Style updateState={updateState} state={state} />,\n },\n {\n name: \"email\",\n title: __(\"Email Capture\", \"presto-player\"),\n icon: <Icon icon=\"email\" />,\n component: <Email updateState={updateState} state={state} />,\n },\n {\n name: \"cta\",\n title: __(\"Call To Action\", \"presto-player\"),\n icon: <Icon icon=\"megaphone\" />,\n component: <CTA updateState={updateState} state={state} />,\n },\n {\n name: \"action_bar\",\n title: __(\"Action Bar\", \"presto-player\"),\n icon: <Icon icon=\"cover-image\" />,\n component: (\n <ActionBar\n updateState={updateState}\n state={state}\n value={value}\n setValue={setValue}\n />\n ),\n },\n {\n name: \"watermark\",\n title: __(\"Dynamic Watermark\", \"presto-player\"),\n icon: <Icon icon=\"lock\" />,\n component: <Watermark updateState={updateState} state={state} />,\n },\n // {\n // name: \"cta\",\n // title: __(\"Call to Action\", \"presto-player\"),\n // icon: <Icon icon=\"megaphone\" />,\n // },\n ];\n\n return (\n <Modal\n title={\n type == \"edit\"\n ? __(\"Edit A Video Preset\", \"presto-player\")\n : __(\"Create A New Video Preset\", \"presto-player\")\n }\n onRequestClose={closeModal}\n className=\"presto-player__modal-presets\"\n overlayClassName=\"presto-player__modal-presets-overlay\"\n >\n <div className=\"presto-player__preset-options\" data-cy=\"preset-modal\">\n <TextControl\n value={thisName}\n hideLabelFromVision={true}\n label={__(\"Preset Name\", \"presto-player\")}\n onChange={(name) => setThisName(name)}\n placeholder={__(\"Enter a preset name...\", \"presto-player\")}\n className=\"presto-player__modal--style-name\"\n autoFocus\n />\n\n <Flex align=\"stretch\" className=\"presto-player__style-preview-area\">\n <FlexItem className=\"presto-player__style-sidebar\">\n <div>\n <Menu\n items={tabs}\n title={__(\"Customize\", \"presto-player\")}\n onSelect={setMenu}\n >\n {(item) => item.component}\n </Menu>\n </div>\n </FlexItem>\n <FlexBlock className=\"presto-player__style-preview-panel\">\n <div\n style={{ position: \"absolute\", top: 0, left: 0, padding: \"20px\" }}\n >\n <SelectControl\n label={__(\"Skin\", \"presto-player\")}\n labelPosition=\"side\"\n value={state?.skin}\n options={[\n { label: __(\"Modern\", \"presto-player\"), value: \"modern\" },\n { label: __(\"Business\", \"presto-player\"), value: \"business\" },\n { label: __(\"Stacked\", \"presto-player\"), value: \"stacked\" },\n { label: __(\"Basic\", \"presto-player\"), value: \"default\" },\n ]}\n onChange={(skin) => {\n updateState({ skin });\n }}\n />\n </div>\n {/*\n Disable the video tag so the user clicking on it won't play the\n video when the controls are enabled.\n\t\t\t\t*/}\n\n <Preview\n poster=\"https://source.unsplash.com/daily\"\n state={state}\n branding={branding}\n menu={menu}\n />\n </FlexBlock>\n </Flex>\n\n <br />\n\n {error && (\n <BaseControl>\n <Notice\n className=\"presto-player__modal--error-notice\"\n status=\"error\"\n isDismissible={false}\n style={{ margin: 0 }}\n >\n {error.replace(/(<([^>]+)>)/gi, \"\")}\n </Notice>\n </BaseControl>\n )}\n <div\n css={css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n `}\n >\n <div\n css={css`\n opacity: 0.5;\n font-size: 12px;\n `}\n >\n Preset ID: {preset.id}\n </div>\n <div>\n <Button isTertiary onClick={closeModal} style={{ margin: \"0 6px\" }}>\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n <Button\n isPrimary\n isBusy={loading}\n disabled={loading}\n onClick={save}\n data-cy=\"submit-preset\"\n >\n {type == \"edit\"\n ? __(\"Update Preset\", \"presto-player\")\n : __(\"Create Preset\", \"presto-player\")}\n </Button>\n </div>\n </div>\n </div>\n </Modal>\n );\n}\nexport default EditPlayerPreset;\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { Icon, Spinner, Modal, Button, ButtonGroup } = wp.components;\nconst { useState } = wp.element;\n\nexport default function ({\n preset,\n index,\n isActive,\n remove,\n setPreset,\n onEdit,\n}) {\n const [loading, setLoading] = useState(false);\n const [confirmOpen, setConfirmOpen] = useState(false);\n\n const openConfirm = () => setConfirmOpen(true);\n const closeConfirm = () => setConfirmOpen(false);\n\n const untrashPreset = async () => {};\n\n const trashPreset = async () => {\n // remove unsaved\n if (!preset.id) {\n remove(preset);\n return;\n }\n\n try {\n setLoading(true);\n let deleted = await wp.apiFetch({\n method: \"POST\",\n url: wp.url.addQueryArgs(\n `${prestoPlayer.root}${prestoPlayer.prestoVersionString}preset/${preset.id}`,\n { _method: \"DELETE\" }\n ),\n });\n if (deleted) {\n remove(preset);\n wp.data.dispatch(\"core/notices\").createNotice(\n \"success\", // Can be one of: success, info, warning, error.\n __(\"Preset trashed.\", \"presto-player\"),\n {\n type: \"snackbar\",\n isDismissible: true,\n // actions: [\n // {\n // label: __(\"Undo\", \"presto-player\"),\n // onClick: () => {\n // console.log(\"untrash\");\n // },\n // },\n // ],\n }\n );\n }\n } catch (e) {\n console.error(e);\n if (e?.message) {\n wp.data.dispatch(\"core/notices\").createNotice(\n \"error\", // Can be one of: success, info, warning, error.\n e.message,\n {\n type: \"snackbar\",\n isDismissible: true, // Whether the user can dismiss the notice.\n }\n );\n }\n } finally {\n setConfirmOpen(false);\n setLoading(false);\n }\n };\n\n if (loading) {\n return (\n <div\n className=\"block-editor-block-styles__item\"\n role=\"button\"\n tabIndex={index}\n aria-label=\"Fill\"\n style={{\n color: isActive ? \"var(--wp-admin-theme-color)\" : \"inherit\",\n width: \"calc(50% - 4px)\",\n margin: \"4px 0\",\n \"flex-shrink\": \"0\",\n cursor: \"pointer\",\n overflow: \"hidden\",\n \"border-radius\": \"2px\",\n padding: \"6px\",\n display: \"flex\",\n \"flex-direction\": \"column\",\n }}\n >\n <div\n className=\"block-editor-block-styles__item-preview\"\n style={{\n border: isActive\n ? \"2px solid var(--wp-admin-theme-color)\"\n : \"2px solid #e3e3e3\",\n margin: 0,\n outline: \"1px solid transparent\",\n padding: \"0\",\n display: \"flex\",\n overflow: \"hidden\",\n background: \"#fff\",\n \"align-items\": \"center\",\n \"flex-grow\": \"1\",\n \"min-height\": \"80px\",\n \"max-height\": \"160px\",\n }}\n >\n <Spinner />\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={`block-editor-block-styles__item presto-preset-${preset.slug}`}\n onClick={() => {\n setPreset(preset);\n }}\n role=\"button\"\n tabIndex={index}\n aria-label=\"Fill\"\n style={{\n color: isActive ? \"var(--wp-admin-theme-color)\" : \"inherit\",\n width: \"calc(50% - 4px)\",\n margin: \"4px 0\",\n \"flex-shrink\": \"0\",\n cursor: \"pointer\",\n overflow: \"hidden\",\n \"border-radius\": \"2px\",\n padding: \"6px\",\n display: \"flex\",\n \"flex-direction\": \"column\",\n }}\n >\n <div\n className=\"block-editor-block-styles__item-preview\"\n style={{\n border: isActive\n ? \"2px solid var(--wp-admin-theme-color)\"\n : \"2px solid #e3e3e3\",\n margin: 0,\n outline: \"1px solid transparent\",\n padding: \"0\",\n display: \"flex\",\n overflow: \"hidden\",\n background: \"#fff\",\n \"align-items\": \"center\",\n \"flex-grow\": \"1\",\n \"min-height\": \"80px\",\n \"max-height\": \"160px\",\n }}\n >\n <div\n style={{\n textAlign: \"center\",\n width: \"100%\",\n color: isActive ? \"var(--wp-admin-theme-color)\" : \"inherit\",\n opacity: isActive ? 1 : 0.75,\n }}\n >\n {preset?.icon ? (\n <Icon\n icon={preset?.icon}\n style={{\n fontSize: \"30px\",\n width: \"30px\",\n height: \"30px\",\n }}\n />\n ) : (\n <h1 style={{ opacity: 0.75 }}>\n {preset?.name?.charAt(0)?.toUpperCase() || \"Untitled\"}\n </h1>\n )}\n </div>\n </div>\n <div\n className=\"block-editor-block-styles__item-label\"\n style={{\n fontWeight: \"bold\",\n textTransform: \"capitalize\",\n \"text-align\": \"center\",\n padding: \"4px 0\",\n }}\n >\n {preset?.name || \"Untitled\"}\n </div>\n\n {!preset?.is_locked && (\n <div className=\"block-editor-block-styles__item-edit\">\n <div\n className=\"block-editor-block-styles__item-edit-icon\"\n onClick={onEdit}\n >\n <Icon icon=\"edit\" />\n </div>\n <div\n className=\"block-editor-block-styles__item-edit-icon\"\n onClick={openConfirm}\n >\n <Icon icon=\"trash\" />\n </div>\n </div>\n )}\n\n {confirmOpen && (\n <Modal\n title={__(\"Trash Preset?\", \"presto-player\")}\n onRequestClose={closeConfirm}\n style={{ maxWidth: \"250px\" }}\n >\n <p>\n <strong>{__(\"Warning!\", \"presto-player\")} </strong>\n {__(\n \"Any videos assigned to this preset will automatically use the default preset.\",\n \"presto-player\"\n )}\n </p>\n\n <ButtonGroup>\n <Button\n isDestructive\n onClick={trashPreset}\n style={{ margin: \"0 4px\" }}\n >\n {__(\"Trash\", \"presto-player\")}\n </Button>\n <Button\n isTertiary\n onClick={closeConfirm}\n style={{ margin: \"0 4px\", boxShadow: \"none\" }}\n >\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n </ButtonGroup>\n </Modal>\n )}\n </div>\n );\n}\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { withNotices, BaseControl, Spinner, Button } = wp.components;\nconst { useState, useEffect } = wp.element;\nconst { useSelect, dispatch } = wp.data;\n\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\nimport EditPreset from \"./Edit\";\nimport Preset from \"./Preset\";\nimport styled from \"@emotion/styled\";\n\nfunction PlayerPresets({ attributes, setAttributes }) {\n // modal\n const [modal, setModal] = useState(false);\n const openModal = (type) => setModal(type);\n const closeModal = () => setModal(false);\n const [presetData, setPresetData] = useState(null);\n const [name, setName] = useState(null);\n\n // preset data\n const { presets, loading } = useSelect((select) => {\n return {\n presets: select(\"presto-player/player\").getPresets(),\n loading: select(\"presto-player/player\").isResolving(\"getPresets\"),\n };\n });\n\n // preset actions\n const addPreset = (preset) => {\n dispatch(\"presto-player/player\").addPreset(preset);\n };\n const updatePreset = (preset) => {\n dispatch(\"presto-player/player\").updatePreset(preset);\n };\n const removePreset = (preset) => {\n dispatch(\"presto-player/player\").removePreset(preset);\n };\n\n // set this preset id\n const setPreset = (preset) => {\n setAttributes({ preset: preset.id });\n };\n\n const PresetWrap = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n `;\n\n if (loading) {\n return (\n <div className=\"presto-settings__loading\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n {presets.length ? (\n <p>\n {__(\n \"Select a video configuration preset, or add your own.\",\n \"presto-player\"\n )}\n </p>\n ) : (\n \"\"\n )}\n\n <BaseControl>\n <PresetWrap>\n {(presets || []).length\n ? presets.map((preset, i) => {\n return (\n <Preset\n setPreset={setPreset}\n index={i}\n isActive={attributes?.preset === preset.id}\n preset={preset}\n key={preset.id}\n onEdit={() => {\n setName(preset.name);\n setPresetData(preset);\n setModal(\"edit\");\n }}\n remove={removePreset}\n />\n );\n })\n : __(\n \"No style presets. You can create a new style by clicking 'Add New Style'.\",\n \"presto-plugin\"\n )}\n </PresetWrap>\n </BaseControl>\n <BaseControl>\n <Button\n isPrimary\n data-cy=\"add-new-preset\"\n onClick={() => {\n if (!prestoPlayer?.isPremium) {\n dispatch(\"presto-player/player\").setProModal(true);\n return;\n }\n openModal(\"new\");\n }}\n >\n {__(\"Add New Preset\", \"presto-player\")}\n </Button>\n {!prestoPlayer?.isPremium && <ProBadge />}\n </BaseControl>\n {modal == \"new\" && (\n <EditPreset\n closeModal={closeModal}\n addPreset={addPreset}\n type=\"new\"\n onSave={setPreset}\n />\n )}\n {modal == \"edit\" && (\n <EditPreset\n closeModal={closeModal}\n addPreset={addPreset}\n updatePreset={updatePreset}\n type=\"edit\"\n preset={presetData}\n name={name}\n />\n )}\n </>\n );\n}\n\nexport default withNotices(PlayerPresets);\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n PanelRow,\n TextControl,\n SelectControl,\n BaseControl,\n Button,\n FocalPointPicker,\n RangeControl,\n} = wp.components;\nconst { MediaUpload, MediaUploadCheck } = wp.blockEditor;\nconst { useState } = wp.element;\n\nconst VIDEO_OVERLAY_ALLOWED_MEDIA_TYPES = [\"image\"];\n\n// import font for text\nimport \"./settings-styles.css\";\n\nexport default ({ attributes, setAttributes, instanceId }) => {\n const { mutedOverlay } = attributes;\n\n const videoOverlayDescription = `video-block__overlay-image-description-${instanceId}`;\n\n // handle poster select\n function onSelectOverlay(image) {\n setAttributes({\n mutedOverlay: {\n ...mutedOverlay,\n ...{ src: image.url },\n },\n });\n }\n\n function onRemoveOverlay() {\n setAttributes({\n mutedOverlay: {\n ...mutedOverlay,\n ...{ src: \"\" },\n },\n });\n }\n\n return (\n <>\n <MediaUploadCheck>\n <BaseControl className=\"editor-video-overlay-control\">\n <BaseControl.VisualLabel>\n <p>{__(\"Overlay Image\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n <MediaUpload\n title={__(\"Select overlay image\", \"presto-player\")}\n onSelect={onSelectOverlay}\n allowedTypes={VIDEO_OVERLAY_ALLOWED_MEDIA_TYPES}\n render={({ open }) => (\n <Button\n className=\"presto-setting__poster\"\n isPrimary\n onClick={open}\n >\n {!mutedOverlay?.src\n ? __(\"Select\", \"presto-player\")\n : __(\"Replace\", \"presto-player\")}\n </Button>\n )}\n />\n <p id={videoOverlayDescription} hidden>\n {mutedOverlay?.src\n ? sprintf(\n __(\"The current overlay image url is %s\", \"presto-player\"),\n mutedOverlay?.src\n )\n : __(\n \"There is no overlay image currently selected\",\n \"presto-player\"\n )}\n </p>\n {!!mutedOverlay?.src && (\n <Button\n onClick={onRemoveOverlay}\n className=\"presto-setting__remove-poster\"\n isTertiary\n >\n {__(\"Remove\", \"presto-player\")}\n </Button>\n )}\n </BaseControl>\n </MediaUploadCheck>\n {!!mutedOverlay?.src && (\n <FocalPointPicker\n url={\"\"}\n dimensions={{ width: 160, height: 90 }}\n value={mutedOverlay?.focalPoint}\n onChange={(focalPoint) =>\n setAttributes({\n mutedOverlay: {\n ...mutedOverlay,\n ...{ focalPoint },\n },\n })\n }\n />\n )}\n {!!mutedOverlay?.src && (\n <RangeControl\n label={__(\"Max Width (%)\", \"presto-player\")}\n value={mutedOverlay?.width}\n onChange={(width) =>\n setAttributes({\n mutedOverlay: {\n ...mutedOverlay,\n ...{ width },\n },\n })\n }\n min={1}\n max={100}\n />\n )}\n </>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n ToggleControl,\n SelectControl,\n BaseControl,\n Button,\n PanelRow,\n Icon,\n Flex,\n} = wp.components;\nconst { dispatch } = wp.data;\nimport { isHLS } from \"@/shared/util\";\n\nconst { MediaUpload, MediaUploadCheck } = wp.blockEditor;\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\nimport MutedPreviewOptions from \"./MutedPreviewOptions\";\n\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [\"image\"];\n\nconst { useInstanceId } = wp.compose;\n\nconst VideoSettings = ({ setAttributes, attributes }) => {\n const {\n mutedPreview,\n autoplay,\n playsInline,\n preload,\n poster,\n mutedOverlay,\n } = attributes;\n\n const instanceId = useInstanceId(VideoSettings);\n\n const videoPosterDescription = `video-block__poster-image-description-${instanceId}`;\n\n const getAutoplayHelp = (checked) => {\n return checked\n ? __(\n \"Note: Autoplaying videos may cause usability issues for some visitors.\",\n \"presto-player\"\n )\n : null;\n };\n\n const posterRecommended = () => {\n // if is hls and we've selected metadata or none, recommend a poster\n if (\n attributes?.src &&\n isHLS(attributes?.src) &&\n [\"metadata\", \"none\"].includes(preload)\n ) {\n return true;\n }\n\n return preload === \"none\" && !poster;\n };\n\n const toggleAttribute = (attribute) => {\n return (newValue) => {\n setAttributes({ [attribute]: newValue });\n };\n };\n\n // handle poster select\n function onSelectPoster(image) {\n setAttributes({ poster: image.url });\n }\n\n function onRemovePoster() {\n setAttributes({ poster: \"\" });\n }\n\n const mutedPreviewControls = () => {\n return (\n <>\n <ToggleControl\n label={\n <>\n {__(\"Muted Autoplay Preview\", \"presto-player\")}{\" \"}\n {!prestoPlayer?.isPremium && <ProBadge />}\n </>\n }\n onChange={(value) => {\n if (!prestoPlayer?.isPremium) {\n dispatch(\"presto-player/player\").setProModal(true);\n return;\n }\n setAttributes({\n mutedPreview: {\n ...mutedPreview,\n ...{ enabled: value },\n },\n });\n }}\n checked={mutedPreview?.enabled}\n className=\"presto-setting__mutedPreview\"\n help={__(\"Shows a muted preview of the video.\", \"presto-player\")}\n />\n {!!mutedPreview?.enabled && !attributes?.video_id && (\n <PanelRow>\n <ToggleControl\n label={__(\"Muted Preview Captions\", \"presto-player\")}\n onChange={(value) => {\n setAttributes({\n mutedPreview: {\n ...mutedPreview,\n ...{ captions: value },\n },\n });\n }}\n checked={mutedPreview?.captions}\n className=\"presto-setting__mutedPreviewCaptions\"\n help={__(\"Play captions during muted autoplay\", \"presto-player\")}\n />\n </PanelRow>\n )}\n\n {!!mutedPreview.enabled && (\n <PanelRow>\n <ToggleControl\n label={\n <>\n {__(\"Muted Preview Overlay\", \"presto-player\")}{\" \"}\n {!prestoPlayer?.isPremium && <ProBadge />}\n </>\n }\n onChange={(value) => {\n if (!prestoPlayer?.isPremium) {\n dispatch(\"presto-player/player\").setProModal(true);\n return;\n }\n setAttributes({\n mutedOverlay: {\n ...mutedOverlay,\n ...{ enabled: value },\n },\n });\n }}\n checked={mutedOverlay?.enabled}\n className=\"presto-setting__mutedOverlay\"\n help={__(\n \"Show an image over the top of the video either before or after the video.\",\n \"presto-player\"\n )}\n />\n </PanelRow>\n )}\n {mutedOverlay?.enabled && mutedPreview?.enabled && (\n <MutedPreviewOptions\n attributes={attributes}\n setAttributes={setAttributes}\n />\n )}\n </>\n );\n };\n\n return (\n <>\n {!autoplay && mutedPreviewControls()}\n\n {!mutedPreview?.enabled && (\n <ToggleControl\n label={__(\"Autoplay\", \"presto-player\")}\n className=\"presto-setting__autoplay\"\n onChange={toggleAttribute(\"autoplay\")}\n checked={autoplay}\n help={getAutoplayHelp}\n />\n )}\n <PanelRow>\n <ToggleControl\n label={__(\"Play inline\", \"presto-player\")}\n className=\"presto-setting__playsInline\"\n data-cy={\"playsInline\"}\n onChange={toggleAttribute(\"playsInline\")}\n checked={playsInline}\n help={__(\n \"On mobile browsers, play the video on the page instead of opening it up fullscreen.\",\n \"presto-player\"\n )}\n />\n </PanelRow>\n {!attributes?.video_id && (\n <PanelRow>\n <SelectControl\n label={\n <Flex>\n <div>{__(\"Performance Preference\", \"presto-player\")}</div>\n <a\n href=\"https://prestoplayer.com/docs/performance-preferences-explained\"\n target=\"_blank\"\n style={{ textDecoration: \"none\" }}\n >\n <Icon icon=\"editor-help\" />\n </a>\n </Flex>\n }\n className=\"presto-setting__preload\"\n value={preload}\n onChange={(value) => setAttributes({ preload: value })}\n help={\n posterRecommended() &&\n __(\n \"A poster image is recommended for this setting.\",\n \"presto-player\"\n )\n }\n options={[\n {\n value: \"auto\",\n label: __(\"Video Playback Speed\", \"presto-player\"),\n },\n {\n value: \"metadata\",\n label: __(\"Page Load Speed\", \"presto-player\"),\n },\n {\n value: \"none\",\n label: __(\"Page Load Speed (Extreme)\", \"presto-player\"),\n },\n ]}\n />\n </PanelRow>\n )}\n <MediaUploadCheck>\n <BaseControl className=\"editor-video-poster-control\">\n <BaseControl.VisualLabel>\n <p>{__(\"Poster image\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n <MediaUpload\n title={__(\"Select poster image\", \"presto-player\")}\n onSelect={onSelectPoster}\n allowedTypes={VIDEO_POSTER_ALLOWED_MEDIA_TYPES}\n render={({ open }) => (\n <Button\n className=\"presto-setting__poster\"\n isPrimary\n onClick={open}\n aria-describedby={videoPosterDescription}\n >\n {!poster\n ? __(\"Select\", \"presto-player\")\n : __(\"Replace\", \"presto-player\")}\n </Button>\n )}\n />\n <p id={videoPosterDescription} hidden>\n {poster\n ? sprintf(\n __(\"The current poster image url is %s\", \"presto-player\"),\n poster\n )\n : __(\n \"There is no poster image currently selected\",\n \"presto-player\"\n )}\n </p>\n {!!poster && (\n <Button\n onClick={onRemovePoster}\n className=\"presto-setting__remove-poster\"\n isTertiary\n >\n {__(\"Remove\", \"presto-player\")}\n </Button>\n )}\n </BaseControl>\n </MediaUploadCheck>\n </>\n );\n};\n\nexport default VideoSettings;\n","const { PanelBody } = wp.components;\nconst { __ } = wp.i18n;\nimport VideoBranding from \"@/admin/blocks/shared/branding\";\nimport VideoChapters from \"@/admin/blocks/shared/chapters\";\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\nimport VideoOverlays from \"@/admin/blocks/shared/overlays\";\nimport VideoPresets from \"@/admin/blocks/shared/presets\";\nimport VideoSettings from \"@/admin/blocks/shared/settings\";\n\nexport default function ({ attributes, setAttributes }) {\n return (\n <>\n <PanelBody\n title={\n <>\n {__(\"Chapters\", \"presto-player\")}{\" \"}\n {!prestoPlayer?.isPremium && <ProBadge />}\n </>\n }\n initialOpen={prestoPlayer?.isPremium}\n >\n <VideoChapters setAttributes={setAttributes} attributes={attributes} />\n </PanelBody>\n\n <PanelBody\n title={\n <>\n {__(\"Overlays\", \"presto-player\")}{\" \"}\n {!prestoPlayer?.isPremium && <ProBadge />}\n </>\n }\n initialOpen={prestoPlayer?.isPremium}\n >\n <VideoOverlays setAttributes={setAttributes} attributes={attributes} />\n </PanelBody>\n\n <PanelBody title={__(\"Video settings\", \"presto-player\")}>\n <VideoSettings setAttributes={setAttributes} attributes={attributes} />\n </PanelBody>\n\n <PanelBody title={__(\"Video Preset\", \"presto-player\")}>\n <VideoPresets setAttributes={setAttributes} attributes={attributes} />\n </PanelBody>\n\n <PanelBody\n title={__(\"Global Player Branding\", \"presto-player\")}\n initialOpen={false}\n >\n <VideoBranding setAttributes={setAttributes} attributes={attributes} />\n </PanelBody>\n </>\n );\n}\n","export const dashToPascalCase = (str) => str\n .toLowerCase()\n .split('-')\n .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))\n .join('');\nexport const camelToDashCase = (str) => str.replace(/([A-Z])/g, (m) => `-${m[0].toLowerCase()}`);\n//# sourceMappingURL=case.js.map","import { camelToDashCase } from './case';\nexport const attachProps = (node, newProps, oldProps = {}) => {\n // some test frameworks don't render DOM elements, so we test here to make sure we are dealing with DOM first\n if (node instanceof Element) {\n // add any classes in className to the class list\n const className = getClassName(node.classList, newProps, oldProps);\n if (className !== '') {\n node.className = className;\n }\n Object.keys(newProps).forEach((name) => {\n if (name === 'children' ||\n name === 'style' ||\n name === 'ref' ||\n name === 'class' ||\n name === 'className' ||\n name === 'forwardedRef') {\n return;\n }\n if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {\n const eventName = name.substring(2);\n const eventNameLc = eventName[0].toLowerCase() + eventName.substring(1);\n if (!isCoveredByReact(eventNameLc)) {\n syncEvent(node, eventNameLc, newProps[name]);\n }\n }\n else {\n node[name] = newProps[name];\n const propType = typeof newProps[name];\n if (propType === 'string') {\n node.setAttribute(camelToDashCase(name), newProps[name]);\n }\n }\n });\n }\n};\nexport const getClassName = (classList, newProps, oldProps) => {\n const newClassProp = newProps.className || newProps.class;\n const oldClassProp = oldProps.className || oldProps.class;\n // map the classes to Maps for performance\n const currentClasses = arrayToMap(classList);\n const incomingPropClasses = arrayToMap(newClassProp ? newClassProp.split(' ') : []);\n const oldPropClasses = arrayToMap(oldClassProp ? oldClassProp.split(' ') : []);\n const finalClassNames = [];\n // loop through each of the current classes on the component\n // to see if it should be a part of the classNames added\n currentClasses.forEach((currentClass) => {\n if (incomingPropClasses.has(currentClass)) {\n // add it as its already included in classnames coming in from newProps\n finalClassNames.push(currentClass);\n incomingPropClasses.delete(currentClass);\n }\n else if (!oldPropClasses.has(currentClass)) {\n // add it as it has NOT been removed by user\n finalClassNames.push(currentClass);\n }\n });\n incomingPropClasses.forEach((s) => finalClassNames.push(s));\n return finalClassNames.join(' ');\n};\n/**\n * Checks if an event is supported in the current execution environment.\n * @license Modernizr 3.0.0pre (Custom Build) | MIT\n */\nexport const isCoveredByReact = (eventNameSuffix) => {\n if (typeof document === 'undefined') {\n return true;\n }\n else {\n const eventName = 'on' + eventNameSuffix;\n let isSupported = eventName in document;\n if (!isSupported) {\n const element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n return isSupported;\n }\n};\nexport const syncEvent = (node, eventName, newEventHandler) => {\n const eventStore = node.__events || (node.__events = {});\n const oldEventHandler = eventStore[eventName];\n // Remove old listener so they don't double up.\n if (oldEventHandler) {\n node.removeEventListener(eventName, oldEventHandler);\n }\n // Bind new listener.\n node.addEventListener(eventName, (eventStore[eventName] = function handler(e) {\n if (newEventHandler) {\n newEventHandler.call(this, e);\n }\n }));\n};\nconst arrayToMap = (arr) => {\n const map = new Map();\n arr.forEach((s) => map.set(s, s));\n return map;\n};\n//# sourceMappingURL=attachProps.js.map","import React from 'react';\nexport const setRef = (ref, value) => {\n if (typeof ref === 'function') {\n ref(value);\n }\n else if (ref != null) {\n // Cast as a MutableRef so we can assign current\n ref.current = value;\n }\n};\nexport const mergeRefs = (...refs) => {\n return (value) => {\n refs.forEach(ref => {\n setRef(ref, value);\n });\n };\n};\nexport const createForwardRef = (ReactComponent, displayName) => {\n const forwardRef = (props, ref) => {\n return React.createElement(ReactComponent, Object.assign({}, props, { forwardedRef: ref }));\n };\n forwardRef.displayName = displayName;\n return React.forwardRef(forwardRef);\n};\nexport const defineCustomElement = (tagName, customElement) => {\n if (customElement !== undefined &&\n typeof customElements !== 'undefined' &&\n !customElements.get(tagName)) {\n customElements.define(tagName, customElement);\n }\n};\nexport * from './attachProps';\nexport * from './case';\n//# sourceMappingURL=index.js.map","var __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nimport React, { createElement } from 'react';\nimport { attachProps, createForwardRef, dashToPascalCase, isCoveredByReact, mergeRefs, } from './utils';\nexport const createReactComponent = (tagName, ReactComponentContext, manipulatePropsFunction, defineCustomElement) => {\n if (defineCustomElement !== undefined) {\n defineCustomElement();\n }\n const displayName = dashToPascalCase(tagName);\n const ReactComponent = class extends React.Component {\n constructor(props) {\n super(props);\n this.setComponentElRef = (element) => {\n this.componentEl = element;\n };\n }\n componentDidMount() {\n this.componentDidUpdate(this.props);\n }\n componentDidUpdate(prevProps) {\n attachProps(this.componentEl, this.props, prevProps);\n }\n render() {\n const _a = this.props, { children, forwardedRef, style, className, ref } = _a, cProps = __rest(_a, [\"children\", \"forwardedRef\", \"style\", \"className\", \"ref\"]);\n let propsToPass = Object.keys(cProps).reduce((acc, name) => {\n if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {\n const eventName = name.substring(2).toLowerCase();\n if (typeof document !== 'undefined' && isCoveredByReact(eventName)) {\n acc[name] = cProps[name];\n }\n }\n else {\n acc[name] = cProps[name];\n }\n return acc;\n }, {});\n if (manipulatePropsFunction) {\n propsToPass = manipulatePropsFunction(this.props, propsToPass);\n }\n const newProps = Object.assign(Object.assign({}, propsToPass), { ref: mergeRefs(forwardedRef, this.setComponentElRef), style });\n /**\n * We use createElement here instead of\n * React.createElement to work around a\n * bug in Vite (https://github.com/vitejs/vite/issues/6104).\n * React.createElement causes all elements to be rendered\n * as <tagname> instead of the actual Web Component.\n */\n return createElement(tagName, newProps, children);\n }\n static get displayName() {\n return displayName;\n }\n };\n // If context was passed to createReactComponent then conditionally add it to the Component Class\n if (ReactComponentContext) {\n ReactComponent.contextType = ReactComponentContext;\n }\n return createForwardRef(ReactComponent, displayName);\n};\n//# sourceMappingURL=createComponent.js.map","/* eslint-disable */\n/* tslint:disable */\n/* auto-generated react proxies */\nimport { createReactComponent } from './react-component-lib';\nexport const PrestoActionBar = /*@__PURE__*/ createReactComponent('presto-action-bar');\nexport const PrestoActionBarController = /*@__PURE__*/ createReactComponent('presto-action-bar-controller');\nexport const PrestoActionBarUi = /*@__PURE__*/ createReactComponent('presto-action-bar-ui');\nexport const PrestoAudio = /*@__PURE__*/ createReactComponent('presto-audio');\nexport const PrestoBunny = /*@__PURE__*/ createReactComponent('presto-bunny');\nexport const PrestoBusinessSkin = /*@__PURE__*/ createReactComponent('presto-business-skin');\nexport const PrestoCtaOverlay = /*@__PURE__*/ createReactComponent('presto-cta-overlay');\nexport const PrestoCtaOverlayController = /*@__PURE__*/ createReactComponent('presto-cta-overlay-controller');\nexport const PrestoCtaOverlayUi = /*@__PURE__*/ createReactComponent('presto-cta-overlay-ui');\nexport const PrestoDynamicOverlayUi = /*@__PURE__*/ createReactComponent('presto-dynamic-overlay-ui');\nexport const PrestoDynamicOverlays = /*@__PURE__*/ createReactComponent('presto-dynamic-overlays');\nexport const PrestoEmailOverlay = /*@__PURE__*/ createReactComponent('presto-email-overlay');\nexport const PrestoEmailOverlayController = /*@__PURE__*/ createReactComponent('presto-email-overlay-controller');\nexport const PrestoEmailOverlayUi = /*@__PURE__*/ createReactComponent('presto-email-overlay-ui');\nexport const PrestoModernSkin = /*@__PURE__*/ createReactComponent('presto-modern-skin');\nexport const PrestoMutedOverlay = /*@__PURE__*/ createReactComponent('presto-muted-overlay');\nexport const PrestoPlayer = /*@__PURE__*/ createReactComponent('presto-player');\nexport const PrestoPlayerButton = /*@__PURE__*/ createReactComponent('presto-player-button');\nexport const PrestoPlayerSkeleton = /*@__PURE__*/ createReactComponent('presto-player-skeleton');\nexport const PrestoPlayerSpinner = /*@__PURE__*/ createReactComponent('presto-player-spinner');\nexport const PrestoStackedSkin = /*@__PURE__*/ createReactComponent('presto-stacked-skin');\nexport const PrestoTimestamp = /*@__PURE__*/ createReactComponent('presto-timestamp');\nexport const PrestoVideo = /*@__PURE__*/ createReactComponent('presto-video');\nexport const PrestoVideoCurtainUi = /*@__PURE__*/ createReactComponent('presto-video-curtain-ui');\nexport const PrestoVimeo = /*@__PURE__*/ createReactComponent('presto-vimeo');\nexport const PrestoYoutube = /*@__PURE__*/ createReactComponent('presto-youtube');\nexport const PrestoYoutubeSubscribeButton = /*@__PURE__*/ createReactComponent('presto-youtube-subscribe-button');\n//# sourceMappingURL=index.js.map","(function() { module.exports = window[\"wp\"][\"blockEditor\"]; }());","/** @jsx jsx */\nconst { __ } = wp.i18n;\nconst { Button, Popover, Icon } = wp.components;\n\nconst { __experimentalLinkControl: LinkControl } = wp.blockEditor;\nconst { useState } = wp.element;\nconst { prependHTTP } = wp.url;\n\nimport { css, jsx } from \"@emotion/core\";\n\nexport default ({ setSettings, settings }) => {\n const [visible, setVisible] = useState(false);\n const { url } = settings;\n\n /**\n * Pending settings to be applied to the next link. When inserting a new\n * link, toggle values cannot be applied immediately, because there is not\n * yet a link for them to apply to. Thus, they are maintained in a state\n * value until the time that the link can be inserted or edited.\n *\n * @type {[Object|undefined,Function]}\n */\n const [nextLinkValue, setNextLinkValue] = useState();\n\n const linkValue = {\n url: settings?.url,\n type: settings?.type,\n id: settings?.id,\n opensInNewTab: settings?.opensInNewTab,\n ...nextLinkValue,\n };\n\n const onChangeLink = (nextValue) => {\n // Merge with values from state, both for the purpose of assigning the\n // next state value, and for use in constructing the new link format if\n // the link is ready to be applied.\n nextValue = {\n ...nextLinkValue,\n ...nextValue,\n };\n\n // LinkControl calls `onChange` immediately upon the toggling a setting.\n const didToggleSetting =\n linkValue.opensInNewTab !== nextValue.opensInNewTab &&\n linkValue.url === nextValue.url;\n\n // If change handler was called as a result of a settings change during\n // link insertion, it must be held in state until the link is ready to\n // be applied.\n const didToggleSettingForNewLink =\n didToggleSetting && nextValue.url === undefined;\n\n // If link will be assigned, the state value can be considered flushed.\n // Otherwise, persist the pending changes.\n setNextLinkValue(didToggleSettingForNewLink ? nextValue : undefined);\n\n if (didToggleSettingForNewLink) {\n return;\n }\n\n const newUrl = prependHTTP(nextValue.url);\n setSettings({\n url: newUrl,\n type: nextValue.type,\n id:\n nextValue.id !== undefined && nextValue.id !== null\n ? String(nextValue.id)\n : undefined,\n opensInNewTab: nextValue.opensInNewTab,\n });\n };\n\n const confirmTrash = () => {\n const r = confirm(\n __(\"Are you sure you wish to remove this link?\", \"presto-player\")\n );\n if (r) {\n setSettings({});\n }\n };\n\n return (\n <span>\n {url ? (\n <div\n css={css`\n display: flex;\n justify-content: space-between;\n `}\n >\n <div\n css={css`\n max-width: 85%;\n overflow: hidden;\n display: flex;\n align-items: center;\n `}\n >\n <a\n href=\"#\"\n css={css`\n padding: 10px;\n background: #f3f3f3;\n border-radius: 4px;\n width: 100%;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n `}\n onClick={() => setVisible(!visible)}\n >\n <Icon\n icon=\"edit\"\n css={css`\n cursor: pointer;\n opacity: 0.75;\n margin: 0 2px;\n font-size: 16px;\n width: 16px;\n height: 16px;\n text-decoration: none;\n `}\n />\n {url}\n </a>\n {visible && (\n <Popover\n position=\"bottom center\"\n onClose={() => setVisible(false)}\n >\n <LinkControl value={settings} onChange={onChangeLink} />\n </Popover>\n )}\n </div>\n <div\n css={css`\n display: flex;\n align-items: center;\n `}\n >\n <Icon\n onClick={confirmTrash}\n icon=\"trash\"\n className=\"presto-icon\"\n css={css`\n cursor: pointer;\n opacity: 0.75;\n margin: 0 2px;\n fontsize: 18px;\n width: 18px;\n height: 18px;\n\n &:hover {\n color: #cc1818;\n }\n `}\n />\n </div>\n </div>\n ) : (\n <span>\n <Button isPrimary isSmall onClick={() => setVisible(!visible)}>\n {__(\"Add Link\", \"presto-player\")}\n </Button>\n {visible && (\n <Popover position=\"bottom center\" onClose={() => setVisible(false)}>\n <LinkControl value={settings} onChange={onChangeLink} />\n </Popover>\n )}\n </span>\n )}\n </span>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n ColorPicker,\n Button,\n withNotices,\n BaseControl,\n RangeControl,\n} = wp.components;\nconst { MediaUpload, MediaUploadCheck } = wp.blockEditor;\nconst { useInstanceId } = wp.compose;\nconst { useState } = wp.element;\nconst { dispatch, useSelect } = wp.data;\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\n\nconst VIDEO_LOGO_ALLOWED_MEDIA_TYPES = [\"image\"];\n\nfunction PlayerSettings({ setAttributes, attributes, type }) {\n const instanceId = useInstanceId(PlayerSettings);\n const [pickerRender, setPickerRender] = useState(1);\n\n // get branding options\n const branding = useSelect((select) => {\n return select(\"presto-player/player\").branding();\n });\n // save options\n const saveOptions = async () => {\n await dispatch(\"presto-player/player\").saveOptions({\n branding,\n });\n wp.data.dispatch(\"core/notices\").createNotice(\n \"success\", // Can be one of: success, info, warning, error.\n \"Player branding saved.\", // Text string to display.\n {\n type: \"snackbar\",\n isDismissible: true, // Whether the user can dismiss the notice.\n // Any actions the user can perform.\n }\n );\n };\n\n function onSelectLogo(image) {\n dispatch(\"presto-player/player\").updateBranding(\"logo\", image.url);\n }\n\n function onRemoveLogo() {\n dispatch(\"presto-player/player\").updateBranding(\"logo\", \"\");\n }\n\n return (\n <div className=\"presto-player__panel--branding\">\n {type !== \"audio\" && (\n <p>\n {__(\n \"Here you can select the global player branding This will apply to all players on the site.\",\n \"presto-player\"\n )}\n </p>\n )}\n\n <MediaUploadCheck>\n <BaseControl className=\"editor-video-poster-control\">\n {type !== \"audio\" && (\n <>\n <BaseControl.VisualLabel>\n <p>\n {__(\"Logo Overlay\", \"presto-player\")}{\" \"}\n {!prestoPlayer?.isPremium && <ProBadge />}\n </p>\n </BaseControl.VisualLabel>\n <MediaUpload\n title={__(\"Select logo overlay image\", \"presto-player\")}\n onSelect={onSelectLogo}\n allowedTypes={VIDEO_LOGO_ALLOWED_MEDIA_TYPES}\n render={({ open }) => (\n <Button\n className=\"presto-setting__logo\"\n isSecondary\n onClick={() => {\n if (!prestoPlayer?.isPremium) {\n dispatch(\"presto-player/player\").setProModal(true);\n return;\n }\n open();\n }}\n aria-describedby={`video-block__logo-image-description-${instanceId}`}\n >\n {!branding?.logo\n ? __(\"Select\", \"presto-player\")\n : __(\"Replace\", \"presto-player\")}\n </Button>\n )}\n />\n </>\n )}\n\n <p id={`video-block__logo-image-description-${instanceId}`} hidden>\n {branding?.logo\n ? sprintf(\n /* translators: %s: poster image URL. */\n __(\"The current logo image url is %s\", \"presto-player\"),\n branding?.logo\n )\n : __(\n \"There is no logo image currently selected\",\n \"presto-player\"\n )}\n </p>\n {!!branding?.logo && (\n <Button onClick={onRemoveLogo} isTertiary>\n {__(\"Remove\", \"presto-player\")}\n </Button>\n )}\n </BaseControl>\n </MediaUploadCheck>\n\n {!!branding?.logo && (\n <RangeControl\n label={__(\"Logo Max Width\", \"presto-player\")}\n value={branding?.logo_width || 150}\n onChange={(width) =>\n dispatch(\"presto-player/player\").updateBranding(\"logo_width\", width)\n }\n min={1}\n max={400}\n />\n )}\n\n <ColorPicker\n color={branding?.color}\n onChangeComplete={(value) => {\n dispatch(\"presto-player/player\").updateBranding(\"color\", value.hex);\n }}\n key={pickerRender}\n disableAlpha\n />\n\n {branding?.color && (\n <BaseControl>\n <Button\n isSecondary\n onClick={() => {\n dispatch(\"presto-player/player\").updateBranding(\n \"color\",\n prestoPlayer?.defaults?.color || \"#00b3ff\"\n );\n setPickerRender(pickerRender + 1);\n }}\n >\n {__(\"Reset Color\", \"presto-player\")}\n </Button>\n </BaseControl>\n )}\n\n <Button isPrimary onClick={saveOptions}>\n {__(\"Save Branding\", \"presto-player\")}\n </Button>\n </div>\n );\n}\n\nexport default withNotices(PlayerSettings);\n","(function() { module.exports = window[\"wp\"][\"compose\"]; }());","/**\n * External dependencies\n */\nimport classnames from \"classnames\";\n\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { useState, useEffect } = wp.element;\n\nconst { partial, noop, find } = lodash;\n\n/**\n * WordPress components\n */\nconst { NavigableMenu, Animate } = wp.components;\n\nexport default ({\n className,\n children,\n items,\n title,\n orientation = \"horizontal\",\n activeClass = \"is-active\",\n onSelect = noop,\n}) => {\n const [selected, setSelected] = useState(null);\n const [origin, setOrigin] = useState(\"left\");\n\n const handleClick = (itemKey) => {\n setSelected(itemKey);\n onSelect && onSelect(itemKey);\n };\n\n const onNavigate = (childIndex, child) => {\n child.click();\n };\n\n const selectedTab = find(items, { name: selected });\n const selectedId = `${selectedTab?.name ?? \"none\"}`;\n\n useEffect(() => {\n setOrigin(selected ? \"right\" : \"left\");\n }, [selected]);\n\n return (\n <div className={className}>\n <Animate type=\"slide-in\" origin={!!selectedTab ? \"right\" : \"left\"}>\n {({ className }) =>\n !selectedTab ? (\n <div className={classnames(className, \"is-from-right\")}>\n {!!title && <h2>{title}</h2>}\n <NavigableMenu\n role=\"itemlist\"\n orientation={orientation}\n onNavigate={onNavigate}\n className={classnames(\"presto-player__menu-items\")}\n >\n {items.map((item) => (\n <div\n className={classnames(\n \"presto-player__menu-item\",\n item.className,\n {\n [activeClass]: item.name === selected,\n }\n )}\n itemId={`${item.name}`}\n aria-controls={`${item.name}-view`}\n selected={item.name === selected}\n key={item.name}\n onClick={partial(handleClick, item.name)}\n >\n {!!item.icon && (\n <div class=\"presto-player__menu-icon\">{item.icon}</div>\n )}\n {item.title}\n <svg\n className=\"submenu-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n role=\"img\"\n ariaHidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z\"></path>\n </svg>\n </div>\n ))}\n </NavigableMenu>\n </div>\n ) : (\n <div\n key={selectedId}\n aria-labelledby={selectedId}\n role=\"itempanel\"\n id={`${selectedId}-view`}\n className={classnames(className, \"presto-player__menu-content\")}\n >\n <div className=\"presto-player__menu-items\">\n <div\n className=\"presto-player__menu-item is-back-button\"\n onClick={() => handleClick(\"\")}\n >\n <svg\n class=\"back-icon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n width=\"24\"\n height=\"24\"\n role=\"img\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z\"></path>\n </svg>\n {__(\"Back\", \"presto-player\")}\n </div>\n </div>\n {children(selectedTab)}\n </div>\n )\n }\n </Animate>\n </div>\n );\n};\n","/** @jsx jsx */\n\n/**\n * WordPress dependencies\n */\nimport { __ } from \"@wordpress/i18n\";\nimport {\n ToggleControl,\n BaseControl,\n RangeControl,\n TextControl,\n Flex,\n Button,\n TextareaControl,\n Notice,\n} from \"@wordpress/components\";\nimport { useEffect } from \"@wordpress/element\";\nimport { useSelect } from \"@wordpress/data\";\n\nimport UrlSelect from \"../components/UrlSelect\";\nimport ColorPopup from \"../components/ColorPopup\";\n\nimport { css, jsx } from \"@emotion/core\";\n\nfunction CTA({ state, updateState, className }) {\n const { cta, email_collection } = state;\n\n const branding = useSelect((select) => {\n return select(\"presto-player/player\").branding();\n });\n\n // set defaults\n const defaults = {\n percentage: 100,\n show_rewatch: true,\n show_skip: true,\n headline: __(\"Want to learn more?\", \"presto-player\"),\n show_button: true,\n button_text: __(\"Click Here\", \"presto-player\"),\n button_link: {\n opensInNewTab: true,\n },\n };\n useEffect(() => {\n Object.keys(defaults).forEach((key) => {\n if (state?.cta?.[key] === undefined) {\n updateCTAState({\n [key]: defaults[key],\n });\n }\n });\n }, [state]);\n\n const updateCTAState = (updated) => {\n updateState({\n ...state,\n cta: {\n ...cta,\n ...updated,\n },\n });\n };\n\n const disableEmailCapture = () => {\n updateState({\n ...state,\n email_collection: {\n ...email_collection,\n ...{ enabled: false },\n },\n });\n };\n\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Call To Action\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl className=\"presto-player__control--large-play\">\n <ToggleControl\n label={__(\"Enable\", \"presto-player\")}\n help={__(\n \"Show an email collection form and message over your player.\",\n \"presto-player\"\n )}\n onChange={(enabled) => {\n updateCTAState({\n enabled,\n });\n }}\n checked={cta?.enabled}\n />\n </BaseControl>\n {!!cta?.enabled && (\n <>\n <BaseControl className=\"presto-player__control--percentage-watched\">\n <RangeControl\n label={__(\"Display At (Percentage)\", \"presto-player\")}\n labelPosition=\"top\"\n onChange={(percentage) => {\n updateCTAState({\n percentage,\n });\n }}\n marks={[\n {\n value: 0,\n label: __(\"Start\", \"presto-player\"),\n },\n {\n value: 50,\n label: __(\"50% Watched\", \"presto-player\"),\n },\n {\n value: 100,\n label: __(\"End\", \"presto-player\"),\n },\n ]}\n shiftStep={5}\n value={cta?.percentage}\n />\n </BaseControl>\n\n {email_collection?.enabled &&\n email_collection?.percentage === cta?.percentage && (\n <Notice\n css={css`\n margin: 0 0 30px 0 !important;\n `}\n status=\"warning\"\n isDismissible={false}\n >\n {__(\n \"You already have an email capture set display at the same time.\",\n \"presto-player\"\n )}\n <Button\n onClick={disableEmailCapture}\n isLink\n css={css`\n margin-top: 10px !important;\n `}\n >\n {__(\"Disable Email Capture\", \"presto-player\")}\n </Button>\n </Notice>\n )}\n\n {cta?.percentage === 100 ? (\n <BaseControl className=\"presto-player__control--show-rewatch\">\n <ToggleControl\n label={__(\"Show Rewatch Button\", \"presto-player\")}\n help={__(\n \"Show a rewatch button at the end of the player.\",\n \"presto-player\"\n )}\n onChange={(show_rewatch) => {\n updateCTAState({\n show_rewatch,\n });\n }}\n checked={cta?.show_rewatch}\n />\n </BaseControl>\n ) : (\n <BaseControl className=\"presto-player__control--show-skip\">\n <ToggleControl\n label={__(\"Allow Skipping\", \"presto-player\")}\n help={__(\n \"Let the user continue watching the player.\",\n \"presto-player\"\n )}\n onChange={(show_skip) => {\n updateCTAState({\n show_skip,\n });\n }}\n checked={cta?.show_skip}\n />\n </BaseControl>\n )}\n\n <BaseControl className=\"presto-player__control--button-link\">\n <BaseControl.VisualLabel>\n <p> {__(\"Link\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n <UrlSelect\n setSettings={(val) => {\n updateCTAState({\n button_link: val,\n });\n }}\n settings={cta?.button_link || {}}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--headline\">\n <TextareaControl\n label={__(\"Headline\", \"presto-player\")}\n help={__(\"The headline for your form.\", \"presto-player\")}\n value={cta?.headline}\n onChange={(headline) => {\n updateCTAState({\n headline,\n });\n }}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--bottom-text\">\n <TextareaControl\n label={__(\"Bottom Text\", \"presto-player\")}\n help={__(\n \"Text displayed below the form. HTML allowed.\",\n \"presto-player\"\n )}\n value={cta?.bottom_text}\n onChange={(bottom_text) => {\n updateCTAState({\n bottom_text,\n });\n }}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--show-button\">\n <ToggleControl\n label={__(\"Show Button\", \"presto-player\")}\n help={__(\"Show a call to action button.\", \"presto-player\")}\n onChange={(show_button) => {\n updateCTAState({\n show_button,\n });\n }}\n checked={cta?.show_button}\n />\n </BaseControl>\n\n {!!cta?.show_button && (\n <div>\n <BaseControl className=\"presto-player__control--button-text\">\n <TextControl\n label={__(\"Button Text\", \"presto-player\")}\n help={\n <p>\n {__(\n \"Button text for the Call To Action\",\n \"presto-player\"\n )}\n </p>\n }\n value={cta?.button_text}\n onChange={(button_text) => updateCTAState({ button_text })}\n />\n </BaseControl>\n\n <h3>{__(\"Style\", \"presto-player\")}</h3>\n\n <BaseControl>\n <RangeControl\n label={__(\"Round Corners\", \"presto-player\")}\n help={__(\"Border radius of form elements.\", \"presto-player\")}\n value={cta?.button_radius || 0}\n onChange={(button_radius) =>\n updateCTAState({ button_radius })\n }\n min={0}\n max={25}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--button-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Button Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={cta?.button_color || branding?.color}\n setColor={(value) =>\n updateCTAState({\n button_color: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n <BaseControl className=\"presto-player__control--button-text-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Button Text Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={cta?.button_text_color || \"#ffffff\"}\n setColor={(value) =>\n updateCTAState({\n button_text_color: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n </div>\n )}\n <BaseControl>\n <RangeControl\n label={__(\"Background Opacity\", \"presto-player\")}\n help={__(\n \"Opacity percentage of the cover background.\",\n \"presto-player\"\n )}\n value={cta?.background_opacity || 75}\n onChange={(background_opacity) =>\n updateCTAState({ background_opacity })\n }\n min={0}\n max={100}\n />\n </BaseControl>\n </>\n )}\n </div>\n );\n}\n\nCTA.defaultProps = {\n catName: \"Sandy\",\n eyeColor: \"deepblue\",\n age: \"120\",\n};\n\nexport default CTA;\n","// import apiFetch from \"@wordpress/api-fetch\";\nconst { apiFetch } = wp;\n\n// nonce and root\napiFetch.use(apiFetch.createNonceMiddleware(prestoPlayer.nonce));\napiFetch.use(\n apiFetch.createRootURLMiddleware(\n prestoPlayer.root + prestoPlayer.prestoVersionString\n )\n);\n\nexport default apiFetch;\n","/**\n * WordPress dependencies\n */\n// import { __, sprintf } from '@wordpress/i18n';\nconst { __, sprintf } = wp.i18n;\nconst {\n NavigableMenu,\n MenuItem,\n FormFileUpload,\n MenuGroup,\n ToolbarGroup,\n ToolbarButton,\n Dropdown,\n SVG,\n Rect,\n Path,\n Button,\n TextControl,\n SelectControl,\n} = wp.components;\nconst { MediaUpload, MediaUploadCheck } = wp.blockEditor;\nconst { useSelect } = wp.data;\nconst { useState } = wp.element;\n\nconst ALLOWED_TYPES = [\"text/vtt\"];\n\nconst DEFAULT_KIND = \"subtitles\";\n\n// const KIND_OPTIONS = [\n// { label: __(\"Subtitles\"), value: \"subtitles\" },\n// { label: __(\"Captions\"), value: \"captions\" },\n// { label: __(\"Descriptions\"), value: \"descriptions\" },\n// { label: __(\"Chapters\"), value: \"chapters\" },\n// { label: __(\"Metadata\"), value: \"metadata\" },\n// ];\n\nconst captionIcon = (\n <svg viewBox=\"0 0 29 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M17.5014 20.2854H28.6316V0.764648H0.110825V20.2854H11.241L14.3712 24.2854L17.5014 20.2854ZM14.3712 21.0401L16.5269 18.2854H26.6316V2.76465H2.11082V18.2854H12.2155L14.3712 21.0401Z\"\n />\n <path d=\"M10.4503 14.9446C9.56226 14.9446 8.76226 14.7606 8.05026 14.3926C7.33826 14.0166 6.77826 13.4966 6.37026 12.8326C5.97026 12.1606 5.77026 11.4006 5.77026 10.5526C5.77026 9.70464 5.97026 8.94864 6.37026 8.28464C6.77826 7.61264 7.33826 7.09264 8.05026 6.72464C8.76226 6.34864 9.56226 6.16064 10.4503 6.16064C11.2663 6.16064 11.9943 6.30464 12.6343 6.59264C13.2743 6.88064 13.8023 7.29664 14.2183 7.84064L12.4303 9.43664C11.9103 8.78064 11.2983 8.45264 10.5943 8.45264C10.0023 8.45264 9.52626 8.64464 9.16626 9.02864C8.80626 9.40464 8.62626 9.91264 8.62626 10.5526C8.62626 11.1926 8.80626 11.7046 9.16626 12.0886C9.52626 12.4646 10.0023 12.6526 10.5943 12.6526C11.2983 12.6526 11.9103 12.3246 12.4303 11.6686L14.2183 13.2646C13.8023 13.8086 13.2743 14.2246 12.6343 14.5126C11.9943 14.8006 11.2663 14.9446 10.4503 14.9446Z\" />\n <path d=\"M19.2042 14.9446C18.3162 14.9446 17.5162 14.7606 16.8042 14.3926C16.0922 14.0166 15.5322 13.4966 15.1242 12.8326C14.7242 12.1606 14.5242 11.4006 14.5242 10.5526C14.5242 9.70464 14.7242 8.94864 15.1242 8.28464C15.5322 7.61264 16.0922 7.09264 16.8042 6.72464C17.5162 6.34864 18.3162 6.16064 19.2042 6.16064C20.0202 6.16064 20.7482 6.30464 21.3882 6.59264C22.0282 6.88064 22.5562 7.29664 22.9722 7.84064L21.1842 9.43664C20.6642 8.78064 20.0522 8.45264 19.3482 8.45264C18.7562 8.45264 18.2802 8.64464 17.9202 9.02864C17.5602 9.40464 17.3802 9.91264 17.3802 10.5526C17.3802 11.1926 17.5602 11.7046 17.9202 12.0886C18.2802 12.4646 18.7562 12.6526 19.3482 12.6526C20.0522 12.6526 20.6642 12.3246 21.1842 11.6686L22.9722 13.2646C22.5562 13.8086 22.0282 14.2246 21.3882 14.5126C20.7482 14.8006 20.0202 14.9446 19.2042 14.9446Z\" />\n </svg>\n);\n\nfunction TrackList({ tracks, onEditPress }) {\n let content;\n if (tracks.length === 0) {\n content = (\n <p className=\"block-library-video-tracks-editor__tracks-informative-message\">\n {__(\n \"Captions are .vtt files that help make your content more accesible to a wider range of users.\",\n \"presto-player\"\n )}\n </p>\n );\n } else {\n content = tracks.map((track, index) => {\n return (\n <div\n key={index}\n className=\"block-library-video-tracks-editor__track-list-track\"\n >\n <span>{track.label} </span>\n <Button\n isTertiary\n onClick={() => onEditPress(index)}\n aria-label={sprintf(\n /* translators: %s: Label of the video text track e.g: \"French subtitles\" */\n __(\"Edit %s\", \"presto-player\"),\n track.label\n )}\n >\n {__(\"Edit\", \"presto-player\")}\n </Button>\n </div>\n );\n });\n }\n return (\n <MenuGroup\n label={__(\"Captions\", \"presto-player\")}\n className=\"block-library-video-tracks-editor__track-list\"\n >\n {content}\n </MenuGroup>\n );\n}\n\nfunction SingleTrackEditor({ track, onChange, onClose, onRemove }) {\n const { src = \"\", label = \"\", srcLang = \"\", kind = DEFAULT_KIND } = track;\n const fileName = src.startsWith(\"blob:\")\n ? \"\"\n : src.substring(src.lastIndexOf(\"/\") + 1);\n return (\n <NavigableMenu>\n <div className=\"block-library-video-tracks-editor__single-track-editor\">\n <span className=\"block-library-video-tracks-editor__single-track-editor-edit-track-label\">\n {__(\"Edit caption track\", \"presto-player\")}\n </span>\n <span>\n {__(\"File\", \"presto-player\")}: <b>{fileName}</b>\n </span>\n <div className=\"block-library-video-tracks-editor__single-track-editor-label-language\">\n <TextControl\n /* eslint-disable jsx-a11y/no-autofocus */\n autoFocus\n /* eslint-enable jsx-a11y/no-autofocus */\n onChange={(newLabel) =>\n onChange({\n ...track,\n label: newLabel,\n })\n }\n label={__(\"Label\", \"presto-player\")}\n value={label}\n help={__(\"Title of track\", \"presto-player\")}\n />\n <TextControl\n onChange={(newSrcLang) =>\n onChange({\n ...track,\n srcLang: newSrcLang,\n })\n }\n label={__(\"Source language\", \"presto-player\")}\n value={srcLang}\n help={__(\"Language tag (en, fr, etc.)\", \"presto-player\")}\n />\n </div>\n {/* <SelectControl\n className=\"block-library-video-tracks-editor__single-track-editor-kind-select\"\n options={KIND_OPTIONS}\n value={kind}\n label={__(\"Kind\")}\n onChange={(newKind) => {\n if (newKind === DEFAULT_KIND) {\n newKind = undefined;\n }\n onChange({\n ...track,\n kind: newKind,\n });\n }}\n /> */}\n <div className=\"block-library-video-tracks-editor__single-track-editor-buttons-container\">\n <Button\n isSecondary\n onClick={() => {\n const changes = {};\n let hasChanges = false;\n if (label === \"\") {\n changes.label = __(\"English\", \"presto-player\");\n hasChanges = true;\n }\n if (srcLang === \"\") {\n changes.srcLang = \"en\";\n hasChanges = true;\n }\n if (hasChanges) {\n onChange({\n ...track,\n ...changes,\n });\n }\n onClose();\n }}\n >\n {__(\"Close\", \"presto-player\")}\n </Button>\n <Button isDestructive isLink onClick={onRemove}>\n {__(\"Remove track\", \"presto-player\")}\n </Button>\n </div>\n </div>\n </NavigableMenu>\n );\n}\n\nexport default function TracksEditor({ tracks = [], onChange }) {\n const mediaUpload = useSelect((select) => {\n return select(\"core/block-editor\").getSettings().mediaUpload;\n }, []);\n const [trackBeingEdited, setTrackBeingEdited] = useState(null);\n\n if (!mediaUpload) {\n return null;\n }\n return (\n <Dropdown\n contentClassName=\"block-library-video-tracks-editor\"\n renderToggle={({ isOpen, onToggle }) => (\n <ToolbarGroup>\n <ToolbarButton\n label={__(\"Captions\", \"presto-player\")}\n showTooltip\n aria-expanded={isOpen}\n aria-haspopup=\"true\"\n onClick={onToggle}\n icon={captionIcon}\n />\n </ToolbarGroup>\n )}\n renderContent={({}) => {\n if (trackBeingEdited !== null) {\n return (\n <SingleTrackEditor\n track={tracks[trackBeingEdited]}\n onChange={(newTrack) => {\n const newTracks = [...tracks];\n newTracks[trackBeingEdited] = newTrack;\n onChange(newTracks);\n }}\n onClose={() => setTrackBeingEdited(null)}\n onRemove={() => {\n onChange(\n tracks.filter((_track, index) => index !== trackBeingEdited)\n );\n setTrackBeingEdited(null);\n }}\n />\n );\n }\n return (\n <>\n <NavigableMenu>\n <TrackList tracks={tracks} onEditPress={setTrackBeingEdited} />\n <MenuGroup\n className=\"block-library-video-tracks-editor__add-tracks-container\"\n label={__(\"Add caption languages\", \"presto-player\")}\n >\n <MediaUpload\n onSelect={({ url }) => {\n const trackIndex = tracks.length;\n onChange([...tracks, { src: url }]);\n setTrackBeingEdited(trackIndex);\n }}\n allowedTypes={ALLOWED_TYPES}\n render={({ open }) => (\n <MenuItem icon={\"media\"} onClick={open}>\n {__(\"Open Media Library\", \"presto-player\")}\n </MenuItem>\n )}\n />\n <MediaUploadCheck>\n <FormFileUpload\n onChange={(event) => {\n const files = event.target.files;\n const trackIndex = tracks.length;\n mediaUpload({\n allowedTypes: ALLOWED_TYPES,\n filesList: files,\n onFileChange: ([{ url }]) => {\n const newTracks = [...tracks];\n if (!newTracks[trackIndex]) {\n newTracks[trackIndex] = {};\n }\n newTracks[trackIndex] = {\n ...tracks[trackIndex],\n src: url,\n };\n onChange(newTracks);\n setTrackBeingEdited(trackIndex);\n },\n });\n }}\n accept=\".vtt,text/vtt\"\n render={({ openFileDialog }) => {\n return (\n <MenuItem\n icon={\"upload\"}\n onClick={() => {\n openFileDialog();\n }}\n >\n {__(\"Upload\", \"presto-player\")}\n </MenuItem>\n );\n }}\n />\n </MediaUploadCheck>\n </MenuGroup>\n </NavigableMenu>\n </>\n );\n }}\n />\n );\n}\n","const { __ } = wp.i18n;\nconst { Disabled } = wp.components;\nimport { PrestoCtaOverlayUi, PrestoEmailOverlayUi } from \"@presto-player/react\";\nimport { timeToSeconds } from \"../util\";\nimport Player from \"./Player\";\nconst { useState, useEffect } = wp.element;\n\nexport default ({\n state,\n branding,\n menu,\n src,\n poster,\n currentTime,\n preload,\n overlays,\n isDisabled = true,\n}) => {\n const [renderKey, setRenderKey] = useState(1);\n const { email_collection, cta } = state;\n\n useEffect(() => {\n setRenderKey(renderKey + 1);\n }, [\n state.skin,\n state[\"play-large\"],\n state.rewind,\n state.play,\n state[\"fast-forward\"],\n state.progress,\n state[\"current-time\"],\n state.mute,\n state.volume,\n state.speed,\n state.pip,\n state.fullscreen,\n state.captions,\n state.hide_logo,\n ]);\n\n const previews = {\n email: !!email_collection?.enabled && (\n <PrestoEmailOverlayUi\n className=\"email-overlay\"\n slot=\"player-end\"\n headline={email_collection?.headline}\n style={{\n \"--presto-player-email-border-radiuss\": `${email_collection?.button_radius}px`,\n \"--plyr-color-main\": state?.background_color || branding?.color,\n ...(email_collection.button_color\n ? {\n \"--presto-player-button-color\": `${email_collection.button_color}`,\n }\n : {}),\n ...(email_collection.button_text_color\n ? {\n \"--presto-player-button-text\": `${email_collection.button_text_color}`,\n }\n : {}),\n }}\n defaultHeadline={__(\"Enter your email to play.\", \"presto-player\")}\n bottomText={email_collection?.bottom_text}\n allowSkip={email_collection?.allow_skip}\n skipText={__(\"Skip\", \"presto-player\")}\n buttonText={email_collection?.button_text}\n placeholder={__(\"Email address\", \"presto-player\")}\n i18n={window.prestoPlayer.i18n}\n />\n ),\n cta: !!cta?.enabled && (\n <PrestoCtaOverlayUi\n className=\"cta-overlay\"\n style={{\n \"--presto-player-button-border-radius\": `${cta.button_radius}px`,\n ...(cta?.background_opacity\n ? {\n \"--presto-player-cta-background-opacity\": `${\n cta?.background_opacity / 100\n }`,\n }\n : {}),\n ...(cta.button_color\n ? {\n \"--presto-player-button-color\": `${cta.button_color}`,\n }\n : {}),\n ...(cta.button_text_color\n ? {\n \"--presto-player-button-text\": `${cta.button_text_color}`,\n }\n : {}),\n }}\n slot=\"player-end\"\n headline={cta?.headline}\n bottom-text={cta?.bottom_text}\n button-link={cta?.button_link}\n allow-skip={cta?.percentage !== 100 && cta?.show_skip}\n borderRadius={cta?.border_radius}\n allow-rewatch={cta?.percentage === 100 && cta?.show_rewatch}\n skip-text={__(\"Skip\", \"presto-player\")}\n show-button={cta?.show_button}\n button-text={cta?.button_text}\n i18n={window?.prestoPlayer?.i18n}\n />\n ),\n };\n\n return (\n <Disabled isDisabled={isDisabled} className=\"disable-player\">\n <div className=\"presto-player__wrapper\">\n <Player\n src={src || \"\"}\n className={`\n ${menu === \"cta\" && !!cta?.enabled && \"cta-active\"} \n ${\n menu === \"email\" && !!email_collection?.enabled && \"email-active\"\n }`}\n preset={state}\n branding={{\n ...branding,\n logo: state?.hide_logo ? \"\" : branding[\"logo\"],\n }}\n i18n={prestoPlayerAdmin?.i18n}\n preload={preload}\n attributes={{\n chapters: [],\n poster: poster,\n }}\n currentTime={currentTime ? timeToSeconds(currentTime) : \"\"}\n overlays={overlays}\n key={renderKey}\n adminPreview={previews?.[menu] || \"\"}\n />\n </div>\n </Disabled>\n );\n};\n","const { __ } = wp.i18n;\nconst { TextareaControl } = wp.components;\nconst { useState } = wp.element;\n\nexport default ({ text, update, onFocus }) => {\n const [more, setMore] = useState(false);\n\n return (\n <div style={{ display: \"block\", width: \"100%\" }}>\n <TextareaControl\n label=\"Text\"\n help={\n <span>\n {__(\"This field accepts\", \"presto-player\")}{\" \"}\n <a\n href=\"#\"\n onClick={(e) => {\n setMore(!more);\n e.preventDefault();\n }}\n >\n {__(\"Dynamic Data\", \"presto-player\")}\n </a>\n {!!more && (\n <div style={{ marginTop: \"20px\" }}>\n {__(\n \"This field will also accept dynamic values that we will replace with dynamic content: {user.user_login}, {user.user_nicename}, {user.user_email}, {user.user_url},{user.user_registered}, {user.display_name}, {site.url}, {site.name}, {ip_address}\",\n \"presto-player\"\n )}\n </div>\n )}\n </span>\n }\n className={\"presto-player__overlay--text\"}\n placeholder={__(\"Enter some text.\", \"presto-player\")}\n value={text || \"\"}\n onChange={(text) => update({ text })}\n autoComplete=\"off\"\n onFocus={onFocus}\n />\n </div>\n );\n};\n","const {\n Button,\n Placeholder,\n TextControl,\n Flex,\n FlexItem,\n FlexBlock,\n} = wp.components;\nconst { useState } = wp.element;\nconst { __ } = wp.i18n;\n\nexport default function ({\n attributes,\n setAttributes,\n icon,\n onSelectURL,\n label,\n instructions,\n placeholder,\n}) {\n const { src } = attributes;\n const [state, setState] = useState({ src });\n return (\n <Placeholder\n icon={icon}\n label={label || __(\"Presto Embedded Video\", \"presto-player\")}\n instructions={instructions || __(\"Enter video URL\", \"presto-player\")}\n >\n <form\n onSubmit={(e) => {\n e.preventDefault();\n onSelectURL(state.url);\n }}\n >\n <Flex style={{ width: \"100%\", maxWidth: \"400px\" }}>\n <FlexBlock>\n <TextControl\n type=\"url\"\n className={\"presto-link-placeholder-input\"}\n placeholder={placeholder || __(\"Youtube URL\", \"presto-player\")}\n value={state.url}\n onChange={(url) => setState({ url })}\n />\n </FlexBlock>\n <FlexItem>\n <Button isPrimary style={{ marginBottom: \"8px\" }} type=\"submit\">\n {__(\"Add Video\", \"presto-player\")}\n </Button>\n </FlexItem>\n </Flex>\n </form>\n </Placeholder>\n );\n}\n","export default () => {\n return (\n <div>\n <presto-player-skeleton\n style={{ width: \"30%\", marginBottom: \"10px\" }}\n ></presto-player-skeleton>\n <presto-player-skeleton\n style={{ height: \"2rem\", marginBottom: \"20px\" }}\n ></presto-player-skeleton>\n </div>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { SelectControl, TextControl, Notice } = wp.components;\nconst { useEffect, useState } = wp.element;\nimport LoadSelect from \"../../components/LoadSelect\";\n\nexport default ({ options, updateEmailState }) => {\n const [fetching, setFetching] = useState(false);\n const [lists, setLists] = useState([\n { value: null, label: __(\"Choose an audience\", \"presto-player\") },\n ]);\n const [error, setError] = useState(\"\");\n\n const fetchLists = async () => {\n setFetching(true);\n try {\n const fetched = await wp.apiFetch({\n path: \"presto-player/v1/mailchimp/lists\",\n });\n\n let listOptions = lists;\n (fetched || []).forEach((list) => {\n listOptions = [\n ...listOptions,\n ...[\n {\n value: list.id,\n label: list.name,\n },\n ],\n ];\n });\n setLists(listOptions);\n } catch (e) {\n if (e?.message) {\n setError(e.message);\n }\n } finally {\n setFetching(false);\n }\n };\n\n useEffect(() => {\n fetchLists();\n }, []);\n\n if (fetching) {\n return (\n <div>\n <LoadSelect />\n <LoadSelect />\n </div>\n );\n }\n\n if (error) {\n return (\n <Notice className=\"presto-notice\" status=\"error\" isDismissible={false}>\n {error}\n </Notice>\n );\n }\n\n return (\n <div>\n <SelectControl\n label={__(\"Choose an audience\", \"presto-player\")}\n value={options?.provider_list}\n options={lists}\n onChange={(provider_list) => updateEmailState({ provider_list })}\n />\n <TextControl\n label={__(\"Tag\", \"presto-player\")}\n help={\n <p>\n {__(\n \"Give this contact an optional tag when they are added to the list.\",\n \"presto-player\"\n )}\n </p>\n }\n value={options?.provider_tag}\n onChange={(provider_tag) => updateEmailState({ provider_tag })}\n />\n </div>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { SelectControl, Notice } = wp.components;\nconst { useEffect, useState } = wp.element;\nimport LoadSelect from \"../../components/LoadSelect\";\n\nexport default ({ options, updateEmailState }) => {\n const [fetching, setFetching] = useState(false);\n const [groups, setGroups] = useState([\n { value: null, label: __(\"Choose a group\", \"presto-player\") },\n ]);\n const [error, setError] = useState(\"\");\n\n const fetchGroups = async () => {\n setFetching(true);\n try {\n const fetched = await wp.apiFetch({\n path: \"presto-player/v1/mailerlite/groups\",\n });\n\n let listOptions = groups;\n (fetched || []).forEach((list) => {\n listOptions = [\n ...listOptions,\n ...[\n {\n value: list.id,\n label: list.name,\n },\n ],\n ];\n });\n setGroups(listOptions);\n } catch (e) {\n if (e?.message) {\n setError(e.message);\n }\n } finally {\n setFetching(false);\n }\n };\n\n useEffect(() => {\n fetchGroups();\n }, []);\n\n if (fetching) {\n return <LoadSelect />;\n }\n\n if (error) {\n return (\n <Notice className=\"presto-notice\" status=\"error\" isDismissible={false}>\n {error}\n </Notice>\n );\n }\n\n return (\n <div>\n <SelectControl\n label={__(\"Choose a group\", \"presto-player\")}\n value={options?.provider_list}\n options={groups}\n onChange={(provider_list) => updateEmailState({ provider_list })}\n />\n </div>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { SelectControl, Notice } = wp.components;\nconst { useEffect, useState } = wp.element;\nimport LoadSelect from \"../../components/LoadSelect\";\n\nexport default ({ options, updateEmailState }) => {\n const [fetchingLists, setFetchingLists] = useState(false);\n const [fetchingTags, setFetchingTags] = useState(false);\n\n const [lists, setLists] = useState([\n { value: null, label: __(\"Choose a list\", \"presto-player\") },\n ]);\n const [tags, setTags] = useState([\n { value: null, label: __(\"Choose a tag\", \"presto-player\") },\n ]);\n const [error, setError] = useState(\"\");\n\n const fetchLists = async () => {\n setFetchingLists(true);\n try {\n const fetched = await wp.apiFetch({\n path: \"presto-player/v1/activecampaign/lists\",\n });\n\n let listOptions = lists;\n (fetched || []).forEach((list) => {\n listOptions = [\n ...listOptions,\n ...[\n {\n value: list.id,\n label: list.name || __(\"Default list\", \"presto-player\"),\n },\n ],\n ];\n });\n setLists(listOptions);\n } catch (e) {\n if (e?.message) {\n setError(e.message);\n }\n } finally {\n setFetchingLists(false);\n }\n };\n\n const fetchTags = async () => {\n setFetchingTags(true);\n try {\n const fetched = await wp.apiFetch({\n path: \"presto-player/v1/activecampaign/tags\",\n });\n\n let tagOptions = tags;\n (fetched || []).forEach((tag) => {\n tagOptions = [\n ...tagOptions,\n ...[\n {\n value: tag.id,\n label: tag.tag,\n },\n ],\n ];\n });\n setTags(tagOptions);\n } catch (e) {\n if (e?.message) {\n setError(e.message);\n }\n } finally {\n setFetchingTags(false);\n }\n };\n\n useEffect(() => {\n fetchLists();\n fetchTags();\n }, []);\n\n if (error) {\n return (\n <Notice className=\"presto-notice\" status=\"error\" isDismissible={false}>\n {error}\n </Notice>\n );\n }\n\n return (\n <div>\n {fetchingLists ? (\n <LoadSelect />\n ) : (\n lists.length > 1 && (\n <SelectControl\n label={__(\"Choose a list\", \"presto-player\")}\n value={options?.provider_list}\n options={lists}\n onChange={(provider_list) => updateEmailState({ provider_list })}\n />\n )\n )}\n\n {fetchingTags ? (\n <LoadSelect />\n ) : (\n tags.length > 1 && (\n <SelectControl\n label={__(\"Choose a tag\", \"presto-player\")}\n value={options?.provider_tag}\n options={tags}\n onChange={(provider_tag) => updateEmailState({ provider_tag })}\n />\n )\n )}\n </div>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { SelectControl, Notice } = wp.components;\nconst { useEffect, useState } = wp.element;\nimport LoadSelect from \"../../components/LoadSelect\";\n\nexport default ({ options, updateEmailState }) => {\n const [fetchingLists, setFetchingLists] = useState(false);\n const [fetchingTags, setFetchingTags] = useState(false);\n\n const [lists, setLists] = useState([\n { value: null, label: __(\"Choose a list\", \"presto-player\") },\n ]);\n const [tags, setTags] = useState([\n { value: null, label: __(\"Choose a tag\", \"presto-player\") },\n ]);\n const [error, setError] = useState(\"\");\n\n const fetchLists = async () => {\n setFetchingLists(true);\n try {\n const fetched = await wp.apiFetch({\n path: \"presto-player/v1/fluentcrm/lists\",\n });\n\n let listOptions = lists;\n (fetched || []).forEach((list) => {\n listOptions = [\n ...listOptions,\n ...[\n {\n value: list.id,\n label: list.title || list.slug,\n },\n ],\n ];\n });\n setLists(listOptions);\n } catch (e) {\n if (e?.message) {\n setError(e.message);\n }\n } finally {\n setFetchingLists(false);\n }\n };\n\n const fetchTags = async () => {\n setFetchingTags(true);\n try {\n const fetched = await wp.apiFetch({\n path: \"presto-player/v1/fluentcrm/tags\",\n });\n\n let tagOptions = tags;\n (fetched || []).forEach((tag) => {\n tagOptions = [\n ...tagOptions,\n ...[\n {\n value: tag.id,\n label: tag.title || tag.slug,\n },\n ],\n ];\n });\n setTags(tagOptions);\n } catch (e) {\n if (e?.message) {\n setError(e.message);\n }\n } finally {\n setFetchingTags(false);\n }\n };\n\n useEffect(() => {\n fetchLists();\n fetchTags();\n }, []);\n\n if (error) {\n return (\n <Notice className=\"presto-notice\" status=\"error\" isDismissible={false}>\n {error}\n </Notice>\n );\n }\n\n return (\n <div>\n {fetchingLists ? (\n <LoadSelect />\n ) : (\n lists.length > 1 && (\n <SelectControl\n label={__(\"Choose a list\", \"presto-player\")}\n value={options?.provider_list}\n options={lists}\n onChange={(provider_list) => updateEmailState({ provider_list })}\n />\n )\n )}\n\n {fetchingTags ? (\n <LoadSelect />\n ) : (\n tags.length > 1 && (\n <SelectControl\n label={__(\"Choose a tag\", \"presto-player\")}\n value={options?.provider_tag}\n options={tags}\n onChange={(provider_tag) => updateEmailState({ provider_tag })}\n />\n )\n )}\n </div>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { SelectControl, Button, Flex, Icon } = wp.components;\nconst { useEffect, useState } = wp.element;\nimport LoadSelect from \"../../components/LoadSelect\";\n\nimport MailchimpConfig from \"./MailchimpConfig\";\nimport MailerLiteConfig from \"./MailerLiteConfig\";\nimport ActiveCampaignConfig from \"./ActiveCampaignConfig\";\nimport FluentCRMConfig from \"./FluentCRMConfig\";\n\nexport default ({ options, updateEmailState }) => {\n const [fetching, setFetching] = useState(false);\n const [settings, setSettings] = useState([\n { value: \"none\", label: __(\"None\", \"presto-player\") },\n ]);\n const [error, setError] = useState(\"\");\n\n const optionsMap = {\n presto_player_activecampaign: {\n label: \"ActiveCampaign\",\n value: \"activecampaign\",\n },\n presto_player_mailchimp: {\n label: \"MailChimp\",\n value: \"mailchimp\",\n },\n presto_player_mailerlite: {\n label: \"MailerLite\",\n value: \"mailerlite\",\n },\n presto_player_fluentcrm: {\n label: \"FluentCRM\",\n value: \"fluentcrm\",\n },\n };\n\n const fetchSettings = async () => {\n setFetching(true);\n setError(\"\");\n try {\n const fetched = await wp.apiFetch({\n path: \"wp/v2/settings\",\n });\n let settingsToSet = settings;\n Object.keys(fetched).forEach((key) => {\n if (optionsMap?.[key] && fetched[key]?.connected) {\n settingsToSet = [...settingsToSet, ...[optionsMap[key]]];\n }\n });\n setSettings(settingsToSet);\n } catch (e) {\n if (e?.message) {\n setError(e.message);\n }\n } finally {\n setFetching(false);\n }\n };\n\n const addProvider = () => {\n return (\n <Flex>\n <Button\n target=\"_blank\"\n href=\"/wp-admin/edit.php?post_type=pp_video_block&page=presto-player-settings#/integrations\"\n isSecondary\n isSmall\n >\n {__(\"Connect a provider\", \"presto-player\")}\n </Button>\n <Button\n isSmall\n onClick={(e) => {\n e.preventDefault();\n fetchSettings();\n }}\n >\n <Icon icon=\"update\" />\n </Button>\n </Flex>\n );\n };\n\n useEffect(() => {\n fetchSettings();\n }, []);\n\n const emailProviderOptions = () => {\n const found = settings.find(\n (setting) => setting.value === options?.provider\n );\n if (!Object.keys(found || {}).length) {\n return;\n }\n\n switch (options?.provider) {\n case \"mailchimp\":\n return (\n <MailchimpConfig\n options={options}\n updateEmailState={updateEmailState}\n />\n );\n case \"mailerlite\":\n return (\n <MailerLiteConfig\n options={options}\n updateEmailState={updateEmailState}\n />\n );\n case \"activecampaign\":\n return (\n <ActiveCampaignConfig\n options={options}\n updateEmailState={updateEmailState}\n />\n );\n case \"fluentcrm\":\n return (\n <FluentCRMConfig\n options={options}\n updateEmailState={updateEmailState}\n />\n );\n }\n };\n\n if (fetching) {\n return <LoadSelect />;\n }\n\n return (\n <div>\n {error}\n {settings.length > 1 ? (\n <div>\n <SelectControl\n label={__(\"Choose an email provider\", \"presto-player\")}\n value={options?.provider}\n options={settings}\n onChange={(provider) => updateEmailState({ provider })}\n />\n {emailProviderOptions()}\n </div>\n ) : (\n addProvider()\n )}\n </div>\n );\n};\n","/** @jsx jsx */\n/**\n * WordPress dependencies\n */\nimport { __ } from \"@wordpress/i18n\";\nimport {\n ToggleControl,\n BaseControl,\n RangeControl,\n TextControl,\n Button,\n Flex,\n TextareaControl,\n Notice,\n} from \"@wordpress/components\";\nimport { useSelect } from \"@wordpress/data\";\n\nimport ChooseProvider from \"./parts/ChooseProvider\";\nimport ColorPopup from \"../components/ColorPopup\";\n\nimport { css, jsx } from \"@emotion/core\";\n\nexport default function ({ state, updateState, className }) {\n const { email_collection, cta } = state;\n\n const branding = useSelect((select) => {\n return select(\"presto-player/player\").branding();\n });\n\n const updateEmailState = (updated) => {\n updateState({\n ...state,\n email_collection: {\n ...email_collection,\n ...updated,\n },\n });\n };\n\n const disableCTA = () => {\n updateState({\n ...state,\n cta: {\n ...cta,\n ...{ enabled: false },\n },\n });\n };\n\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Email Capture\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl className=\"presto-player__control--large-play\">\n <ToggleControl\n label={__(\"Enable\", \"presto-player\")}\n help={__(\n \"Show an email collection form and message over your player.\",\n \"presto-player\"\n )}\n onChange={(enabled) => {\n updateEmailState({\n enabled,\n });\n }}\n checked={email_collection?.enabled}\n />\n </BaseControl>\n {!!email_collection?.enabled && (\n <>\n <BaseControl className=\"presto-player__control--percentage-watched\">\n <RangeControl\n label={__(\"Display At (Percentage)\", \"presto-player\")}\n labelPosition=\"top\"\n onChange={(percentage) => {\n updateEmailState({\n percentage,\n });\n }}\n marks={[\n {\n value: 0,\n label: __(\"Start\", \"presto-player\"),\n },\n {\n value: 50,\n label: __(\"50% Watched\", \"presto-player\"),\n },\n {\n value: 100,\n label: __(\"End\", \"presto-player\"),\n },\n ]}\n shiftStep={5}\n value={email_collection?.percentage || 0}\n />\n </BaseControl>\n\n {cta?.enabled && email_collection?.percentage === cta?.percentage && (\n <Notice\n css={css`\n margin: 0 0 30px 0 !important;\n `}\n status=\"warning\"\n isDismissible={false}\n >\n {__(\n \"You already have a Call To Action set display at the same time.\",\n \"presto-player\"\n )}\n <Button\n onClick={disableCTA}\n isLink\n css={css`\n margin-top: 10px !important;\n `}\n >\n {__(\"Disable Call To Action\", \"presto-player\")}\n </Button>\n </Notice>\n )}\n\n <BaseControl className=\"presto-player__control--large-play\">\n <ToggleControl\n label={__(\"Allow Skipping\", \"presto-player\")}\n help={__(\"Let the viewer skip\", \"presto-player\")}\n onChange={(allow_skip) => {\n updateEmailState({\n allow_skip,\n });\n }}\n checked={email_collection?.allow_skip}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--large-play\">\n <TextareaControl\n label={__(\"Headline\", \"presto-player\")}\n help={__(\"The headline for your form.\", \"presto-player\")}\n value={email_collection?.headline}\n onChange={(headline) => {\n updateEmailState({\n headline,\n });\n }}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--large-play\">\n <TextareaControl\n label={__(\"Bottom Text\", \"presto-player\")}\n help={__(\n \"Text displayed below the form. HTML allowed.\",\n \"presto-player\"\n )}\n value={email_collection?.bottom_text}\n onChange={(bottom_text) => {\n updateEmailState({\n bottom_text,\n });\n }}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--large-play\">\n <TextControl\n label={__(\"Play Button Text\", \"presto-player\")}\n help={<p>{__(\"Submit button text\", \"presto-player\")}</p>}\n value={email_collection?.button_text}\n onChange={(button_text) => updateEmailState({ button_text })}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--button-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Button Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={cta?.button_color || branding?.color}\n setColor={(value) =>\n updateEmailState({\n button_color: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n <BaseControl className=\"presto-player__control--button-text-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Button Text Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={cta?.button_text_color || \"#ffffff\"}\n setColor={(value) =>\n updateEmailState({\n button_text_color: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n\n <h3>{__(\"Integrate\", \"presto-player\")}</h3>\n <BaseControl>\n <ChooseProvider\n updateEmailState={updateEmailState}\n options={email_collection}\n />\n </BaseControl>\n\n <h3>{__(\"Style\", \"presto-player\")}</h3>\n\n <BaseControl>\n <RangeControl\n label={__(\"Round Corners\", \"presto-player\")}\n help={__(\"Border radius of form elements.\", \"presto-player\")}\n value={email_collection?.border_radius || 0}\n onChange={(border_radius) => updateEmailState({ border_radius })}\n min={0}\n max={25}\n />\n </BaseControl>\n </>\n )}\n </div>\n );\n}\n","const { __ } = wp.i18n;\nconst { Flex, FlexItem, FlexBlock, TextControl, Button } = wp.components;\nconst { useState } = wp.element;\n\nimport { sanitizeTime } from \"../../../util\";\n\nconst Chapter = ({\n update,\n add,\n remove,\n className,\n time,\n title,\n disabled,\n showNotice,\n}) => {\n const [draftTime, setDraftTime] = useState(time);\n\n return (\n <Flex align=\"center\" className={className}>\n <FlexItem>\n <TextControl\n className={\"presto-player__caption--time\"}\n style={{ width: \"60px\" }}\n placeholder={\"0:00\"}\n value={draftTime}\n onChange={(time) => setDraftTime(time)}\n onBlur={() => {\n let time = sanitizeTime(draftTime);\n update({ time });\n setDraftTime(time);\n }}\n autoComplete=\"off\"\n placeholder=\"0:00\"\n />\n </FlexItem>\n\n <FlexBlock>\n <TextControl\n className={\"presto-player__caption--title\"}\n placeholder={__(\"Title\", \"presto-player\")}\n value={title || \"\"}\n onChange={(title) => update({ title })}\n autoComplete=\"off\"\n />\n </FlexBlock>\n\n <FlexItem>\n {remove && (\n <Button\n icon=\"minus\"\n className=\"ph-chapter__remove\"\n style={{ marginBottom: \"8px\" }}\n label={__(\"Remove Chapter\", \"presto-player\")}\n onClick={remove}\n />\n )}\n {add && (\n <Button\n icon=\"plus-alt\"\n className=\"ph-chapter__add\"\n label={__(\"Add Chapter\", \"presto-player\")}\n style={{ marginBottom: \"8px\" }}\n onClick={() => {\n add();\n setDraftTime(\"\");\n }}\n />\n )}\n </FlexItem>\n </Flex>\n );\n};\n\nexport default Chapter;\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { useState } = wp.element;\nconst { dispatch } = wp.data;\nimport Chapter from \"./components/Chapter\";\n\nconst VideoSettings = ({ setAttributes, attributes }) => {\n const showNotice = () => {\n dispatch(\"presto-player/player\").setProModal(true);\n };\n if (!prestoPlayer?.isPremium) {\n return (\n <Chapter\n disabled={true}\n className=\"ph-chapter is-new\"\n time={\"\"}\n title={\"\"}\n update={() => {}}\n showNotice={showNotice}\n add={showNotice}\n />\n );\n }\n\n const { chapters } = attributes;\n\n let [draft, setDraft] = useState({\n title: \"\",\n time: \"\",\n });\n\n const updateChapter = (chapter, data = {}) => {\n let itemIndex = chapters.indexOf(chapter);\n let updated = chapters.map((item, index) => {\n // This isn't the item we care about - keep it as-is\n if (index !== itemIndex) {\n return item;\n }\n // Otherwise, this is the one we want - return an updated value\n return {\n ...item,\n ...data,\n };\n });\n setAttributes({ chapters: updated });\n };\n\n const removeChapter = (chapter) => {\n let index = chapters.indexOf(chapter);\n setAttributes({ chapters: chapters.filter((_, i) => i !== index) });\n };\n\n const addChapter = () => {\n if (!draft.time || !draft.title) {\n return;\n }\n setAttributes({\n chapters: [\n ...(chapters || []),\n ...[{ time: draft.time, title: draft.title }],\n ],\n });\n setDraft({\n title: \"\",\n time: \"\",\n });\n };\n\n const sorted = () => {\n return (chapters || []).sort(function (a, b) {\n if (\n parseInt(a.time.split(\":\")[0]) - parseInt(b.time.split(\":\")[0]) ===\n 0\n ) {\n return parseInt(a.time.split(\":\")[1]) - parseInt(b.time.split(\":\")[1]);\n } else {\n return parseInt(a.time.split(\":\")[0]) - parseInt(b.time.split(\":\")[0]);\n }\n });\n };\n\n return (\n <>\n {sorted().map((chapter, i) => {\n return (\n <Chapter\n key={`${i}-${chapter.time}`}\n className=\"ph-chapter\"\n time={chapter.time}\n title={chapter.title}\n chapter={chapter}\n update={(data) => {\n updateChapter(chapter, data);\n }}\n remove={() => {\n removeChapter(chapter);\n }}\n />\n );\n })}\n\n <Chapter\n className=\"ph-chapter is-new\"\n time={draft.time}\n title={draft.title}\n update={(data) => {\n setDraft({ ...draft, ...data });\n }}\n add={addChapter}\n />\n </>\n );\n};\n\nexport default VideoSettings;\n","/** @jsx jsx */\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { TextControl, ExternalLink, Button, Flex } = wp.components;\nconst { useState, useEffect } = wp.element;\nconst { useSelect, dispatch } = wp.data;\n\nimport { css, jsx } from \"@emotion/core\";\n\nexport default ({ onClose, value, setValue }) => {\n const [saving, setSaving] = useState(false);\n\n const userCanReadSettings = wp.data.useSelect((select) =>\n select(\"core\").canUser(\"read\", \"settings\")\n );\n\n const youtube = useSelect((select) => {\n return select(\"presto-player/player\").youtube();\n });\n\n useEffect(() => {\n setValue(youtube.channel_id);\n }, [youtube?.channel_id]);\n\n const handleSubmit = async (e) => {\n e.preventDefault();\n setSaving(true);\n dispatch(\"presto-player/player\").updateYoutube({ channel_id: value });\n\n const data = {\n ...youtube,\n ...{ channel_id: value },\n };\n\n try {\n let response = await wp.apiFetch({\n path: \"wp/v2/settings\",\n method: \"POST\",\n data: {\n presto_player_youtube: data,\n },\n });\n if (response?.presto_player_youtube) {\n dispatch(\"presto-player/player\").setYoutube(\n response?.presto_player_youtube\n );\n onClose();\n }\n } catch (e) {\n } finally {\n setSaving(false);\n }\n };\n\n // use must be able to read settings\n if (!userCanReadSettings) {\n return \"\";\n }\n\n return (\n <form onSubmit={handleSubmit}>\n <TextControl\n css={css`\n margin-bottom: 0 !important;\n `}\n label={__(\"Youtube Channel ID\", \"presto-player\")}\n help={\n <p>\n <ExternalLink href=\"https://support.google.com/youtube/answer/3250431?hl=en\">\n {__(\"Find my channel id\", \"presto-player\")}\n </ExternalLink>\n </p>\n }\n value={value}\n onChange={(channel_id) => setValue(channel_id)}\n // required\n />\n\n <Button\n disabled={saving}\n isBusy={saving}\n css={css`\n margin-bottom: 1em;\n `}\n isPrimary\n type=\"submot\"\n >\n {__(\"Save\", \"presto-player\")}\n </Button>\n <Button\n onClick={onClose}\n css={css`\n margin-bottom: 1em;\n `}\n isTertiary\n >\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n </form>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n ToggleControl,\n Flex,\n Button,\n BaseControl,\n RangeControl,\n TextControl,\n SelectControl,\n TextareaControl,\n} = wp.components;\n\nconst { useEffect, useState } = wp.element;\nconst { useSelect } = wp.data;\n\nimport ColorPopup from \"../components/ColorPopup\";\nimport UrlSelect from \"../components/UrlSelect\";\nimport YoutubeChannelId from \"./parts/YoutubeChannelId\";\n\nexport default function ({ state, updateState, className, value, setValue }) {\n const { action_bar } = state;\n const [editYoutube, setEditYoutube] = useState(false);\n\n const branding = useSelect((select) => {\n return select(\"presto-player/player\").branding();\n });\n const youtube = useSelect((select) => {\n return select(\"presto-player/player\").youtube();\n });\n\n const updateActionBar = (updated) => {\n updateState({\n ...state,\n action_bar: {\n ...action_bar,\n ...updated,\n },\n });\n };\n\n useEffect(() => {\n if (!action_bar?.text) {\n updateActionBar({\n text: \"Like this?\",\n });\n }\n if (!action_bar?.button_type) {\n updateActionBar({\n button_type: \"custom\",\n });\n }\n\n if (!action_bar?.button_text) {\n updateActionBar({\n button_text: \"Click Here\",\n });\n }\n }, [state]);\n\n const renderYoutubeChannelForm = () => {\n if (action_bar?.button_type !== \"youtube\") {\n return;\n }\n\n return editYoutube ? (\n <YoutubeChannelId\n onClose={() => setEditYoutube(false)}\n value={value}\n setValue={setValue}\n />\n ) : (\n <div>\n <Button\n isSecondary\n onClick={(e) => {\n e.preventDefault();\n setEditYoutube(true);\n }}\n >\n {youtube?.channel_id\n ? __(\"Update Youtube Channel Id\", \"presto-player\")\n : __(\"Add Youtube Channel Id\", \"presto-player\")}\n </Button>\n <br />\n <br />\n <br />\n </div>\n );\n };\n\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Action Bar\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl className=\"presto-player__control--large-play\">\n <ToggleControl\n label={__(\"Enable\", \"presto-player\")}\n help={__(\n \"Show an action bar below your player while it's playing.\",\n \"presto-player\"\n )}\n onChange={(enabled) => {\n updateActionBar({\n enabled,\n });\n }}\n checked={action_bar?.enabled}\n />\n </BaseControl>\n {!!action_bar?.enabled && (\n <>\n <BaseControl className=\"presto-player__control--percentage-watched\">\n <RangeControl\n label={__(\"Display At (Percentage)\", \"presto-player\")}\n labelPosition=\"top\"\n onChange={(percentage_start) => {\n updateActionBar({\n percentage_start,\n });\n }}\n marks={[\n {\n value: 0,\n label: __(\"Start\", \"presto-player\"),\n },\n {\n value: 50,\n label: __(\"50% Watched\", \"presto-player\"),\n },\n {\n value: 100,\n label: __(\"End\", \"presto-player\"),\n },\n ]}\n shiftStep={5}\n value={action_bar?.percentage_start || 0}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--large-play\">\n <TextareaControl\n label={__(\"Text\", \"presto-player\")}\n help={__(\"Action bar text.\", \"presto-player\")}\n value={action_bar?.text}\n onChange={(text) =>\n updateActionBar({\n text,\n })\n }\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--large-play\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Action Bar Background\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={action_bar?.background_color || \"#1d1d1d\"}\n setColor={(value) =>\n updateActionBar({\n background_color: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n\n <BaseControl>\n <h3>{__(\"Button\", \"presto-player\")}</h3>\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--button-type\">\n <SelectControl\n label={__(\"Button Type\", \"presto-player\")}\n value={action_bar?.button_type}\n options={[\n {\n value: \"custom\",\n label: __(\"Custom\", \"presto-player\"),\n },\n {\n value: \"youtube\",\n label: __(\"YouTube Subscribe\", \"presto-player\"),\n },\n {\n value: \"none\",\n label: __(\"None\", \"presto-player\"),\n },\n ]}\n onChange={(button_type) =>\n updateActionBar({\n button_type,\n })\n }\n />\n </BaseControl>\n\n {action_bar?.button_type === \"youtube\" && youtube?.channel_id && (\n <ToggleControl\n label={__(\"Show Count\", \"presto-player\")}\n help={__(\"Show your follower count.\", \"presto-player\")}\n onChange={(button_count) => {\n updateActionBar({\n button_count,\n });\n }}\n checked={action_bar?.button_count}\n />\n )}\n\n {renderYoutubeChannelForm()}\n\n {action_bar?.button_type === \"custom\" && (\n <div>\n <BaseControl className=\"presto-player__control--button-text\">\n <TextControl\n label={__(\"Button Text\", \"presto-player\")}\n help={<p>{__(\"Submit button text\", \"presto-player\")}</p>}\n value={action_bar?.button_text}\n onChange={(button_text) => updateActionBar({ button_text })}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--button-text\">\n <BaseControl.VisualLabel>\n <p> {__(\"Button Link\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n <UrlSelect\n setSettings={(val) => {\n updateActionBar({\n button_link: val,\n });\n }}\n settings={action_bar?.button_link || {}}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--button-radius\">\n <RangeControl\n label={__(\"Round Corners\", \"presto-player\")}\n help={__(\"Border radius of the button\", \"presto-player\")}\n value={action_bar?.button_radius || 0}\n onChange={(button_radius) =>\n updateActionBar({ button_radius })\n }\n min={0}\n max={25}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--button-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Button Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={action_bar?.button_color || branding?.color}\n setColor={(value) =>\n updateActionBar({\n button_color: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n <BaseControl className=\"presto-player__control--button-text-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Button Text Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n color={action_bar?.button_text_color || \"#ffffff\"}\n setColor={(value) =>\n updateActionBar({\n button_text_color: value && value.hex,\n })\n }\n />\n </Flex>\n </BaseControl>\n </div>\n )}\n </>\n )}\n </div>\n );\n}\n","(function() { module.exports = window[\"wp\"][\"editor\"]; }());","/** @jsx jsx */\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { Button, Flex, FlexItem, FlexBlock, Modal } = wp.components;\nconst { useState, useEffect } = wp.element;\nconst { useSelect } = wp.data;\nimport { nanoid } from \"nanoid\";\n\nimport { css, jsx } from \"@emotion/core\";\nimport Preview from \"../Preview\";\nimport Overlay from \"./components/Overlay\";\n\nconst EditOverlay = ({\n closeModal,\n attributes,\n setAttributes,\n updateOverlayAttribute,\n}) => {\n const [loading, setLoading] = useState(false);\n const [currentTime, setCurrentTime] = useState(\"\");\n const { overlays, preset, src, poster, previewSrc } = attributes;\n\n const branding = useSelect((select) => {\n return select(\"presto-player/player\").branding();\n });\n\n const state = useSelect((select) =>\n select(\"presto-player/player\").getPreset(preset)\n );\n\n // maybe add a default so it's not empty.\n useEffect(() => {\n if (!overlays.length) {\n addOverlay();\n }\n }, []);\n\n // update an existing overlay.\n const updateOverlay = (overlay, data = {}) => {\n let itemIndex = overlays.indexOf(overlay);\n let updated = overlays.map((item, index) => {\n // This isn't the item we care about - keep it as-is\n if (index !== itemIndex) {\n return item;\n }\n // Otherwise, this is the one we want - return an updated value\n return {\n ...item,\n ...data,\n };\n });\n\n setAttributes({ overlays: updated });\n };\n\n // remove overlay.\n const removeOverlay = (overlay) => {\n let index = overlays.indexOf(overlay);\n setAttributes({ overlays: overlays.filter((_, i) => i !== index) });\n };\n\n // add overlay with custom default.\n const addOverlay = () => {\n let defaultOverlay = {\n startTime: \"0:00\",\n endTime: \"0:05\",\n text: __(\"Here's a link to click!\", \"presto-player\"),\n link: {},\n position: \"top-right\",\n color: \"#fff\",\n backgroundColor: \"#000\",\n opacity: 75,\n };\n\n if (overlays[overlays.length - 1]) {\n const lastOverlay = overlays[overlays.length - 1];\n defaultOverlay = { ...lastOverlay }; // make a shallow clone.\n }\n\n defaultOverlay.id = nanoid(10);\n\n setAttributes({\n overlays: [...(overlays || []), ...[defaultOverlay]],\n });\n };\n\n // sort the overlays by time.\n const sorted = () => {\n return (overlays || []).sort(function (a, b) {\n if (\n parseInt(a.startTime.split(\":\")[0]) -\n parseInt(b.startTime.split(\":\")[0]) ===\n 0\n ) {\n return (\n parseInt(a.startTime.split(\":\")[1]) -\n parseInt(b.startTime.split(\":\")[1])\n );\n } else {\n return (\n parseInt(a.startTime.split(\":\")[0]) -\n parseInt(b.startTime.split(\":\")[0])\n );\n }\n });\n };\n\n // make sure we always update.\n const updateCurrentTimeState = (time) => {\n setCurrentTime(\"\");\n process.nextTick(() => {\n setCurrentTime(time);\n });\n };\n\n // validate and save\n const save = () => {\n setLoading(true);\n updateOverlayAttribute(overlays);\n setLoading(false);\n closeModal();\n };\n\n return (\n <Modal\n title={__(\"Manage Video Overlays\", \"presto-player\")}\n onRequestClose={closeModal}\n className=\"presto-player__modal-presets\"\n overlayClassName=\"presto-player__modal-presets-overlay\"\n shouldCloseOnClickOutside={false}\n >\n <div className=\"presto-player__preset-options\" data-cy=\"preset-modal\">\n <Flex align=\"stretch\" className=\"presto-player__style-preview-area\">\n <FlexItem className=\"presto-player__style-sidebar\">\n <div css={{ padding: \"3px\" }}>\n {sorted().map((overlay, i) => {\n return (\n <Overlay\n key={`${i}-${overlay.startTime}`}\n overlayIndex={i}\n className=\"presto-player__overlay\"\n startTime={overlay.startTime}\n endTime={overlay.endTime}\n text={overlay.text}\n link={overlay.link}\n position={overlay.position}\n color={overlay.color}\n backgroundColor={overlay.backgroundColor}\n opacity={overlay.opacity}\n overlay={overlay}\n update={(data) => {\n updateOverlay(overlay, data);\n }}\n remove={() => {\n removeOverlay(overlay);\n }}\n updateCurrentTime={(data) => {\n updateCurrentTimeState(data);\n }}\n />\n );\n })}\n <Button isPrimary onClick={addOverlay}>\n {__(\"Add An Overlay\", \"presto-player\")}\n </Button>\n </div>\n </FlexItem>\n <FlexBlock className=\"presto-player__style-preview-panel\">\n <Preview\n preload=\"auto\"\n currentTime={currentTime}\n src={previewSrc || src}\n isDisabled={false}\n state={{\n ...state,\n lazy_load_youtube: false, // don't lazy load.\n invert_time: false,\n }}\n branding={branding}\n poster={poster}\n overlays={overlays}\n />\n </FlexBlock>\n </Flex>\n\n <br />\n\n <div\n css={css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n `}\n >\n <div\n css={css`\n opacity: 0.5;\n font-size: 12px;\n `}\n ></div>\n <div>\n <Button isTertiary onClick={closeModal} style={{ margin: \"0 6px\" }}>\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n <Button\n isPrimary\n isBusy={loading}\n disabled={loading}\n onClick={save}\n data-cy=\"submit-preset\"\n >\n {__(\"Save Overlays\", \"presto-player\")}\n </Button>\n </div>\n </div>\n </div>\n </Modal>\n );\n};\nexport default EditOverlay;\n","/** @jsx jsx */\nconst { __ } = wp.i18n;\nconst {\n Flex,\n FlexItem,\n TextControl,\n Button,\n BaseControl,\n RadioControl,\n RangeControl,\n withFocusReturn,\n} = wp.components;\nconst { useRef, useEffect } = wp.element;\nimport { css, jsx } from \"@emotion/core\";\n\nimport { sanitizeTime, timeToSeconds, secondsToTime } from \"../../../util\";\nimport UrlSelect from \"../../components/UrlSelect\";\nimport DynamicText from \"./DynamicText\";\nimport ColorPopup from \"../../components/ColorPopup\";\n\nconst { useState } = wp.element;\n\nconst Overlay = ({\n overlayIndex,\n update,\n remove,\n className,\n startTime,\n endTime,\n text,\n link,\n position,\n color,\n backgroundColor,\n opacity,\n updateCurrentTime,\n}) => {\n const [draftStartTime, setDraftStartTime] = useState(startTime);\n const [draftEndTime, setDraftEndTime] = useState(endTime);\n const [draftPosition, setDraftPosition] = useState(position);\n const startControl = useRef();\n\n useEffect(() => {\n if (timeToSeconds(startTime) >= timeToSeconds(endTime)) {\n let endTime = sanitizeTime(startTime);\n let seconds = timeToSeconds(endTime) + 1;\n endTime = sanitizeTime(secondsToTime(seconds));\n update({ endTime });\n setDraftEndTime(endTime);\n }\n }, [startTime, endTime]);\n\n const updateStartTime = () => {\n const startTime = sanitizeTime(draftStartTime);\n update({ startTime });\n setDraftStartTime(startTime);\n updateCurrentTime(startTime);\n };\n\n const updateEndTime = () => {\n const endTime = sanitizeTime(draftEndTime);\n update({ endTime });\n setDraftEndTime(endTime);\n };\n\n return (\n <div>\n <Flex align=\"center\" className={className}>\n <FlexItem>\n <TextControl\n ref={startControl}\n id={`start-time-${overlayIndex}`}\n label={__(\"Start Time\", \"presto-player\")}\n className=\"presto-player__overlay--start-time\"\n value={draftStartTime}\n onChange={(startTime) => setDraftStartTime(startTime)}\n onBlur={updateStartTime}\n onFocus={updateStartTime}\n autoComplete=\"off\"\n placeholder=\"0:00\"\n />\n </FlexItem>\n\n <FlexItem>\n <TextControl\n label={__(\"End Time\", \"presto-player\")}\n className=\"presto-player__overlay--end-time\"\n value={draftEndTime}\n onChange={setDraftEndTime}\n onBlur={updateEndTime}\n autoComplete=\"off\"\n placeholder=\"0:00\"\n />\n </FlexItem>\n </Flex>\n\n <DynamicText\n text={text}\n update={update}\n onFocus={() => {\n updateCurrentTime(sanitizeTime(draftStartTime));\n }}\n />\n\n <BaseControl style={{ width: \"100%\" }}>\n <BaseControl.VisualLabel>\n <p> {__(\"Link\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n <UrlSelect\n onFocus={() => {\n updateCurrentTime(sanitizeTime(draftStartTime));\n }}\n setSettings={(link) => update({ link })}\n settings={link || {}}\n />\n </BaseControl>\n\n <BaseControl className={className}>\n <RadioControl\n label={__(\"Position\", \"presto-player\")}\n options={[\n { label: __(\"Top Right\", \"presto-player\"), value: \"top-right\" },\n { label: __(\"Top Left\", \"presto-player\"), value: \"top-left\" },\n ]}\n selected={draftPosition || \"right\"}\n onFocus={() => {\n updateCurrentTime(sanitizeTime(draftStartTime));\n }}\n onChange={(position) => {\n update({ position });\n setDraftPosition(position);\n updateCurrentTime(sanitizeTime(draftStartTime));\n }}\n />\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--overlay-text-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Text Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n onFocus={() => {\n updateCurrentTime(sanitizeTime(draftStartTime));\n }}\n color={color}\n setColor={(value) => {\n update({\n color: value && value.hex,\n });\n }}\n />\n </Flex>\n </BaseControl>\n\n <BaseControl className=\"presto-player__control--overlay-background-color\">\n <Flex>\n <BaseControl.VisualLabel>\n {__(\"Background Color\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <ColorPopup\n onFocus={() => {\n updateCurrentTime(sanitizeTime(draftStartTime));\n }}\n color={backgroundColor}\n setColor={(value) => {\n update({\n backgroundColor: value && value.hex,\n });\n }}\n />\n </Flex>\n </BaseControl>\n\n <BaseControl>\n <RangeControl\n label={__(\"Opacity\", \"presto-player\")}\n help={__(\"Opacity percentage of the overlay.\", \"presto-player\")}\n value={opacity}\n onChange={(opacity) => update({ opacity })}\n min={0}\n max={100}\n />\n </BaseControl>\n\n {remove && (\n <BaseControl className={className}>\n <Flex justify=\"flex-end\">\n <Button isDestructive isSmall onClick={remove}>\n {__(\"Remove Overlay\", \"presto-player\")}\n </Button>\n </Flex>\n </BaseControl>\n )}\n\n <hr css={{ marginBottom: \"20px\" }} />\n </div>\n );\n};\n\nexport default Overlay;\n","var map = {\n\t\"./audio/index.js\": 71,\n\t\"./bunny/index.js\": 70,\n\t\"./hosted/index.js\": 74,\n\t\"./reusable-display/index.js\": 75,\n\t\"./reusable-edit/index.js\": 68,\n\t\"./vimeo/index.js\": 76,\n\t\"./youtube/index.js\": 77\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 62;","// In your application's entrypoint\nconst { __ } = wp.i18n;\nconst { InnerBlocks, useBlockProps } = wp.blockEditor;\nconst { useSelect, dispatch } = wp.data;\nconst { Button, Placeholder } = wp.components;\nconst { getPlugins, unregisterPlugin } = wp.plugins;\nconst { useEffect } = wp.element;\n\n/**\n * Block Name\n */\nexport const name = \"presto-player/reusable-edit\";\n\n/**\n * Block Options\n */\nexport const options = {\n title: \"Reusable Block Container\",\n\n category: \"presto\",\n\n supports: {\n inserter: false,\n reusable: false,\n html: false,\n },\n\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"></line>\n <path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"></path>\n </svg>\n ),\n\n edit: (props) => {\n const blockProps = useBlockProps();\n const { clientId, isSelected } = props;\n const innerBlocks = useSelect(\n (select) => select(\"core/block-editor\").getBlock(clientId).innerBlocks\n );\n\n useEffect(() => {\n if (isSelected) {\n wp.data\n .dispatch(\"core/edit-post\")\n .openGeneralSidebar(\"edit-post/block\");\n }\n }, [isSelected]);\n\n // make sure we don't check template validity because is's buggy as fuck\n dispatch(\"core/block-editor\").setTemplateValidity(true);\n\n // don't add reusable videos to a reusable video\n useEffect(() => {\n unregisterPlugin(\"presto-player\");\n }, []);\n\n const insertBlockType = (type) => {\n const block = wp.blocks.createBlock(`presto-player/${type}`);\n return dispatch(\"core/block-editor\").insertBlock(block, 0, clientId);\n };\n\n const appenderToUse = () => {\n if (innerBlocks.length === 0) {\n return <InnerBlocks.ButtonBlockAppender />;\n } else {\n return false;\n }\n };\n\n if (!innerBlocks?.length) {\n return (\n <div>\n <div {...blockProps}>\n <Placeholder\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <polygon points=\"23 7 16 12 23 17 23 7\"></polygon>\n <rect x=\"1\" y=\"5\" width=\"15\" height=\"14\" rx=\"2\" ry=\"2\"></rect>\n </svg>\n }\n instructions={__(\n \"Choose a video type to get started.\",\n \"presto-player\"\n )}\n label={__(\"Choose a Video Type\", \"presto-player\")}\n >\n <Button\n isPrimary\n onClick={() => {\n insertBlockType(\"self-hosted\");\n }}\n >\n {__(\"Video\", \"presto-player\")}\n </Button>\n <Button\n isPrimary\n onClick={() => {\n insertBlockType(\"youtube\");\n }}\n >\n {__(\"Youtube\", \"presto-player\")}\n </Button>\n <Button\n isPrimary\n onClick={() => {\n insertBlockType(\"vimeo\");\n }}\n >\n {__(\"Vimeo\", \"presto-player\")}\n </Button>\n {prestoPlayer?.isPremium ? (\n <Button\n isPrimary\n onClick={() => {\n insertBlockType(\"bunny\");\n }}\n >\n {__(\"Bunny.net\", \"presto-player\")}\n </Button>\n ) : (\n \"\"\n )}\n <Button\n isPrimary\n onClick={() => {\n insertBlockType(\"audio\");\n }}\n >\n {__(\"Audio\", \"presto-player\")}\n </Button>\n </Placeholder>\n <InnerBlocks templateLock={false} renderAppender={() => false} />\n </div>\n </div>\n );\n }\n\n return (\n <div>\n <div {...blockProps}>\n <InnerBlocks\n templateLock={false}\n renderAppender={() => appenderToUse()}\n />\n </div>\n </div>\n );\n },\n\n save: () => {\n const blockProps = useBlockProps.save();\n\n return (\n <div {...blockProps}>\n <InnerBlocks.Content />\n </div>\n );\n },\n};\n","var map = {\n\t\"./reusable-videos/index.js\": 73\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 69;","// sign a private url\nexport const signURL = async (src) => {\n if (!src) {\n return;\n }\n\n const preview = await wp.apiFetch({\n path: \"presto-player/v1/bunny/sign\",\n method: \"POST\",\n data: {\n url: src,\n id: 0, // backwards compat\n },\n });\n\n return preview;\n};\n","/**\n * Upload files in chunks\n * Based on: https://github.com/deliciousbrains/wp-dbi-file-uploader\n */\nexport default function ({ file, path, onProgress, onComplete, onError }) {\n let reader = {};\n let chunk = 0;\n let cancelled = false;\n\n // get max upload size, max out at 16mb chunks\n const max_request_size = Math.min(\n prestoPlayerAdmin.wp_max_upload_size - 1000000,\n 15900000\n );\n let slice_size = Math.max(max_request_size, 1900000); // ~2MB fallback as minimum\n slice_size = Math.min(slice_size, 104857600); // make the max size 100MB\n\n // export percent done\n let percent_done;\n\n // chunk upload\n const chunkUpload = function () {\n chunk = 0;\n\n reader = new FileReader();\n upload_file(0);\n return this;\n };\n\n // upload file\n const upload_file = async (start) => {\n const next_slice = start + slice_size + 1;\n const blob = file.slice(start, next_slice);\n const chunks = Math.ceil(file.size / (slice_size + 1));\n chunk++;\n onProgress((chunk / chunks) * 100);\n\n const body = new FormData();\n body.append(\"file\", blob);\n body.append(\"name\", file.name);\n body.append(\"chunk\", chunk);\n body.append(\"chunks\", chunks);\n\n try {\n const file_url = await wp.apiFetch({\n path,\n method: \"POST\",\n body,\n });\n\n if (cancelled) {\n console.log(\"cancelled\");\n return;\n }\n\n if (next_slice < file.size) {\n onProgress(percent_done);\n upload_file(next_slice);\n } else {\n onComplete(file_url);\n }\n } catch (e) {\n onError(e);\n console.error(e);\n }\n };\n\n chunkUpload();\n\n return {\n cancel: () => {\n cancelled = true;\n },\n };\n}\n","export default ({ item, onClick, className }) => {\n function bytesToSize(bytes) {\n var sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n if (bytes == 0) return \"0 Byte\";\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\n return Math.round(bytes / Math.pow(1024, i), 2) + \" \" + sizes[i];\n }\n\n function formatDate(date) {\n return new Date(date).toLocaleString();\n }\n\n const isEncoding = () => {\n return !!item?.encodeProgress && item.encodeProgress !== 100;\n };\n\n return (\n <div\n className={`presto-player__media-list-item ${className}`}\n onClick={onClick}\n >\n <div className=\"presto-player__media-list-item-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinecap=\"round\"\n >\n <polygon points=\"23 7 16 12 23 17 23 7\"></polygon>\n <rect x=\"1\" y=\"5\" width=\"15\" height=\"14\" rx=\"2\" ry=\"2\"></rect>\n </svg>\n </div>\n <div className=\"presto-player__media-list-item-title\">{item?.title}</div>\n {isEncoding() && (\n <div className=\"presto-player__media-list-item-size\">Encoding...</div>\n )}\n {!isEncoding() && (\n <div className=\"presto-player__media-list-item-size\">\n {bytesToSize(item?.size)}\n </div>\n )}\n {!isEncoding() && (\n <div className=\"presto-player__media-list-item-modified\">\n {formatDate(item.updated_at)}\n </div>\n )}\n </div>\n );\n};\n","export default ({ item, onClick, className }) => {\n function bytesToSize(bytes) {\n var sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n if (bytes == 0) return \"0 Byte\";\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\n return Math.round(bytes / Math.pow(1024, i), 2) + \" \" + sizes[i];\n }\n\n function formatDate(date) {\n return new Date(date).toLocaleString();\n }\n\n return (\n <div\n className={`presto-player__media-list-item ${className}`}\n onClick={onClick}\n >\n <div className=\"presto-player__media-list-item-icon\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinecap=\"round\"\n >\n <polygon points=\"23 7 16 12 23 17 23 7\"></polygon>\n <rect x=\"1\" y=\"5\" width=\"15\" height=\"14\" rx=\"2\" ry=\"2\"></rect>\n </svg>\n </div>\n <div className=\"presto-player__media-list-item-title\">{item?.title}</div>\n <div className=\"presto-player__media-list-item-size\">\n {bytesToSize(item?.size)}\n </div>\n <div className=\"presto-player__media-list-item-modified\">\n {formatDate(item.updated_at)}\n </div>\n </div>\n );\n};\n","/** @jsx jsx */\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n Modal,\n Spinner,\n Button,\n BaseControl,\n Flex,\n FlexBlock,\n Notice,\n Card,\n CardBody,\n Disabled,\n DropZone,\n FormFileUpload,\n DropZoneProvider,\n} = wp.components;\nconst { useEffect, useState, useRef } = wp.element;\nimport MediaItem from \"./MediaItem\";\nimport MediaFolder from \"./MediaFolder\";\n\nimport { css, jsx } from \"@emotion/core\";\n\nexport default ({\n onClose,\n title,\n header,\n onLoad,\n items,\n folders,\n fetching,\n progressMessage,\n onSelect,\n error,\n onDelete,\n onUpload,\n progress,\n}) => {\n const [selected, setSelected] = useState({});\n const [deleteConfirm, setDeleteConfirm] = useState(false);\n const buttonRef = useRef();\n\n useEffect(() => {\n onLoad && onLoad();\n }, []);\n\n const bytesToSize = (bytes) => {\n var sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\"];\n if (bytes == 0) return \"0 Byte\";\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)));\n return Math.round(bytes / Math.pow(1024, i), 2) + \" \" + sizes[i];\n };\n\n const toDate = (d) => {\n d = new Date(d);\n var hours = d.getHours();\n var minutes = d.getMinutes();\n var ampm = hours >= 12 ? \"pm\" : \"am\";\n hours = hours % 12;\n hours = hours ? hours : 12;\n minutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n return (\n d.getDate() +\n \"-\" +\n (d.getMonth() + 1) +\n \"-\" +\n d.getFullYear() +\n \" at \" +\n hours +\n \":\" +\n minutes +\n ampm\n );\n };\n\n const deleteSelected = () => {\n onDelete(selected);\n setDeleteConfirm(false);\n };\n\n const isSelected = () => {\n return Object.keys(selected || {}).length;\n };\n\n const sidebarContent = () => {\n if (!isSelected()) {\n return <></>;\n }\n return (\n <div className=\"presto-player__media-modal-sidebar-content\">\n <BaseControl>\n <Disabled key={selected.id}>\n {selected?.thumbnail ? (\n <img src={selected?.thumbnail} style={{ maxWidth: \"100%\" }} />\n ) : (\n <video preload=\"metadata\">\n <source src={selected.previewUrl} />\n </video>\n )}\n </Disabled>\n </BaseControl>\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Name\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 style={{ marginTop: \"5px\" }}>{selected.title}</h3>\n </BaseControl>\n\n {!!selected?.visibility && (\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Visibility\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 style={{ marginTop: \"5px\" }}>{selected.visibility}</h3>\n </BaseControl>\n )}\n\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Size\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 style={{ marginTop: \"5px\" }}>\n {bytesToSize(selected?.size || 0)}\n </h3>\n </BaseControl>\n\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Created\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 style={{ marginTop: \"5px\" }}>{toDate(selected?.created_at)}</h3>\n </BaseControl>\n\n <BaseControl>\n {deleteConfirm ? (\n <Card>\n <CardBody>\n <p>\n <strong>Are you sure?</strong>\n </p>\n <p>Are you sure you want to delete this video?</p>\n <Button isDestructive onClick={deleteSelected}>\n Yes\n </Button>\n <Button onClick={() => setDeleteConfirm(false)}>Cancel</Button>\n </CardBody>\n </Card>\n ) : (\n <Button\n isDestructive\n onClick={() => {\n setDeleteConfirm(!deleteConfirm);\n }}\n >\n {__(\"Delete video\", \"presto-player\")}\n </Button>\n )}\n </BaseControl>\n </div>\n );\n };\n\n const selectVideo = () => {\n if (selected) {\n onSelect(selected);\n onClose();\n }\n };\n\n const itemsContent = () => {\n if (fetching) {\n return (\n <Flex className=\"presto-player__media-loading\">\n <FlexBlock style={{ textAlign: \"center\" }}>\n {progress ? (\n <>\n <div>\n <strong>\n {progressMessage || __(\"Uploading\", \"presto-player\")}\n </strong>\n </div>\n <div>\n {__(\n \"Please don't navigate away from this page.\",\n \"presto-player\"\n )}\n </div>\n <progress\n className=\"presto-progress\"\n max=\"100\"\n value={progress}\n style={{ width: \"100px\" }}\n ></progress>\n </>\n ) : (\n <Spinner />\n )}\n </FlexBlock>\n </Flex>\n );\n }\n\n if (!items?.length) {\n return (\n <Flex align-items=\"center\" className=\"presto-player__media-not-found\">\n <div>\n <h2>Drop video files here to upload</h2>\n <p>or browse for a video</p>\n <FormFileUpload\n isSecondary\n accept=\"video/mp4,video/x-m4v,video/*\"\n onChange={(e) => {\n if (!e.target.files) {\n return;\n }\n onUpload(e.target.files);\n jQuery(e.target).val(null);\n }}\n >\n {__(\"Upload New Video\", \"presto-player\")}\n </FormFileUpload>\n </div>\n </Flex>\n );\n }\n\n return (\n <div className=\"presto-player__media-list\">\n <h2>{title}</h2>\n\n {folders && (\n <div className=\"presto-player__media-list-folders\">\n {folders.map((folder) => {\n return <MediaFolder key={folder.id} item={folder} />;\n })}\n </div>\n )}\n\n <div className=\"presto-player__media-list-items\">\n {items.map((item) => {\n return (\n <MediaItem\n item={item}\n key={item.id}\n onClick={() => {\n if (selected === item) {\n setSelected({});\n } else {\n setSelected(item);\n }\n }}\n className={selected === item ? \"is-selected\" : \"\"}\n />\n );\n })}\n </div>\n </div>\n );\n };\n\n return (\n <Modal\n title={header ? header : __(\"Add Media\", \"presto-player\")}\n onRequestClose={onClose}\n className=\"presto-player__media-modal presto-player__full-modal\"\n overlayClassName=\"presto-player__modal-overlay\"\n >\n <div className=\"presto-player__media-modal-layout\" data-cy=\"media-modal\">\n <div className=\"presto-player__media-modal-header\">\n <div\n className=\"presto-player__media-modal-upload\"\n css={css`\n display: flex;\n align-items: center;\n `}\n >\n <FormFileUpload\n isPrimary\n accept=\"video/mp4,video/x-m4v,video/*\"\n onChange={(e) => {\n if (!e.target.files) {\n return;\n }\n onUpload(e.target.files);\n jQuery(e.target).val(null);\n }}\n >\n {__(\"Upload New Video\", \"presto-player\")}\n </FormFileUpload>\n <div\n css={css`\n margin-left: 10px;\n `}\n >\n {__(\"Or drag a file here to upload.\", \"presto-player\")}\n </div>\n </div>\n {error && (\n <Notice status=\"error\" isDismissible={false}>\n {error}\n </Notice>\n )}\n </div>\n <div className=\"presto-player__media-modal-content\">\n <DropZoneProvider>\n {itemsContent()}\n <DropZone label={\"Drop files\"} onFilesDrop={onUpload} />\n </DropZoneProvider>\n </div>\n <div className=\"presto-player__media-modal-sidebar\">\n {sidebarContent()}\n </div>\n <div className=\"presto-player__media-modal-footer\">\n <Button\n isPrimary\n disabled={!isSelected()}\n onClick={selectVideo}\n ref={buttonRef}\n >\n {__(\"Choose\", \"presto-player\")}\n </Button>\n </div>\n </div>\n </Modal>\n );\n};\n","const { __ } = wp.i18n;\nimport chunkUpload from \"@/admin/blocks/shared/media/chunk-upload\";\nimport MediaPopup from \"@/admin/blocks/shared/media/MediaPopup\";\nconst { useState, useEffect } = wp.element;\n\nexport default ({ closePopup, noticeOperations, onSelect, isPrivate }) => {\n const [videos, setVideos] = useState([]);\n const [fetching, setFetching] = useState(false);\n const [progress, setProgress] = useState(0);\n const [progressMessage, setProgressMessage] = useState(\"\");\n const [error, setError] = useState(\"\");\n\n const endpoint = isPrivate ? \"private-videos\" : \"public-videos\";\n\n // reset progress and error on open\n useEffect(() => {\n setProgress(0);\n setError(\"\");\n }, []);\n\n // handle error\n const onError = (message) => {\n noticeOperations.removeAllNotices();\n noticeOperations.createErrorNotice(message);\n };\n\n const uploadFile = async (files) => {\n setError(\"\");\n setFetching(true);\n setProgressMessage(__(\"Uploading\", \"presto-player\"));\n chunkUpload({\n file: files[0],\n path: `presto-player/v1/bunny/upload`,\n onProgress: (percent) => {\n setProgress(percent - 10); // leave 10% for storing\n },\n onComplete: storeFile,\n onError: (e) => {\n setError(e.message);\n setProgress(0);\n setFetching(false);\n },\n });\n };\n\n const storeFile = async ({ path, name }) => {\n setProgressMessage(__(\"Storing\", \"presto-player\"));\n try {\n const videos = await wp.apiFetch({\n path: `presto-player/v1/bunny/${endpoint}`,\n method: \"POST\",\n data: {\n path,\n name,\n },\n });\n setVideos(videos);\n } catch (e) {\n setError(e.message);\n console.error(e);\n } finally {\n setProgress(0);\n setFetching(false);\n }\n };\n\n const deleteVideo = async (video) => {\n try {\n setVideos((videos || []).filter((item) => item !== video));\n await wp.apiFetch({\n path: `presto-player/v1/bunny/${endpoint}`,\n method: \"DELETE\",\n data: {\n name: video?.title,\n },\n });\n } catch (e) {\n setError(e.message);\n }\n };\n\n // loads videos for media popup\n const loadVideos = async () => {\n try {\n setFetching(true);\n const videos = await wp.apiFetch({\n path: `presto-player/v1/bunny/${endpoint}`,\n });\n setVideos(videos);\n } catch (e) {\n setError(e.message);\n } finally {\n setFetching(false);\n }\n };\n\n return (\n <MediaPopup\n onClose={closePopup}\n progressMessage={progressMessage}\n fetching={fetching}\n error={error}\n onUpload={uploadFile}\n onLoad={loadVideos}\n items={videos}\n progress={progress}\n onDelete={deleteVideo}\n onSelect={onSelect}\n onError={onError}\n header={\n isPrivate\n ? __(\"Bunny.net Private Video Storage\", \"presto-player\")\n : __(\"Bunny.net Public Video Storage\", \"presto-player\")\n }\n title={\n isPrivate\n ? __(\"Private Video Library\", \"presto-player\")\n : __(\"Public Video Library\", \"presto-player\")\n }\n />\n );\n};\n","const { combineReducers } = wp.data;\n\n/**\n * Videos\n *\n * @param {array} state\n * @param {object} action\n */\nconst videosReducer = (state = [], action) => {\n switch (action.type) {\n case \"SET_VIDEOS\":\n return action.value;\n case \"ADD_VIDEOS\":\n return [...state, ...action.value];\n case \"ADD_VIDEO\":\n return [...state, ...[action.value]];\n case \"UPDATE_VIDEO\":\n return state.map((item, index) => {\n if (item.id !== action.value?.id) {\n return item;\n }\n return {\n ...item,\n ...action.value,\n };\n });\n case \"REMOVE_VIDEO\":\n return state.filter((item) => item.guid !== action.value.guid);\n }\n return state;\n};\n\n/**\n * Videos\n *\n * @param {array} state\n * @param {object} action\n */\nconst uploadsReducer = (state = [], action) => {\n switch (action.type) {\n case \"SET_UPLOADS\":\n return action.value;\n case \"ADD_UPLOADS\":\n return [...state, ...action.value];\n case \"ADD_UPLOAD\":\n return [...state, ...[action.value]];\n case \"UPDATE_UPLOAD\":\n return state.map((item, index) => {\n if (item.id !== action.value?.id) {\n return item;\n }\n return {\n ...item,\n ...action.value,\n };\n });\n case \"REMOVE_UPLOAD\":\n return state.filter((item) => item !== action.value);\n }\n return state;\n};\n\n/**\n * Videos\n *\n * @param {array} state\n * @param {object} action\n */\nconst collectionsReducer = (state = [], action) => {\n switch (action.type) {\n case \"SET_COLLECTIONS\":\n return action.value;\n case \"ADD_COLLECTION\":\n return [...state, ...[action.value]];\n case \"UPDATE_COLLECTION\":\n return state.map((item, index) => {\n if (item.id !== action.value?.id) {\n return item;\n }\n return {\n ...item,\n ...action.value,\n };\n });\n case \"REMOVE_COLLECTION\":\n return state.filter((item) => item !== action.value);\n }\n return state;\n};\n\n/**\n * Request\n * @param {} state\n * @param {*} action\n * @returns\n */\nconst requestReducer = (\n state = {\n private: false,\n collection: \"\",\n search: \"\",\n },\n action\n) => {\n switch (action.type) {\n case \"SET_PRIVATE_REQUEST\":\n return {\n ...state,\n private: action.value,\n };\n case \"SET_SEARCH_REQUEST\":\n return {\n ...state,\n search: action.value,\n };\n case \"SET_COLLECTION_REQUEST\":\n return {\n ...state,\n collection: action.value,\n };\n }\n\n return state;\n};\n\n/**\n * Request\n * @param {} state\n * @param {*} action\n * @returns\n */\nconst UIReducer = (\n state = {\n loading: false,\n videosFetched: false,\n createCollection: false,\n selectedId: null,\n },\n action\n) => {\n switch (action.type) {\n case \"SET_LOADING\":\n return {\n ...state,\n loading: action.value,\n };\n case \"SET_VIDEOS_FETCHED\":\n return {\n ...state,\n videosFetched: action.value,\n };\n case \"SET_UI_ITEM\":\n return {\n ...state,\n [action.item]: action.value,\n };\n }\n\n return state;\n};\n\nconst errorReducer = (state = [], action) => {\n switch (action.type) {\n case \"ADD_ERROR\":\n return [...state, ...[action.value]];\n case \"REMOVE_ERROR\":\n return state.filter((element) => element !== action.value);\n }\n return state;\n};\n\nexport default combineReducers({\n videosReducer,\n collectionsReducer,\n uploadsReducer,\n requestReducer,\n UIReducer,\n errorReducer,\n});\n","export function videos(state) {\n return state?.videosReducer || [];\n}\nexport function collections(state) {\n return state?.collectionsReducer || [];\n}\nexport function uploads(state) {\n return state?.uploadsReducer || [];\n}\nexport function isPrivate(state) {\n return !!state?.requestReducer?.private;\n}\nexport function isLoading(state) {\n return state?.UIReducer?.loading || false;\n}\nexport function errors(state) {\n return state?.errorReducer || [];\n}\nexport function videosFetched(state) {\n return state?.UIReducer?.videosFetched || false;\n}\nexport function currentCollection(state) {\n return state?.requestReducer?.collection;\n}\nexport function ui(state, arg) {\n return state?.UIReducer?.[arg];\n}\nexport function requestType(state) {\n return state?.requestReducer?.private ? \"private\" : \"public\";\n}\n","export function setVideos(value) {\n return {\n type: \"SET_VIDEOS\",\n value,\n };\n}\nexport function addVideos(value) {\n return {\n type: \"ADD_VIDEOS\",\n value,\n };\n}\n\nexport function removeVideo(value) {\n return {\n type: \"REMOVE_VIDEO\",\n value,\n };\n}\n\nexport function setCollections(value) {\n return {\n type: \"SET_COLLECTIONS\",\n value,\n };\n}\n\nexport function addCollection(value) {\n return {\n type: \"ADD_COLLECTION\",\n value,\n };\n}\n\nexport function setIsPrivate(value) {\n return {\n type: \"SET_PRIVATE_REQUEST\",\n value,\n };\n}\n\nexport function setSearch(value) {\n return {\n type: \"SET_SEARCH\",\n value,\n };\n}\n\nexport function setCollectionRequest(value) {\n return {\n type: \"SET_COLLECTION_REQUEST\",\n value,\n };\n}\n\nexport function setUploads(value) {\n return {\n type: \"SET_UPLOADS\",\n value,\n };\n}\n\nexport function addUploads(value) {\n return {\n type: \"ADD_UPLOADS\",\n value,\n };\n}\n\nexport function removeUpload(value) {\n return {\n type: \"REMOVE_UPLOAD\",\n value,\n };\n}\n\nexport function setVideosFetched(value) {\n return {\n type: \"SET_VIDEOS_FETCHED\",\n value,\n };\n}\n\nexport function setLoading(value) {\n return {\n type: \"SET_LOADING\",\n value,\n };\n}\n\nexport function setUI(item, value) {\n return {\n type: \"SET_UI_ITEM\",\n item,\n value,\n };\n}\n\nexport function addError(value) {\n return {\n type: \"ADD_ERROR\",\n value,\n };\n}\nexport function removeError(value) {\n return {\n type: \"REMOVE_ERROR\",\n value,\n };\n}\n","/**\n * WordPress dependencies\n */\nconst { registerStore } = wp.data;\n\n/**\n * Internal dependencies\n */\nimport reducer from \"./reducer\";\nimport * as selectors from \"./selectors\";\nimport * as actions from \"./actions\";\n\nexport default registerStore(\"presto-player/bunny-popup\", {\n reducer,\n selectors,\n actions,\n});\n","/**\n * Is the video playable\n */\nexport const isPlayable = (video) =>\n video?.status == 3 && video?.availableResolutions.length;\n\n/**\n * It's selectable if it's playable or live;\n */\nexport const isSelectable = (video) => isPlayable(video) || video?.status === 4;\n\n/**\n * Get the status text\n * @returns string\n */\nexport const getStatusText = (video) => {\n if (video?.status == 0) return \"Processing\";\n if (video?.status == 1) return \"Uploaded\";\n if (video?.status == 2) return \"Processing\";\n if (isPlayable(video)) return \"Playable\";\n if (video?.status == 3) return \"Encoding\";\n if (video?.status == 4) return \"Live\";\n if (video?.status == 5) return \"Error\";\n if (video?.status == 6) return \"Upload Failed\";\n};\n\nexport const getLengthToTime = (length) => {\n if (length == undefined || length == null) return \"\";\n return new Date(length * 1000).toISOString().substr(11, 8);\n};\n\nexport const bytesToSize = (bytes) => {\n if (bytes == undefined || bytes == 0) return \"Unknown\";\n var sizes = [\"b\", \"KB\", \"MB\", \"GB\", \"TB\"];\n if (bytes == 0) return \"0 b\";\n var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)).toString());\n return (bytes / Math.pow(1024, i)).toFixed(2) + \" \" + sizes[i];\n};\n\nexport const stampToDate = (d) => {\n d = new Date(d);\n var hours = d.getHours();\n var minutes = d.getMinutes();\n var ampm = hours >= 12 ? \"pm\" : \"am\";\n hours = hours % 12;\n hours = hours ? hours : 12;\n minutes = minutes < 10 ? \"0\" + minutes : minutes;\n\n return (\n d.getDate() +\n \"-\" +\n (d.getMonth() + 1) +\n \"-\" +\n d.getFullYear() +\n \" at \" +\n hours +\n \":\" +\n minutes +\n ampm\n );\n};\n","/** @jsx jsx */\n\nconst { __ } = wp.i18n;\nconst { Button, BaseControl, Disabled, Card, CardBody } = wp.components;\nconst { useState, useContext, useEffect } = wp.element;\nconst { dispatch, useSelect } = wp.data;\n\nimport {\n isSelectable,\n getStatusText,\n getLengthToTime,\n stampToDate,\n bytesToSize,\n} from \"./utils\";\n\nimport { jsx, css } from \"@emotion/core\";\n\nexport default () => {\n const [deleteConfirm, setDeleteConfirm] = useState(false);\n const [deleting, setDeleting] = useState(false);\n const [video, setVideo] = useState(null);\n\n const isPrivate = useSelect((select) =>\n select(\"presto-player/bunny-popup\").isPrivate()\n );\n const selectedId = useSelect((select) =>\n select(\"presto-player/bunny-popup\").ui(\"selectedId\")\n );\n const videos = useSelect((select) =>\n select(\"presto-player/bunny-popup\").videos()\n );\n\n useEffect(() => {\n setVideo(\n selectedId ? videos.find((video) => video.guid === selectedId) : null\n );\n }, [videos, selectedId]);\n\n const onDelete = async () => {\n await wp.apiFetch({\n path: `presto-player/v1/bunny/stream/videos/${video.id}`,\n method: \"DELETE\",\n data: {\n type: isPrivate ? \"private\" : \"public\",\n },\n });\n dispatch(\"presto-player/bunny-popup\").removeVideo(video);\n dispatch(\"presto-player/bunny-popup\").setUI(\"selectedId\", null);\n setDeleting(false);\n setDeleteConfirm(false);\n };\n\n const controlCSS = css`\n margin-top: 5px;\n `;\n\n if (!video) {\n return \"\";\n }\n\n const getThumbnail = (video) => {\n return isPrivate ? video?.webPURLSigned : video?.webPURL;\n };\n\n return (\n video && (\n <div className=\"presto-player__media-modal-sidebar-content\">\n <BaseControl\n css={css`\n position: relative;\n `}\n >\n <Disabled key={video.id}>\n {isSelectable(video) && getThumbnail(video) && (\n <img src={getThumbnail(video)} css={{ maxWidth: \"100%\" }} />\n )}\n </Disabled>\n <Button\n isSmall\n isPrimary\n isBusy={!isSelectable(video)}\n css={css`\n ${isSelectable(video) ? \"position: absolute;\" : \"\"}\n top: 8px;\n right: 8px;\n font-size: 11px;\n color: #ffffff;\n padding: 2px 10px;\n border-radius: 9999px;\n `}\n >\n {getStatusText(video)}\n </Button>\n </BaseControl>\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Name\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 css={controlCSS}>{video.title}</h3>\n </BaseControl>\n\n {!!video?.visibility && (\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Visibility\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 css={controlCSS}>{video.visibility}</h3>\n </BaseControl>\n )}\n\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Size\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 css={controlCSS}>{bytesToSize(video?.size || 0)}</h3>\n </BaseControl>\n\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Length\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 css={controlCSS}>{getLengthToTime(video?.length)}</h3>\n </BaseControl>\n\n <BaseControl>\n <BaseControl.VisualLabel>\n {__(\"Created\", \"presto-player\")}\n </BaseControl.VisualLabel>\n <h3 css={controlCSS}>{stampToDate(video?.created_at)}</h3>\n </BaseControl>\n\n <BaseControl>\n {deleteConfirm ? (\n <Card>\n <CardBody>\n <p>\n <strong>{__(\"Are you sure?\", \"presto-player\")}</strong>\n </p>\n <p>\n {__(\n \"Are you sure you want to delete this video?\",\n \"presto-player\"\n )}\n </p>\n <Button\n isDestructive\n disabled={deleting}\n isBusy={deleting}\n onClick={(e) => {\n e.preventDefault();\n onDelete();\n setDeleting(true);\n }}\n >\n {__(\"Yes\", \"presto-player\")}\n </Button>\n <Button onClick={() => setDeleteConfirm(false)}>\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n </CardBody>\n </Card>\n ) : (\n <Button\n isDestructive\n onClick={() => {\n setDeleteConfirm(!deleteConfirm);\n }}\n >\n {__(\"Delete video\", \"presto-player\")}\n </Button>\n )}\n </BaseControl>\n </div>\n )\n );\n};\n","/** @jsx jsx */\nimport { css, jsx } from \"@emotion/core\";\n\nexport default ({ className, progress }) => {\n return (\n <div className={className}>\n <div\n css={css`\n height: 100%;\n background-color: var(--wp-admin-theme-color, #007cba);\n `}\n style={{ width: `${progress}%` }}\n ></div>\n </div>\n );\n};\n","/** @jsx jsx */\nimport { css, jsx } from \"@emotion/core\";\nimport ProgressBar from \"./ProgressBar\";\n\nexport default ({ progress }) => {\n return (\n <div\n css={css`\n max-width: 100%;\n object-fit: cover;\n width: 100%;\n height: 140px;\n background-color: #222;\n color: white;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n `}\n >\n <ProgressBar\n progress={progress}\n css={css`\n width: 100%;\n border-radius: 0px;\n margin: 0 15px;\n background-color: #e3e3e3;\n height: 3px;\n `}\n />\n </div>\n );\n};\n","/** @jsx jsx */\nimport { css, jsx } from \"@emotion/core\";\n\nexport default (props) => {\n const { thumbnail, title, footer, badge, before, after } = props;\n return (\n <div\n className=\"presto-player__video-thumb\"\n css={css`\n cursor: pointer;\n user-select: none;\n display: inline-block;\n position: relative;\n margin-right: 20px;\n font-weight: bold;\n margin-bottom: 20px;\n width: 220px;\n flex: 0 0 220px;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n overflow: hidden;\n `}\n {...props}\n >\n {!!before && before}\n\n {!!thumbnail && thumbnail}\n\n <div\n css={css`\n margin: 14px;\n `}\n >\n {!!badge && (\n <div\n css={css`\n position: absolute;\n top: 8px;\n right: 8px;\n `}\n >\n {badge}\n </div>\n )}\n\n {!!title && (\n <span\n css={css`\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n width: 100%;\n max-width: 100%;\n display: inline-block;\n margin-bottom: 7px;\n font-size: 13px;\n `}\n >\n {title}\n </span>\n )}\n\n {!!footer && (\n <div\n css={css`\n font-size: 12px;\n opacity: 0.75;\n margin-bottom: 7px;\n `}\n >\n {footer}\n </div>\n )}\n </div>\n\n {!!after && after}\n </div>\n );\n};\n","/** @jsx jsx */\nimport { css, jsx } from \"@emotion/core\";\nconst { Icon, Button } = wp.components;\nconst { useEffect, useState } = wp.element;\nconst { useSelect, dispatch } = wp.data;\nimport ProgressOverlay from \"../ProgressOverlay\";\nimport ProgressBar from \"../ProgressBar\";\nimport Thumbnail from \"../ThumbTemplate\";\n\nimport {\n isSelectable,\n getStatusText,\n getLengthToTime,\n bytesToSize,\n} from \"../utils\";\n\nexport default ({ video }) => {\n const [selected, setSelected] = useState();\n const isPrivate = useSelect((select) =>\n select(\"presto-player/bunny-popup\").isPrivate()\n );\n const selectedId = useSelect((select) =>\n select(\"presto-player/bunny-popup\").ui(\"selectedId\")\n );\n\n useEffect(() => {\n setSelected(selectedId ? selectedId === video.guid : null);\n }, [selectedId]);\n\n /**\n * Status badge\n * @returns JSX\n */\n const renderStatusBadge = () => (\n <Button\n isSmall\n isPrimary\n isBusy={!isSelectable(video)}\n css={css`\n font-size: 11px;\n color: #ffffff;\n padding: 2px 10px;\n border-radius: 9999px;\n `}\n >\n {getStatusText(video)}\n </Button>\n );\n\n /**\n * Render thumbnail\n * @returns\n */\n const renderThumbnail = () => {\n if (video.status < 3) {\n return <ProgressOverlay progress={video.encodeProgress} />;\n }\n\n const url = isPrivate ? video?.thumbnailURLSigned : video?.thumbnailURL;\n\n if (url) {\n return (\n <img\n css={css`\n max-width: 100%;\n object-fit: cover;\n width: 100%;\n height: 140px;\n display: block;\n `}\n src={url}\n />\n );\n }\n };\n\n const renderLength = () => (\n <div\n css={css`\n display: flex;\n align-items: center;\n `}\n >\n <span\n css={css`\n margin-right: 10px;\n display: flex;\n align-items: center;\n `}\n >\n <Icon\n css={css`\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n opacity: 0.5;\n `}\n icon=\"clock\"\n size={14}\n />\n <span>{getLengthToTime(video.length)}</span>\n </span>\n <span\n css={css`\n display: flex;\n align-items: center;\n `}\n >\n <Icon\n css={css`\n opacity: 0.5;\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n `}\n icon=\"database\"\n size={14}\n />\n <span>{bytesToSize(video.storageSize)}</span>\n </span>\n </div>\n );\n\n return (\n <Thumbnail\n onClick={() => {\n dispatch(\"presto-player/bunny-popup\").setUI(\"selectedId\", video?.guid);\n }}\n css={css`\n ${selected &&\n \"box-shadow: 0 0 0 0px #fff, 0 0 0 3px var(--wp-admin-theme-color, #007cba);\"}\n border: 1px solid\n ${selected ? \"var(--wp-admin-theme-color, #007cba)\" : \"#e0e0e0\"};\n `}\n thumbnail={renderThumbnail()}\n badge={renderStatusBadge()}\n title={video.title}\n footer={renderLength()}\n after={\n video.status === 3 ? (\n <ProgressBar\n css={css`\n width: 100%;\n border-radius: 0px;\n margin: 0;\n background-color: #e3e3e3;\n height: 3px;\n `}\n progress={video.encodeProgress}\n />\n ) : (\n \"\"\n )\n }\n />\n );\n};\n","/** @jsx jsx */\nconst { Flex, FlexBlock, Spinner } = wp.components;\n\nimport { jsx } from \"@emotion/core\";\n\nexport default ({ className }) => {\n return (\n <Flex className={className}>\n <FlexBlock css={{ textAlign: \"center\" }}>\n <Spinner />\n </FlexBlock>\n </Flex>\n );\n};\n","/** @jsx jsx */\nconst { __ } = wp.i18n;\nconst { useState, useEffect, Fragment } = wp.element;\nconst { Flex, FormFileUpload, Notice } = wp.components;\nconst { dispatch, useSelect } = wp.data;\nimport { css, jsx } from \"@emotion/core\";\nimport Video from \"./Video\";\n\nimport Loading from \"../Loading\";\n\nexport default () => {\n const [selected, setSelected] = useState(false);\n const [notice, setNotice] = useState(\"\");\n const fetched = useSelect((select) =>\n select(\"presto-player/bunny-popup\").videosFetched()\n );\n const videos = useSelect((select) =>\n select(\"presto-player/bunny-popup\").videos()\n );\n const type = useSelect((select) =>\n select(\"presto-player/bunny-popup\").requestType()\n );\n const collection = useSelect((select) =>\n select(\"presto-player/bunny-popup\").currentCollection()\n );\n\n // fetch videos\n useEffect(() => {\n if (!fetched) {\n fetch();\n }\n }, [fetched]);\n\n // sync every 5 seconds\n useEffect(() => {\n const interval = setInterval(() => {\n fetch({ sync: true });\n }, 3000);\n return () => clearInterval(interval);\n }, [fetched]);\n\n // fetch videos\n const fetch = async ({ sync } = { sync: false }) => {\n try {\n const videos = await wp.apiFetch({\n path: wp.url.addQueryArgs(`presto-player/v1/bunny/stream/videos`, {\n type,\n ...(collection?.guid ? { collection: collection?.guid } : {}),\n items_per_page: 500,\n }),\n });\n dispatch(\"presto-player/bunny-popup\").setVideos(videos?.items);\n setNotice(\"\");\n } catch (e) {\n if (e?.data?.status === 401) {\n setNotice(\n __(\n \"Please wait. Pullzone cache is clearing. This may take a minute or two...\"\n )\n );\n return;\n }\n\n if (!sync) {\n dispatch(\"presto-player/bunny-popup\").addError(e.message);\n }\n } finally {\n dispatch(\"presto-player/bunny-popup\").setVideosFetched(true);\n }\n };\n\n // default no video content\n const renderDefaultContent = () => {\n return (\n <Flex\n align=\"center\"\n justify=\"center\"\n css={css`\n height: 100%;\n text-align: center;\n `}\n >\n <div>\n <h2>{__(\"Drop video files here to upload\", \"presto-player\")}</h2>\n <p>{__(\"or browse for a video\", \"presto-player\")}</p>\n <FormFileUpload\n isSecondary\n accept=\"video/mp4,video/x-m4v,video/*\"\n onChange={(e) => {\n if (!e.target.files) {\n return;\n }\n dispatch(\"presto-player/bunny-popup\").addUploads(e.target.files);\n jQuery(e.target).val(null);\n }}\n >\n {__(\"Upload New Video\", \"presto-player\")}\n </FormFileUpload>\n </div>\n </Flex>\n );\n };\n\n if (notice) {\n return (\n <Notice status=\"warning\" isDismissible={false}>\n <div css={{ display: \"flex\", alignItems: \"center\" }}>\n <Loading css={{ flex: 1 }} />\n {notice}\n </div>\n </Notice>\n );\n }\n\n // still loading\n if (!fetched) {\n return <Loading css={{ flex: 1 }} />;\n }\n\n // render\n return (\n <Fragment>\n {videos && !!videos.length ? (\n <div>\n {!collection?.guid && <h2>{__(\"Videos\", \"presto-player\")}</h2>}\n {videos.map((video) => {\n if (video?.collectionId !== (collection?.guid || \"\")) {\n return;\n }\n return (\n <Video\n key={video.id}\n video={video}\n onClick={() => {\n setSelected(selected.guid === video.guid ? {} : video);\n }}\n selected={selected.guid === video.guid}\n />\n );\n })}\n </div>\n ) : (\n renderDefaultContent()\n )}\n </Fragment>\n );\n};\n","/** @jsx jsx */\n\nconst { Icon } = wp.components;\nconst { dispatch } = wp.data;\n\nimport Thumb from \"../ThumbTemplate\";\n\nimport { jsx, css } from \"@emotion/core\";\n\nexport default ({ collection }) => {\n // handle click\n const handleClick = (e) => {\n e.preventDefault();\n dispatch(\"presto-player/bunny-popup\").setCollectionRequest(collection);\n dispatch(\"presto-player/bunny-popup\").setVideosFetched(false);\n };\n\n return (\n <Thumb\n onClick={handleClick}\n title={\n <div>\n <Icon\n icon=\"open-folder\"\n css={css`\n color: var(--wp-admin-theme-color);\n margin-right: 10px;\n `}\n />\n {collection.name}\n </div>\n }\n footer={<div>{collection.videoCount} Videos</div>}\n />\n );\n};\n","/** @jsx jsx */\nimport { css, jsx } from \"@emotion/core\";\n\nconst { __ } = wp.i18n;\nconst { useEffect } = wp.element;\nconst { useSelect, dispatch } = wp.data;\n\nimport Collection from \"./Collection\";\n\nexport default () => {\n const collections = useSelect((select) =>\n select(\"presto-player/bunny-popup\").collections()\n );\n const type = useSelect((select) =>\n select(\"presto-player/bunny-popup\").requestType()\n );\n\n const fetchCollections = async () => {\n try {\n const response = await wp.apiFetch({\n path: wp.url.addQueryArgs(`presto-player/v1/bunny/stream/collections`, {\n type,\n items_per_page: 500,\n }),\n });\n dispatch(\"presto-player/bunny-popup\").setCollections(response?.items);\n } catch (e) {\n if (e?.data?.status === 401) {\n return;\n }\n dispatch(\"presto-player/bunny-popup\").addError(e.message);\n }\n };\n\n useEffect(() => {\n fetchCollections();\n }, []);\n\n return (\n !!collections.length && (\n <div>\n <h2>{__(\"Collections\", \"presto-player\")}</h2>\n <div\n css={css`\n display: flex;\n align-items: stretch;\n overflow: auto;\n `}\n >\n {collections.map((collection) => (\n <Collection collection={collection} key={collection.guid} />\n ))}\n </div>\n </div>\n )\n );\n};\n","/** @jsx jsx */\nconst { __ } = wp.i18n;\nconst { Button, TextControl, Modal, BaseControl } = wp.components;\nconst { useState, Fragment } = wp.element;\nconst { dispatch, useSelect } = wp.data;\n\nimport { jsx, css } from \"@emotion/core\";\n\nexport default () => {\n const [name, setName] = useState(\"\");\n const [busy, setBusy] = useState(false);\n const type = useSelect((select) =>\n select(\"presto-player/bunny-popup\").requestType()\n );\n const modal = useSelect((select) =>\n select(\"presto-player/bunny-popup\").ui(\"createCollection\")\n );\n const setModal = (value) => {\n dispatch(\"presto-player/bunny-popup\").setUI(\"createCollection\", value);\n };\n\n const onCreate = async () => {\n setBusy(true);\n try {\n let collection = await wp.apiFetch({\n path: \"presto-player/v1/bunny/stream/collections\",\n method: \"POST\",\n data: {\n type,\n name,\n },\n });\n dispatch(\"presto-player/bunny-popup\").addCollection(collection);\n dispatch(\"presto-player/bunny-popup\").setCollectionRequest(collection);\n dispatch(\"presto-player/bunny-popup\").setVideosFetched(false);\n setName(\"\");\n setModal(false);\n } catch (e) {\n console.error(e);\n } finally {\n setBusy(false);\n }\n };\n\n return (\n <Fragment>\n <Button isSecondary onClick={() => setModal(true)}>\n {__(\"Create Collection\", \"presto-player\")}\n </Button>\n {modal && (\n <Modal\n overlayClassName=\"presto-modal\"\n title={\"Create New Collection\"}\n shouldCloseOnClickOutside={false}\n isDismissible={false}\n >\n <TextControl\n css={css`\n margin-bottom: 15px;\n `}\n tabIndex=\"0\"\n placeholder={__(\"Enter a collection name\", \"presto-player\")}\n value={name}\n onChange={(name) => setName(name)}\n />\n\n <BaseControl>\n <Button\n isBusy={busy}\n disabled={busy}\n isPrimary\n onClick={() => {\n onCreate();\n }}\n >\n {__(\"Create\", \"presto-player\")}\n </Button>{\" \"}\n <Button onClick={() => setModal(false)}>\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n </BaseControl>\n </Modal>\n )}\n </Fragment>\n );\n};\n","/** @jsx jsx */\nconst { __ } = wp.i18n;\nconst { Flex, FlexBlock, FlexItem, Button, FormFileUpload } = wp.components;\nconst { dispatch } = wp.data;\nimport CreateCollection from \"./collections/CreateCollection\";\n\nimport { jsx } from \"@emotion/core\";\n\nexport default ({ afterUpload }) => {\n return (\n <Flex>\n <FlexBlock>\n <Flex justify=\"flex-start\">\n <FormFileUpload\n multiple\n isPrimary\n accept=\"video/mp4,video/x-m4v,video/*\"\n onChange={(e) => {\n if (!e.target.files) {\n return;\n }\n dispatch(\"presto-player/bunny-popup\").addUploads(e.target.files);\n jQuery(e.target).val(null);\n }}\n >\n {__(\"Upload Videos\", \"presto-player\")}\n </FormFileUpload>{\" \"}\n <CreateCollection />\n {!!afterUpload && afterUpload}\n </Flex>\n </FlexBlock>\n <FlexItem>\n {/* <Flex align={\"stretch\"}>\n <input\n class=\"components-text-control__input\"\n type=\"text\"\n placeholder={__(\"Search for a video...\", \"presto-player\")}\n value={search}\n onChange={(event) => {\n setSearch(event.target.value);\n }}\n />\n <Button\n isPrimary\n size=\"small\"\n onClick={(e) => {\n e.preventDefault();\n onSearch && onSearch(search);\n }}\n >\n {__(\"Search\", \"presto-player\")}\n </Button>\n </Flex> */}\n </FlexItem>\n </Flex>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { Button } = wp.components;\nconst { useState, useEffect } = wp.element;\nconst { useSelect } = wp.data;\n\nexport default ({ onChoose }) => {\n const [video, setVideo] = useState(null);\n const [canSelect, setCanSelect] = useState(false);\n\n const selectedId = useSelect((select) =>\n select(\"presto-player/bunny-popup\").ui(\"selectedId\")\n );\n const videos = useSelect((select) =>\n select(\"presto-player/bunny-popup\").videos()\n );\n\n // update selected video when videos or selected id changes\n useEffect(() => {\n setVideo(\n selectedId ? videos.find((video) => video.guid === selectedId) : null\n );\n }, [videos, selectedId]);\n\n // set if we can select if video has available resolutions\n useEffect(() => {\n if (video?.status == 3 && video?.availableResolutions.length) {\n setCanSelect(true);\n return;\n }\n setCanSelect(video?.status > 3 && video?.status < 5);\n }, [video?.availableResolutions]);\n\n return (\n <Button isPrimary disabled={!canSelect} onClick={() => onChoose(video)}>\n {video?.id && !canSelect\n ? __(\"Please wait, video is encoding...\", \"presto-player\")\n : __(\"Choose\", \"presto-player\")}\n </Button>\n );\n};\n","/** @jsx jsx */\nconst { Icon } = wp.components;\nimport { css, jsx } from \"@emotion/core\";\n\nexport default ({ children, onClick }) => {\n return (\n <span\n onClick={onClick}\n css={css`\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n color: var(--wp-admin-theme-color, #007cba);\n padding: 6px 0;\n `}\n >\n <Icon\n css={css`\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n `}\n icon=\"arrow-left-alt\"\n size={14}\n />\n <span>{children}</span>\n </span>\n );\n};\n","/** @jsx jsx */\n\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { useState } = wp.element;\nconst { dispatch, useSelect } = wp.data;\nconst { Button, Modal, BaseControl } = wp.components;\n\nimport { css, jsx } from \"@emotion/core\";\nimport BackButton from \"./BackButton\";\n\nexport default () => {\n const [modal, setModal] = useState(false);\n const [deleting, setDeleting] = useState(false);\n const [error, setError] = useState(\"\");\n const collection = useSelect((select) =>\n select(\"presto-player/bunny-popup\").currentCollection()\n );\n const type = useSelect((select) =>\n select(\"presto-player/bunny-popup\").requestType()\n );\n\n const deleteCollection = async () => {\n setDeleting(true);\n try {\n await wp.apiFetch({\n path: `presto-player/v1/bunny/stream/collections/${collection?.guid}`,\n method: \"DELETE\",\n data: {\n type,\n },\n });\n setModal(false);\n dispatch(\"presto-player/bunny-popup\").setCollectionRequest(\"\");\n dispatch(\"presto-player/bunny-popup\").setVideosFetched(false);\n } catch (e) {\n setModal(false);\n dispatch(\"presto-player/bunny-popup\").addError(e.message);\n } finally {\n setDeleting(false);\n }\n };\n\n return (\n <div\n css={css`\n margin-bottom: 2em;\n display: flex;\n align-items: center;\n justify-content: space-between;\n `}\n >\n <div>\n <BackButton\n onClick={() => {\n dispatch(\"presto-player/bunny-popup\").setCollectionRequest(\"\");\n dispatch(\"presto-player/bunny-popup\").setVideosFetched(false);\n }}\n >\n {__(\"Back To Main Folder\", \"presto-player\")}\n </BackButton>\n <h2>{collection.name}</h2>\n </div>\n <Button isDestructive onClick={() => setModal(true)}>\n {__(\"Delete Collection\", \"presto-player\")}\n </Button>\n {modal && (\n <Modal\n shouldCloseOnClickOutside={false}\n overlayClassName=\"presto-modal\"\n title={\"Delete Collection\"}\n onRequestClose={() => setModal(false)}\n >\n <h2>\n {__(\n \"Are you sure you want to delete the collection? \",\n \"presto-player\"\n )}\n </h2>\n <p>\n {__(\n \"This will also delete all videos inside of the collection.\",\n \"presto-player\"\n )}\n </p>\n <BaseControl>\n <Button\n isDestructive\n disabled={deleting}\n isBusy={deleting}\n onClick={deleteCollection}\n >\n {__(\"Delete\", \"presto-player\")}\n </Button>{\" \"}\n <Button onClick={() => setModal(false)}>\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n </BaseControl>\n </Modal>\n )}\n </div>\n );\n};\n","/** @jsx jsx */\nimport { css, jsx } from \"@emotion/core\";\n\nconst { Icon } = wp.components;\nconst { useState, useEffect, useContext } = wp.element;\nconst { useSelect, dispatch } = wp.data;\nconst { __ } = wp.i18n;\n\nimport chunkUpload from \"@/admin/blocks/shared/media/chunk-upload\";\n\nimport ProgressBar from \"../ProgressBar\";\n\nexport default ({ file, name, onComplete }) => {\n const [progress, setProgress] = useState(0);\n const [message, setMessage] = useState(__(\"Uploading\", \"presto-player\"));\n const [error, setError] = useState(\"\");\n const [created, setCreated] = useState(false);\n const type = useSelect((select) =>\n select(\"presto-player/bunny-popup\").requestType()\n );\n const collection = useSelect((select) =>\n select(\"presto-player/bunny-popup\").currentCollection()\n );\n\n let uploader;\n\n const upload = async () => {\n setMessage(__(\"Uploading\", \"presto-player\"));\n uploader = chunkUpload({\n file: file?.[0] ? file?.[0] : file,\n path: `presto-player/v1/bunny/stream/upload`,\n onProgress: (percent) => {\n setProgress(percent); // leave 10% for storing\n },\n onComplete: createVideo,\n onError: (e) => {\n setError(e.message);\n setMessage(__(\"Error\", \"presto-player\"));\n setProgress(0);\n },\n });\n };\n\n const createVideo = async ({ path, name }) => {\n setMessage(__(\"Creating\", \"presto-player\"));\n try {\n const video = await wp.apiFetch({\n path: \"presto-player/v1/bunny/stream/videos\",\n method: \"POST\",\n data: {\n type,\n name,\n ...(collection?.guid ? { collection: collection.guid } : {}),\n },\n });\n setCreated(true);\n storeVideo({ path, video });\n } catch (e) {\n setError(e.message);\n } finally {\n setProgress(0);\n }\n };\n\n /**\n * Store the video on Bunny.net\n */\n const storeVideo = async ({ path, video }) => {\n await wp.apiFetch({\n path: \"presto-player/v1/bunny/stream/store\",\n method: \"POST\",\n data: {\n type,\n path,\n guid: video.guid,\n },\n });\n\n onComplete();\n };\n\n const onCancel = () => {\n uploader && uploader.cancel();\n dispatch(\"presto-player/bunny-popup\").removeUpload(upload);\n };\n\n useEffect(() => {\n upload();\n return () => {\n uploader && uploader.cancel();\n };\n }, []);\n\n if (created) {\n return \"\";\n }\n\n return (\n <div\n css={css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n animation: components-button__busy-animation 2500ms infinite linear;\n opacity: 1;\n padding: 6px 12px;\n border-radius: 99999px;\n border: 1px solid #dddddd;\n background-size: 100px 100%;\n background-image: linear-gradient(\n -45deg,\n #ffffff 33%,\n #f3f3f3 33%,\n #f3f3f3 70%,\n #ffffff 70%\n );\n `}\n >\n <div\n css={css`\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n max-width: 150px;\n text-overflow: ellipsis;\n font-weight: bold;\n `}\n >\n {!!error && error}\n {!!name && name} {file.name}...\n </div>\n <div\n css={css`\n display: flex;\n align-items: center;\n `}\n >\n <ProgressBar\n css={css`\n width: 50px;\n height: 3px;\n margin: 0 5px;\n background: #e3e3e3;\n border-radius: 9999px;\n overflow: hidden;\n `}\n progress={progress}\n />\n {/* <Icon onClick={onCancel} icon=\"no-alt\" /> */}\n </div>\n </div>\n );\n};\n","/** @jsx jsx */\nimport { css, jsx } from \"@emotion/core\";\n\nimport Upload from \"./Upload\";\nconst { useSelect } = wp.data;\n\nexport default ({ removeUpload, isPrivate }) => {\n const uploads = useSelect((select) =>\n select(\"presto-player/bunny-popup\").uploads()\n );\n\n if (!uploads.length) {\n return \"\";\n }\n\n return (\n <div\n css={css`\n overflow: auto;\n display: flex;\n align-items: center;\n position: relative;\n `}\n >\n {uploads.length &&\n uploads.map((upload) => {\n return (\n <Upload\n css={css`\n margin-right: 0px;\n `}\n file={upload}\n onComplete={() => removeUpload(upload)}\n />\n );\n })}\n </div>\n );\n};\n","/**\n * WordPress dependencies\n */\n/** @jsx jsx */\nconst { __ } = wp.i18n;\nconst { Modal } = wp.components;\n\nimport { css, jsx } from \"@emotion/core\";\n\nexport default ({\n onClose,\n title,\n header,\n error,\n mainContent,\n sidebar,\n footer,\n}) => {\n return (\n <Modal\n title={title ? title : __(\"Add Media\", \"presto-player\")}\n onRequestClose={onClose}\n css={css`\n width: 100%;\n height: 100%;\n max-width: calc(100% - 32px);\n max-height: calc(100% - 32px);\n\n .components-modal__content {\n display: flex;\n flex-direction: column;\n }\n `}\n overlayClassName=\"presto-player__modal-overlay\"\n >\n <div\n css={css`\n @media screen and (min-width: 780px) {\n margin: -24px;\n display: grid;\n flex: 1;\n max-height: calc(100vh - 68px);\n grid-template-columns: 1fr 1fr minmax(0px, 267px);\n grid-template-rows: minmax(50px, auto) 1fr 60px;\n grid-template-areas:\n \"header header sidebar\"\n \"main main sidebar\"\n \"footer footer footer\";\n overflow: hidden;\n }\n `}\n data-cy=\"media-modal\"\n >\n <div\n css={css`\n grid-area: header;\n padding: 24px 24px 12px 24px;\n `}\n >\n <div\n css={css`\n display: flex;\n align-items: center;\n\n > * {\n margin-right: 10px;\n }\n `}\n >\n {header}\n </div>\n {error}\n </div>\n <div\n css={css`\n grid-area: main;\n display: grid;\n overflow: hidden;\n\n .components-drop-zone__provider {\n overflow: hidden;\n display: grid;\n }\n\n .components-drop-zone {\n z-index: 99;\n }\n `}\n >\n {mainContent}\n </div>\n <div\n css={css`\n display: none;\n grid-area: sidebar;\n padding: 0 16px;\n z-index: 75;\n background: #f3f3f3;\n border-left: 1px solid #ddd;\n overflow: auto;\n\n @media screen and (min-width: 780px) {\n display: block;\n }\n\n .sidebar-content {\n padding: 16px 0;\n }\n `}\n >\n {sidebar}\n </div>\n <div\n css={css`\n grid-area: footer;\n border-top: 1px solid #ddd;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 8px;\n `}\n >\n {footer}\n </div>\n </div>\n </Modal>\n );\n};\n","/** @jsx jsx */\n\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { Button, DropZone, DropZoneProvider, Notice } = wp.components;\nconst { useState, useEffect, Fragment } = wp.element;\nconst { dispatch, useSelect } = wp.data;\n\nimport { css, jsx } from \"@emotion/core\";\n\nimport Sidebar from \"./Sidebar\";\nimport Videos from \"./video/Videos\";\nimport Collections from \"./collections/Collections\";\nimport Header from \"./Header\";\nimport Footer from \"./Footer\";\nimport CollectionHeader from \"./CollectionHeader\";\nimport Uploads from \"./upload/Uploads\";\n\nimport MediaPopupTemplate from \"@/admin/blocks/shared/media/MediaPopupTemplate\";\n\nexport default ({ onClose, onChoose }) => {\n const isPrivate = useSelect((select) =>\n select(\"presto-player/bunny-popup\").isPrivate()\n );\n const uploads = useSelect((select) =>\n select(\"presto-player/bunny-popup\").uploads()\n );\n const currentCollection = useSelect((select) =>\n select(\"presto-player/bunny-popup\").currentCollection()\n );\n const errors = useSelect((select) =>\n select(\"presto-player/bunny-popup\").errors()\n );\n\n useEffect(() => {\n dispatch(\"presto-player/bunny-popup\").setVideosFetched(false);\n dispatch(\"presto-player/bunny-popup\").setCollections([]);\n dispatch(\"presto-player/bunny-popup\").setVideos([]);\n }, []);\n\n const onCloseConfirm = () => {\n if (uploads.length) {\n const r = confirm(\"Discard your uploads?\");\n if (r) {\n onClose();\n dispatch(\"presto-player/bunny-popup\").setUploads([]);\n }\n return;\n }\n onClose();\n };\n\n const addUpload = (files) => {\n dispatch(\"presto-player/bunny-popup\").addUploads(files);\n };\n const removeUpload = (file) => {\n dispatch(\"presto-player/bunny-popup\").removeUpload(file);\n };\n\n /**\n * Modal Title\n *\n * @returns string\n */\n const title = isPrivate\n ? __(\"Private Stream Library\", \"presto-player\")\n : __(\"Public Stream Library\", \"presto-player\");\n\n /**\n * Main Content\n *\n * @returns JSX\n */\n const mainContent = () => {\n return (\n <DropZoneProvider\n css={css`\n overflow: auto;\n display: flex;\n flex-direction: column;\n `}\n >\n <div\n css={css`\n padding: 12px 24px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n `}\n >\n {!!errors.length &&\n errors.map((error) => {\n return (\n <Notice\n css={css`\n margin: 0 0 20px 0;\n `}\n status=\"error\"\n onRemove={() =>\n dispatch(\"presto-player/bunny-popup\").removeError(error)\n }\n >\n {error}\n </Notice>\n );\n })}\n\n {/* Show back button or collections */}\n {!!currentCollection ? <CollectionHeader /> : <Collections />}\n\n <div\n css={css`\n display: flex;\n align-items: stretch;\n `}\n >\n <Videos />\n </div>\n\n <DropZone label={\"Drop files\"} onFilesDrop={addUpload} />\n </div>\n </DropZoneProvider>\n );\n };\n\n /**\n * Modal Header\n */\n const header = (\n <Header\n afterUpload={\n <Uploads\n uploads={uploads}\n removeUpload={removeUpload}\n isPrivate={isPrivate}\n />\n }\n />\n );\n\n const sidebar = <Sidebar />;\n\n /**\n * Modal Footer\n */\n const footer = <Footer onChoose={onChoose} />;\n\n return (\n <MediaPopupTemplate\n title={title}\n header={header}\n mainContent={mainContent()}\n onClose={onCloseConfirm}\n footer={footer}\n sidebar={sidebar}\n />\n );\n};\n","const { __ } = wp.i18n;\nconst { useEffect } = wp.element;\nconst { dispatch } = wp.data;\n\nimport \"./popup/stream/store/store\";\nimport StreamPopup from \"./popup/stream/Popup\";\n\nexport default ({ closePopup, onSelect, isPrivate }) => {\n const onChoose = (video) => {\n video.url = video.playlistURL;\n video.thumbnail = video.thumbnailURL;\n video.preview = video.webPURL;\n onSelect(video);\n };\n\n // set privacy option in store\n useEffect(() => {\n dispatch(\"presto-player/bunny-popup\").setIsPrivate(isPrivate);\n }, [isPrivate]);\n\n // render template\n return (\n <StreamPopup\n onClose={closePopup}\n onChoose={onChoose}\n header={\n isPrivate\n ? __(\"Private Stream Library\", \"presto-player\")\n : __(\"Public Stream Library\", \"presto-player\")\n }\n title={\n isPrivate\n ? __(\"Private Video Stream\", \"presto-player\")\n : __(\"Public Video Stream\", \"presto-player\")\n }\n />\n );\n};\n","const { __ } = wp.i18n;\nconst { useState } = wp.element;\nconst baseUrl = `${prestoPlayer.root}${prestoPlayer.prestoVersionString}bunny/`;\n\nexport default (onRefetch) => {\n const [apikey, setApikey] = useState(\"\");\n const [saveMessage, setSaveMessage] = useState(\"\");\n const [saving, setSaving] = useState(false);\n const [step, setStep] = useState(0);\n const [error, setError] = useState(\"\");\n\n const getError = (errorString) => {\n if (errorString.includes(\"Authorization has been denied\")) {\n return \"Your API key is incorrect. Please double-check to make sure you've copied it correctly.\";\n }\n if (errorString.includes(\"localhost\")) {\n return \"You cannot use a CDN on a local site. Please use Bunny.net on a live, publicly accessible site.\";\n }\n return errorString;\n };\n\n const saveKey = async () => {\n setError(\"\");\n\n try {\n setSaving(true);\n setStep(0);\n setSaveMessage(__(\"Validating API Key...\", \"presto-player\"));\n const { success } = await wp.apiFetch({\n url: `${baseUrl}api-key`,\n method: \"POST\",\n data: {\n api_key: apikey,\n },\n });\n\n if (!success) {\n throw {\n message:\n \"Could not save the API key. Please double check it to make sure it's correct.\",\n };\n }\n } catch (e) {\n setStep(0);\n setError(\n e?.message\n ? getError(e.message)\n : \"Something went wrong. Please try again\"\n );\n return;\n } finally {\n setStep(1);\n setSaving(false);\n setSaveMessage(\"\");\n }\n\n // create storage zone\n try {\n setSaving(true);\n setSaveMessage(\n __(\n \"Setting up storage zones. This make take a few minutes...\",\n \"presto-player\"\n )\n );\n const { id } = await wp.apiFetch({\n url: `${baseUrl}storage-zones`,\n method: \"POST\",\n });\n } catch (e) {\n setStep(0);\n setError(\n e?.message\n ? getError(e.message)\n : \"Something went wrong. Please try again\"\n );\n return;\n } finally {\n setStep(2);\n setSaving(false);\n setSaveMessage(\"\");\n }\n\n // create storage zone\n try {\n setSaving(true);\n setSaveMessage(\n __(\n \"Setting up pull zones. This make take a few minutes...\",\n \"presto-player\"\n )\n );\n const { id } = await wp.apiFetch({\n url: `${baseUrl}pull-zones`,\n method: \"POST\",\n });\n } catch (e) {\n setStep(0);\n setError(\n e?.message\n ? getError(e.message)\n : \"Something went wrong. Please try again\"\n );\n return;\n } finally {\n setStep(3);\n setSaving(false);\n setSaveMessage(\"\");\n }\n\n onRefetch();\n };\n\n const totalSteps = 3;\n\n return { saveKey, setApikey, step, saveMessage, saving, error, totalSteps };\n};\n","const { __ } = wp.i18n;\nconst { useState } = wp.element;\nconst baseUrl = `${prestoPlayer.root}${prestoPlayer.prestoVersionString}bunny/stream/`;\n\nexport default (onRefetch) => {\n const [apikey, setApikey] = useState(\"\");\n const [saveMessage, setSaveMessage] = useState(\"\");\n const [saving, setSaving] = useState(false);\n const [step, setStep] = useState(0);\n const [error, setError] = useState(\"\");\n\n const getError = (errorString) => {\n if (errorString.includes(\"Authorization has been denied\")) {\n return \"Your API key is incorrect. Please double-check to make sure you've copied it correctly.\";\n }\n if (errorString.includes(\"localhost\")) {\n return \"You cannot use a CDN on a local site. Please use Bunny.net on a live, publicly accessible site.\";\n }\n return errorString;\n };\n\n const saveKey = async () => {\n setError(\"\");\n\n try {\n setSaving(true);\n setStep(0);\n setSaveMessage(__(\"Validating API Key...\", \"presto-player\"));\n const { success } = await wp.apiFetch({\n url: `${baseUrl}api-key`,\n method: \"POST\",\n data: {\n api_key: apikey,\n },\n });\n\n if (!success) {\n throw {\n message:\n \"Could not save the API key. Please double check it to make sure it's correct.\",\n };\n }\n } catch (e) {\n setStep(0);\n setError(\n e?.message\n ? getError(e.message)\n : \"Something went wrong. Please try again\"\n );\n return;\n } finally {\n setStep(1);\n setSaving(false);\n setSaveMessage(\"\");\n }\n\n // public library\n try {\n setSaving(true);\n setSaveMessage(\n __(\n \"Setting up public video library. This make take a few moments...\",\n \"presto-player\"\n )\n );\n const { id } = await wp.apiFetch({\n url: `${baseUrl}library`,\n method: \"POST\",\n data: {\n type: \"public\",\n },\n });\n } catch (e) {\n setStep(0);\n setError(\n e?.message\n ? getError(e.message)\n : \"Something went wrong. Please try again\"\n );\n return;\n } finally {\n setStep(2);\n setSaving(false);\n setSaveMessage(\"\");\n }\n\n // private library\n try {\n setSaving(true);\n setSaveMessage(\n __(\n \"Setting up private video library. This make take a few moments...\",\n \"presto-player\"\n )\n );\n await wp.apiFetch({\n url: `${baseUrl}library`,\n method: \"POST\",\n data: {\n type: \"private\",\n },\n });\n } catch (e) {\n setStep(0);\n setError(\n e?.message\n ? getError(e.message)\n : \"Something went wrong. Please try again\"\n );\n return;\n } finally {\n setStep(2);\n setSaving(false);\n setSaveMessage(\"\");\n }\n\n onRefetch();\n };\n\n const totalSteps = 3;\n\n return { saveKey, setApikey, step, saveMessage, saving, error, totalSteps };\n};\n","const { __ } = wp.i18n;\n\nconst {\n Button,\n TextControl,\n Placeholder,\n Flex,\n FlexBlock,\n ExternalLink,\n Spinner,\n FlexItem,\n Notice,\n} = wp.components;\nconst { useEffect } = wp.element;\n\nimport useStorageConnection from \"./useStorageConnection\";\nimport useStreamConnection from \"./useStreamConnection\";\n\nexport default ({ onRefetch, type, autoSubmit }) => {\n const {\n saveKey,\n apikey,\n setApikey,\n saveMessage,\n saving,\n totalSteps,\n step,\n error,\n } =\n type === \"stream\"\n ? useStreamConnection(onRefetch)\n : useStorageConnection(onRefetch);\n\n useEffect(() => {\n if (autoSubmit) {\n saveKey();\n }\n }, [autoSubmit]);\n\n return (\n <Placeholder\n label={__(\"Bunny.net Video\", \"presto-player\")}\n instructions={\n <>\n {__(\n \"Enter your Bunny.net API key, which can be found on your Bunny CDN Account page.\",\n \"presto-player\"\n )}\n &nbsp;\n <ExternalLink href=\"https://bunnycdn.com/dashboard/account\">\n {__(\"Get My API Key\", \"presto-player\")}\n </ExternalLink>\n </>\n }\n >\n {saving ? (\n <Flex>\n <FlexItem>\n <Spinner />\n </FlexItem>\n <FlexBlock>\n {saveMessage}\n <progress\n className=\"presto-progress\"\n max={totalSteps}\n value={step}\n style={{ width: \"100%\" }}\n ></progress>\n </FlexBlock>\n </Flex>\n ) : (\n <form\n onSubmit={(e) => {\n e.preventDefault();\n saveKey();\n }}\n >\n {error && (\n <Flex style={{ width: \"100%\" }}>\n <FlexBlock>\n <Notice status=\"error\" isDismissible={false}>\n {error}\n </Notice>\n </FlexBlock>\n </Flex>\n )}\n <Flex style={{ width: \"100%\", maxWidth: \"400px\" }}>\n <FlexBlock>\n <TextControl\n value={apikey}\n onChange={(apikey) => setApikey(apikey)}\n className={\"presto-link-placeholder-input\"}\n type=\"password\"\n autoComplete=\"off\"\n placeholder={__(\"Your Bunny.net API Key\", \"presto-player\")}\n required\n />\n </FlexBlock>\n <FlexItem>\n <Button isPrimary style={{ marginBottom: \"8px\" }} type=\"submit\">\n {__(\"Next\", \"presto-player\")} &rarr;\n </Button>\n </FlexItem>\n </Flex>\n </form>\n )}\n </Placeholder>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst {\n Button,\n Disabled,\n DropdownMenu,\n Spinner,\n Toolbar,\n withNotices,\n BaseControl,\n Placeholder,\n ToggleControl,\n} = wp.components;\nconst { BlockControls, InspectorControls } = wp.editor;\nconst { __ } = wp.i18n;\nconst { compose } = wp.compose;\nconst { useEffect, useState, Fragment } = wp.element;\nconst { dispatch } = wp.data;\n\nimport { signURL } from \"../../shared/services/bunny\";\n\n// hocs\nimport withPlayerEdit from \"../with-player-edit\";\nimport withPlayerData from \"../with-player-data\";\n\n/**\n * Internal dependencies\n */\nimport TracksEditor from \"@/admin/blocks/shared/tracks/TracksEditor\";\nimport StorageMedia from \"./StorageMedia\";\nimport StreamMedia from \"./StreamMedia\";\nimport APIPlaceholder from \"./APIPlaceholder\";\nimport BlockInspectorControls from \"@/admin/blocks/shared/BlockInspectorControls\";\nimport Player from \"@/admin/blocks/shared/Player\";\n\nexport default compose([withPlayerData(), withPlayerEdit()])(\n withNotices(\n ({\n attributes,\n setAttributes,\n noticeOperations,\n branding,\n isSelected,\n presetData,\n createVideo,\n lockSave,\n unlockSave,\n onRemoveSrc,\n renderKey,\n defaultPreset,\n }) => {\n const {\n poster,\n src,\n id,\n tracks,\n visibility,\n previewSrc,\n thumbnail,\n } = attributes;\n\n const [mediaPopup, setMediaPopup] = useState(\"\");\n const [loading, setLoading] = useState(false);\n\n // What setup screen should we show\n const [setup, setSetup] = useState(\"\");\n const [isSetup, setIsSetup] = useState({\n stream: false,\n storage: false,\n });\n const [disableStream, setDisableStream] = useState(false);\n\n // setup and api\n const [isAPILoaded, setIsAPILoaded] = useState(false);\n const [fetchingSettings, setFetchingSettings] = useState(false);\n const [autoSubmitStream, setAutoSubmitStream] = useState(false);\n\n const userCanReadSettings = wp.data.useSelect((select) =>\n select(\"core\").canUser(\"read\", \"settings\")\n );\n\n // is this private\n const isPrivate = visibility === \"private\";\n\n // is legacy storage disabled\n const disableLegacyStorage =\n prestoPlayerAdmin?.bunny?.disable_legacy_storage;\n\n // set privacy option in store\n useEffect(() => {\n dispatch(\"presto-player/bunny-popup\").setIsPrivate(\n visibility === \"private\"\n );\n }, [visibility]);\n\n useEffect(() => {\n setIsSetup({\n storage: prestoPlayerAdmin?.isSetup?.bunny?.storage,\n stream: prestoPlayerAdmin?.isSetup?.bunny?.stream,\n });\n }, []);\n\n function selectVideo(media, ...args) {\n if (!media.url) {\n // in this case there was an error\n // previous attributes should be removed\n // because they may be temporary blob urls\n setAttributes({ src: undefined, id: undefined });\n return;\n }\n\n // set preset attributes\n setAttributes({\n src: media.url,\n preset: defaultPreset?.id,\n ...(media?.thumbnail ? { thumbnail: media.thumbnail } : {}),\n ...(media?.preview ? { preview: media.preview } : {}),\n });\n\n // create video\n setLoading(true);\n lockSave();\n createVideo({\n src: media.url,\n type: \"bunny\",\n title: media.title,\n ...(media?.guid ? { external_id: media.guid } : {}),\n })\n .catch((e) => {\n setAttributes({ src: \"\" });\n console.error(e);\n })\n .finally(() => {\n unlockSave();\n setLoading(false);\n });\n }\n\n // fetch settings\n const fetchSettings = async () => {\n try {\n const {\n presto_player_bunny_pull_zones,\n presto_player_bunny_storage_zones,\n presto_player_bunny_stream_private,\n presto_player_bunny_stream_public,\n } = await wp.apiFetch({\n path: `wp/v2/settings`,\n });\n setIsAPILoaded(true);\n\n if (!presto_player_bunny_stream_private) {\n setDisableStream(true);\n }\n\n // is this set up?\n const isSetup = (option) => {\n return !!(option?.private_id && option?.public_id);\n };\n\n const storageSetup =\n isSetup(presto_player_bunny_pull_zones) ||\n isSetup(presto_player_bunny_storage_zones);\n const streamSetup =\n presto_player_bunny_stream_private?.pull_zone_url &&\n presto_player_bunny_stream_public?.pull_zone_url;\n\n setIsSetup({\n storage: storageSetup,\n stream: streamSetup,\n });\n\n if (!storageSetup && !streamSetup) {\n setSetup(\"stream\");\n } else {\n setSetup(\"\");\n }\n } finally {\n setFetchingSettings(false);\n }\n };\n\n // mounted\n useEffect(() => {\n if (userCanReadSettings) {\n fetchSettings();\n } else {\n setIsAPILoaded(true);\n }\n }, [userCanReadSettings]);\n\n const setPreview = async () => {\n if (isPrivate) {\n let previewSrc = await signURL(src);\n setAttributes({ previewSrc });\n } else {\n setAttributes({ previewSrc: src });\n }\n };\n useEffect(() => {\n setPreview();\n }, [src]);\n\n const setThumbnail = async () => {\n if (isPrivate) {\n let previewThumbnail = await signURL(thumbnail);\n if (previewThumbnail) {\n setAttributes({ previewThumbnail });\n }\n } else {\n setAttributes({ previewThumbnail: thumbnail });\n }\n };\n useEffect(() => {\n setThumbnail();\n }, [thumbnail]);\n\n const placeholderButtons = () => {\n return (\n <Fragment>\n {isSetup.stream && (\n <Button isPrimary onClick={() => setMediaPopup(\"stream\")}>\n {isPrivate\n ? __(\"Add/Select Private Video Stream\", \"presto-player\")\n : __(\"Add/Select Video Stream\", \"presto-player\")}\n </Button>\n )}\n\n {!disableLegacyStorage && isSetup.storage && (\n <Button\n isSecondary={isSetup.stream}\n isPrimary={!isSetup.stream}\n onClick={() => setMediaPopup(\"storage\")}\n >\n {isPrivate\n ? __(\"Add/Select Private Video (Classic)\", \"presto-player\")\n : __(\"Add/Select Video (Classic)\", \"presto-player\")}\n </Button>\n )}\n\n {!isSetup.stream && !disableStream && isSetup.storage && (\n <Button\n isSecondary\n onClick={() => {\n setAutoSubmitStream(true);\n setSetup(\"stream\");\n }}\n >\n {__(\"Enable Bunny.net Stream!\", \"presto-player\")}\n </Button>\n )}\n\n {!!userCanReadSettings && moreButtons()}\n </Fragment>\n );\n };\n\n const moreButtons = () => {\n const controls = [];\n !disableStream &&\n controls.push({\n title: isSetup.stream\n ? __(\"Reconnect Stream\", \"presto-player\")\n : __(\"Connect Stream\", \"presto-player\"),\n onClick: () => {\n setSetup(\"stream\");\n setAutoSubmitStream(false);\n },\n });\n\n !disableLegacyStorage &&\n controls.push({\n title: isSetup.storage\n ? __(\"Reconnect Storage (Classic)\", \"presto-player\")\n : __(\"Connect Storage (Classic)\", \"presto-player\"),\n onClick: () => setSetup(\"storage\"),\n });\n\n return (\n <DropdownMenu\n icon=\"ellipsis\"\n label={__(\"Connection Options\", \"presto-player\")}\n controls={controls}\n />\n );\n };\n\n if (loading || !isAPILoaded) {\n return (\n <Placeholder className=\"presto-player__placeholder is-loading\">\n <Spinner />\n </Placeholder>\n );\n }\n\n if (setup === \"stream\") {\n return (\n <APIPlaceholder\n type=\"stream\"\n autoSubmit={autoSubmitStream}\n onRefetch={() => {\n setIsAPILoaded(false);\n fetchSettings();\n }}\n />\n );\n }\n\n if (setup === \"storage\") {\n return (\n <APIPlaceholder\n type=\"storage\"\n onRefetch={() => {\n setIsAPILoaded(false);\n fetchSettings();\n }}\n />\n );\n }\n\n if (!id) {\n return (\n <div>\n <Placeholder\n label={\n isPrivate\n ? __(\"Bunny.net Private Video\", \"presto-player\")\n : __(\"Bunny.net Video\", \"presto-player\")\n }\n icon={\n isPrivate ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"></path>\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <polyline points=\"8 17 12 21 16 17\"></polyline>\n <line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line>\n <path d=\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"></path>\n </svg>\n )\n }\n instructions={\n <>{__(\"Add or select a Bunny.net video\", \"presto-player\")}</>\n }\n >\n <BaseControl className=\"presto-player__placeholder-control\">\n <ToggleControl\n label=\"Private Video\"\n help={\n isPrivate\n ? \"Video is only accessible to those who are logged in.\"\n : \"Video is accessible to everyone.\"\n }\n checked={isPrivate}\n onChange={(isPrivate) => {\n setAttributes({\n visibility: isPrivate ? \"private\" : \"public\",\n });\n }}\n />\n </BaseControl>\n {placeholderButtons()}\n </Placeholder>\n\n {mediaPopup === \"storage\" && (\n <StorageMedia\n isPrivate={isPrivate}\n closePopup={() => setMediaPopup(\"\")}\n noticeOperations={noticeOperations}\n onSelect={selectVideo}\n />\n )}\n\n {mediaPopup === \"stream\" && (\n <StreamMedia\n isPrivate={isPrivate}\n closePopup={() => setMediaPopup(\"\")}\n noticeOperations={noticeOperations}\n onSelect={selectVideo}\n />\n )}\n </div>\n );\n }\n\n return (\n <>\n <BlockControls>\n <TracksEditor\n tracks={tracks}\n onChange={(newTracks) => {\n setAttributes({ tracks: newTracks });\n }}\n />\n <Toolbar>\n <Button onClick={() => onRemoveSrc()}>\n {__(\"Replace\", \"presto-player\")}\n </Button>\n </Toolbar>\n </BlockControls>\n\n <InspectorControls>\n <BlockInspectorControls\n setAttributes={setAttributes}\n attributes={attributes}\n />\n </InspectorControls>\n\n <figure className=\"wp-block-video\">\n {/*\n Disable the video tag so the user clicking on it won't play the\n video when the controls are enabled.\n */}\n <Disabled>\n <Player\n poster={poster}\n src={previewSrc}\n id={id}\n type={\"bunny\"}\n attributes={attributes}\n setAttributes={setAttributes}\n preset={presetData}\n branding={branding}\n key={renderKey}\n />\n </Disabled>\n </figure>\n </>\n );\n }\n )\n);\n","const { __ } = wp.i18n;\nimport edit from \"./edit\";\nimport blockOptions from \"../block-options\";\n\n/**\n * Block Name\n */\nexport const name = \"presto-player/bunny\";\n\n/**\n * Block Options\n */\nexport const options = {\n ...blockOptions,\n\n attributes: {\n ...blockOptions.attributes,\n ...{\n thumbnail: {\n type: String,\n default: \"\",\n },\n preview: {\n type: String,\n default: \"\",\n },\n },\n },\n\n premium: true,\n\n title: __(\"Presto Bunny.net Video\", \"presto-player\"),\n\n description: __(\"Serve video through Bunny.net CDN.\", \"presto-player\"),\n\n variations: [\n {\n name: \"public\",\n isDefault: true,\n title: __(\"Presto Bunny.net Video\", \"presto-player\"),\n description: __(\n \"Serve public video through Bunny.net CDN.\",\n \"presto-player\"\n ),\n attributes: { visibility: \"public\" },\n },\n {\n name: \"private\",\n title: __(\"Presto Bunny.net Private Video\", \"presto-player\"),\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"></path>\n </svg>\n ),\n description: __(\n \"Serve private, secure video through Bunny.net CDN.\",\n \"presto-player\"\n ),\n attributes: { visibility: \"private\" },\n },\n ],\n\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <polyline points=\"8 17 12 21 16 17\"></polyline>\n <line x1=\"12\" y1=\"12\" x2=\"12\" y2=\"21\"></line>\n <path d=\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"></path>\n </svg>\n ),\n\n edit,\n};\n","/**\n * External dependencies\n */\n\nimport classnames from \"classnames\";\nconst baseCurrentUrl = window.location.href;\nimport helpers from \"./helpers\";\n\n/**\n * WordPress dependencies\n */\nimport { Button, Placeholder, withFilters } from \"@wordpress/components\";\nimport { __ } from \"@wordpress/i18n\";\nimport { useState, useEffect } from \"@wordpress/element\";\nimport { useSelect } from \"@wordpress/data\";\nimport {\n MediaUpload,\n MediaUploadCheck,\n URLPopover,\n} from \"@wordpress/block-editor\";\n\nconst InsertFromURLPopover = ({ src, onChange, onSubmit, onClose }) => (\n <URLPopover onClose={onClose}>\n <form\n className=\"block-editor-media-placeholder__url-input-form\"\n onSubmit={onSubmit}\n >\n <input\n data-cy=\"url-input\"\n className=\"block-editor-media-placeholder__url-input-field\"\n type=\"url\"\n aria-label={__(\"URL\", \"presto-player\")}\n placeholder={__(\"Paste an mp3 URL\", \"presto-player\")}\n onChange={onChange}\n value={src}\n />\n <Button\n data-cy=\"url-submit\"\n className=\"block-editor-media-placeholder__url-input-submit-button\"\n icon={\"editor-break\"}\n label={__(\"Apply\", \"presto-player\")}\n type=\"submit\"\n />\n </form>\n </URLPopover>\n);\n\nexport function MediaPlaceholder({\n value = {},\n allowedTypes = [],\n className,\n icon,\n url = true,\n labels = {},\n mediaPreview,\n notices,\n isAppender,\n isPrivate,\n addToGallery,\n onSelect,\n onCancel,\n onSelectURL,\n onDoubleClick,\n children,\n allowURLs,\n}) {\n const mediaUpload = useSelect((select) => {\n const { getSettings } = select(\"core/block-editor\");\n return getSettings().mediaUpload;\n }, []);\n\n const [src, setSrc] = useState(\"\");\n const [isURLInputVisible, setIsURLInputVisible] = useState(false);\n\n useEffect(() => {\n setSrc(value?.src ?? \"\");\n }, [value]);\n\n const onChangeSrc = (event) => {\n setSrc(event.target.value);\n };\n\n const openURLInput = () => {\n setIsURLInputVisible(true);\n };\n\n const closeURLInput = () => {\n setIsURLInputVisible(false);\n };\n\n const onSubmitSrc = (event) => {\n event.preventDefault();\n if (src && onSelectURL) {\n onSelectURL(src);\n closeURLInput();\n }\n };\n\n const renderPlaceholder = (content, onClick) => {\n let { instructions, title } = labels;\n\n if (!mediaUpload && !onSelectURL) {\n instructions = __(\n \"To edit this block, you need permission to upload media.\",\n \"presto-player\"\n );\n }\n\n // set class names\n const placeholderClassName = classnames(\n \"block-editor-media-placeholder\",\n className,\n {\n \"is-appender\": isAppender,\n }\n );\n\n return (\n <Placeholder\n icon={icon}\n label={title}\n instructions={instructions}\n className={placeholderClassName}\n notices={notices}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n preview={mediaPreview}\n >\n {children}\n {content}\n </Placeholder>\n );\n };\n\n const renderCancelLink = () => {\n return (\n onCancel && (\n <Button\n className=\"block-editor-media-placeholder__cancel-button\"\n title={__(\"Cancel\", \"presto-player\")}\n isLink\n onClick={onCancel}\n >\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n )\n );\n };\n\n const renderUrlSelectionUI = () => {\n return (\n onSelectURL && (\n <div className=\"block-editor-media-placeholder__url-input-container\">\n {url && isPrivate === false && (\n <Button\n className=\"block-editor-media-placeholder__button\"\n onClick={openURLInput}\n isPressed={isURLInputVisible}\n isTertiary\n >\n {__(\"Audio URL\", \"presto-player\")}\n </Button>\n )}\n {isURLInputVisible && (\n <InsertFromURLPopover\n src={src}\n onChange={onChangeSrc}\n onSubmit={onSubmitSrc}\n onClose={closeURLInput}\n />\n )}\n </div>\n )\n );\n };\n\n const renderMediaUploadChecked = () => {\n const mediaLibraryButton = (\n <MediaUpload\n title={\n isPrivate\n ? __(\"Select or Upload Private Audio\", \"presto-player\")\n : __(\"Select or Upload Audio\", \"presto-player\")\n }\n addToGallery={addToGallery}\n gallery={false}\n multiple={false}\n onSelect={(event) => {\n // set private/public url params\n helpers.unsetUrlParams();\n onSelect(event);\n }}\n onClose={() => {\n // unset private/public url params\n helpers.unsetUrlParams();\n }}\n allowedTypes={allowedTypes}\n value={Array.isArray(value) ? value.map(({ id }) => id) : value.id}\n render={({ open }) => {\n return (\n <Button\n isPrimary\n onClick={(event) => {\n event.stopPropagation();\n helpers.unsetUrlParams();\n if (isPrivate) {\n helpers.setUrlPrivate(baseCurrentUrl);\n } else {\n helpers.setUrlPublic(baseCurrentUrl);\n }\n open();\n }}\n >\n {isPrivate\n ? __(\"Add/Select Private Audio\", \"presto-player\")\n : __(\"Add/Select Audio\", \"presto-player\")}\n </Button>\n );\n }}\n />\n );\n\n if (mediaUpload) {\n const content = (\n <>\n {mediaLibraryButton}\n {!!allowURLs && renderUrlSelectionUI()}\n {renderCancelLink()}\n </>\n );\n return renderPlaceholder(content);\n }\n\n return renderPlaceholder(mediaLibraryButton);\n };\n\n return (\n <MediaUploadCheck fallback={renderPlaceholder(renderUrlSelectionUI())}>\n {renderMediaUploadChecked()}\n </MediaUploadCheck>\n );\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters(\"editor.MediaPlaceholder\")(MediaPlaceholder);\n","import MediaPlaceholder from \"@/admin/blocks/shared/audio-placeholder\";\nconst { __ } = wp.i18n;\nconst { withNotices, BaseControl, ToggleControl, Notice } = wp.components;\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\nimport { dispatch } from \"@wordpress/data\";\n\nconst ALLOWED_MEDIA_TYPES = [\"audio\"];\n\nexport default ({\n attributes,\n setAttributes,\n onSelectURL,\n onSelect,\n children,\n}) => {\n const { visibility } = attributes;\n const isPrivate = visibility === \"private\";\n\n return (\n <MediaPlaceholder\n icon={\n isPrivate ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect>\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path>\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n className=\"presto-block-icon\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3\"\n />\n </svg>\n )\n }\n labels={{\n title: __(\"Presto Audio\", \"presto-player\"),\n instructions: __(\n \"Upload a audio file, or pick one from your media library.\",\n \"presto-player\"\n ),\n }}\n accept=\"audio/*\"\n setAttributes={setAttributes}\n allowedTypes={ALLOWED_MEDIA_TYPES}\n switcher={true}\n isPrivate={isPrivate}\n allowURLs={!isPrivate}\n onSelectURL={onSelectURL}\n onSelect={onSelect}\n value={attributes}\n allowURLs={true}\n onError={() => console.log(\"error\")}\n >\n <div style={{ width: \"100%\" }}>\n <BaseControl className=\"presto-player__placeholder-control\">\n <ToggleControl\n label={\n <div>\n {__(\"Make Private\", \"presto-player\")}{\" \"}\n {!prestoPlayer?.isPremium && <ProBadge />}\n </div>\n }\n help={\n isPrivate\n ? __(\n \"This audio is only accessible to those who are logged in.\",\n \"presto-player\"\n )\n : __(\n \"This audio is currently accessible to everyone.\",\n \"presto-player\"\n )\n }\n checked={isPrivate}\n onChange={(isPrivate) => {\n if (!prestoPlayer?.isPremium) {\n dispatch(\"presto-player/player\").setProModal(true);\n return;\n }\n setAttributes({\n visibility: isPrivate ? \"private\" : \"public\",\n });\n }}\n />\n </BaseControl>\n\n {!!children && <div style={{ width: \"100%\" }}>{children}</div>}\n\n {!!isPrivate && (\n <Notice status=\"warning\" isDismissible={false}>\n <div>\n <div>\n <strong>{__(\"Note\", \"presto-player\")}</strong>\n </div>\n {__(\n \"Private audio uses php to stream your audio. Keep in mind this will use up disk space and bandwidth so it may not be an appropriate choice for some hosts.\",\n \"presto-player\"\n )}\n </div>\n </Notice>\n )}\n </div>\n </MediaPlaceholder>\n );\n};\n","import { __ } from \"@wordpress/i18n\";\nimport { Disabled } from \"@wordpress/components\";\nimport { PrestoCtaOverlayUi, PrestoEmailOverlayUi } from \"@presto-player/react\";\nimport { timeToSeconds } from \"../../util\";\nimport Player from \"../Player\";\nimport { useEffect, useState } from \"@wordpress/element\";\n\nexport default ({\n state,\n branding,\n menu,\n src,\n poster,\n currentTime,\n preload,\n mediaTitle,\n overlays,\n isDisabled = true,\n}) => {\n const [renderKey, setRenderKey] = useState(1);\n const { email_collection, cta } = state;\n\n useEffect(() => {\n setRenderKey(renderKey + 1);\n }, [\n state.skin,\n state[\"play-large\"],\n state.rewind,\n state.play,\n state[\"fast-forward\"],\n state.progress,\n state[\"current-time\"],\n state.mute,\n state.volume,\n state.speed,\n state.pip,\n state.fullscreen,\n state.captions,\n state.hide_logo,\n ]);\n\n const previews = {\n email: !!email_collection?.enabled && (\n <PrestoEmailOverlayUi\n className=\"email-overlay\"\n slot=\"player-end\"\n headline={email_collection?.headline}\n style={{\n \"--presto-player-email-border-radiuss\": `${email_collection?.button_radius}px`,\n \"--plyr-color-main\": state?.background_color || branding?.color,\n ...(email_collection.button_color\n ? {\n \"--presto-player-button-color\": `${email_collection.button_color}`,\n }\n : {}),\n ...(email_collection.button_text_color\n ? {\n \"--presto-player-button-text\": `${email_collection.button_text_color}`,\n }\n : {}),\n }}\n defaultHeadline={__(\"Enter your email to play.\", \"presto-player\")}\n bottomText={email_collection?.bottom_text}\n allowSkip={email_collection?.allow_skip}\n skipText={__(\"Skip\", \"presto-player\")}\n buttonText={email_collection?.button_text}\n placeholder={__(\"Email address\", \"presto-player\")}\n i18n={window.prestoPlayer.i18n}\n type={\"audio\"}\n />\n ),\n cta: !!cta?.enabled && (\n <PrestoCtaOverlayUi\n className=\"cta-overlay\"\n style={{\n \"--presto-player-button-border-radius\": `${cta.button_radius}px`,\n ...(cta?.background_opacity\n ? {\n \"--presto-player-cta-background-opacity\": `${\n cta?.background_opacity / 100\n }`,\n }\n : {}),\n ...(cta.button_color\n ? {\n \"--presto-player-button-color\": `${cta.button_color}`,\n }\n : {}),\n ...(cta.button_text_color\n ? {\n \"--presto-player-button-text\": `${cta.button_text_color}`,\n }\n : {}),\n }}\n slot=\"player-end\"\n headline={cta?.headline}\n bottom-text={cta?.bottom_text}\n button-link={cta?.button_link}\n allow-skip={cta?.percentage !== 100 && cta?.show_skip}\n borderRadius={cta?.border_radius}\n allow-rewatch={cta?.percentage === 100 && cta?.show_rewatch}\n skip-text={__(\"Skip\", \"presto-player\")}\n show-button={cta?.show_button}\n button-text={cta?.button_text}\n i18n={window.prestoPlayer.i18n}\n type={\"audio\"}\n />\n ),\n };\n\n return (\n <Disabled isDisabled={isDisabled} className=\"disable-player\">\n <div className=\"presto-player__wrapper\">\n <Player\n src={src || \"http://something.mp3\"}\n classes={`\n ${menu === \"cta\" && !!cta?.enabled && \"cta-active\"} \n ${\n menu === \"email\" && !!email_collection?.enabled && \"email-active\"\n }`}\n preset={state}\n branding={branding}\n i18n={prestoPlayerAdmin?.i18n}\n preload={preload}\n attributes={{\n chapters: [],\n poster: poster,\n title: mediaTitle,\n }}\n type={\"audio\"}\n currentTime={currentTime ? timeToSeconds(currentTime) : \"\"}\n overlays={overlays}\n key={renderKey}\n adminPreview={previews?.[menu] || \"\"}\n />\n </div>\n </Disabled>\n );\n};\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n ToggleControl,\n BaseControl,\n HorizontalRule,\n __experimentalAlignmentMatrixControl: AlignmentMatrixControl,\n SelectControl,\n} = wp.components;\n\nexport default function ({ state, updateState, className }) {\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Behavior\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl>\n <ToggleControl\n label={__(\"Save Play Position\", \"presto-player\")}\n help={__(\n \"Saves the user's play position so when they come back to the page they can continue the audio from where they left off.\",\n \"presto-player\"\n )}\n onChange={(save_player_position) => {\n updateState({ save_player_position });\n }}\n checked={state.save_player_position}\n />\n </BaseControl>\n <BaseControl>\n <ToggleControl\n label={__(\"Focus Mode\", \"presto-player\")}\n help={__(\n \"Play only when tab is visible and audio is in viewport.\",\n \"presto-player\"\n )}\n onChange={(play_video_viewport) => {\n updateState({ play_video_viewport });\n }}\n checked={state.play_video_viewport}\n />\n </BaseControl>\n\n <BaseControl>\n <ToggleControl\n label={__(\"Sticky On Scroll\", \"presto-player\")}\n help={__(\n \"Stick audios to the side of the screen when the page is scrolled and the audio is playing.\",\n \"presto-player\"\n )}\n onChange={(sticky_scroll) => {\n updateState({ sticky_scroll });\n }}\n checked={state.sticky_scroll}\n />\n </BaseControl>\n\n <BaseControl>\n <SelectControl\n label={__(\"On Audio End\", \"presto-player\")}\n value={state.on_video_end}\n options={[\n {\n value: \"select\",\n label: __(\"Select\", \"presto-player\"),\n },\n {\n value: \"loop\",\n label: __(\"Loop\", \"presto-player\"),\n },\n {\n value: \"go-to-start\",\n label: __(\"Go to start\", \"presto-player\"),\n },\n ]}\n onChange={(on_video_end) => {\n updateState({ on_video_end });\n }}\n />\n </BaseControl>\n </div>\n );\n}\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { ToggleControl, BaseControl } = wp.components;\n\nexport default function ({ state, updateState, className }) {\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Controls\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl className=\"presto-player__control--large-play\">\n <ToggleControl\n label={__(\"Large Play Button\", \"presto-player\")}\n help={__(\n \"Adds a large play button over the top of the player.\",\n \"presto-player\"\n )}\n onChange={(play) => {\n updateState({ \"play-large\": play });\n }}\n checked={state[\"play-large\"]}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--rewind\">\n <ToggleControl\n label={__(\"Rewind\", \"presto-player\")}\n help={__(\n \"Adds a 10 second rewind button to the player.\",\n \"presto-player\"\n )}\n onChange={(rewind) => {\n updateState({ rewind });\n }}\n checked={state.rewind}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--play\">\n <ToggleControl\n label={__(\"Small Play Button\", \"presto-player\")}\n help={__(\n \"Adds a small play button to the bottom of the player.\",\n \"presto-player\"\n )}\n onChange={(play) => {\n updateState({ play });\n }}\n checked={state.play}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--fast-forward\">\n <ToggleControl\n label={__(\"Fast Forward\", \"presto-player\")}\n help={__(\n \"Adds a 10 second rewind button to the player.\",\n \"presto-player\"\n )}\n onChange={(value) => {\n updateState({ \"fast-forward\": value });\n }}\n checked={state[\"fast-forward\"]}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--progress\">\n <ToggleControl\n label={__(\"Progress Bar\", \"presto-player\")}\n help={__(\"Shows a seekable progress bar.\", \"presto-player\")}\n onChange={(progress) => {\n updateState({ progress });\n }}\n checked={state.progress}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--current-time\">\n <ToggleControl\n label={__(\"Current Time\", \"presto-player\")}\n help={__(\"Shows the audio timestamp.\", \"presto-player\")}\n onChange={(value) => {\n updateState({ \"current-time\": value });\n }}\n checked={state[\"current-time\"]}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--volume\">\n <ToggleControl\n label={__(\"Volume\", \"presto-player\")}\n help={__(\"Shows a volume bar.\", \"presto-player\")}\n onChange={(value) => {\n updateState({ volume: value, mute: value });\n }}\n checked={state.volume}\n />\n </BaseControl>\n <BaseControl className=\"presto-player__control--speed\">\n <ToggleControl\n label={__(\"Speed\", \"presto-player\")}\n help={__(\"Shows playback speed controls.\", \"presto-player\")}\n onChange={(speed) => {\n updateState({ speed });\n }}\n checked={state.speed}\n />\n </BaseControl>\n </div>\n );\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from \"@wordpress/i18n\";\nimport {\n ToggleControl,\n BaseControl,\n RangeControl,\n Flex,\n} from \"@wordpress/components\";\nimport ColorPopup from \"../components/ColorPopup\";\n\nexport default function ({ state, updateState, className }) {\n return (\n <div className={className}>\n <BaseControl>\n <h3>{__(\"Style\", \"presto-player\")}</h3>\n </BaseControl>\n <BaseControl>\n <RangeControl\n label={__(\"Round Corners\", \"presto-player\")}\n help={__(\"Player border radius size.\", \"presto-player\")}\n value={state?.border_radius || 0}\n onChange={(border_radius) => updateState({ border_radius })}\n min={0}\n max={25}\n />\n </BaseControl>\n\n <BaseControl>\n <Flex>\n <BaseControl.VisualLabel>\n <p>{__(\"Background Color\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n\n <ColorPopup\n color={state?.background_color || \"#000000\"}\n setColor={(value) => {\n updateState({ background_color: value.hex });\n }}\n />\n </Flex>\n </BaseControl>\n <BaseControl>\n <Flex>\n <BaseControl.VisualLabel>\n <p>{__(\"Control Color\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n\n <ColorPopup\n color={state?.control_color || \"#000000\"}\n setColor={(value) => {\n updateState({ control_color: value.hex });\n }}\n />\n </Flex>\n </BaseControl>\n </div>\n );\n}\n","/** @jsx jsx */\n/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst {\n TextControl,\n BaseControl,\n Icon,\n Notice,\n Button,\n Flex,\n FlexItem,\n SelectControl,\n FlexBlock,\n Modal,\n} = wp.components;\nconst { useState, useEffect } = wp.element;\nconst { useSelect, dispatch } = wp.data;\n\nimport { snackbarNotice } from \"@/admin/blocks/util\";\nimport Menu from \"@/admin/ui/Menu\";\nimport { css, jsx } from \"@emotion/core\";\nimport Preview from \"./Preview\";\nimport Behavior from \"./Behavior\";\nimport Controls from \"./Controls\";\nimport Style from \"./Style\";\nimport ActionBar from \"../presets/ActionBar\";\nimport CTA from \"../presets/CTA\";\nimport Email from \"../presets/Email\";\n\nfunction EditPlayerPreset({\n type = \"new\",\n closeModal,\n addPreset,\n onSave,\n updatePreset,\n name = \"\",\n attributes,\n preset = {\n \"play-large\": true,\n rewind: true,\n play: true,\n \"fast-forward\": true,\n progress: true,\n \"current-time\": true,\n mute: true,\n volume: true,\n speed: false,\n pip: false,\n // behavior\n save_player_position: false,\n reset_on_end: false,\n sticky_scroll: false,\n // style\n hide_logo: false,\n border_radius: 0,\n skin: \"default\",\n background_color: \"\",\n control_color: \"\",\n\n // features\n cta: {},\n email_collection: {},\n action_bar: {},\n },\n}) {\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState(\"\");\n const [menu, setMenu] = useState(\"\");\n const [thisName, setThisName] = useState(name);\n const [state, setState] = useState(preset);\n const branding = useSelect((select) => {\n return select(\"presto-player/player\").branding();\n });\n\n const [value, setValue] = useState(\"\");\n\n const genericError = {\n message: __(\n \"The preset could not be saved. Please reload the page and try again.\",\n \"presto-player\"\n ),\n };\n\n //you tube feature\n const youtube = useSelect((select) => {\n return select(\"presto-player/player\").youtube();\n });\n\n useEffect(() => {\n setValue(youtube.channel_id);\n }, [youtube?.channel_id]);\n\n // update state\n const updateState = (updated = {}) => {\n setState({ ...state, ...updated });\n };\n\n const putPreset = async () => {\n setLoading(true);\n try {\n const data = {\n ...state,\n ...{ name: thisName },\n };\n let saved = await wp.apiFetch({\n method: \"POST\",\n url: wp.url.addQueryArgs(\n `${prestoPlayer.root}${prestoPlayer.prestoVersionString}audio-preset/${preset.id}`,\n { _method: \"PUT\" }\n ),\n data,\n });\n\n if (!saved) {\n throw genericError;\n }\n\n // update or create here\n updatePreset(saved);\n closeModal();\n !!onSave && onSave(saved);\n snackbarNotice({ message: __(\"Preset updated!\", \"presto-player\") });\n } catch (e) {\n setError(e?.message ? e.message : genericError);\n } finally {\n setLoading(false);\n }\n\n // youtube id save\n dispatch(\"presto-player/player\").updateYoutube({ channel_id: value });\n\n const data = {\n ...youtube,\n ...{ channel_id: value },\n };\n\n try {\n let response = await wp.apiFetch({\n path: \"wp/v2/settings\",\n method: \"POST\",\n data: {\n presto_player_youtube: data,\n },\n });\n if (response?.presto_player_youtube) {\n dispatch(\"presto-player/player\").setYoutube(\n response?.presto_player_youtube\n );\n onClose();\n }\n } catch (e) {\n console.log(e);\n }\n };\n\n const createPreset = async () => {\n setLoading(true);\n try {\n let saved = await wp.apiFetch({\n method: \"POST\",\n url:\n prestoPlayer.root + prestoPlayer.prestoVersionString + \"audio-preset\",\n data: {\n ...{ name: thisName },\n ...state,\n },\n });\n if (!saved) {\n throw genericError;\n }\n\n // update or create here\n addPreset(saved);\n closeModal();\n !!onSave && onSave(saved);\n snackbarNotice({ message: __(\"Preset created!\", \"presto-player\") });\n } catch (e) {\n setError(e?.message ? e.message : genericError);\n } finally {\n setLoading(false);\n }\n };\n\n // validate and save\n const save = () => {\n if (!thisName) {\n setError(__(\"You must enter a name for the preset.\", \"presto-player\"));\n return;\n }\n return type === \"edit\" ? putPreset() : createPreset();\n };\n\n const tabs = [\n {\n name: \"controls\",\n title: __(\"Controls\", \"presto-player\"),\n icon: <Icon icon=\"admin-settings\" />,\n component: <Controls updateState={updateState} state={state} />,\n },\n {\n name: \"behavior\",\n title: __(\"Behavior\", \"presto-player\"),\n icon: <Icon icon=\"admin-generic\" />,\n component: <Behavior updateState={updateState} state={state} />,\n },\n {\n name: \"style\",\n title: __(\"Style\", \"presto-player\"),\n icon: <Icon icon=\"admin-customizer\" />,\n component: <Style updateState={updateState} state={state} />,\n },\n {\n name: \"email\",\n title: __(\"Email Capture\", \"presto-player\"),\n icon: <Icon icon=\"email\" />,\n component: <Email updateState={updateState} state={state} />,\n },\n {\n name: \"cta\",\n title: __(\"Call To Action\", \"presto-player\"),\n icon: <Icon icon=\"megaphone\" />,\n component: <CTA updateState={updateState} state={state} />,\n },\n {\n name: \"action_bar\",\n title: __(\"Action Bar\", \"presto-player\"),\n icon: <Icon icon=\"cover-image\" />,\n component: (\n <ActionBar\n updateState={updateState}\n state={state}\n value={value}\n setValue={setValue}\n />\n ),\n },\n ];\n\n return (\n <Modal\n title={\n type == \"edit\"\n ? __(\"Edit A Audio Preset\", \"presto-player\")\n : __(\"Create A New Audio Preset\", \"presto-player\")\n }\n onRequestClose={closeModal}\n className=\"presto-player__modal-presets\"\n overlayClassName=\"presto-player__modal-presets-overlay\"\n >\n <div className=\"presto-player__preset-options\" data-cy=\"preset-modal\">\n <TextControl\n value={thisName}\n hideLabelFromVision={true}\n label={__(\"Preset Name\", \"presto-player\")}\n onChange={(name) => setThisName(name)}\n placeholder={__(\"Enter a preset name...\", \"presto-player\")}\n className=\"presto-player__modal--style-name\"\n autoFocus\n />\n\n <Flex align=\"stretch\" className=\"presto-player__style-preview-area\">\n <FlexItem className=\"presto-player__style-sidebar\">\n <div>\n <Menu\n items={tabs}\n title={__(\"Customize\", \"presto-player\")}\n onSelect={setMenu}\n >\n {(item) => item.component}\n </Menu>\n </div>\n </FlexItem>\n <FlexBlock className=\"presto-player__style-preview-panel\">\n <div\n style={{ position: \"absolute\", top: 0, left: 0, padding: \"20px\" }}\n >\n <SelectControl\n label={__(\"Skin\", \"presto-player\")}\n labelPosition=\"side\"\n value={state?.skin}\n hideLabelFromVision={true}\n options={[\n { label: __(\"Basic\", \"presto-player\"), value: \"default\" },\n { label: __(\"Stacked\", \"presto-player\"), value: \"stacked\" },\n ]}\n onChange={(skin) => {\n updateState({ skin });\n }}\n />\n </div>\n {/*\n Disable the audio tag so the user clicking on it won't play the\n audio when the controls are enabled.\n\t\t\t\t*/}\n\n <Preview\n poster={attributes.poster}\n src={attributes.src}\n state={state}\n branding={branding}\n menu={menu}\n mediaTitle={attributes.title}\n />\n </FlexBlock>\n </Flex>\n\n <br />\n\n {error && (\n <BaseControl>\n <Notice\n className=\"presto-player__modal--error-notice\"\n status=\"error\"\n isDismissible={false}\n style={{ margin: 0 }}\n >\n {error.replace(/(<([^>]+)>)/gi, \"\")}\n </Notice>\n </BaseControl>\n )}\n <div\n css={css`\n display: flex;\n align-items: center;\n justify-content: space-between;\n `}\n >\n <div\n css={css`\n opacity: 0.5;\n font-size: 12px;\n `}\n >\n Preset ID: {preset.id}\n </div>\n <div>\n <Button isTertiary onClick={closeModal} style={{ margin: \"0 6px\" }}>\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n <Button\n isPrimary\n isBusy={loading}\n disabled={loading}\n onClick={save}\n data-cy=\"submit-preset\"\n >\n {type == \"edit\"\n ? __(\"Update Preset\", \"presto-player\")\n : __(\"Create Preset\", \"presto-player\")}\n </Button>\n </div>\n </div>\n </div>\n </Modal>\n );\n}\nexport default EditPlayerPreset;\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { Icon, Spinner, Modal, Button, ButtonGroup } = wp.components;\nconst { useState } = wp.element;\n\nexport default function ({\n preset,\n index,\n isActive,\n remove,\n setPreset,\n onEdit,\n}) {\n const [loading, setLoading] = useState(false);\n const [confirmOpen, setConfirmOpen] = useState(false);\n\n const openConfirm = () => setConfirmOpen(true);\n const closeConfirm = () => setConfirmOpen(false);\n\n const untrashPreset = async () => {};\n\n const trashPreset = async () => {\n // remove unsaved\n if (!preset.id) {\n remove(preset);\n return;\n }\n\n try {\n setLoading(true);\n let deleted = await wp.apiFetch({\n method: \"POST\",\n url: wp.url.addQueryArgs(\n `${prestoPlayer.root}${prestoPlayer.prestoVersionString}audio-preset/${preset.id}`,\n { _method: \"DELETE\" }\n ),\n });\n if (deleted) {\n remove(preset);\n wp.data.dispatch(\"core/notices\").createNotice(\n \"success\", // Can be one of: success, info, warning, error.\n __(\"Preset trashed.\", \"presto-player\"),\n {\n type: \"snackbar\",\n isDismissible: true,\n // actions: [\n // {\n // label: __(\"Undo\", \"presto-player\"),\n // onClick: () => {\n // console.log(\"untrash\");\n // },\n // },\n // ],\n }\n );\n }\n } catch (e) {\n console.error(e);\n if (e?.message) {\n wp.data.dispatch(\"core/notices\").createNotice(\n \"error\", // Can be one of: success, info, warning, error.\n e.message,\n {\n type: \"snackbar\",\n isDismissible: true, // Whether the user can dismiss the notice.\n }\n );\n }\n } finally {\n setConfirmOpen(false);\n setLoading(false);\n }\n };\n\n if (loading) {\n return (\n <div\n className=\"block-editor-block-styles__item\"\n role=\"button\"\n tabIndex={index}\n aria-label=\"Fill\"\n style={{\n color: isActive ? \"var(--wp-admin-theme-color)\" : \"inherit\",\n width: \"calc(50% - 4px)\",\n margin: \"4px 0\",\n \"flex-shrink\": \"0\",\n cursor: \"pointer\",\n overflow: \"hidden\",\n \"border-radius\": \"2px\",\n padding: \"6px\",\n display: \"flex\",\n \"flex-direction\": \"column\",\n }}\n >\n <div\n className=\"block-editor-block-styles__item-preview\"\n style={{\n border: isActive\n ? \"2px solid var(--wp-admin-theme-color)\"\n : \"2px solid #e3e3e3\",\n margin: 0,\n outline: \"1px solid transparent\",\n padding: \"0\",\n display: \"flex\",\n overflow: \"hidden\",\n background: \"#fff\",\n \"align-items\": \"center\",\n \"flex-grow\": \"1\",\n \"min-height\": \"80px\",\n \"max-height\": \"160px\",\n }}\n >\n <Spinner />\n </div>\n </div>\n );\n }\n\n return (\n <div\n className={`block-editor-block-styles__item presto-preset-${preset.slug}`}\n onClick={() => {\n setPreset(preset);\n }}\n role=\"button\"\n tabIndex={index}\n aria-label=\"Fill\"\n style={{\n color: isActive ? \"var(--wp-admin-theme-color)\" : \"inherit\",\n width: \"calc(50% - 4px)\",\n margin: \"4px 0\",\n \"flex-shrink\": \"0\",\n cursor: \"pointer\",\n overflow: \"hidden\",\n \"border-radius\": \"2px\",\n padding: \"6px\",\n display: \"flex\",\n \"flex-direction\": \"column\",\n }}\n >\n <div\n className=\"block-editor-block-styles__item-preview\"\n style={{\n border: isActive\n ? \"2px solid var(--wp-admin-theme-color)\"\n : \"2px solid #e3e3e3\",\n margin: 0,\n outline: \"1px solid transparent\",\n padding: \"0\",\n display: \"flex\",\n overflow: \"hidden\",\n background: \"#fff\",\n \"align-items\": \"center\",\n \"flex-grow\": \"1\",\n \"min-height\": \"80px\",\n \"max-height\": \"160px\",\n }}\n >\n <div\n style={{\n textAlign: \"center\",\n width: \"100%\",\n color: isActive ? \"var(--wp-admin-theme-color)\" : \"inherit\",\n opacity: isActive ? 1 : 0.75,\n }}\n >\n {preset?.icon ? (\n <Icon\n icon={preset?.icon}\n style={{\n fontSize: \"30px\",\n width: \"30px\",\n height: \"30px\",\n }}\n />\n ) : (\n <h1 style={{ opacity: 0.75 }}>\n {preset?.name?.charAt(0)?.toUpperCase() || \"Untitled\"}\n </h1>\n )}\n </div>\n </div>\n <div\n className=\"block-editor-block-styles__item-label\"\n style={{\n fontWeight: \"bold\",\n textTransform: \"capitalize\",\n \"text-align\": \"center\",\n padding: \"4px 0\",\n }}\n >\n {preset?.name || \"Untitled\"}\n </div>\n\n {!preset?.is_locked && (\n <div className=\"block-editor-block-styles__item-edit\">\n <div\n className=\"block-editor-block-styles__item-edit-icon\"\n onClick={onEdit}\n >\n <Icon icon=\"edit\" />\n </div>\n <div\n className=\"block-editor-block-styles__item-edit-icon\"\n onClick={openConfirm}\n >\n <Icon icon=\"trash\" />\n </div>\n </div>\n )}\n\n {confirmOpen && (\n <Modal\n title={__(\"Trash Preset?\", \"presto-player\")}\n onRequestClose={closeConfirm}\n style={{ maxWidth: \"250px\" }}\n >\n <p>\n <strong>{__(\"Warning!\", \"presto-player\")} </strong>\n {__(\n \"Any audios assigned to this preset will automatically use the default preset.\",\n \"presto-player\"\n )}\n </p>\n\n <ButtonGroup>\n <Button\n isDestructive\n onClick={trashPreset}\n style={{ margin: \"0 4px\" }}\n >\n {__(\"Trash\", \"presto-player\")}\n </Button>\n <Button\n isTertiary\n onClick={closeConfirm}\n style={{ margin: \"0 4px\", boxShadow: \"none\" }}\n >\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n </ButtonGroup>\n </Modal>\n )}\n </div>\n );\n}\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { withNotices, BaseControl, Spinner, Button } = wp.components;\nconst { useState, useEffect } = wp.element;\nconst { useSelect, dispatch } = wp.data;\n\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\nimport EditPreset from \"./Edit\";\nimport Preset from \"./Preset\";\nimport styled from \"@emotion/styled\";\n\nfunction PlayerPresets({ attributes, setAttributes }) {\n // modal\n const [modal, setModal] = useState(false);\n const openModal = (type) => setModal(type);\n const closeModal = () => setModal(false);\n const [presetData, setPresetData] = useState(null);\n const [name, setName] = useState(null);\n\n // preset data\n // preset data\n const { presets, loading } = useSelect((select) => {\n return {\n presets: select(\"presto-player/player\").getAudioPresets(),\n loading: select(\"presto-player/player\").isResolving(\"getAudioPresets\"),\n };\n });\n\n // preset actions\n const addPreset = (preset) => {\n dispatch(\"presto-player/player\").addAudioPreset(preset);\n };\n const updatePreset = (preset) => {\n dispatch(\"presto-player/player\").updateAudioPreset(preset);\n };\n const removePreset = (preset) => {\n dispatch(\"presto-player/player\").removeAudioPreset(preset);\n };\n\n // set this preset id\n const setPreset = (preset) => {\n setAttributes({ preset: preset.id });\n };\n\n const PresetWrap = styled.div`\n display: flex;\n flex-wrap: wrap;\n justify-content: space-between;\n `;\n\n if (loading) {\n return (\n <div className=\"presto-settings__loading\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n {presets.length ? (\n <p>\n {__(\n \"Select a audio configuration preset, or add your own.\",\n \"presto-player\"\n )}\n </p>\n ) : (\n \"\"\n )}\n\n <BaseControl>\n <PresetWrap>\n {(presets || []).length\n ? presets.map((preset, i) => {\n return (\n <Preset\n setPreset={setPreset}\n index={i}\n isActive={attributes?.preset === preset.id}\n preset={preset}\n key={preset.id}\n onEdit={() => {\n setName(preset.name);\n setPresetData(preset);\n setModal(\"edit\");\n }}\n remove={removePreset}\n />\n );\n })\n : __(\n \"No style presets. You can create a new style by clicking 'Add New Style'.\",\n \"presto-plugin\"\n )}\n </PresetWrap>\n </BaseControl>\n <BaseControl>\n <Button\n isPrimary\n data-cy=\"add-new-preset\"\n onClick={() => {\n if (!prestoPlayer?.isPremium) {\n dispatch(\"presto-player/player\").setProModal(true);\n return;\n }\n openModal(\"new\");\n }}\n >\n {__(\"Add New Preset\", \"presto-player\")}\n </Button>\n {!prestoPlayer?.isPremium && <ProBadge />}\n </BaseControl>\n {modal == \"new\" && (\n <EditPreset\n closeModal={closeModal}\n addPreset={addPreset}\n type=\"new\"\n onSave={setPreset}\n attributes={attributes}\n />\n )}\n {modal == \"edit\" && (\n <EditPreset\n closeModal={closeModal}\n addPreset={addPreset}\n updatePreset={updatePreset}\n type=\"edit\"\n preset={presetData}\n name={name}\n attributes={attributes}\n />\n )}\n </>\n );\n}\n\nexport default withNotices(PlayerPresets);\n","import { __ } from \"@wordpress/i18n\";\nimport VideoBranding from \"@/admin/blocks/shared/branding\";\nimport {\n Button,\n PanelBody,\n BaseControl,\n ToggleControl,\n PanelRow,\n SelectControl,\n Flex,\n Icon,\n TextControl,\n FlexBlock,\n} from \"@wordpress/components\";\nimport { useInstanceId } from \"@wordpress/compose\";\nimport { MediaUpload, MediaUploadCheck } from \"@wordpress/block-editor\";\nimport VideoChapters from \"@/admin/blocks/shared/chapters\";\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\nimport AudioPresets from \"@/admin/blocks/shared/audioPresets\";\n\nconst AUDIO_POSTER_ALLOWED_MEDIA_TYPES = [\"image\"];\n\nfunction AudioBlockInspectorControl({ attributes, setAttributes }) {\n const instanceId = useInstanceId(AudioBlockInspectorControl);\n const audioPosterDescription = `audio-block__poster-image-description-${instanceId}`;\n\n const { autoplay, poster, preload, title } = attributes;\n\n function onSelectPoster(image) {\n setAttributes({ poster: image.url });\n }\n function onRemovePoster() {\n setAttributes({ poster: \"\" });\n }\n return (\n <>\n <PanelBody\n title={<>{__(\"Title\", \"presto-player\")} </>}\n initialOpen={true}\n >\n <FlexBlock>\n <TextControl\n className={\"presto-player__caption--title\"}\n placeholder={__(\"Title\", \"presto-player\")}\n value={title || \"\"}\n onChange={(title) => setAttributes({ title: title })}\n autoComplete=\"off\"\n />\n </FlexBlock>\n </PanelBody>\n\n {/* Chapters */}\n <PanelBody\n title={\n <>\n {__(\"Chapters\", \"presto-player\")}{\" \"}\n {!prestoPlayer?.isPremium && <ProBadge />}\n </>\n }\n initialOpen={prestoPlayer?.isPremium}\n >\n <VideoChapters setAttributes={setAttributes} attributes={attributes} />\n </PanelBody>\n\n <PanelBody title={<>{__(\"Audio Settings\", \"presto-player\")} </>}>\n {/* Autoplay Settings */}\n <ToggleControl\n label={<>{__(\"Autoplay\", \"presto-player\")} </>}\n checked={autoplay}\n onChange={(autoplay) => {\n setAttributes({ autoplay });\n }}\n />\n\n {/* Performance Preference */}\n <PanelRow>\n <SelectControl\n label={\n <Flex>\n <div>{__(\"Performance Preference\", \"presto-player\")}</div>\n <a\n href=\"https://prestoplayer.com/docs/performance-preferences-explained\"\n target=\"_blank\"\n style={{ textDecoration: \"none\" }}\n >\n <Icon icon=\"editor-help\" />\n </a>\n </Flex>\n }\n className=\"presto-setting__preload\"\n value={preload}\n onChange={(value) => setAttributes({ preload: value })}\n options={[\n {\n value: \"auto\",\n label: __(\"Audio Playback Speed\", \"presto-player\"),\n },\n {\n value: \"metadata\",\n label: __(\"Page Load Speed\", \"presto-player\"),\n },\n {\n value: \"none\",\n label: __(\"Page Load Speed (Extreme)\", \"presto-player\"),\n },\n ]}\n />\n </PanelRow>\n\n {/* Poster Image */}\n <MediaUploadCheck>\n <BaseControl className=\"editor-video-poster-control\">\n <BaseControl.VisualLabel>\n <p>{__(\"Poster image\", \"presto-player\")}</p>\n </BaseControl.VisualLabel>\n <MediaUpload\n title={__(\"Select poster image\", \"presto-player\")}\n onSelect={onSelectPoster}\n allowedTypes={AUDIO_POSTER_ALLOWED_MEDIA_TYPES}\n render={({ open }) => (\n <Button\n className=\"presto-setting__poster\"\n isPrimary\n onClick={open}\n aria-describedby={audioPosterDescription}\n >\n {!poster\n ? __(\"Select\", \"presto-player\")\n : __(\"Replace\", \"presto-player\")}\n </Button>\n )}\n />\n <p id={audioPosterDescription} hidden>\n {poster\n ? sprintf(\n __(\"The current poster image url is %s\", \"presto-player\"),\n poster\n )\n : __(\n \"There is no poster image currently selected\",\n \"presto-player\"\n )}\n </p>\n {!!poster && (\n <Button\n onClick={onRemovePoster}\n className=\"presto-setting__remove-poster\"\n isTertiary\n >\n {__(\"Remove\", \"presto-player\")}\n </Button>\n )}\n </BaseControl>\n </MediaUploadCheck>\n </PanelBody>\n\n {/* Audio Presets */}\n <PanelBody title={__(\"Audio Preset\", \"presto-player\")}>\n <AudioPresets setAttributes={setAttributes} attributes={attributes} />\n </PanelBody>\n\n {/* Global Branding */}\n <PanelBody\n title={<>{__(\"Global Player Branding\", \"presto-player\")}</>}\n initialOpen={false}\n >\n <VideoBranding\n setAttributes={setAttributes}\n attributes={attributes}\n type=\"audio\"\n />\n </PanelBody>\n </>\n );\n}\n\nexport default AudioBlockInspectorControl;\n","/**\n * WordPress dependencies\n */\n\nimport { createHigherOrderComponent } from \"@wordpress/compose\";\nimport { useEffect, useState } from \"@wordpress/element\";\nimport { dispatch } from \"@wordpress/data\";\nimport { usePrevious } from \"@/admin/blocks/util\";\nimport { __ } from \"@wordpress/i18n\";\nimport apiFetch from \"@/shared/services/fetch\";\n\n/**\n * Higher order component factory for injecting the editor colors as the\n * `colors` prop in the `withColors` HOC.\n *\n * @return {Function} The higher order component.\n */\nexport default () =>\n createHigherOrderComponent(\n (WrappedComponent) => (props) => {\n const {\n presets,\n attributes,\n setAttributes,\n defaultPreset,\n isSelected,\n branding,\n } = props;\n const [presetData, setPresetData] = useState({});\n const [count, setCount] = useState(1);\n let { poster, chapters } = attributes;\n\n useEffect(() => {\n if (isSelected && attributes?.id) {\n dispatch(\"core/edit-post\").openGeneralSidebar(\"edit-post/block\");\n }\n }, [isSelected]);\n\n // don't allow selection if there is an override\n useEffect(() => {\n if (isSelected && attributes?.selectionOverrideClientId) {\n dispatch(\"core/block-editor\").selectBlock(\n attributes?.selectionOverrideClientId\n );\n }\n }, [isSelected]);\n\n // set preset data when presets are loaded\n useEffect(() => {\n if (presets && presets.length) {\n const thisPreset = presets.find((preset) => {\n return preset.id === attributes?.preset;\n });\n if (thisPreset) {\n setPresetData(thisPreset);\n } else {\n setPresetData(defaultPreset);\n setAttributes({ preset: defaultPreset?.id });\n }\n }\n }, [presets, attributes?.preset]);\n\n // re-render the player if presetdata, poster or chapters change\n useEffect(() => {\n onUpdate();\n }, [poster, presetData, chapters, branding.logo]);\n\n // increment update key\n const onUpdate = () => {\n setCount(count + 1);\n };\n\n // re-render only if times change\n const prevChapters = usePrevious(chapters);\n useEffect(() => {\n let times = chapters?.map((item) => item.time);\n let prevTimes = prevChapters?.map((item) => item.time);\n if (_.difference(times, prevTimes).length) {\n onUpdate();\n }\n }, [chapters]);\n\n const createVideo = async ({\n src,\n external_id,\n attachment_id,\n type,\n title,\n }) => {\n if (!src && !external_id && !attachment_id) {\n return;\n }\n const { id } = await apiFetch({\n method: \"POST\",\n path: \"/presto-player/v1/videos\",\n data: {\n attachment_id,\n post_id: wp.data.select(\"core/editor\").getCurrentPostId(),\n external_id,\n ...(title ? { title } : {}),\n src,\n type,\n },\n });\n setAttributes({ id });\n };\n\n const lock = () => {\n return dispatch(\"core/editor\").lockPostSaving(\"presto-player\");\n };\n\n const unlock = () => {\n return dispatch(\"core/editor\").unlockPostSaving(\"presto-player\");\n };\n\n function onRemoveSrc() {\n let r = confirm(__(\"Remove this\", \"presto-player\"));\n if (r) {\n setAttributes({\n src: \"\",\n id: undefined,\n });\n }\n }\n\n // make sure it's the default\n if (!attributes?.preset) {\n setAttributes({ preset: defaultPreset?.id });\n }\n\n return (\n <WrappedComponent\n {...props}\n lockSave={lock}\n unlockSave={unlock}\n createVideo={createVideo}\n onUpdate={onUpdate}\n onRemoveSrc={onRemoveSrc}\n presetData={presetData}\n setPresetData={setPresetData}\n renderKey={count}\n />\n );\n },\n \"withPlayerEdit\"\n );\n","const { withSelect } = wp.data;\n\nexport default function (props) {\n return withSelect((select) => {\n return {\n branding: select(\"presto-player/player\").branding(),\n loading: select(\"presto-player/player\").isResolving(\"getAudioPresets\"),\n presets: select(\"presto-player/player\").getAudioPresets(),\n defaultPreset: select(\"presto-player/player\").getDefaultAudioPreset(),\n };\n });\n}\n","import HostedAudioPlaceholder from \"./HostedAudioPlaceholder\";\nimport { InspectorControls, BlockControls } from \"@wordpress/editor\";\nimport AudioBlockInspectorControl from \"./AudioBlockInspectorControl\";\nimport Player from \"@/admin/blocks/shared/Player\";\nconst { compose } = wp.compose;\nimport withPlayerEdit from \"./with-player-edit\";\nimport withPlayerData from \"./with-player-data\";\nimport {\n Placeholder,\n Spinner,\n Disabled,\n withNotices,\n Toolbar,\n Button,\n} from \"@wordpress/components\";\nimport { __ } from \"@wordpress/i18n\";\n\nexport default compose([withPlayerData(), withPlayerEdit()])(\n withNotices(\n ({\n attributes,\n setAttributes,\n branding,\n presetData,\n renderKey,\n defaultPreset,\n lockSave,\n unlockSave,\n loading,\n createVideo,\n onRemoveSrc,\n }) => {\n const { poster, src, id } = attributes;\n\n const onSelectURL = (newUrl) => {\n setAttributes({\n ...attributes,\n src: newUrl,\n title: newUrl,\n preset: defaultPreset?.id,\n });\n lockSave();\n createVideo({\n src: newUrl,\n type: \"link\",\n })\n .catch((e) => {\n setAttributes({ src: \"\" });\n showNotice(e);\n })\n .finally(unlockSave);\n };\n // const tracks = ''\n function onSelectAudio(audio) {\n if (!audio || !audio.url) {\n // in this case there was an error\n // previous attributes should be removed\n // because they may be temporary blob urls\n setAttributes({ src: undefined, id: undefined });\n return;\n }\n // sets the block's attribute and updates the edit component from the\n // selected media\n if (audio.title) {\n setAttributes({\n src: audio.url,\n preset: defaultPreset?.id,\n title: audio.title,\n attachment_id: audio.id,\n });\n\n lockSave();\n createVideo({\n src: audio.url,\n type: \"attachment\",\n attachment_id: audio.id,\n })\n .catch((e) => {\n setAttributes({ src: \"\" });\n showNotice(e);\n })\n .finally(unlockSave);\n } else {\n setAttributes({\n src: audio.url,\n title: audio.url,\n preset: defaultPreset?.id,\n // attachment_id: audio.id,\n });\n }\n }\n\n if (!src) {\n return (\n <>\n <HostedAudioPlaceholder\n attributes={attributes}\n setAttributes={setAttributes}\n onSelectURL={onSelectURL}\n onSelect={onSelectAudio}\n ></HostedAudioPlaceholder>\n </>\n );\n }\n\n // loading presets still\n if (loading || !id) {\n return (\n <Placeholder className=\"presto-player__placeholder is-loading\">\n <Spinner />\n </Placeholder>\n );\n }\n\n return (\n <>\n <BlockControls>\n {/* <AudioTranscription\n attributes={attributes}\n tracks={tracks}\n onChange={(newTracks) => {\n setAttributes({ tracks: newTracks });\n }}\n /> */}\n <Toolbar>\n <Button onClick={() => onRemoveSrc()}>\n {__(\"Replace\", \"presto-player\")}\n </Button>\n </Toolbar>\n </BlockControls>\n\n {/* Enable InspectorControls */}\n <InspectorControls>\n <AudioBlockInspectorControl\n attributes={attributes}\n setAttributes={setAttributes}\n />\n </InspectorControls>\n\n <figure>\n {/*\n Disable the audio tag so the user clicking on it won't play the\n audio when the controls are enabled.\n */}\n <Disabled>\n <Player\n poster={poster}\n src={src}\n id={id}\n type={\"audio\"}\n attributes={attributes}\n setAttributes={setAttributes}\n preset={presetData}\n branding={branding}\n key={renderKey}\n />\n </Disabled>\n </figure>\n </>\n );\n }\n )\n);\n","import { __ } from \"@wordpress/i18n\";\nimport edit from \"./edit\";\nexport const name = \"presto-player/audio\";\n\nexport const options = {\n category: \"presto\",\n\n attributes: {\n src: {\n type: \"string\",\n },\n autoplay: {\n type: Boolean,\n default: false,\n },\n poster: {\n type: \"string\",\n },\n chapters: {\n type: \"array\",\n default: [],\n },\n preload: {\n type: \"string\",\n },\n title: {\n type: \"string\",\n },\n tracks: {\n type: \"array\",\n items: {\n type: \"object\",\n },\n default: [],\n },\n preset: {\n type: Number,\n },\n id: {\n type: Number,\n },\n attachment_id: {\n type: Number,\n },\n src: {\n type: String,\n },\n visibility: {\n type: String,\n default: \"public\",\n },\n },\n\n title: __(\"Presto Audio\", \"presto-player\"),\n\n description: __(\"A audio player wrapper.\", \"presto-player\"),\n\n variations: [\n {\n name: \"public\",\n isDefault: true,\n title: __(\"Presto Audio\", \"presto-player\"),\n description: __(\"Presto self-hosted audio block.\", \"presto-player\"),\n attributes: { visibility: \"public\" },\n },\n ...(prestoPlayer?.isPremium\n ? [\n {\n name: \"private\",\n title: __(\"Presto Private Audio\", \"presto-player\"),\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect>\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path>\n </svg>\n ),\n description: __(\n \"Private self-hosted audio block.\",\n \"presto-player\"\n ),\n attributes: { visibility: \"private\" },\n },\n ]\n : []),\n ],\n\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n className=\"presto-block-icon\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3\"\n />\n </svg>\n ),\n edit,\n};\n","const { combineReducers, dispatch } = wp.data;\nconst { apiFetch } = wp;\nconst { pick } = lodash;\n\n/**\n * Presets reducer\n *\n * @param {array} state\n * @param {object} action\n */\nconst presetReducer = (state = [], action) => {\n switch (action.type) {\n case \"SET_PRESET\":\n return action.value;\n case \"ADD_PRESET\":\n return [...state, ...[action.value]];\n case \"UPDATE_PRESET\":\n return state.map((item, index) => {\n if (item.id !== action.value?.id) {\n return item;\n }\n return {\n ...item,\n ...action.value,\n };\n });\n case \"REMOVE_PRESET\":\n return state.filter((item) => {\n return item !== action.value;\n });\n }\n return state;\n};\n\n/**\n * Presets reducer\n *\n * @param {array} state\n * @param {object} action\n */\n const audioPresetReducer = (state = [], action) => {\n switch (action.type) {\n case \"SET_AUDIO_PRESET\":\n return action.value;\n case \"SET_AUDIO_PRESET\":\n return action.value;\n case \"ADD_AUDIO_PRESET\":\n return [...state, ...[action.value]];\n case \"UPDATE_AUDIO_PRESET\":\n return state.map((item, index) => {\n if (item.id !== action.value?.id) {\n return item;\n }\n return {\n ...item,\n ...action.value,\n };\n });\n case \"REMOVE_AUDIO_PRESET\":\n return state.filter((item) => {\n return item !== action.value;\n });\n }\n return state;\n};\n\n/**\n * For preset loading\n *\n * @param {boolean} state\n * @param {object} action\n */\nconst presetLoadingReducer = (state = true, action) => {\n switch (action.type) {\n case \"SET_PRESET_LOADING\":\n return action.value;\n }\n};\n\n/**\n * For preset loading\n *\n * @param {boolean} state\n * @param {object} action\n */\nconst videosLoadingReducer = (state = true, action) => {\n switch (action.type) {\n case \"SET_VIDEOS_LOADING\":\n return action.value;\n }\n};\n\nconst proModalReducer = (state = false, action) => {\n switch (action.type) {\n case \"SET_PRO_MODAL\":\n return action.value;\n }\n};\n\nconst addVideo = (videos, video) => {\n // check for existing item\n const index = videos.find((e) => e.id === video.id);\n if (index) {\n return videos;\n }\n return [...videos, ...[video]];\n};\n\nconst videosReducer = (\n state = {\n total: 0,\n total_pages: 0,\n videos: [],\n hasResolved: false,\n isError: false,\n },\n action\n) => {\n switch (action.type) {\n case \"SET_VIDEOS\":\n return action.value;\n case \"UPDATE_VIDEOS\":\n return { ...state, ...action.value };\n case \"APPEND_VIDEOS\":\n let draft = state;\n (action.value || []).forEach((video) => {\n draft.videos = addVideo(draft.videos, video);\n });\n return draft;\n case \"ADD_VIDEO\":\n return { ...state, videos: addVideo(state.videos, action.value) };\n case \"UPDATE_VIDEO\":\n return {\n ...state,\n videos: state.videos.map((item, index) => {\n if (item.id !== action.value?.id) {\n return item;\n }\n return {\n ...item,\n ...action.value,\n };\n }),\n };\n case \"REMOVE_VIDEO\":\n return {\n ...state,\n videos: state.videos.filter((item) => {\n return item !== action.value;\n }),\n };\n }\n return state;\n};\n\n/**\n * Branding options are global and stored in settings\n * @param {object} state\n * @param {object} action\n */\nconst brandingReducer = (state = {}, action) => {\n switch (action.type) {\n case \"SET_BRANDING\":\n return action.value;\n case \"UPDATE_BRANDING\":\n return {\n ...state,\n [action.name]: action.value,\n };\n }\n return state;\n};\n\n/**\n * Youtube are global and stored in settings\n * @param {object} state\n * @param {object} action\n */\nconst youtubeReducer = (state = {}, action) => {\n switch (action.type) {\n case \"SET_YOUTUBE\":\n return action.value;\n case \"UPDATE_YOUTUBE\":\n return {\n ...state,\n [action.name]: action.value,\n };\n }\n return state;\n};\n\n/**\n * General are global and stored in settings\n * @param {object} state\n * @param {object} action\n */\nconst presetSettingsReducer = (state = {}, action) => {\n switch (action.type) {\n case \"SET_PRESET_SETTINGS\":\n return action.value;\n }\n return state;\n};\nconst audioPresetSettingsReducer = (state = {}, action) => {\n switch (action.type) {\n case \"SET_PRESET_AUDIO_SETTINGS\":\n return action.value;\n }\n return state;\n};\n/**\n * For fetching the options\n *\n * @param {object} state\n * @param {object} action\n */\nconst optionsApi = (state, action) => {\n switch (action.type) {\n /**\n * Fetch our options\n */\n case \"FETCH_OPTIONS\":\n return apiFetch({\n path: \"/presto-player/v1/settings/\",\n }).then((settings) => {\n dispatch(\"presto-player/player\").setBranding(\n settings.presto_player_branding\n );\n dispatch(\"presto-player/player\").setYoutube(\n settings.presto_player_youtube\n );\n dispatch(\"presto-player/player\").setPresetSettings(\n settings.presto_player_presets\n );\n dispatch(\"presto-player/player\").setPresetAudioSettings(\n settings.presto_player_audio_presets\n );\n });\n\n /**\n * Persist options to db\n */\n case \"SAVE_OPTIONS\":\n const data = {\n presto_player_branding: pick(action?.branding, [\n \"logo\",\n \"color\",\n \"logo_width\",\n \"player_css\",\n ]),\n };\n\n // remove blanks\n Object.keys(data).forEach(\n (key) =>\n (data[key] == null || !Object.keys(data?.[key] || {}).length) &&\n delete data[key]\n );\n\n apiFetch({\n path: \"/presto-player/v1/settings\",\n method: \"POST\",\n data,\n });\n\n return data;\n }\n};\n\nexport default combineReducers({\n presetReducer,\n audioPresetReducer,\n presetLoadingReducer,\n videosLoadingReducer,\n videosReducer,\n proModalReducer,\n brandingReducer,\n youtubeReducer,\n presetSettingsReducer,\n optionsApi,\n audioPresetSettingsReducer\n});\n","export function getPresets(state) {\n return state?.presetReducer || [];\n}\nexport function getAudioPresets(state) {\n return state?.audioPresetReducer || [];\n}\nexport function getPreset(state, id) {\n if (state?.presetReducer?.length) {\n return state?.presetReducer.find((item) => item.id === id);\n }\n return [];\n}\nexport function getReusableVideos(state) {\n return state?.videosReducer || [];\n}\nexport function getReusableVideo(state, id) {\n return state?.videosReducer?.videos?.find((video) => video?.id === id) || [];\n}\nexport function getDefaultPreset(state) {\n const default_preset = state?.presetSettingsReducer?.default_player_preset;\n\n let preset =\n default_preset &&\n (state?.presetReducer || []).find((preset) => {\n return preset.id && preset.id === default_preset;\n });\n\n if (!preset) {\n preset = (state?.presetReducer || []).find((preset) => {\n return preset.slug == \"default\";\n });\n }\n if (!preset) {\n preset = (state?.presetReducer || [])[0];\n }\n return preset;\n}\nexport function getDefaultAudioPreset(state) {\n const default_preset = state?.audioPresetSettingsReducer?.default_player_preset;\n\n let preset =\n default_preset &&\n (state?.audioPresetReducer || []).find((preset) => {\n return preset.id && preset.id === default_preset;\n });\n\n if (!preset) {\n preset = (state?.audioPresetReducer || []).find((preset) => {\n return preset.slug == \"default\";\n });\n }\n if (!preset) {\n preset = (state?.audioPresetReducer || [])[0];\n }\n return preset;\n}\nexport function presetsLoading(state) {\n return !!state?.presetLoadingReducer;\n}\nexport function branding(state) {\n return state?.brandingReducer;\n}\nexport function playerCSS(state) {\n return state?.brandingReducer?.player_css;\n}\nexport function youtube(state) {\n return state?.youtubeReducer;\n}\nexport function proModal(state) {\n return state?.proModalReducer;\n}\n","export function setPresetLoading(value) {\n return {\n type: \"SET_PRESET_LOADING\",\n value,\n };\n}\n\nexport function setVideosLoading(value) {\n return {\n type: \"SET_VIDEOS_LOADING\",\n value,\n };\n}\n\nexport function setProModal(value) {\n return {\n type: \"SET_PRO_MODAL\",\n value,\n };\n}\n\n/**\n * Videos\n */\nexport function setVideos(value) {\n return {\n type: \"SET_VIDEOS\",\n value,\n };\n}\nexport function updateVideos(value) {\n return {\n type: \"UPDATE_VIDEOS\",\n value,\n };\n}\nexport function appendVideos(value) {\n return {\n type: \"APPEND_VIDEOS\",\n value,\n };\n}\nexport function addVideo(value) {\n return {\n type: \"ADD_VIDEO\",\n value,\n };\n}\n\n/**\n * Presets\n */\nexport function setPresets(value) {\n return {\n type: \"SET_PRESET\",\n value,\n };\n}\nexport function addPreset(value) {\n return {\n type: \"ADD_PRESET\",\n value,\n };\n}\nexport function updatePreset(value) {\n return {\n type: \"UPDATE_PRESET\",\n value,\n };\n}\nexport function removePreset(value) {\n return {\n type: \"REMOVE_PRESET\",\n value,\n };\n}\n\n/**\n * Audio Presets\n */\n\nexport function setAudioPresets(value) {\n return {\n type: \"SET_AUDIO_PRESET\",\n value,\n };\n}\n\nexport function addAudioPreset(value) {\n return {\n type: \"ADD_AUDIO_PRESET\",\n value,\n };\n}\nexport function updateAudioPreset(value) {\n return {\n type: \"UPDATE_AUDIO_PRESET\",\n value,\n };\n}\nexport function removeAudioPreset(value) {\n return {\n type: \"REMOVE_AUDIO_PRESET\",\n value,\n };\n}\n\n/**\n * Branding\n */\nexport function setBranding(value) {\n return {\n type: \"SET_BRANDING\",\n value,\n };\n}\nexport function updateBranding(name, value) {\n return {\n type: \"UPDATE_BRANDING\",\n name,\n value,\n };\n}\n\n/**\n * Save provided settings\n */\nexport function saveOptions(args) {\n return {\n type: \"SAVE_OPTIONS\",\n ...args,\n };\n}\n\n/**\n * FetchOptions\n */\nexport function fetchOptions() {\n return {\n type: \"FETCH_OPTIONS\",\n };\n}\n\nexport function fetchFromAPI(path) {\n return {\n type: \"FETCH_FROM_API\",\n path,\n };\n}\n\nexport function fetchFromWPAPI(path, args) {\n return {\n type: \"FETCH_FROM_WP_API\",\n path,\n args,\n };\n}\n\nexport function setYoutube(value) {\n return {\n type: \"SET_YOUTUBE\",\n value,\n };\n}\n\nexport function updateYoutube(name, value) {\n return {\n type: \"UPDATE_YOUTUBE\",\n name,\n value,\n };\n}\n\nexport function setPresetSettings(value) {\n return {\n type: \"SET_PRESET_SETTINGS\",\n value,\n };\n}\n\nexport function setPresetAudioSettings(value) {\n return {\n type: \"SET_PRESET_AUDIO_SETTINGS\",\n value,\n };\n}","const { apiFetch } = wp;\n\nexport default {\n FETCH_FROM_API(action) {\n return apiFetch({\n url: prestoPlayer.root + prestoPlayer.prestoVersionString + action.path,\n });\n },\n async FETCH_FROM_WP_API({ args, path = \"\" }) {\n let res = await apiFetch({\n path: wp.url.addQueryArgs(`wp/v2/${path}`, args?.query),\n ...(args?.data ? { data: args.data } : {}),\n ...args?.options,\n parse: false,\n });\n\n const data = await res.json();\n const total = res.headers && res.headers.get(\"X-WP-Total\");\n const total_pages = res.headers && res.headers.get(\"X-WP-TotalPages\");\n\n return new Promise((resolve, reject) => {\n resolve({\n data,\n total,\n total_pages,\n });\n return;\n });\n },\n};\n","import * as actions from \"./actions\";\n\nexport default {\n *getPresets() {\n const presets = yield actions.fetchFromAPI(\"preset\");\n return actions.setPresets(presets);\n },\n *getAudioPresets(){\n const presets = yield actions.fetchFromAPI(\"audio-preset\");\n return actions.setAudioPresets(presets);\n },\n *getReusableVideo(id) {\n const path = `presto-videos/${id}`;\n const preset = yield actions.fetchFromWPAPI(path, {});\n return actions.addVideo(preset?.data || {});\n },\n};\n","/**\n * WordPress dependencies\n */\nconst { registerStore } = wp.data;\n\n/**\n * Internal dependencies\n */\nimport reducer from \"./reducer\";\nimport * as selectors from \"./selectors\";\nimport * as actions from \"./actions\";\nimport controls from \"./controls\";\nimport resolvers from \"./resolvers\";\n\nexport default registerStore(\"presto-player/player\", {\n reducer,\n selectors,\n actions,\n controls,\n resolvers,\n});\n","const { Modal, Button } = wp.components;\nconst { dispatch, useSelect } = wp.data;\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\n\nexport default function () {\n const closeModal = () => {\n dispatch(\"presto-player/player\").setProModal(false);\n };\n\n const open = useSelect((select) => {\n return select(\"presto-player/player\").proModal();\n });\n\n return open ? (\n <Modal title={\"Pro Feature\"} onRequestClose={closeModal}>\n <h2>\n Unlock Presto Player <ProBadge />\n </h2>\n <p>Get this feature and more with the Pro version of Presto Player!</p>\n <Button href=\"https://prestoplayer.com\" target=\"_blank\" isPrimary>\n Learn More\n </Button>\n </Modal>\n ) : (\n \"\"\n );\n}\n","/**\n * Dynamically locate, load & register all Editor Blocks & Plugins.\n */\nconst { registerBlockType, unregisterBlockType } = wp.blocks;\nconst { registerPlugin, unregisterPlugin } = wp.plugins;\nconst { select, dispatch } = wp.data;\nconst { render } = wp.element;\n\nimport store from \"./store/player\";\n\nimport \"@/admin/blocks/shared/styles/gutenberg/index.scss\";\nimport ProUpgradeModal from \"./shared/ProUpgradeModal\";\n\n/**\n * No-op function for use as a default argument value.\n *\n * @returns null\n */\nconst noop = () => null;\n\n/**\n * Require a set of modules and configure them for hot module replacement.\n *\n * The first argument should be a function returning a `require.context()`\n * call. All modules loaded from this context are cached, and on each rebuild\n * the incoming updated modules are checked against the cache. Updated modules\n * which already exist in the cache are unregistered with the provided function,\n * then any incoming (new or updated) modules will be registered.\n *\n * @param {Function} getContext Execute and return a `require.context()` call.\n * @param {Function} register Function to register accepted modules.\n * @param {Function} unregister Function to unregister replaced modules.\n * @param {Function} [before] Function to run before updating moules.\n * @param {Function} [after] Function to run after updating moules.\n */\nconst autoload = ({\n getContext,\n register,\n unregister,\n before = noop,\n after = noop,\n}) => {\n const cache = {};\n const loadModules = () => {\n before();\n\n const context = getContext();\n const changedNames = [];\n context.keys().forEach((key) => {\n const module = context(key);\n if (module === cache[key]) {\n // Module unchanged: no further action needed.\n return;\n }\n if (cache[key]) {\n // Module changed, and prior copy detected: unregister old module.\n unregister(cache[key]);\n }\n // Register new module and update cache.\n register(module);\n changedNames.push(module.name);\n cache[key] = module;\n });\n\n after(changedNames);\n\n // Return the context for HMR initialization.\n return context;\n };\n\n const context = loadModules();\n\n if (module.hot) {\n module.hot.accept(context.id, loadModules);\n }\n};\n\n// Maintain the selected block ID across HMR updates.\nlet selectedBlockId = null;\nconst storeSelectedBlock = () => {\n selectedBlockId = select(\"core/editor\").getSelectedBlockClientId();\n dispatch(\"core/editor\").clearSelectedBlock();\n};\nconst refreshAllBlocks = (changedNames = []) => {\n // Refresh all blocks by iteratively selecting each one.\n select(\"core/editor\")\n .getBlocks()\n .forEach(({ name, clientId }) => {\n if (changedNames.includes(name)) {\n dispatch(\"core/editor\").selectBlock(clientId);\n }\n });\n // Reselect whatever was selected in the beginning.\n if (selectedBlockId) {\n dispatch(\"core/editor\").selectBlock(selectedBlockId);\n } else {\n dispatch(\"core/editor\").clearSelectedBlock();\n }\n selectedBlockId = null;\n};\n\n// Load all block index files.\nautoload({\n getContext: () => require.context(\"./blocks\", true, /index\\.js$/),\n register: ({ name, options }) => {\n if (prestoPlayer?.isPremium) {\n registerBlockType(name, options);\n } else if (!options.premium) {\n registerBlockType(name, options);\n }\n },\n unregister: ({ name }) => unregisterBlockType(name),\n before: storeSelectedBlock,\n after: refreshAllBlocks,\n});\n\n// Load all plugin files.\nautoload({\n getContext: () => require.context(\"./plugins\", true, /index\\.js$/),\n register: ({ name, options }) => registerPlugin(name, options),\n unregister: ({ name }) => unregisterPlugin(name),\n});\n\njQuery(\"body\").append('<div id=\"presto-plugin-app\"></div>');\nrender(<ProUpgradeModal />, document.getElementById(\"presto-plugin-app\"));\n\n// fetch settings\ndispatch(\"presto-player/player\").fetchOptions();\n\nlet saving = false;\n// save the settings on post save, just in case they miss the button\nwp.data.subscribe(function () {\n var isSavingPost = wp.data.select(\"core/editor\").isSavingPost();\n var isAutosavingPost = wp.data.select(\"core/editor\").isAutosavingPost();\n\n if (isSavingPost && !isAutosavingPost) {\n if (saving) {\n return;\n }\n saving = true;\n let { brandingReducer } = store.getState();\n dispatch(\"presto-player/player\")\n .saveOptions({\n branding: brandingReducer,\n })\n .then(() => {\n saving = false;\n });\n }\n});\n","/**\n * External dependencies\n */\nimport classnames from \"classnames\";\n\n/**\n * WordPress dependencies\n */\nconst { useInstanceId } = wp.compose;\nconst { __ } = wp.i18n;\nconst { VisuallyHidden, Button, Icon } = wp.components;\nconst { useRef } = wp.element;\n\nfunction InserterSearchForm({ className, onChange, value, placeholder }) {\n const instanceId = useInstanceId(InserterSearchForm);\n const searchInput = useRef();\n\n return (\n <div className={\"block-editor-inserter__search\"} style={{ padding: 0 }}>\n <VisuallyHidden\n as=\"label\"\n htmlFor={`block-editor-inserter__search-${instanceId}`}\n >\n {placeholder}\n </VisuallyHidden>\n <input\n ref={searchInput}\n className=\"block-editor-inserter__search-input\"\n id={`block-editor-inserter__search-${instanceId}`}\n type=\"search\"\n placeholder={placeholder}\n onChange={(event) => onChange(event.target.value)}\n autoComplete=\"off\"\n value={value || \"\"}\n />\n <div className=\"block-editor-inserter__search-icon\">\n {!!value && (\n <Button\n icon={\"close-small\"}\n label={__(\"Reset search\", \"presto-player\")}\n onClick={() => {\n onChange(\"\");\n searchInput.current.focus();\n }}\n />\n )}\n {!value && <Icon icon={\"search\"} />}\n </div>\n </div>\n );\n}\n\nexport default InserterSearchForm;\n","import { __ } from \"@wordpress/i18n\";\nimport { PanelBody } from \"@wordpress/components\";\n\nasync function copyTextToClipboard(e) {\n let textToCopy = document.getElementById(\"presto-shortcode-input\").value;\n let btn = e.currentTarget;\n let buttonText = btn.textContent;\n e.currentTarget.textContent = __(\"Copied!\", \"presto-player\");\n\n setTimeout(() => {\n btn.textContent = buttonText;\n }, 1500);\n\n if (navigator.clipboard && window.isSecureContext) {\n // navigator clipboard api method'\n return navigator.clipboard.writeText(textToCopy);\n } else {\n // text area method for older OR non secure URL pages.\n let textArea = document.createElement(\"textarea\");\n textArea.value = textToCopy;\n // make the textarea out of viewport\n textArea.style.position = \"fixed\";\n textArea.style.left = \"-999999px\";\n textArea.style.top = \"-999999px\";\n document.body.appendChild(textArea);\n textArea.focus();\n textArea.select();\n return new Promise((res, rej) => {\n document.execCommand(\"copy\") ? res() : rej();\n textArea.remove();\n });\n }\n}\n\nfunction InserterShortcodeInput() {\n return (\n <PanelBody title={__(\"Timestamp Shortcode\", \"presto-player\")}>\n <div className={\"block-editor-inserter__shortcode-input\"}>\n <p>\n {__(\n \"Add convenient links to skip the player to a specific timestamp.\",\n \"presto-player\"\n )}\n </p>\n <input\n id=\"presto-shortcode-input\"\n style={{ width: \"100%\", fontSize: \"11px\", marginBottom: \"10px\" }}\n type=\"text\"\n readOnly\n value='[pptime time=\"1:00\"]Optional Text[/pptime]'\n />\n <button\n type=\"button\"\n className=\"components-button is-primary\"\n onClick={copyTextToClipboard}\n >\n {__(\"Copy to clipboard\", \"presto-player\")}\n </button>\n </div>\n </PanelBody>\n );\n}\n\nexport default InserterShortcodeInput;\n","export default ({ icon, title, id, selectBlock, i }) => {\n return (\n <button\n type=\"button\"\n id={`video-${id}`}\n tabIndex={i}\n onClick={selectBlock}\n role=\"option\"\n className=\"components-button block-editor-block-types-list__item editor-block-list-item-kadence-spacer\"\n >\n <span className=\"block-editor-block-types-list__item-icon\">\n <span className=\"block-editor-block-icon has-colors\">{icon}</span>\n </span>\n <span className=\"block-editor-block-types-list__item-title\">{title}</span>\n </button>\n );\n};\n","const { __ } = wp.i18n;\n\nconst { Panel, PanelBody, Button, Spinner } = wp.components;\nconst { PluginSidebar, PluginSidebarMoreMenuItem } = wp.editPost;\nconst { Fragment, useEffect, useState, useCallback } = wp.element;\nconst { dispatch, useSelect } = wp.data;\nconst { createBlock, getBlockType } = wp.blocks;\nconst { apiFetch } = wp;\n\nimport SearchForm from \"./SearchForm\";\nimport InserterShortcodeInput from \"./ShortcodeInput\";\nimport Video from \"./Video\";\nconst { parse } = wp.blockSerializationDefaultParser;\n\n//create your forceUpdate hook\nfunction useForceUpdate() {\n const [value, setValue] = useState(0); // integer state\n return () => setValue((value) => value + 1); // update the state to force render\n}\n\nexport default () => {\n const forceUpdate = useForceUpdate();\n const icon = (\n <svg viewBox=\"0 0 35 34\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <g>\n <path\n d=\"M23.3722 16.9766L33.2059 11.2991L33.2059 22.6541L23.3722 16.9766Z\"\n fillOpacity=\"0.7\"\n />\n <path\n d=\"M23.3745 5.6227L33.2082 11.3002L23.3745 16.9776L23.3745 5.6227Z\"\n fillOpacity=\"0.75\"\n />\n <path\n d=\"M23.3745 5.62242L23.3745 16.9773L13.5409 11.2999L23.3745 5.62242Z\"\n fillOpacity=\"0.8\"\n />\n <path\n d=\"M23.399 5.613L13.5654 11.2905L13.5654 -0.0644536L23.399 5.613Z\"\n fillOpacity=\"0.85\"\n />\n <path\n d=\"M13.5699 11.3038L13.5699 22.6587L3.73623 16.9813L13.5699 11.3038Z\"\n fillOpacity=\"0.8\"\n />\n <path\n d=\"M13.5699 -0.0245525L13.5699 11.3304L3.73623 5.6529L13.5699 -0.0245525Z\"\n fillOpacity=\"0.9\"\n />\n <path\n d=\"M13.5699 22.6451L13.5699 34L3.73623 28.3226L13.5699 22.6451Z\"\n fillOpacity=\"0.7\"\n />\n <path\n d=\"M23.3745 16.9774L33.2082 22.6549L23.3745 28.3323L23.3745 16.9774Z\"\n fillOpacity=\"0.65\"\n />\n <path\n d=\"M3.73774 16.9774L13.5714 22.6549L3.73774 28.3323L3.73774 16.9774Z\"\n fillOpacity=\"0.75\"\n />\n <path\n d=\"M3.73774 5.63149L13.5714 11.3089L3.73774 16.9864L3.73774 5.63149Z\"\n fillOpacity=\"0.85\"\n />\n <path\n d=\"M23.3745 16.9772L23.3745 28.3321L13.5409 22.6546L23.3745 16.9772Z\"\n fillOpacity=\"0.6\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0\">\n <rect width=\"35\" height=\"34\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n );\n\n const [hasMore, setHasMore] = useState(false);\n const [page, setPage] = useState(1);\n const [isLoading, setIsLoading] = useState(false);\n\n // search\n const [search, setSearch] = useState(\"\");\n const searchFor = (term) => {\n setPage(1);\n setSearch(term);\n };\n const debounceOnSearch = useCallback(\n _.debounce((term) => {\n doFetch({ replace: true, term });\n }, 250),\n []\n );\n useEffect(() => {\n debounceOnSearch(search);\n }, [search]);\n\n // fetch\n useEffect(() => {\n setIsLoading(true);\n doFetch({ replace: false });\n }, [page]);\n\n // get from store\n const { videos, total_pages, hasResolved } = useSelect(\n (select) => {\n return select(\"presto-player/player\").getReusableVideos();\n },\n [search, page]\n );\n\n const doFetch = async ({ replace, term }) => {\n let res = await apiFetch({\n path: wp.url.addQueryArgs(`wp/v2/presto-videos`, {\n search: term,\n page,\n per_page: 10,\n }),\n parse: false,\n });\n let videos = await res.json();\n const total = res.headers && parseInt(res.headers.get(\"X-WP-Total\"));\n const total_pages =\n res.headers && parseInt(res.headers.get(\"X-WP-TotalPages\"));\n\n if (!replace) {\n dispatch(\"presto-player/player\").appendVideos(videos);\n dispatch(\"presto-player/player\").updateVideos({\n hasResolved: true,\n total,\n total_pages,\n });\n } else {\n dispatch(\"presto-player/player\").updateVideos({\n videos,\n hasResolved: true,\n total,\n total_pages,\n });\n }\n forceUpdate();\n setIsLoading(false);\n };\n\n useEffect(() => {\n setHasMore(page < total_pages);\n }, [page, total_pages]);\n\n const nextPage = () => {\n let newPage = page + 1;\n newPage = newPage > total_pages ? total_pages : newPage;\n setPage(newPage);\n };\n\n const getIcon = (video) => {\n const blocks = parse(video?.content?.raw);\n if (blocks?.[0]?.innerBlocks?.[0]?.blockName) {\n const type = getBlockType(blocks?.[0]?.innerBlocks?.[0]?.blockName);\n return type?.icon?.src ? type.icon.src : \"\";\n }\n return \"\";\n };\n\n const emptyPlaceholder = () => {\n if (videos.length) {\n return;\n }\n\n if (search) {\n return <p>{__(\"No videos found.\", \"presto-player\")}</p>;\n }\n\n return (\n <Button href=\"post-new.php?post_type=pp_video_block\" isSecondary>\n {__(\"Create A Reusable Video\", \"presto-player\")}\n </Button>\n );\n };\n\n const videosPanel = () => {\n if (!hasResolved) {\n return <Spinner />;\n }\n\n return (\n <div\n role=\"listbox\"\n className=\"block-editor-block-types-list presto-player__panel-grid-list\"\n style={{\n display: \"flex\",\n flexWrap: \"wrap\",\n }}\n aria-label={__(\"Media Hub\", \"presto-player\")}\n >\n {videos.length\n ? videos.map((video, i) => {\n return (\n <Video\n selectBlock={(e) => {\n dispatch(\"core/editor\").insertBlock(\n createBlock(\"presto-player/reusable-display\", {\n id: video?.id,\n })\n );\n }}\n icon={getIcon(video)}\n title={video?.title?.raw || \"Untitled\"}\n id={video?.id}\n i={i}\n key={video?.id}\n />\n );\n })\n : emptyPlaceholder()}\n {!search && hasMore && videos.length ? (\n <div\n style={{\n \"margin-top\": \"20px\",\n \"text-align\": \"center\",\n display: \"flex\",\n \"justify-content\": \"center\",\n width: \"100%\",\n }}\n >\n <Button isSecondary isSmall onClick={nextPage} isBusy={isLoading}>\n Load More\n </Button>\n </div>\n ) : (\n \"\"\n )}\n </div>\n );\n };\n\n return (\n <Fragment>\n <PluginSidebarMoreMenuItem target=\"presto-player-sidebar\" icon={icon}>\n {__(\"Presto Player\", \"presto-player\")}\n </PluginSidebarMoreMenuItem>\n <PluginSidebar\n name=\"presto-player-sidebar\"\n title={__(\"Presto Player\", \"presto-player\")}\n icon={icon}\n >\n <InserterShortcodeInput />\n\n <PanelBody title={__(\"Media Hub\", \"presto-player\")}>\n <SearchForm\n placeholder=\"Search media...\"\n value={search}\n onChange={(search) => searchFor(search)}\n />\n <div className=\"block-editor-inserter__panel-content\">\n {videosPanel()}\n </div>\n </PanelBody>\n </PluginSidebar>\n </Fragment>\n );\n};\n","import render from \"./render\";\n\n/**\n * Block Name\n */\nexport const name = \"presto-player\";\n\nexport const options = {\n render,\n};\n","/**\n * External dependencies\n */\n\nconst { noop } = lodash;\nimport classnames from \"classnames\";\nconst baseCurrentUrl = window.location.href;\nimport helpers from \"./helpers\";\n\n/**\n * WordPress dependencies\n */\nconst {\n Button,\n Notice,\n Placeholder,\n DropZone,\n withFilters,\n BaseControl,\n ToggleControl,\n FormFileUpload,\n} = wp.components;\n\nconst { __ } = wp.i18n;\nconst { useState, useEffect } = wp.element;\nconst { useSelect } = wp.data;\nconst deprecated = wp.deprecated;\nconst { MediaUpload, MediaUploadCheck, URLPopover } = wp.editor;\n// const { URLPopover } = wp.blockEditor;\n\nconst InsertFromURLPopover = ({ src, onChange, onSubmit, onClose }) => (\n <URLPopover onClose={onClose}>\n <form\n className=\"block-editor-media-placeholder__url-input-form\"\n onSubmit={onSubmit}\n >\n <input\n data-cy=\"url-input\"\n className=\"block-editor-media-placeholder__url-input-field\"\n type=\"url\"\n aria-label={__(\"URL\", \"presto-player\")}\n placeholder={__(\n \"Paste or type a Youtube, Vimeo or .mp4 video URL\",\n \"presto-player\"\n )}\n onChange={onChange}\n value={src}\n />\n <Button\n data-cy=\"url-submit\"\n className=\"block-editor-media-placeholder__url-input-submit-button\"\n icon={\"editor-break\"}\n label={__(\"Apply\", \"presto-player\")}\n type=\"submit\"\n />\n </form>\n </URLPopover>\n);\n\nexport function MediaPlaceholder({\n value = {},\n allowedTypes = [],\n className,\n icon,\n url = true,\n labels = {},\n mediaPreview,\n notices,\n isAppender,\n isPrivate,\n addToGallery,\n onSelect,\n onCancel,\n onSelectURL,\n onDoubleClick,\n children,\n allowURLs,\n}) {\n const mediaUpload = useSelect((select) => {\n const { getSettings } = select(\"core/block-editor\");\n return getSettings().mediaUpload;\n }, []);\n\n const [src, setSrc] = useState(\"\");\n const [isURLInputVisible, setIsURLInputVisible] = useState(false);\n\n useEffect(() => {\n setSrc(value?.src ?? \"\");\n }, [value]);\n\n const onChangeSrc = (event) => {\n setSrc(event.target.value);\n };\n\n const openURLInput = () => {\n setIsURLInputVisible(true);\n };\n\n const closeURLInput = () => {\n setIsURLInputVisible(false);\n };\n\n const onSubmitSrc = (event) => {\n event.preventDefault();\n if (src && onSelectURL) {\n onSelectURL(src);\n closeURLInput();\n }\n };\n\n const renderPlaceholder = (content, onClick) => {\n let { instructions, title } = labels;\n\n if (!mediaUpload && !onSelectURL) {\n instructions = __(\n \"To edit this block, you need permission to upload media.\",\n \"presto-player\"\n );\n }\n\n // set class names\n const placeholderClassName = classnames(\n \"block-editor-media-placeholder\",\n className,\n {\n \"is-appender\": isAppender,\n }\n );\n\n return (\n <Placeholder\n icon={icon}\n label={title}\n instructions={instructions}\n className={placeholderClassName}\n notices={notices}\n onClick={onClick}\n onDoubleClick={onDoubleClick}\n preview={mediaPreview}\n >\n {children}\n {content}\n </Placeholder>\n );\n };\n\n const renderCancelLink = () => {\n return (\n onCancel && (\n <Button\n className=\"block-editor-media-placeholder__cancel-button\"\n title={__(\"Cancel\", \"presto-player\")}\n isLink\n onClick={onCancel}\n >\n {__(\"Cancel\", \"presto-player\")}\n </Button>\n )\n );\n };\n\n const renderUrlSelectionUI = () => {\n return (\n onSelectURL && (\n <div className=\"block-editor-media-placeholder__url-input-container\">\n {url && (\n <Button\n data-cy=\"video-url\"\n className=\"block-editor-media-placeholder__button\"\n onClick={openURLInput}\n isPressed={isURLInputVisible}\n isTertiary\n >\n {__(\"Video URL\", \"presto-player\")}\n </Button>\n )}\n {isURLInputVisible && (\n <InsertFromURLPopover\n src={src}\n onChange={onChangeSrc}\n onSubmit={onSubmitSrc}\n onClose={closeURLInput}\n />\n )}\n </div>\n )\n );\n };\n\n const renderMediaUploadChecked = () => {\n const mediaLibraryButton = (\n <MediaUpload\n title={\n isPrivate\n ? __(\"Select or Upload Private Video\", \"presto-player\")\n : __(\"Select or Upload Video\", \"presto-player\")\n }\n addToGallery={addToGallery}\n gallery={false}\n multiple={false}\n onSelect={(event) => {\n // set private/public url params\n helpers.unsetUrlParams();\n onSelect(event);\n }}\n onClose={() => {\n // unset private/public url params\n helpers.unsetUrlParams();\n }}\n allowedTypes={allowedTypes}\n value={Array.isArray(value) ? value.map(({ id }) => id) : value.id}\n render={({ open }) => {\n return (\n <Button\n data-cy=\"add-video\"\n isPrimary\n onClick={(event) => {\n event.stopPropagation();\n helpers.unsetUrlParams();\n if (isPrivate) {\n helpers.setUrlPrivate(baseCurrentUrl);\n } else {\n helpers.setUrlPublic(baseCurrentUrl);\n }\n open();\n }}\n >\n {isPrivate\n ? __(\"Add/Select Private Video\", \"presto-player\")\n : __(\"Add/Select Video\", \"presto-player\")}\n </Button>\n );\n }}\n />\n );\n\n if (mediaUpload) {\n const content = (\n <>\n {mediaLibraryButton}\n {!!allowURLs && renderUrlSelectionUI()}\n {renderCancelLink()}\n </>\n );\n return renderPlaceholder(content);\n }\n\n return renderPlaceholder(mediaLibraryButton);\n };\n\n return (\n <MediaUploadCheck fallback={renderPlaceholder(renderUrlSelectionUI())}>\n {renderMediaUploadChecked()}\n </MediaUploadCheck>\n );\n}\n\n/**\n * @see https://github.com/WordPress/gutenberg/blob/master/packages/block-editor/src/components/media-placeholder/README.md\n */\nexport default withFilters(\"editor.MediaPlaceholder\")(MediaPlaceholder);\n","const { __ } = wp.i18n;\nconst { withNotices, BaseControl, ToggleControl, Notice } = wp.components;\nconst { dispatch } = wp.data;\n\nimport MediaPlaceholder from \"@/admin/blocks/shared/placeholder\";\nimport ProBadge from \"@/admin/blocks/shared/components/ProBadge\";\n\n//constants\nconst ALLOWED_MEDIA_TYPES = [\"video\"];\n\nexport default withNotices(\n ({\n noticeUI,\n onSelect,\n children,\n onSelectURL,\n onUploadError,\n setAttributes,\n attributes,\n }) => {\n const { visibility } = attributes;\n const isPrivate = visibility === \"private\";\n\n return (\n <div>\n <MediaPlaceholder\n icon={\n isPrivate ? (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect>\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path>\n </svg>\n ) : (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <polygon points=\"23 7 16 12 23 17 23 7\"></polygon>\n <rect x=\"1\" y=\"5\" width=\"15\" height=\"14\" rx=\"2\" ry=\"2\"></rect>\n </svg>\n )\n }\n labels={{\n title: isPrivate\n ? __(\"Presto Private Video\", \"presto-player\")\n : __(\"Presto Video\", \"presto-player\"),\n instructions: isPrivate\n ? __(\n \"Upload a video file, or pick one from your media library.\",\n \"presto-player\"\n )\n : __(\n \"Upload a video file, pick one from your media library, or add one with a URL.\",\n \"presto-player\"\n ),\n }}\n onSelect={onSelect}\n onSelectURL={onSelectURL}\n switcher={true}\n isPrivate={isPrivate}\n allowURLs={!isPrivate}\n accept=\"video/*\"\n setAttributes={setAttributes}\n allowedTypes={ALLOWED_MEDIA_TYPES}\n value={attributes}\n notices={noticeUI}\n onError={onUploadError}\n >\n <div style={{ width: \"100%\" }}>\n <BaseControl className=\"presto-player__placeholder-control\">\n <ToggleControl\n label={\n <div>\n {__(\"Make Private\", \"presto-player\")}{\" \"}\n {!prestoPlayer?.isPremium && <ProBadge />}\n </div>\n }\n help={\n isPrivate\n ? __(\n \"This video is only accessible to those who are logged in.\",\n \"presto-player\"\n )\n : __(\n \"This video is currently accessible to everyone.\",\n \"presto-player\"\n )\n }\n checked={isPrivate}\n onChange={(isPrivate) => {\n if (!prestoPlayer?.isPremium) {\n dispatch(\"presto-player/player\").setProModal(true);\n return;\n }\n setAttributes({\n visibility: isPrivate ? \"private\" : \"public\",\n });\n }}\n />\n </BaseControl>\n\n {!!children && <div style={{ width: \"100%\" }}>{children}</div>}\n\n {!!isPrivate && (\n <Notice status=\"warning\" isDismissible={false}>\n <div>\n <div>\n <strong>{__(\"Note\", \"presto-player\")}</strong>\n </div>\n {__(\n \"Private videos use php to stream your video. Keep in mind this will use up disk space and bandwidth so it may not be an appropriate choice for some hosts.\",\n \"presto-player\"\n )}\n </div>\n </Notice>\n )}\n </div>\n </MediaPlaceholder>\n </div>\n );\n }\n);\n","/**\n * WordPress dependencies\n */\nconst { __ } = wp.i18n;\nconst { getBlobByURL, isBlobURL } = wp.blob;\nconst {\n Button,\n Disabled,\n Toolbar,\n Notice,\n withNotices,\n Placeholder,\n Spinner,\n} = wp.components;\n\nconst { BlockControls, InspectorControls } = wp.editor;\nconst { compose } = wp.compose;\nconst { useEffect, useState } = wp.element;\nconst { dispatch } = wp.data;\nconst { createBlock } = wp.blocks;\n\nimport { isHLS } from \"@/shared/util\";\n\n// hocs\nimport withPlayerEdit from \"../with-player-edit\";\nimport withPlayerData from \"../with-player-data\";\n\n/**\n * Internal dependencies\n */\nimport HostedPlaceholder from \"./HostedPlaceholder\";\nimport TracksEditor from \"@/admin/blocks/shared/tracks/TracksEditor\";\nimport BlockInspectorControls from \"@/admin/blocks/shared/BlockInspectorControls\";\nimport Player from \"@/admin/blocks/shared/Player\";\n\nimport { determineVideoUrlType } from \"@/shared/util.js\";\n\n//constants\nconst ALLOWED_MEDIA_TYPES = [\"video\"];\n\nexport default compose([withPlayerData(), withPlayerEdit()])(\n withNotices(\n ({\n noticeUI,\n attributes,\n setAttributes,\n isSelected,\n noticeOperations,\n branding,\n loading,\n presetData,\n createVideo,\n onRemoveSrc,\n renderKey,\n lockSave,\n unlockSave,\n clientId,\n defaultPreset,\n }) => {\n const { poster, src, id, tracks } = attributes;\n const [upgradeNotice, setUpgradeNotice] = useState(\"\");\n\n const showNotice = (e) => {\n noticeOperations.removeAllNotices();\n noticeOperations.createErrorNotice(e?.message);\n };\n\n useEffect(() => {\n if (!id && isBlobURL(src)) {\n const file = getBlobByURL(src);\n if (file) {\n mediaUpload({\n filesList: [file],\n onFileChange: ([{ url }]) => {\n setAttributes({ src: url });\n },\n onError: (message) => {\n noticeOperations.createErrorNotice(message);\n },\n allowedTypes: ALLOWED_MEDIA_TYPES,\n });\n }\n }\n }, []);\n\n function onSelectVideo(media) {\n if (!media || !media.url) {\n // in this case there was an error\n // previous attributes should be removed\n // because they may be temporary blob urls\n setAttributes({ src: undefined, id: undefined });\n return;\n }\n // sets the block's attribute and updates the edit component from the\n // selected media\n setAttributes({\n src: media.url,\n preset: defaultPreset?.id,\n attachment_id: media.id,\n });\n\n lockSave();\n createVideo({\n src: media.url,\n type: \"attachment\",\n attachment_id: media.id,\n })\n .catch((e) => {\n setAttributes({ src: \"\" });\n showNotice(e);\n })\n .finally(unlockSave);\n }\n\n function onSelectURL(newSrc) {\n setAttributes({ attachment_id: null });\n if (newSrc && isHLS(newSrc)) {\n if (!prestoPlayer?.isPremium) {\n setUpgradeNotice(\n <Notice status=\"info\" onRemove={() => setUpgradeNotice(\"\")}>\n <div>\n <div>\n <strong>\n {__(\n \"Get HLS Streaming and more with Presto Player Pro!\",\n \"presto-player\"\n )}\n </strong>\n </div>\n\n {__(\n \"Stream HLS links and more with Presto Player Pro.\",\n \"presto-player\"\n )}\n <div\n style={{\n marginTop: \"1em\",\n }}\n >\n <Button isPrimary>{__(\"Upgrade\", \"presto-player\")}</Button>\n </div>\n </div>\n </Notice>\n );\n return;\n }\n }\n\n if (newSrc !== src) {\n const { type } = determineVideoUrlType(newSrc);\n if (type === \"youtube\") {\n const youtubeBlock = createBlock(\"presto-player/youtube\", {\n src: newSrc,\n });\n dispatch(\"core/editor\").replaceBlock(clientId, youtubeBlock);\n return;\n }\n\n if (type === \"vimeo\") {\n const vimeoBlock = createBlock(\"presto-player/vimeo\", {\n src: newSrc,\n });\n dispatch(\"core/editor\").replaceBlock(clientId, vimeoBlock);\n return;\n }\n\n setAttributes({ src: newSrc, attachmend_id: null });\n setAttributes({ preset: defaultPreset?.id });\n\n lockSave();\n createVideo({ src: newSrc, type: \"link\" })\n .catch((e) => {\n setAttributes({ src: \"\" });\n showNotice(e);\n })\n .finally(unlockSave);\n }\n }\n\n function onUploadError(message) {\n noticeOperations.removeAllNotices();\n noticeOperations.createErrorNotice(message);\n }\n\n if (!src) {\n return (\n <div>\n <HostedPlaceholder\n onSelect={onSelectVideo}\n onSelectURL={onSelectURL}\n setAttributes={setAttributes}\n attributes={attributes}\n onError={onUploadError}\n >\n {upgradeNotice}\n </HostedPlaceholder>\n </div>\n );\n }\n\n // loading presets still\n if (loading || !id) {\n return (\n <Placeholder className=\"presto-player__placeholder is-loading\">\n <Spinner />\n </Placeholder>\n );\n }\n\n return (\n <div>\n <BlockControls>\n <TracksEditor\n tracks={tracks}\n onChange={(newTracks) => {\n setAttributes({ tracks: newTracks });\n }}\n />\n <Toolbar>\n <Button onClick={() => onRemoveSrc()}>\n {__(\"Replace\", \"presto-player\")}\n </Button>\n </Toolbar>\n </BlockControls>\n\n <InspectorControls>\n <BlockInspectorControls\n setAttributes={setAttributes}\n attributes={attributes}\n />\n </InspectorControls>\n\n <figure>\n {/*\n Disable the video tag so the user clicking on it won't play the\n video when the controls are enabled.\n */}\n <Disabled>\n <Player\n poster={poster}\n src={src}\n id={id}\n type={\"hosted\"}\n attributes={attributes}\n setAttributes={setAttributes}\n preset={presetData}\n branding={branding}\n key={renderKey}\n />\n </Disabled>\n </figure>\n </div>\n );\n }\n )\n);\n","const { __ } = wp.i18n;\nimport edit from \"./edit\";\nimport blockOptions from \"../block-options\";\n\n/**\n * Block Name\n */\nexport const name = \"presto-player/self-hosted\";\n\n/**\n * Block Options\n */\nexport const options = {\n ...blockOptions,\n\n title: __(\"Presto Video\", \"presto-player\"),\n\n description: __(\"Presto Self-hosted video block.\", \"presto-player\"),\n\n variations: [\n {\n name: \"public\",\n isDefault: true,\n title: __(\"Presto Video\", \"presto-player\"),\n description: __(\"Presto Self-hosted video block.\", \"presto-player\"),\n attributes: { visibility: \"public\" },\n },\n ...(prestoPlayer?.isPremium\n ? [\n {\n name: \"private\",\n title: __(\"Presto Private Video\", \"presto-player\"),\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <rect x=\"3\" y=\"11\" width=\"18\" height=\"11\" rx=\"2\" ry=\"2\"></rect>\n <path d=\"M7 11V7a5 5 0 0 1 10 0v4\"></path>\n </svg>\n ),\n description: __(\n \"Private video self-hosted block.\",\n \"presto-player\"\n ),\n attributes: { visibility: \"private\" },\n },\n ]\n : []),\n ],\n\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <polygon points=\"23 7 16 12 23 17 23 7\"></polygon>\n <rect x=\"1\" y=\"5\" width=\"15\" height=\"14\" rx=\"2\" ry=\"2\"></rect>\n </svg>\n ),\n\n edit,\n};\n","// In your application's entrypoint\nconst { __ } = wp.i18n;\nconst { InnerBlocks, useBlockProps } = wp.blockEditor;\nconst { BlockControls, InspectorControls } = wp.editor;\nconst {\n Disabled,\n Toolbar,\n Button,\n PanelBody,\n Panel,\n Placeholder,\n Spinner,\n} = wp.components;\nconst { useSelect, dispatch } = wp.data;\nconst { useState, useEffect } = wp.element;\nconst { parse } = wp.blockSerializationDefaultParser;\n\nexport default ({ attributes, isSelected, clientId }) => {\n const { id } = attributes;\n const blockProps = useBlockProps();\n const [hasResolved, setHasResolved] = useState(false);\n const [block, setBlock] = useState([]);\n const [link, setLink] = useState(\"\");\n\n const video = useSelect((select) => {\n if (!id) {\n return;\n }\n return select(\"presto-player/player\").getReusableVideo(id);\n });\n\n useEffect(() => {\n wp.data.dispatch(\"core/block-editor\").selectBlock(clientId);\n }, [hasResolved]);\n\n // lock inner blocks\n const innerBlocks = useSelect((select) => {\n return select(\"core/editor\").getBlocksByClientId(clientId)[0].innerBlocks;\n });\n if (innerBlocks && video?.id) {\n innerBlocks.forEach(function (block) {\n dispatch(\"core/editor\").updateBlockAttributes(block.clientId, {\n selectionOverrideClientId: clientId,\n });\n });\n }\n\n useEffect(() => {\n if (video.id) {\n setHasResolved(true);\n // set inner block\n const blocks = parse(video?.content?.raw);\n setBlock([\n blocks?.[0]?.innerBlocks[0].blockName,\n blocks?.[0]?.innerBlocks[0].attrs,\n ]);\n\n setLink(`post.php?post=${video.id}&action=edit`);\n }\n }, [video]);\n\n if (!hasResolved) {\n return (\n <div {...blockProps}>\n <Placeholder>\n <Spinner />\n </Placeholder>\n </div>\n );\n }\n\n if (!block) {\n return;\n }\n\n return (\n <>\n <InspectorControls>\n <PanelBody>\n <p>\n This is a reusable video that you can edit once and place anywhere.\n </p>\n <Button isSecondary href={\"edit.php?post_type=pp_video_block\"}>\n {__(\"Manage Media Hub\", \"presto-player\")}\n </Button>\n </PanelBody>\n </InspectorControls>\n <div className={\"block-library-block__reusable-block-container\"}>\n <div {...blockProps}>\n {isSelected && (\n <div className=\"reusable-block-edit-panel\">\n <b className=\"reusable-block-edit-panel__info\">\n {video?.title?.raw}\n </b>\n <Button\n isSecondary\n href={link}\n className=\"reusable-block-edit-panel__button\"\n >\n {__(\"Edit Reusable Video\", \"presto-player\")}\n </Button>\n </div>\n )}\n <Disabled>\n <InnerBlocks\n template={[block]}\n templateLock={\"all\"}\n renderAppender={false}\n />\n </Disabled>\n </div>\n </div>\n </>\n );\n};\n","// In your application's entrypoint\nconst { InnerBlocks, useBlockProps } = wp.blockEditor;\nimport edit from \"./edit\";\n\n/**\n * Block Name\n */\nexport const name = \"presto-player/reusable-display\";\n\n/**\n * Block Options\n */\nexport const options = {\n title: \"Reusable Block Display\",\n\n category: \"presto\",\n\n attributes: {\n id: Number,\n },\n\n supports: {\n align: true,\n inserter: false,\n reusable: false,\n html: false,\n },\n\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\"></circle>\n <line x1=\"2\" y1=\"12\" x2=\"22\" y2=\"12\"></line>\n <path d=\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"></path>\n </svg>\n ),\n\n edit,\n\n // dynamic save function\n save: function () {\n return null;\n },\n};\n","/**\n * WordPress dependencies\n */\nconst {\n Button,\n Disabled,\n Toolbar,\n Placeholder,\n Spinner,\n withNotices,\n} = wp.components;\nconst { BlockControls, InspectorControls } = wp.editor;\nconst { useEffect } = wp.element;\nconst { __ } = wp.i18n;\nconst { compose } = wp.compose;\n\n// hocs\nimport withPlayerEdit from \"../with-player-edit\";\nimport withPlayerData from \"../with-player-data\";\n\n/**\n * Internal dependencies\n */\n// import TracksEditor from \"@/admin/blocks/shared/tracks/TracksEditor\";\nimport BlockInspectorControls from \"@/admin/blocks/shared/BlockInspectorControls\";\nimport Player from \"@/admin/blocks/shared/Player\";\nimport LinkPlaceholder from \"@/admin/blocks/shared/LinkPlaceholder\";\nimport { getVimeoId } from \"@/shared/util.js\";\nimport { usePrevious } from \"@/admin/blocks/util\";\n\nexport default compose([withPlayerData(), withPlayerEdit()])(\n withNotices(\n ({\n attributes,\n setAttributes,\n branding,\n noticeOperations,\n loading,\n createVideo,\n lockSave,\n unlockSave,\n presetData,\n onRemoveSrc,\n renderKey,\n }) => {\n const { poster, src, id } = attributes;\n\n const showNotice = (e) => {\n noticeOperations.removeAllNotices();\n noticeOperations.createErrorNotice(e?.message);\n };\n\n // make sure to save/get attachment id if src is set\n const prevSrc = usePrevious(src);\n useEffect(() => {\n // reset id only if we're changing the src\n if (prevSrc) {\n setAttributes({ id: 0 });\n }\n let video_id = getVimeoId(src);\n setAttributes({ video_id });\n\n lockSave();\n createVideo({ src, external_id: video_id, type: \"vimeo\" })\n .catch((e) => {\n setAttributes({ src: \"\" });\n showNotice(e);\n })\n .finally(unlockSave);\n }, [src]);\n\n // handle url update\n function onSelectURL(newSrc) {\n if (newSrc !== src) {\n setAttributes({ src: newSrc });\n }\n }\n\n if (!src) {\n return (\n <div>\n <LinkPlaceholder\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <path d=\"M22.875 10.063c-2.442 5.217-8.337 12.319-12.063 12.319-3.672 0-4.203-7.831-6.208-13.043-.987-2.565-1.624-1.976-3.474-.681l-1.128-1.455c2.698-2.372 5.398-5.127 7.057-5.28 1.868-.179 3.018 1.098 3.448 3.832.568 3.593 1.362 9.17 2.748 9.17 1.08 0 3.741-4.424 3.878-6.006.243-2.316-1.703-2.386-3.392-1.663 2.673-8.754 13.793-7.142 9.134 2.807z\" />\n </svg>\n }\n label={__(\"Presto Vimeo Video\", \"presto-player\")}\n instructions={__(\"Enter Vimeo Video URL\", \"presto-player\")}\n placeholder={__(\"Vimeo URL\", \"presto-player\")}\n attributes={attributes}\n setAttributes={setAttributes}\n onSelectURL={onSelectURL}\n />\n </div>\n );\n }\n\n // loading presets or id still\n if (loading || !id) {\n return (\n <Placeholder className=\"presto-player__placeholder is-loading\">\n <Spinner />\n </Placeholder>\n );\n }\n\n return (\n <>\n <BlockControls>\n <Toolbar>\n {/* <TracksEditor\n tracks={tracks}\n onChange={(newTracks) => {\n setAttributes({ tracks: newTracks });\n }}\n /> */}\n <Button onClick={() => onRemoveSrc()}>\n {__(\"Replace\", \"presto-player\")}\n </Button>\n </Toolbar>\n </BlockControls>\n\n <InspectorControls>\n <BlockInspectorControls\n setAttributes={setAttributes}\n attributes={attributes}\n />\n </InspectorControls>\n\n <figure>\n {/*\n Disable the video tag so the user clicking on it won't play the\n video when the controls are enabled.\n */}\n <Disabled>\n <Player\n poster={poster}\n src={src}\n type=\"vimeo\"\n id={id}\n attributes={attributes}\n setAttributes={setAttributes}\n preset={presetData}\n branding={branding}\n key={renderKey}\n />\n </Disabled>\n </figure>\n </>\n );\n }\n )\n);\n","const { __ } = wp.i18n;\nimport edit from \"./edit\";\nimport blockOptions from \"../block-options\";\n\n/**\n * Block Name\n */\nexport const name = \"presto-player/vimeo\";\n\n/**\n * Block Options\n */\nexport const options = {\n ...blockOptions,\n\n attributes: {\n ...blockOptions.attributes,\n video_id: {\n type: String,\n },\n },\n\n title: __(\"Presto Vimeo Video\", \"presto-player\"),\n\n description: __(\n \"A vimeo video wrapped in an awesome player.\",\n \"presto-player\"\n ),\n\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <path d=\"M22.875 10.063c-2.442 5.217-8.337 12.319-12.063 12.319-3.672 0-4.203-7.831-6.208-13.043-.987-2.565-1.624-1.976-3.474-.681l-1.128-1.455c2.698-2.372 5.398-5.127 7.057-5.28 1.868-.179 3.018 1.098 3.448 3.832.568 3.593 1.362 9.17 2.748 9.17 1.08 0 3.741-4.424 3.878-6.006.243-2.316-1.703-2.386-3.392-1.663 2.673-8.754 13.793-7.142 9.134 2.807z\" />\n </svg>\n ),\n\n edit,\n};\n","/**\n * WordPress dependencies\n */\nconst {\n Button,\n Disabled,\n Toolbar,\n Placeholder,\n Spinner,\n withNotices,\n} = wp.components;\nconst { BlockControls, InspectorControls } = wp.editor;\nconst { useEffect } = wp.element;\nconst { __ } = wp.i18n;\nconst { compose } = wp.compose;\n\n// hocs\nimport withPlayerEdit from \"../with-player-edit\";\nimport withPlayerData from \"../with-player-data\";\n\n/**\n * Internal dependencies\n */\nimport BlockInspectorControls from \"@/admin/blocks/shared/BlockInspectorControls\";\nimport Player from \"@/admin/blocks/shared/Player\";\nimport LinkPlaceholder from \"@/admin/blocks/shared/LinkPlaceholder\";\nimport { getYoutubeId } from \"@/shared/util.js\";\nimport { usePrevious } from \"@/admin/blocks/util\";\n\nexport default compose([withPlayerData(), withPlayerEdit()])(\n withNotices(\n ({\n attributes,\n setAttributes,\n noticeOperations,\n branding,\n createVideo,\n loading,\n presetData,\n onRemoveSrc,\n lockSave,\n unlockSave,\n renderKey,\n }) => {\n const { poster, src, id } = attributes;\n\n const showNotice = (e) => {\n noticeOperations.removeAllNotices();\n noticeOperations.createErrorNotice(e?.message);\n };\n\n // make sure to save/get attachment id if src is set\n const prevSrc = usePrevious(src);\n useEffect(() => {\n // reset id only if we're changing the src\n if (prevSrc) {\n setAttributes({ id: 0 });\n }\n let video_id = getYoutubeId(src);\n setAttributes({ video_id });\n\n lockSave();\n createVideo({ src, external_id: video_id, type: \"youtube\" })\n .catch((e) => {\n setAttributes({ src: \"\" });\n showNotice(e);\n })\n .finally(unlockSave);\n }, [src]);\n\n // handle url update\n function onSelectURL(newSrc) {\n if (newSrc !== src) {\n setAttributes({ src: newSrc });\n }\n }\n\n if (!src) {\n return (\n <div>\n <LinkPlaceholder\n icon={\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"></path>\n <polygon points=\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"></polygon>\n </svg>\n }\n label={__(\"Presto Youtube Video\", \"presto-player\")}\n instructions={__(\"Enter Youtube Video URL\", \"presto-player\")}\n placeholder={__(\"Youtube URL\", \"presto-player\")}\n attributes={attributes}\n setAttributes={setAttributes}\n onSelectURL={onSelectURL}\n />\n </div>\n );\n }\n\n // loading presets or id still\n if (loading || !id) {\n return (\n <Placeholder className=\"presto-player__placeholder is-loading\">\n <Spinner />\n </Placeholder>\n );\n }\n\n return (\n <>\n <BlockControls>\n <Toolbar>\n <Button onClick={() => onRemoveSrc()}>\n {__(\"Replace\", \"presto-player\")}\n </Button>\n </Toolbar>\n </BlockControls>\n\n <InspectorControls>\n <BlockInspectorControls\n setAttributes={setAttributes}\n attributes={attributes}\n />\n </InspectorControls>\n\n <figure>\n {/*\n Disable the video tag so the user clicking on it won't play the\n video when the controls are enabled.\n\t\t\t\t*/}\n <Disabled>\n <Player\n poster={poster}\n src={src}\n type=\"youtube\"\n id={id}\n attributes={attributes}\n setAttributes={setAttributes}\n preset={presetData}\n branding={branding}\n key={renderKey}\n />\n </Disabled>\n </figure>\n </>\n );\n }\n )\n);\n","// In your application's entrypoint\nconst { __ } = wp.i18n;\nimport edit from \"./edit\";\nimport blockOptions from \"../block-options\";\n\n/**\n * Block Name\n */\nexport const name = \"presto-player/youtube\";\n\n/**\n * Block Options\n */\nexport const options = {\n ...blockOptions,\n\n attributes: {\n ...blockOptions.attributes,\n video_id: {\n type: String,\n },\n },\n\n title: __(\"Presto Youtube Video\", \"presto-player\"),\n\n description: __(\n \"A youtube video wrapped in an awesome player.\",\n \"presto-player\"\n ),\n\n icon: (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className=\"presto-block-icon\"\n >\n <path d=\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"></path>\n <polygon points=\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"></polygon>\n </svg>\n ),\n\n edit,\n};\n"],"sourceRoot":""}
dist/blocks/admin-80f4dddf.js DELETED
@@ -1,19 +0,0 @@
1
- /*!
2
- *
3
- * Presto Player
4
- *
5
- * @author Presto Made, Inc
6
- * @version 0.1.0
7
- * @link undefined
8
- * @license GPL
9
- *
10
- * Copyright (c) 2022 Presto Made, Inc
11
- *
12
- * This software is released under the GPL License
13
- * https://opensource.org/licenses/GPL
14
- *
15
- * Compiled with the help of https://wpack.io
16
- * A zero setup Webpack Bundler Script for WordPress
17
- */
18
- (window.wpackioprestoPlayerblocksJsonp=window.wpackioprestoPlayerblocksJsonp||[]).push([[0],[,,,function(e,t){e.exports=window.wp.i18n},function(e,t){e.exports=window.wp.components},,,,,function(e,t,r){"use strict";r.d(t,"f",(function(){return l})),r.d(t,"d",(function(){return c})),r.d(t,"e",(function(){return i})),r.d(t,"c",(function(){return s})),r.d(t,"b",(function(){return p})),r.d(t,"a",(function(){return u}));var n=wp.element,a=n.useRef,o=n.useEffect;function l(e){var t=a();return o((function(){t.current=e})),t.current}function c(e){var t=e.status,r=void 0===t?"success":t,n=e.message;wp.data.dispatch("core/notices").createNotice(r,n,{type:"snackbar"})}function i(e){var t,r=e.split(":");return r.length>1&&(t=60*parseInt(r[0])),parseInt(r[1])+parseInt(t)}function s(e){var t=parseInt(e,10),r=Math.floor(t/60);return t<10&&(t="0"+t),r+":"+t}function p(e){var t=e;if(!(t=t.replace(/[^\d\d:\d\d.-]/g,"")).includes(":"))return"".concat(t,":00");0===t.substr(0,t.indexOf(":")).length&&(t="0".concat(t));var r=t.indexOf(":");return t=t.substring(0,r+3)}function u(e){if(e){if(e.match(/^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/))return"youtube";if(e.match(/(https?:\/\/)?(www\.)?(player\.)?vimeo\.com\/([a-z]*\/)*([‌​0-9]{6,11})[?]?.*/))return"vimeo";if(e.indexOf("https://vz-")>-1&&e.indexOf("b-cdn.net")>-1)return"bunny";if(e.indexOf(".mp3")>-1)return"audio"}return"self-hosted"}},,function(e,t,r){"use strict";var n=wp.i18n.__;t.a=function(){return React.createElement("div",{className:"presto-player__pro-badge"},n("Pro","presto-player"))}},function(e,t,r){"use strict";var n=r(1),a=r(0),o=wp.components,l=o.ColorPicker,c=o.ColorIndicator,i=o.Popover,s=o.Button,p=(o.Flex,wp.element),u=p.useState,d=p.useEffect,b=wp.i18n.__;t.a=function(e){var t=e.color,r=e.setColor,o=e.onFocus,p=u(!1),m=Object(n.a)(p,2),y=m[0],v=m[1],f=u(t),h=Object(n.a)(f,2),O=h[0],g=h[1];return d((function(){y&&t&&g(t)}),[y]),Object(a.b)("span",null,Object(a.b)(c,{css:{width:"25px",height:"25px",borderRadius:"9999px"},colorValue:t,onClick:function(){v(!y),o&&o()}}),!!y&&Object(a.b)(i,{position:"bottom left",focusOnMount:!0,onFocusOutside:function(e){v(!1)}},Object(a.b)(l,{color:t||"",onChangeComplete:function(e){return(null==e?void 0:e.hex)&&r(e)},disableAlpha:!0}),Object(a.b)("div",{css:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"10px"}},Object(a.b)(s,{css:{margin:"0 5px"},isTertiary:!0,onClick:function(){r({hex:null}),v(!1)}},b("Reset","presto-player")),Object(a.b)("div",{css:{display:"flex",justifyContent:"flex-end",padding:"10px"}},Object(a.b)(s,{css:{margin:"0 5px"},isTertiary:!0,onClick:function(){r({hex:O}),v(!1)}},b("Cancel","presto-player")),Object(a.b)(s,{isPrimary:!0,onClick:function(){return v(!1)}},b("Apply","presto-player"))))))}},function(e,t){e.exports=window.wp.element},function(e,t,r){"use strict";var n=r(5),a=r(24),o=r(9);function l(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?l(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):l(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var i=wp.data.useSelect;t.a=function(e){var t,r,n,l=e.src,s=e.classes,p=e.preset,u=e.branding,d=e.attributes,b=e.adminPreview,m=e.currentTime,y=e.preload,v=void 0===y?"metadata":y,f=e.overlays,h=e.type,O=d.chapters,g=d.mutedOverlay,j=d.mutedPreview,w=i((function(e){var t;return null===(t=e("presto-player/player"))||void 0===t?void 0:t.youtube()})),_=i((function(e){var t;return null===(t=e("presto-player/player"))||void 0===t?void 0:t.playerCSS()}));return React.createElement("div",{className:"wp-block-video presto-block-video",style:"audio"===h?c(c(c({"--presto-player-border-radius":"".concat(null==p?void 0:p.border_radius,"px")},null!=p&&p.background_color?{"--plyr-audio-controls-background":p.background_color}:{"--plyr-audio-controls-background":null==u?void 0:u.color}),null!=p&&p.control_color?{"--plyr-audio-control-color":p.control_color,"--plyr-range-thumb-background":p.control_color,"--plyr-range-fill-background":p.control_color,"--plyr-audio-progress-buffered-background":function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,r=e.replace("#","");3===r.length&&(r=r[0]+r[0]+r[1]+r[1]+r[2]+r[2]);var n=parseInt(r.substring(0,2),16),a=parseInt(r.substring(2,4),16),o=parseInt(r.substring(4,6),16);return t>1&&t<=100&&(t/=100),"rgba("+n+","+a+","+o+","+t+")"}(p.control_color||(null==u?void 0:u.color)||"#00b3ff",.5)}:{"--plyr-audio-control-color":"#ffffff","--plyr-range-thumb-background":"#ffffff","--plyr-range-fill-background":"#ffffff"}),{},{"--plyr-range-thumb-shadow":"0px"}):c(c(c({"--presto-player-border-radius":"".concat(null==p?void 0:p.border_radius,"px")},null!=p&&p.caption_background?{"--plyr-captions-background":p.caption_background}:{}),null!=u&&u.color?{"--plyr-color-main":u.color}:{}),{},{"--presto-player-email-border-radius":"".concat((null==p||null===(t=p.email_collection)||void 0===t?void 0:t.border_radius)||0,"px"),"--presto-player-logo-width":"".concat((null==u?void 0:u.logo_width)||75,"px")})},React.createElement(a.c,{src:l,css:_,classes:s,currentTime:m,overlays:f,isAdmin:!0,preload:v,preset:p,bunny:{thumbnail:null==d?void 0:d.previewThumbnail,preview:null==d?void 0:d.preview},youtube:{channelId:null==w?void 0:w.channel_id},tracks:!(null==p||!p.captions)&&[{kind:"captions",label:"English",srclang:"en",src:"/path/to/captions.en.vtt",default:!0}],branding:u,chapters:O,blockAttributes:d,poster:d.poster,provider:"audio"===h?"audio":Object(o.a)(l),mediaTitle:d.title},React.createElement("div",{slot:"player-end"},(null==j?void 0:j.enabled)&&(null==g?void 0:g.enabled)&&React.createElement("div",{className:"presto-player__overlay is-image",style:{position:"absolute",width:"".concat((null==g?void 0:g.width)||100,"%"),left:"".concat(100*((null==g||null===(r=g.focalPoint)||void 0===r?void 0:r.x)||.5),"%"),top:"".concat(100*((null==g||null===(n=g.focalPoint)||void 0===n?void 0:n.y)||.5),"%")}},React.createElement("img",{src:null==g?void 0:g.src,style:{transform:"translateX(-50%) translateY(-50%)"}})),b)))}},function(e,t){e.exports=window.wp.data},function(e,t,r){"use strict";var n={setUrlPrivate:function(){var e=-1===window.location.href.indexOf("?")?"?":"&",t=window.location.href+e+"presto_video_type=private";window.history.pushState({path:t},"",t)},setUrlPublic:function(){var e=-1===window.location.href.indexOf("?")?"?":"&",t=window.location.href+e+"presto_video_type=public";window.history.pushState({path:t},"",t)},unsetUrlParams:function(){var e=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],r=new URL(e);return t.forEach((function(e){r.searchParams.delete(e)})),r.href}(window.location.href,["presto_video_type"]);window.history.pushState({path:e},"",e)}};t.a=n},function(e,t,r){"use strict";var n,a=r(5),o=(n={visibility:{type:String,default:"public"},color:{type:String,default:"#00b3ff"},blockAlignment:{type:String},mutedPreview:{type:Object,default:{enabled:!1,captions:!1}},mutedOverlay:{type:Object,default:{enabled:!1,src:"",width:200,focalPoint:{x:.5,y:.5}}},mutedPreviewCaptions:{type:Boolean},mutedOverlayType:{type:String,default:"text"},mutedOverlayText:{type:String,default:"Click to play"},mutedOverlaySrc:{type:String},mutedOverlayImageWidth:{type:Number,default:200},mutedOverlayFocalPoint:{type:Object}},Object(a.a)(n,"mutedOverlay",{type:Object,default:{enabled:!1,type:"text",text:"",src:"",width:200,focalPoint:{x:.5,y:.5}}}),Object(a.a)(n,"autoplay",{type:Boolean}),Object(a.a)(n,"preload",{type:String}),Object(a.a)(n,"playsInline",{type:Boolean}),Object(a.a)(n,"id",{type:Number}),Object(a.a)(n,"attachment_id",{type:Number}),Object(a.a)(n,"src",{type:String}),Object(a.a)(n,"imageID",{type:Number}),Object(a.a)(n,"poster",{type:String}),Object(a.a)(n,"content",{type:Boolean}),Object(a.a)(n,"preset",{type:Number}),Object(a.a)(n,"chapters",{type:Array,default:[]}),Object(a.a)(n,"overlays",{type:Array,default:[]}),Object(a.a)(n,"tracks",{type:"array",items:{type:"object"},default:[]}),n);t.a={attributes:o,category:"presto",supports:{align:!0},save:function(){return null}}},function(e,t,r){"use strict";function n(e){var t,r=(e||"").match(/^.*(youtu.be\/|v\/|u\/\w\/|embed\/|watch\?v=|&v=)([^#&?]*).*/);return r&&11===(null==r||null===(t=r[2])||void 0===t?void 0:t.length)?r[2]:null}function a(e){var t=/^.*(vimeo\.com\/)((channels\/[A-z]+\/)|(groups\/[A-z]+\/videos\/))?([0-9]+)/.exec(e||"");return(null==t?void 0:t[5])||""}function o(e){var t=a(e);if(t)return{video_id:t,type:"vimeo"};var r=n(e);return r?{video_id:r,type:"youtube"}:{$video_id:0,$type:"none"}}function l(e){return"string"==typeof e&&e.includes(".m3u8")}r.d(t,"c",(function(){return n})),r.d(t,"b",(function(){return a})),r.d(t,"a",(function(){return o})),r.d(t,"d",(function(){return l}))},,,function(e,t,r){"use strict";var n=r(5),a=r(7),o=r(1),l=r(2),c=r.n(l),i=r(9),s=r(35);function p(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function u(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?p(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):p(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var d=wp.compose.createHigherOrderComponent,b=wp.element,m=b.useEffect,y=b.useState;t.a=function(){return d((function(e){return function(t){var r=t.presets,n=t.attributes,l=t.setAttributes,p=t.defaultPreset,d=t.isSelected,b=t.branding,v=y({}),f=Object(o.a)(v,2),h=f[0],O=f[1],g=y(1),j=Object(o.a)(g,2),w=j[0],E=j[1],R=n.poster,k=n.chapters;m((function(){d&&null!=n&&n.id&&wp.data.dispatch("core/edit-post").openGeneralSidebar("edit-post/block")}),[d]),m((function(){d&&null!=n&&n.selectionOverrideClientId&&wp.data.dispatch("core/block-editor").selectBlock(null==n?void 0:n.selectionOverrideClientId)}),[d]),m((function(){if(r&&r.length){var e=r.find((function(e){return e.id===(null==n?void 0:n.preset)}));e?O(e):(O(p),l({preset:null==p?void 0:p.id}))}}),[r,null==n?void 0:n.preset]),m((function(){P()}),[R,h,k,b.logo]);var P=function(){E(w+1)},C=Object(i.f)(k);m((function(){var e=null==k?void 0:k.map((function(e){return e.time})),t=null==C?void 0:C.map((function(e){return e.time}));_.difference(e,t).length&&P()}),[k]);var x=function(){var e=Object(a.a)(c.a.mark((function e(t){var r,n,a,o,i,p,d;return c.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.src,n=t.external_id,a=t.attachment_id,o=t.type,i=t.title,r||n||a){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,Object(s.a)({method:"POST",path:"/presto-player/v1/videos",data:u(u({attachment_id:a,post_id:wp.data.select("core/editor").getCurrentPostId(),external_id:n},i?{title:i}:{}),{},{src:r,type:o})});case 5:p=e.sent,d=p.id,l({id:d});case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return null!=n&&n.preset||l({preset:null==p?void 0:p.id}),React.createElement(e,Object.assign({},t,{lockSave:function(){return wp.data.dispatch("core/editor").lockPostSaving("presto-player")},unlockSave:function(){return wp.data.dispatch("core/editor").unlockPostSaving("presto-player")},createVideo:x,onUpdate:P,onRemoveSrc:function(){confirm("Remove this video?")&&l(u(u(u(u({src:"",id:void 0},null!=n&&n.thumbnail?{thumbnail:null}:{}),null!=n&&n.preview?{preview:null}:{}),null!=n&&n.previewSrc?{previewSrc:null}:{}),null!=n&&n.previewThumbnail?{previewThumbnail:null}:{}))},presetData:h,setPresetData:O,renderKey:w}))}}),"withPlayerEdit")}},function(e,t,r){"use strict";var n=wp.data.withSelect;t.a=function(e){return n((function(e){return{branding:e("presto-player/player").branding(),loading:e("presto-player/player").isResolving("getPresets"),presets:e("presto-player/player").getPresets(),defaultPreset:e("presto-player/player").getDefaultPreset()}}))}},function(e,t,r){"use strict";var n,a=r(30),o=r(41),l=r(11),c=r(6),i=r(1),s=r(50),p=r(0),u=wp.i18n.__,d=wp.element.useState,b=wp.data,m=(b.useSelect,b.dispatch),y=wp.components,v=(y.withNotices,y.BaseControl),f=(y.Spinner,y.Button),h=function(e){var t,r=e.setAttributes,a=e.attributes,o=a.overlays,b=d(!1),y=Object(i.a)(b,2),h=y[0],O=y[1];return Object(p.b)(React.Fragment,null,Object(p.b)(v,null,Object(p.b)(f,{isPrimary:!0,onClick:function(){var e;null!==(e=prestoPlayer)&&void 0!==e&&e.isPremium?O(!0):m("presto-player/player").setProModal(!0)}},o.length?u("Update Overlays","presto-player"):u("Add Overlay","presto-player"),!!o.length&&Object(p.b)("div",{css:Object(p.a)(n||(n=Object(c.a)(["\n font-size: 10px;\n background: #fff;\n color: var(--wp-admin-theme-color);\n font-weight: bold;\n display: inline-block;\n line-height: 6px;\n padding: 5px;\n border-radius: 9999px;\n margin-left: 10px;\n "])))},o.length)),!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&Object(p.b)(l.a,null)),h&&Object(p.b)(s.a,{closeModal:function(){return O(!1)},attributes:a,setAttributes:r,updateOverlayAttribute:function(e){r({overlays:e})}}))},O=r(7),g=r(5),j=r(2),w=r.n(j),_=r(9),E=r(32),R=r(37),k=r(42),P=wp.i18n.__,C=wp.components,x=C.ToggleControl,S=C.BaseControl,N=C.HorizontalRule,T=C.__experimentalAlignmentMatrixControl,D=C.SelectControl,B=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(S,null,React.createElement("h3",null,P("Behavior","presto-player"))),React.createElement(S,null,React.createElement(x,{label:P("Auto-Hide Controls","presto-player"),help:P("Hide video controls automatically after 2 seconds of no mouse movement.","presto-player"),onChange:function(e){r({auto_hide:e})},checked:t.auto_hide})),React.createElement(S,null,React.createElement(x,{label:P("Save Play Position","presto-player"),help:P("Saves the user's play position so when they come back to the page they can continue the video from where they left off.","presto-player"),onChange:function(e){r({save_player_position:e})},checked:t.save_player_position})),React.createElement(S,null,React.createElement(x,{label:P("Captions On By Default","presto-player"),help:P("Toggles if captions should be active by default.","presto-player"),onChange:function(e){r({captions_enabled:e})},checked:t.captions_enabled})),React.createElement(S,null,React.createElement(x,{label:P("Focus Mode","presto-player"),help:P("Play only when tab is visible and video is in viewport.","presto-player"),onChange:function(e){r({play_video_viewport:e})},checked:t.play_video_viewport})),React.createElement(S,null,React.createElement(x,{label:P("Sticky On Scroll","presto-player"),help:P("Stick videos to the side of the screen when the page is scrolled and the video is playing.","presto-player"),onChange:function(e){r({sticky_scroll:e})},checked:t.sticky_scroll})),!!t.sticky_scroll&&React.createElement(React.Fragment,null,React.createElement(S,{label:P("Choose a position for your sticky player.","presto-player")},React.createElement(T,{value:t.sticky_scroll_position,onChange:function(e){r({sticky_scroll_position:e})}}))),React.createElement(S,null,React.createElement(D,{label:P("On Video End","presto-player"),value:t.on_video_end,options:[{value:"select",label:P("Select","presto-player")},{value:"loop",label:P("Loop","presto-player")},{value:"go-to-start",label:P("Go to start","presto-player")}],onChange:function(e){r({on_video_end:e})}})),React.createElement(N,null),React.createElement(S,null),React.createElement(S,null,React.createElement("h3",null,P("Youtube","presto-player"))),React.createElement(S,null,React.createElement(x,{label:P("Hide Youtube UI (Experimental)","presto-player"),help:P("Hides the Youtube logo and related videos.","presto-player"),onChange:function(e){r({hide_youtube:e})},checked:t.hide_youtube})),React.createElement(S,null,React.createElement(x,{label:P("Lazy Load Videos","presto-player"),help:P("Improves page loading performance by only loading the video when clicked.","presto-player"),onChange:function(e){r({lazy_load_youtube:e})},checked:t.lazy_load_youtube})))},A=wp.i18n.__,L=wp.components,I=L.ToggleControl,F=L.BaseControl,V=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(F,null,React.createElement("h3",null,A("Controls","presto-player"))),React.createElement(F,{className:"presto-player__control--large-play"},React.createElement(I,{label:A("Large Play Button","presto-player"),help:A("Adds a large play button over the top of the player.","presto-player"),onChange:function(e){r({"play-large":e})},checked:t["play-large"]})),React.createElement(F,{className:"presto-player__control--rewind"},React.createElement(I,{label:A("Rewind","presto-player"),help:A("Adds a 10 second rewind button to the player.","presto-player"),onChange:function(e){r({rewind:e})},checked:t.rewind})),React.createElement(F,{className:"presto-player__control--play"},React.createElement(I,{label:A("Small Play Button","presto-player"),help:A("Adds a small play button to the bottom of the player.","presto-player"),onChange:function(e){r({play:e})},checked:t.play})),React.createElement(F,{className:"presto-player__control--fast-forward"},React.createElement(I,{label:A("Fast Forward","presto-player"),help:A("Adds a 10 second rewind button to the player.","presto-player"),onChange:function(e){r({"fast-forward":e})},checked:t["fast-forward"]})),React.createElement(F,{className:"presto-player__control--progress"},React.createElement(I,{label:A("Progress Bar","presto-player"),help:A("Shows a seekable progress bar.","presto-player"),onChange:function(e){r({progress:e})},checked:t.progress})),React.createElement(F,{className:"presto-player__control--current-time"},React.createElement(I,{label:A("Current Time","presto-player"),help:A("Shows the video timestamp.","presto-player"),onChange:function(e){r({"current-time":e})},checked:t["current-time"]})),React.createElement(F,{className:"presto-player__control--volume"},React.createElement(I,{label:A("Volume","presto-player"),help:A("Shows a volume bar.","presto-player"),onChange:function(e){r({volume:e,mute:e})},checked:t.volume})),React.createElement(F,{className:"presto-player__control--speed"},React.createElement(I,{label:A("Speed","presto-player"),help:A("Shows playback speed controls.","presto-player"),onChange:function(e){r({speed:e})},checked:t.speed})),React.createElement(F,{className:"presto-player__control--pip"},React.createElement(I,{label:A("Picture In Picture (HTML5 only)","presto-player"),help:A("Allows users to dock the player on their screen and watch when using other app on their computer.","presto-player"),onChange:function(e){r({pip:e})},checked:t.pip})),React.createElement(F,{className:"presto-player__control--fullscreen"},React.createElement(I,{label:A("Fullscreen","presto-player"),help:A("Adds a button to allow the player to be fullscreen.","presto-player"),onChange:function(e){r({fullscreen:e})},checked:t.fullscreen})),React.createElement(F,{className:"presto-player__control--captions"},React.createElement(I,{label:A("Captions","presto-player"),help:A("Shows a dedicated caption toggle button.","presto-player"),onChange:function(e){r({captions:e})},checked:t.captions})))},U=r(38),M=r(12);function z(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function W(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?z(Object(r),!0).forEach((function(t){Object(g.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):z(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var H,Y,G=wp.i18n.__,q=wp.components,Z=q.ToggleControl,K=q.BaseControl,Q=q.RadioControl,X=q.Flex,$=q.RangeControl,J=wp.element.useEffect,ee=function(e){var t=e.state,r=e.updateState,n=e.className,a=t.watermark,o={text:G("Enter your watermark text.","presto-player"),position:"top-right",color:"#fff",backgroundColor:"#333",opacity:80};J((function(){Object.keys(o).forEach((function(e){var r;void 0===(null==t||null===(r=t.watermark)||void 0===r?void 0:r[e])&&l(Object(g.a)({},e,o[e]))}))}),[t]);var l=function(e){r(W(W({},t),{},{watermark:W(W({},a),e)}))};return React.createElement("div",{className:n},React.createElement(K,null,React.createElement("h3",null,G("Dynamic Watermark Text","presto-player"))),React.createElement(K,{className:"presto-player__control--watermark"},React.createElement(Z,{label:G("Enable","presto-player"),help:G("Add a simulated dynamic watermark over your video.","presto-player"),onChange:function(e){l({enabled:e})},checked:null==a?void 0:a.enabled})),(null==a?void 0:a.enabled)&&React.createElement("div",null,React.createElement(U.a,{text:null==a?void 0:a.text,update:function(e){var t=e.text;l({text:t})}}),React.createElement(K,{className:n},React.createElement(Q,{label:G("Position","presto-player"),options:[{label:G("Top Right","presto-player"),value:"top-right"},{label:G("Top Left","presto-player"),value:"top-left"},{label:G("Change Every 10 Seconds","presto-player"),value:"randomize"}],selected:(null==a?void 0:a.position)||"top-right",onChange:function(e){return l({position:e})}})),React.createElement(K,{className:"presto-player__control-text-color"},React.createElement(X,null,React.createElement(K.VisualLabel,null,G("Text Color","presto-player")),React.createElement(M.a,{color:(null==a?void 0:a.color)||"#fff",setColor:function(e){return l({color:e&&e.hex})}}))),React.createElement(K,{className:"presto-player__control-text-color"},React.createElement(X,null,React.createElement(K.VisualLabel,null,G("Background Color","presto-player")),React.createElement(M.a,{color:(null==a?void 0:a.backgroundColor)||"#333",setColor:function(e){return l({backgroundColor:e&&e.hex})}}))),React.createElement(K,null,React.createElement($,{label:G("Opacity","presto-player"),help:G("Opacity percentage of the watermark.","presto-player"),value:(null==a?void 0:a.opacity)||100,onChange:function(e){return l({opacity:e})},min:0,max:100}))))},te=r(34),re=r(40),ne=wp.i18n.__,ae=wp.components,oe=ae.ToggleControl,le=ae.BaseControl,ce=ae.RangeControl,ie=ae.SelectControl,se=ae.ColorPicker,pe=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(le,null,React.createElement("h3",null,ne("Style","presto-player"))),React.createElement(le,null,React.createElement(oe,{label:ne("Hide Logo","presto-player"),help:ne("Hides the logo on this video.","presto-player"),onChange:function(e){r({hide_logo:e})},checked:t.hide_logo})),React.createElement(le,null,React.createElement(ce,{label:ne("Round Corners","presto-player"),help:ne("Player border radius size.","presto-player"),value:(null==t?void 0:t.border_radius)||0,onChange:function(e){return r({border_radius:e})},min:0,max:25})),React.createElement(le,null,React.createElement(ie,{label:ne("Caption Style","presto-player"),labelPosition:"top",value:null==t?void 0:t.caption_style,options:[{label:ne("Default","presto-player"),value:"default"},{label:ne("Full","presto-player"),value:"full"}],onChange:function(e){r({caption_style:e})}})),React.createElement(le,null,React.createElement(le.VisualLabel,null,React.createElement("p",null,ne("Caption Background","presto-player"))),React.createElement(se,{color:(null==t?void 0:t.caption_background)||"#000000",onChangeComplete:function(e){r({caption_background:e.hex})},disableAlpha:!0})))};function ue(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function de(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ue(Object(r),!0).forEach((function(t){Object(g.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ue(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var be=wp.i18n.__,me=wp.components,ye=me.TextControl,ve=me.BaseControl,fe=me.Icon,he=me.Notice,Oe=me.Button,ge=me.Flex,je=me.FlexItem,we=me.SelectControl,_e=me.FlexBlock,Ee=me.Modal,Re=wp.element,ke=Re.useState,Pe=Re.useEffect,Ce=wp.data,xe=Ce.useSelect,Se=Ce.dispatch;var Ne=function(e){var t=e.type,r=void 0===t?"new":t,n=e.closeModal,a=e.addPreset,o=e.onSave,l=e.updatePreset,s=e.name,u=void 0===s?"":s,d=e.preset,b=void 0===d?{"play-large":!0,rewind:!0,play:!0,"fast-forward":!0,progress:!0,"current-time":!0,mute:!0,volume:!0,speed:!1,pip:!1,fullscreen:!0,captions:!1,save_player_position:!1,reset_on_end:!1,auto_hide:!0,sticky_scroll:!1,hide_logo:!1,border_radius:0,skin:"modern",caption_style:"default",caption_background:"#000000",hide_youtube:!1,lazy_load_youtube:!1,cta:{},email_collection:{},action_bar:{}}:d,m=ke(!1),y=Object(i.a)(m,2),v=y[0],f=y[1],h=ke(""),g=Object(i.a)(h,2),j=g[0],P=g[1],C=ke(""),x=Object(i.a)(C,2),S=x[0],N=x[1],T=ke(u),D=Object(i.a)(T,2),A=D[0],L=D[1],I=ke(b),F=Object(i.a)(I,2),U=F[0],M=F[1],z=xe((function(e){return e("presto-player/player").branding()})),W=ke(""),G=Object(i.a)(W,2),q=G[0],Z=G[1],K={message:be("The preset could not be saved. Please reload the page and try again.","presto-player")},Q=xe((function(e){return e("presto-player/player").youtube()}));Pe((function(){Z(Q.channel_id)}),[null==Q?void 0:Q.channel_id]);var X=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};M(de(de({},U),e))},$=function(){var e=Object(O.a)(w.a.mark((function e(){var t,r,a,c;return w.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(!0),e.prev=1,t=de(de({},U),{name:A}),e.next=5,wp.apiFetch({method:"POST",url:wp.url.addQueryArgs("".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"preset/").concat(b.id),{_method:"PUT"}),data:t});case 5:if(r=e.sent){e.next=8;break}throw K;case 8:l(r),n(),o&&o(r),Object(_.d)({message:be("Preset updated!","presto-player")}),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(1),P(null!==e.t0&&void 0!==e.t0&&e.t0.message?e.t0.message:K);case 17:return e.prev=17,f(!1),e.finish(17);case 20:return Se("presto-player/player").updateYoutube({channel_id:q}),a=de(de({},Q),{channel_id:q}),e.prev=22,e.next=25,wp.apiFetch({path:"wp/v2/settings",method:"POST",data:{presto_player_youtube:a}});case 25:null!=(c=e.sent)&&c.presto_player_youtube&&(Se("presto-player/player").setYoutube(null==c?void 0:c.presto_player_youtube),onClose()),e.next=32;break;case 29:e.prev=29,e.t1=e.catch(22),console.log(e.t1);case 32:case"end":return e.stop()}}),e,null,[[1,14,17,20],[22,29]])})));return function(){return e.apply(this,arguments)}}(),J=function(){var e=Object(O.a)(w.a.mark((function e(){var t;return w.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return f(!0),e.prev=1,e.next=4,wp.apiFetch({method:"POST",url:prestoPlayer.root+prestoPlayer.prestoVersionString+"preset",data:de(de({},{name:A}),U)});case 4:if(t=e.sent){e.next=7;break}throw K;case 7:a(t),n(),o&&o(t),Object(_.d)({message:be("Preset created!","presto-player")}),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),P(null!==e.t0&&void 0!==e.t0&&e.t0.message?e.t0.message:K);case 16:return e.prev=16,f(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])})));return function(){return e.apply(this,arguments)}}(),ne=[{name:"controls",title:be("Controls","presto-player"),icon:Object(p.b)(fe,{icon:"admin-settings"}),component:Object(p.b)(V,{updateState:X,state:U})},{name:"behavior",title:be("Behavior","presto-player"),icon:Object(p.b)(fe,{icon:"admin-generic"}),component:Object(p.b)(B,{updateState:X,state:U})},{name:"style",title:be("Style","presto-player"),icon:Object(p.b)(fe,{icon:"admin-customizer"}),component:Object(p.b)(pe,{updateState:X,state:U})},{name:"email",title:be("Email Capture","presto-player"),icon:Object(p.b)(fe,{icon:"email"}),component:Object(p.b)(re.a,{updateState:X,state:U})},{name:"cta",title:be("Call To Action","presto-player"),icon:Object(p.b)(fe,{icon:"megaphone"}),component:Object(p.b)(te.a,{updateState:X,state:U})},{name:"action_bar",title:be("Action Bar","presto-player"),icon:Object(p.b)(fe,{icon:"cover-image"}),component:Object(p.b)(k.a,{updateState:X,state:U,value:q,setValue:Z})},{name:"watermark",title:be("Dynamic Watermark","presto-player"),icon:Object(p.b)(fe,{icon:"lock"}),component:Object(p.b)(ee,{updateState:X,state:U})}];return Object(p.b)(Ee,{title:be("edit"==r?"Edit A Video Preset":"Create A New Video Preset","presto-player"),onRequestClose:n,className:"presto-player__modal-presets",overlayClassName:"presto-player__modal-presets-overlay"},Object(p.b)("div",{className:"presto-player__preset-options","data-cy":"preset-modal"},Object(p.b)(ye,{value:A,hideLabelFromVision:!0,label:be("Preset Name","presto-player"),onChange:function(e){return L(e)},placeholder:be("Enter a preset name...","presto-player"),className:"presto-player__modal--style-name",autoFocus:!0}),Object(p.b)(ge,{align:"stretch",className:"presto-player__style-preview-area"},Object(p.b)(je,{className:"presto-player__style-sidebar"},Object(p.b)("div",null,Object(p.b)(E.a,{items:ne,title:be("Customize","presto-player"),onSelect:N},(function(e){return e.component})))),Object(p.b)(_e,{className:"presto-player__style-preview-panel"},Object(p.b)("div",{style:{position:"absolute",top:0,left:0,padding:"20px"}},Object(p.b)(we,{label:be("Skin","presto-player"),labelPosition:"side",value:null==U?void 0:U.skin,options:[{label:be("Modern","presto-player"),value:"modern"},{label:be("Business","presto-player"),value:"business"},{label:be("Stacked","presto-player"),value:"stacked"},{label:be("Basic","presto-player"),value:"default"}],onChange:function(e){X({skin:e})}})),Object(p.b)(R.a,{poster:"https://source.unsplash.com/daily",state:U,branding:z,menu:S}))),Object(p.b)("br",null),j&&Object(p.b)(ve,null,Object(p.b)(he,{className:"presto-player__modal--error-notice",status:"error",isDismissible:!1,style:{margin:0}},j.replace(/(<([^>]+)>)/gi,""))),Object(p.b)("div",{css:Object(p.a)(H||(H=Object(c.a)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n "])))},Object(p.b)("div",{css:Object(p.a)(Y||(Y=Object(c.a)(["\n opacity: 0.5;\n font-size: 12px;\n "])))},"Preset ID: ",b.id),Object(p.b)("div",null,Object(p.b)(Oe,{isTertiary:!0,onClick:n,style:{margin:"0 6px"}},be("Cancel","presto-player")),Object(p.b)(Oe,{isPrimary:!0,isBusy:v,disabled:v,onClick:function(){if(A)return"edit"===r?$():J();P(be("You must enter a name for the preset.","presto-player"))},"data-cy":"submit-preset"},be("edit"==r?"Update Preset":"Create Preset","presto-player"))))))},Te=wp.i18n.__,De=wp.components,Be=De.Icon,Ae=De.Spinner,Le=De.Modal,Ie=De.Button,Fe=De.ButtonGroup,Ve=wp.element.useState,Ue=function(e){var t,r,n=e.preset,a=e.index,o=e.isActive,l=e.remove,c=e.setPreset,s=e.onEdit,p=Ve(!1),u=Object(i.a)(p,2),d=u[0],b=u[1],m=Ve(!1),y=Object(i.a)(m,2),v=y[0],f=y[1],h=function(){return f(!1)},g=function(){var e=Object(O.a)(w.a.mark((function e(){return w.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.id){e.next=3;break}return l(n),e.abrupt("return");case 3:return e.prev=3,b(!0),e.next=7,wp.apiFetch({method:"POST",url:wp.url.addQueryArgs("".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"preset/").concat(n.id),{_method:"DELETE"})});case 7:e.sent&&(l(n),wp.data.dispatch("core/notices").createNotice("success",Te("Preset trashed.","presto-player"),{type:"snackbar",isDismissible:!0})),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(3),console.error(e.t0),null!==e.t0&&void 0!==e.t0&&e.t0.message&&wp.data.dispatch("core/notices").createNotice("error",e.t0.message,{type:"snackbar",isDismissible:!0});case 15:return e.prev=15,f(!1),b(!1),e.finish(15);case 19:case"end":return e.stop()}}),e,null,[[3,11,15,19]])})));return function(){return e.apply(this,arguments)}}();return d?React.createElement("div",{className:"block-editor-block-styles__item",role:"button",tabIndex:a,"aria-label":"Fill",style:{color:o?"var(--wp-admin-theme-color)":"inherit"}},React.createElement("div",{className:"block-editor-block-styles__item-preview",style:{border:o?"2px solid var(--wp-admin-theme-color)":"2px solid #e3e3e3",margin:0,display:"flex","align-items":"center","justify-content":"center"}},React.createElement(Ae,null))):React.createElement("div",{className:"block-editor-block-styles__item presto-preset-".concat(n.slug),onClick:function(){c(n)},role:"button",tabIndex:a,"aria-label":"Fill",style:{color:o?"var(--wp-admin-theme-color)":"inherit"}},React.createElement("div",{className:"block-editor-block-styles__item-preview",style:{border:o?"2px solid var(--wp-admin-theme-color)":"2px solid #e3e3e3",margin:0}},React.createElement("div",{style:{textAlign:"center",width:"100%",color:o?"var(--wp-admin-theme-color)":"inherit",opacity:o?1:.75}},null!=n&&n.icon?React.createElement(Be,{icon:null==n?void 0:n.icon,style:{fontSize:"30px",width:"30px",height:"30px"}}):React.createElement("h1",{style:{opacity:.75}},(null==n||null===(t=n.name)||void 0===t||null===(r=t.charAt(0))||void 0===r?void 0:r.toUpperCase())||"Untitled"))),React.createElement("div",{className:"block-editor-block-styles__item-label",style:{fontWeight:"bold",textTransform:"capitalize"}},(null==n?void 0:n.name)||"Untitled"),!(null!=n&&n.is_locked)&&React.createElement("div",{className:"block-editor-block-styles__item-edit"},React.createElement("div",{className:"block-editor-block-styles__item-edit-icon",onClick:s},React.createElement(Be,{icon:"edit"})),React.createElement("div",{className:"block-editor-block-styles__item-edit-icon",onClick:function(){return f(!0)}},React.createElement(Be,{icon:"trash"}))),v&&React.createElement(Le,{title:Te("Trash Preset?","presto-player"),onRequestClose:h,style:{maxWidth:"250px"}},React.createElement("p",null,React.createElement("strong",null,Te("Warning!","presto-player")," "),Te("Any videos assigned to this preset will automatically use the default preset.","presto-player")),React.createElement(Fe,null,React.createElement(Ie,{isDestructive:!0,onClick:g,style:{margin:"0 4px"}},Te("Trash","presto-player")),React.createElement(Ie,{isTertiary:!0,onClick:h,style:{margin:"0 4px",boxShadow:"none"}},Te("Cancel","presto-player")))))},Me=wp.i18n.__,ze=wp.components,We=ze.withNotices,He=ze.BaseControl,Ye=ze.Spinner,Ge=ze.Button,qe=wp.element,Ze=qe.useState,Ke=(qe.useEffect,wp.data),Qe=Ke.useSelect,Xe=Ke.dispatch;var $e=We((function(e){var t,r=e.attributes,n=e.setAttributes,a=Ze(!1),o=Object(i.a)(a,2),c=o[0],s=o[1],p=function(){return s(!1)},u=Ze(null),d=Object(i.a)(u,2),b=d[0],m=d[1],y=Ze(null),v=Object(i.a)(y,2),f=v[0],h=v[1],O=Qe((function(e){return{presets:e("presto-player/player").getPresets(),loading:e("presto-player/player").isResolving("getPresets")}})),g=O.presets,j=O.loading,w=function(e){Xe("presto-player/player").addPreset(e)},_=function(e){Xe("presto-player/player").removePreset(e)},E=function(e){n({preset:e.id})};return j?React.createElement("div",{className:"presto-settings__loading"},React.createElement(Ye,null)):React.createElement(React.Fragment,null,g.length?React.createElement("p",null,Me("Select a video configuration preset, or add your own.","presto-player")):"",React.createElement(He,null,React.createElement("div",{className:"block-editor-block-styles"},(g||[]).length?g.map((function(e,t){return React.createElement(Ue,{setPreset:E,index:t,isActive:(null==r?void 0:r.preset)===e.id,preset:e,key:e.id,onEdit:function(){h(e.name),m(e),s("edit")},remove:_})})):Me("No style presets. You can create a new style by clicking 'Add New Style'.","presto-plugin"))),React.createElement(He,null,React.createElement(Ge,{isPrimary:!0,"data-cy":"add-new-preset",onClick:function(){var e;null!==(e=prestoPlayer)&&void 0!==e&&e.isPremium?s("new"):Xe("presto-player/player").setProModal(!0)}},Me("Add New Preset","presto-player")),!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(l.a,null)),"new"==c&&React.createElement(Ne,{closeModal:p,addPreset:w,type:"new",onSave:E}),"edit"==c&&React.createElement(Ne,{closeModal:p,addPreset:w,updatePreset:function(e){Xe("presto-player/player").updatePreset(e)},type:"edit",preset:b,name:f}))})),Je=r(18);function et(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?et(Object(r),!0).forEach((function(t){Object(g.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var rt=wp.i18n.__,nt=wp.components,at=(nt.PanelRow,nt.TextControl,nt.SelectControl,nt.BaseControl),ot=nt.Button,lt=nt.FocalPointPicker,ct=nt.RangeControl,it=wp.blockEditor,st=it.MediaUpload,pt=it.MediaUploadCheck,ut=(wp.element.useState,["image"]),dt=function(e){var t=e.attributes,r=e.setAttributes,n=e.instanceId,a=t.mutedOverlay,o="video-block__overlay-image-description-".concat(n);return React.createElement(React.Fragment,null,React.createElement(pt,null,React.createElement(at,{className:"editor-video-overlay-control"},React.createElement(at.VisualLabel,null,React.createElement("p",null,rt("Overlay Image","presto-player"))),React.createElement(st,{title:rt("Select overlay image","presto-player"),onSelect:function(e){r({mutedOverlay:tt(tt({},a),{src:e.url})})},allowedTypes:ut,render:function(e){var t=e.open;return React.createElement(ot,{className:"presto-setting__poster",isPrimary:!0,onClick:t},null!=a&&a.src?rt("Replace","presto-player"):rt("Select","presto-player"))}}),React.createElement("p",{id:o,hidden:!0},null!=a&&a.src?sprintf(rt("The current overlay image url is %s","presto-player"),null==a?void 0:a.src):rt("There is no overlay image currently selected","presto-player")),!(null==a||!a.src)&&React.createElement(ot,{onClick:function(){r({mutedOverlay:tt(tt({},a),{src:""})})},className:"presto-setting__remove-poster",isTertiary:!0},rt("Remove","presto-player")))),!(null==a||!a.src)&&React.createElement(lt,{url:"",dimensions:{width:160,height:90},value:null==a?void 0:a.focalPoint,onChange:function(e){return r({mutedOverlay:tt(tt({},a),{focalPoint:e})})}}),!(null==a||!a.src)&&React.createElement(ct,{label:rt("Max Width (%)","presto-player"),value:null==a?void 0:a.width,onChange:function(e){return r({mutedOverlay:tt(tt({},a),{width:e})})},min:1,max:100}))};function bt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function mt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?bt(Object(r),!0).forEach((function(t){Object(g.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):bt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var yt=wp.i18n.__,vt=wp.components,ft=vt.ToggleControl,ht=vt.SelectControl,Ot=vt.BaseControl,gt=vt.Button,jt=vt.PanelRow,wt=vt.Icon,_t=vt.Flex,Et=wp.data.dispatch,Rt=wp.blockEditor,kt=Rt.MediaUpload,Pt=Rt.MediaUploadCheck,Ct=["image"],xt=wp.compose.useInstanceId,St=function e(t){var r=t.setAttributes,n=t.attributes,a=n.mutedPreview,o=n.autoplay,c=n.playsInline,i=n.preload,s=n.poster,p=n.mutedOverlay,u=xt(e),d="video-block__poster-image-description-".concat(u),b=function(e){return function(t){r(Object(g.a)({},e,t))}};var m,y;return React.createElement(React.Fragment,null,!o&&React.createElement(React.Fragment,null,React.createElement(ft,{label:React.createElement(React.Fragment,null,yt("Muted Autoplay Preview","presto-player")," ",!(null!==(m=prestoPlayer)&&void 0!==m&&m.isPremium)&&React.createElement(l.a,null)),onChange:function(e){var t;null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium?r({mutedPreview:mt(mt({},a),{enabled:e})}):Et("presto-player/player").setProModal(!0)},checked:null==a?void 0:a.enabled,className:"presto-setting__mutedPreview",help:yt("Shows a muted preview of the video.","presto-player")}),!(null==a||!a.enabled)&&!(null!=n&&n.video_id)&&React.createElement(jt,null,React.createElement(ft,{label:yt("Muted Preview Captions","presto-player"),onChange:function(e){r({mutedPreview:mt(mt({},a),{captions:e})})},checked:null==a?void 0:a.captions,className:"presto-setting__mutedPreviewCaptions",help:yt("Play captions during muted autoplay","presto-player")})),!!a.enabled&&React.createElement(jt,null,React.createElement(ft,{label:React.createElement(React.Fragment,null,yt("Muted Preview Overlay","presto-player")," ",!(null!==(y=prestoPlayer)&&void 0!==y&&y.isPremium)&&React.createElement(l.a,null)),onChange:function(e){var t;null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium?r({mutedOverlay:mt(mt({},p),{enabled:e})}):Et("presto-player/player").setProModal(!0)},checked:null==p?void 0:p.enabled,className:"presto-setting__mutedOverlay",help:yt("Show an image over the top of the video either before or after the video.","presto-player")})),(null==p?void 0:p.enabled)&&(null==a?void 0:a.enabled)&&React.createElement(dt,{attributes:n,setAttributes:r})),!(null!=a&&a.enabled)&&React.createElement(ft,{label:yt("Autoplay","presto-player"),className:"presto-setting__autoplay",onChange:b("autoplay"),checked:o,help:function(e){return e?yt("Note: Autoplaying videos may cause usability issues for some visitors.","presto-player"):null}}),React.createElement(jt,null,React.createElement(ft,{label:yt("Play inline","presto-player"),className:"presto-setting__playsInline","data-cy":"playsInline",onChange:b("playsInline"),checked:c,help:yt("On mobile browsers, play the video on the page instead of opening it up fullscreen.","presto-player")})),!(null!=n&&n.video_id)&&React.createElement(jt,null,React.createElement(ht,{label:React.createElement(_t,null,React.createElement("div",null,yt("Performance Preference","presto-player")),React.createElement("a",{href:"https://prestoplayer.com/docs/performance-preferences-explained",target:"_blank",style:{textDecoration:"none"}},React.createElement(wt,{icon:"editor-help"}))),className:"presto-setting__preload",value:i,onChange:function(e){return r({preload:e})},help:(!!(null!=n&&n.src&&Object(Je.d)(null==n?void 0:n.src)&&["metadata","none"].includes(i))||"none"===i&&!s)&&yt("A poster image is recommended for this setting.","presto-player"),options:[{value:"auto",label:yt("Video Playback Speed","presto-player")},{value:"metadata",label:yt("Page Load Speed","presto-player")},{value:"none",label:yt("Page Load Speed (Extreme)","presto-player")}]})),React.createElement(Pt,null,React.createElement(Ot,{className:"editor-video-poster-control"},React.createElement(Ot.VisualLabel,null,React.createElement("p",null,yt("Poster image","presto-player"))),React.createElement(kt,{title:yt("Select poster image","presto-player"),onSelect:function(e){r({poster:e.url})},allowedTypes:Ct,render:function(e){var t=e.open;return React.createElement(gt,{className:"presto-setting__poster",isPrimary:!0,onClick:t,"aria-describedby":d},yt(s?"Replace":"Select","presto-player"))}}),React.createElement("p",{id:d,hidden:!0},s?sprintf(yt("The current poster image url is %s","presto-player"),s):yt("There is no poster image currently selected","presto-player")),!!s&&React.createElement(gt,{onClick:function(){r({poster:""})},className:"presto-setting__remove-poster",isTertiary:!0},yt("Remove","presto-player")))))},Nt=wp.components.PanelBody,Tt=wp.i18n.__;t.a=function(e){var t,r,n,c,i=e.attributes,s=e.setAttributes;return React.createElement(React.Fragment,null,React.createElement(Nt,{title:React.createElement(React.Fragment,null,Tt("Chapters","presto-player")," ",!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(l.a,null)),initialOpen:null===(r=prestoPlayer)||void 0===r?void 0:r.isPremium},React.createElement(o.a,{setAttributes:s,attributes:i})),React.createElement(Nt,{title:React.createElement(React.Fragment,null,Tt("Overlays","presto-player")," ",!(null!==(n=prestoPlayer)&&void 0!==n&&n.isPremium)&&React.createElement(l.a,null)),initialOpen:null===(c=prestoPlayer)||void 0===c?void 0:c.isPremium},React.createElement(h,{setAttributes:s,attributes:i})),React.createElement(Nt,{title:Tt("Video settings","presto-player")},React.createElement(St,{setAttributes:s,attributes:i})),React.createElement(Nt,{title:Tt("Video Preset","presto-player")},React.createElement($e,{setAttributes:s,attributes:i})),React.createElement(Nt,{title:Tt("Global Player Branding","presto-player"),initialOpen:!1},React.createElement(a.a,{setAttributes:s,attributes:i})))}},function(e,t,r){"use strict";r.d(t,"a",(function(){return j})),r.d(t,"b",(function(){return w})),r.d(t,"c",(function(){return _}));var n=r(46),a=r(47),o=r(48),l=r(53),c=r(44),i=r(10),s=r.n(i),p=function(e){return e.replace(/([A-Z])/g,(function(e){return"-".concat(e[0].toLowerCase())}))},u=r(20),d=function(e,t,r){var n=t.className||t.class,a=r.className||r.class,o=y(e),l=y(n?n.split(" "):[]),c=y(a?a.split(" "):[]),i=[];return o.forEach((function(e){l.has(e)?(i.push(e),l.delete(e)):c.has(e)||i.push(e)})),l.forEach((function(e){return i.push(e)})),i.join(" ")},b=function(e){if("undefined"==typeof document)return!0;var t="on"+e,r=t in document;if(!r){var n=document.createElement("div");n.setAttribute(t,"return;"),r="function"==typeof n[t]}return r},m=function(e,t,r){var n=e.__events||(e.__events={}),a=n[t];a&&e.removeEventListener(t,a),e.addEventListener(t,n[t]=function(e){r&&r.call(this,e)})},y=function(e){var t=new Map;return e.forEach((function(e){return t.set(e,e)})),t},v=function(e,t){"function"==typeof e?e(t):null!=e&&(e.current=t)},f=function(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return function(e){t.forEach((function(t){v(t,e)}))}};function h(e){var t=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(e){return!1}}();return function(){var r,n=Object(c.a)(e);if(t){var a=Object(c.a)(this).constructor;r=Reflect.construct(n,arguments,a)}else r=n.apply(this,arguments);return Object(l.a)(this,r)}}var O=function(e,t){var r={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(e);a<n.length;a++)t.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(e,n[a])&&(r[n[a]]=e[n[a]])}return r},g=function(e,t,r,l){void 0!==l&&l();var c=e.toLowerCase().split("-").map((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})).join(""),y=function(t){Object(o.a)(s,t);var l=h(s);function s(e){var t;return Object(n.a)(this,s),(t=l.call(this,e)).setComponentElRef=function(e){t.componentEl=e},t}return Object(a.a)(s,[{key:"componentDidMount",value:function(){this.componentDidUpdate(this.props)}},{key:"componentDidUpdate",value:function(e){!function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(e instanceof Element){var n=d(e.classList,t,r);""!==n&&(e.className=n),Object.keys(t).forEach((function(r){if("children"!==r&&"style"!==r&&"ref"!==r&&"class"!==r&&"className"!==r&&"forwardedRef"!==r)if(0===r.indexOf("on")&&r[2]===r[2].toUpperCase()){var n=r.substring(2),a=n[0].toLowerCase()+n.substring(1);b(a)||m(e,a,t[r])}else{e[r]=t[r],"string"===Object(u.a)(t[r])&&e.setAttribute(p(r),t[r])}}))}}(this.componentEl,this.props,e)}},{key:"render",value:function(){var t=this.props,n=t.children,a=t.forwardedRef,o=t.style,l=(t.className,t.ref,O(t,["children","forwardedRef","style","className","ref"])),c=Object.keys(l).reduce((function(e,t){if(0===t.indexOf("on")&&t[2]===t[2].toUpperCase()){var r=t.substring(2).toLowerCase();"undefined"!=typeof document&&b(r)&&(e[t]=l[t])}else e[t]=l[t];return e}),{});r&&(c=r(this.props,c));var s=Object.assign(Object.assign({},c),{ref:f(a,this.setComponentElRef),style:o});return Object(i.createElement)(e,s,n)}}],[{key:"displayName",get:function(){return c}}]),s}(s.a.Component);return t&&(y.contextType=t),function(e,t){var r=function(t,r){return s.a.createElement(e,Object.assign({},t,{forwardedRef:r}))};return r.displayName=t,s.a.forwardRef(r)}(y,c)},j=g("presto-cta-overlay-ui"),w=g("presto-email-overlay-ui"),_=g("presto-player")},function(e,t){e.exports=window.wp.blockEditor},function(e,t,r){"use strict";var n,a,o,l,c,i,s=r(6),p=r(5),u=r(1),d=r(0);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){Object(p.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var y=wp.i18n.__,v=wp.components,f=v.Button,h=v.Popover,O=v.Icon,g=wp.blockEditor.__experimentalLinkControl,j=wp.element.useState,w=wp.url.prependHTTP;t.a=function(e){var t=e.setSettings,r=e.settings,p=j(!1),b=Object(u.a)(p,2),v=b[0],_=b[1],E=r.url,R=j(),k=Object(u.a)(R,2),P=k[0],C=k[1],x=m({url:null==r?void 0:r.url,type:null==r?void 0:r.type,id:null==r?void 0:r.id,opensInNewTab:null==r?void 0:r.opensInNewTab},P),S=function(e){e=m(m({},P),e);var r=x.opensInNewTab!==e.opensInNewTab&&x.url===e.url&&void 0===e.url;if(C(r?e:void 0),!r){var n=w(e.url);t({url:n,type:e.type,id:void 0!==e.id&&null!==e.id?String(e.id):void 0,opensInNewTab:e.opensInNewTab})}};return Object(d.b)("span",null,E?Object(d.b)("div",{css:Object(d.a)(n||(n=Object(s.a)(["\n display: flex;\n justify-content: space-between;\n "])))},Object(d.b)("div",{css:Object(d.a)(a||(a=Object(s.a)(["\n max-width: 85%;\n overflow: hidden;\n display: flex;\n align-items: center;\n "])))},Object(d.b)("a",{href:"#",css:Object(d.a)(o||(o=Object(s.a)(["\n padding: 10px;\n background: #f3f3f3;\n border-radius: 4px;\n width: 100%;\n display: inline-flex;\n align-items: center;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n text-decoration: none;\n "]))),onClick:function(){return _(!v)}},Object(d.b)(O,{icon:"edit",css:Object(d.a)(l||(l=Object(s.a)(["\n cursor: pointer;\n opacity: 0.75;\n margin: 0 2px;\n font-size: 16px;\n width: 16px;\n height: 16px;\n text-decoration: none;\n "])))}),E),v&&Object(d.b)(h,{position:"bottom center",onClose:function(){return _(!1)}},Object(d.b)(g,{value:r,onChange:S}))),Object(d.b)("div",{css:Object(d.a)(c||(c=Object(s.a)(["\n display: flex;\n align-items: center;\n "])))},Object(d.b)(O,{onClick:function(){confirm(y("Are you sure you wish to remove this link?","presto-player"))&&t({})},icon:"trash",className:"presto-icon",css:Object(d.a)(i||(i=Object(s.a)(["\n cursor: pointer;\n opacity: 0.75;\n margin: 0 2px;\n fontsize: 18px;\n width: 18px;\n height: 18px;\n\n &:hover {\n color: #cc1818;\n }\n "])))}))):Object(d.b)("span",null,Object(d.b)(f,{isPrimary:!0,isSmall:!0,onClick:function(){return _(!v)}},y("Add Link","presto-player")),v&&Object(d.b)(h,{position:"bottom center",onClose:function(){return _(!1)}},Object(d.b)(g,{value:r,onChange:S}))))}},,,,function(e,t,r){"use strict";var n=r(7),a=r(1),o=r(2),l=r.n(o),c=r(11),i=wp.i18n.__,s=wp.components,p=s.ColorPicker,u=s.Button,d=s.withNotices,b=s.BaseControl,m=s.RangeControl,y=wp.blockEditor,v=y.MediaUpload,f=y.MediaUploadCheck,h=wp.compose.useInstanceId,O=wp.element.useState,g=wp.data,j=g.dispatch,w=g.useSelect,_=["image"];t.a=d((function e(t){t.setAttributes,t.attributes;var r,o=t.type,s=h(e),d=O(1),y=Object(a.a)(d,2),g=y[0],E=y[1],R=w((function(e){return e("presto-player/player").branding()})),k=function(){var e=Object(n.a)(l.a.mark((function e(){return l.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,j("presto-player/player").saveOptions({branding:R});case 2:wp.data.dispatch("core/notices").createNotice("success","Player branding saved.",{type:"snackbar",isDismissible:!0});case 3:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return React.createElement("div",{className:"presto-player__panel--branding"},"audio"!==o&&React.createElement("p",null,i("Here you can select the global player branding This will apply to all players on the site.","presto-player")),React.createElement(f,null,React.createElement(b,{className:"editor-video-poster-control"},"audio"!==o&&React.createElement(React.Fragment,null,React.createElement(b.VisualLabel,null,React.createElement("p",null,i("Logo Overlay","presto-player")," ",!(null!==(r=prestoPlayer)&&void 0!==r&&r.isPremium)&&React.createElement(c.a,null))),React.createElement(v,{title:i("Select logo overlay image","presto-player"),onSelect:function(e){j("presto-player/player").updateBranding("logo",e.url)},allowedTypes:_,render:function(e){var t=e.open;return React.createElement(u,{className:"presto-setting__logo",isSecondary:!0,onClick:function(){var e;null!==(e=prestoPlayer)&&void 0!==e&&e.isPremium?t():j("presto-player/player").setProModal(!0)},"aria-describedby":"video-block__logo-image-description-".concat(s)},null!=R&&R.logo?i("Replace","presto-player"):i("Select","presto-player"))}})),React.createElement("p",{id:"video-block__logo-image-description-".concat(s),hidden:!0},null!=R&&R.logo?sprintf(i("The current logo image url is %s","presto-player"),null==R?void 0:R.logo):i("There is no logo image currently selected","presto-player")),!(null==R||!R.logo)&&React.createElement(u,{onClick:function(){j("presto-player/player").updateBranding("logo","")},isTertiary:!0},i("Remove","presto-player")))),!(null==R||!R.logo)&&React.createElement(m,{label:i("Logo Max Width","presto-player"),value:(null==R?void 0:R.logo_width)||150,onChange:function(e){return j("presto-player/player").updateBranding("logo_width",e)},min:1,max:400}),React.createElement(p,{color:null==R?void 0:R.color,onChangeComplete:function(e){j("presto-player/player").updateBranding("color",e.hex)},key:g,disableAlpha:!0}),(null==R?void 0:R.color)&&React.createElement(b,null,React.createElement(u,{isSecondary:!0,onClick:function(){var e,t;j("presto-player/player").updateBranding("color",(null===(e=prestoPlayer)||void 0===e||null===(t=e.defaults)||void 0===t?void 0:t.color)||"#00b3ff"),E(g+1)}},i("Reset Color","presto-player"))),React.createElement(u,{isPrimary:!0,onClick:k},i("Save Branding","presto-player")))}))},function(e,t){e.exports=window.wp.compose},function(e,t,r){"use strict";var n=r(5),a=r(1),o=r(19),l=r.n(o),c=wp.i18n.__,i=wp.element,s=i.useState,p=i.useEffect,u=lodash,d=u.partial,b=u.noop,m=u.find,y=wp.components,v=y.NavigableMenu,f=y.Animate;t.a=function(e){var t,r=e.className,o=e.children,i=e.items,u=e.title,y=e.orientation,h=void 0===y?"horizontal":y,O=e.activeClass,g=void 0===O?"is-active":O,j=e.onSelect,w=void 0===j?b:j,_=s(null),E=Object(a.a)(_,2),R=E[0],k=E[1],P=s("left"),C=Object(a.a)(P,2),x=(C[0],C[1]),S=function(e){k(e),w&&w(e)},N=function(e,t){t.click()},T=m(i,{name:R}),D="".concat(null!==(t=null==T?void 0:T.name)&&void 0!==t?t:"none");return p((function(){x(R?"right":"left")}),[R]),React.createElement("div",{className:r},React.createElement(f,{type:"slide-in",origin:T?"right":"left"},(function(e){var t=e.className;return T?React.createElement("div",{key:D,"aria-labelledby":D,role:"itempanel",id:"".concat(D,"-view"),className:l()(t,"presto-player__menu-content")},React.createElement("div",{className:"presto-player__menu-items"},React.createElement("div",{className:"presto-player__menu-item is-back-button",onClick:function(){return S("")}},React.createElement("svg",{class:"back-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",role:"img","aria-hidden":"true",focusable:"false"},React.createElement("path",{d:"M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"})),c("Back","presto-player"))),o(T)):React.createElement("div",{className:l()(t,"is-from-right")},!!u&&React.createElement("h2",null,u),React.createElement(v,{role:"itemlist",orientation:h,onNavigate:N,className:l()("presto-player__menu-items")},i.map((function(e){return React.createElement("div",{className:l()("presto-player__menu-item",e.className,Object(n.a)({},g,e.name===R)),itemId:"".concat(e.name),"aria-controls":"".concat(e.name,"-view"),selected:e.name===R,key:e.name,onClick:d(S,e.name)},!!e.icon&&React.createElement("div",{class:"presto-player__menu-icon"},e.icon),e.title,React.createElement("svg",{className:"submenu-icon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",width:"24",height:"24",role:"img",ariaHidden:"true",focusable:"false"},React.createElement("path",{d:"M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"})))}))))})))}},,function(e,t,r){"use strict";var n,a,o=r(6),l=r(5),c=r(3),i=r(4),s=r(13),p=r(15),u=r(26),d=r(12),b=r(0);function m(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function y(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?m(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):m(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function v(e){var t=e.state,r=e.updateState,m=e.className,v=t.cta,f=t.email_collection,h=Object(p.useSelect)((function(e){return e("presto-player/player").branding()})),O={percentage:100,show_rewatch:!0,show_skip:!0,headline:Object(c.__)("Want to learn more?","presto-player"),show_button:!0,button_text:Object(c.__)("Click Here","presto-player"),button_link:{opensInNewTab:!0}};Object(s.useEffect)((function(){Object.keys(O).forEach((function(e){var r;void 0===(null==t||null===(r=t.cta)||void 0===r?void 0:r[e])&&g(Object(l.a)({},e,O[e]))}))}),[t]);var g=function(e){r(y(y({},t),{},{cta:y(y({},v),e)}))};return Object(b.b)("div",{className:m},Object(b.b)(i.BaseControl,null,Object(b.b)("h3",null,Object(c.__)("Call To Action","presto-player"))),Object(b.b)(i.BaseControl,{className:"presto-player__control--large-play"},Object(b.b)(i.ToggleControl,{label:Object(c.__)("Enable","presto-player"),help:Object(c.__)("Show an email collection form and message over your player.","presto-player"),onChange:function(e){g({enabled:e})},checked:null==v?void 0:v.enabled})),!(null==v||!v.enabled)&&Object(b.b)(React.Fragment,null,Object(b.b)(i.BaseControl,{className:"presto-player__control--percentage-watched"},Object(b.b)(i.RangeControl,{label:Object(c.__)("Display At (Percentage)","presto-player"),labelPosition:"top",onChange:function(e){g({percentage:e})},marks:[{value:0,label:Object(c.__)("Start","presto-player")},{value:50,label:Object(c.__)("50% Watched","presto-player")},{value:100,label:Object(c.__)("End","presto-player")}],shiftStep:5,value:null==v?void 0:v.percentage})),(null==f?void 0:f.enabled)&&(null==f?void 0:f.percentage)===(null==v?void 0:v.percentage)&&Object(b.b)(i.Notice,{css:Object(b.a)(n||(n=Object(o.a)(["\n margin: 0 0 30px 0 !important;\n "]))),status:"warning",isDismissible:!1},Object(c.__)("You already have an email capture set display at the same time.","presto-player"),Object(b.b)(i.Button,{onClick:function(){r(y(y({},t),{},{email_collection:y(y({},f),{enabled:!1})}))},isLink:!0,css:Object(b.a)(a||(a=Object(o.a)(["\n margin-top: 10px !important;\n "])))},Object(c.__)("Disable Email Capture","presto-player"))),100===(null==v?void 0:v.percentage)?Object(b.b)(i.BaseControl,{className:"presto-player__control--show-rewatch"},Object(b.b)(i.ToggleControl,{label:Object(c.__)("Show Rewatch Button","presto-player"),help:Object(c.__)("Show a rewatch button at the end of the player.","presto-player"),onChange:function(e){g({show_rewatch:e})},checked:null==v?void 0:v.show_rewatch})):Object(b.b)(i.BaseControl,{className:"presto-player__control--show-skip"},Object(b.b)(i.ToggleControl,{label:Object(c.__)("Allow Skipping","presto-player"),help:Object(c.__)("Let the user continue watching the player.","presto-player"),onChange:function(e){g({show_skip:e})},checked:null==v?void 0:v.show_skip})),Object(b.b)(i.BaseControl,{className:"presto-player__control--button-link"},Object(b.b)(i.BaseControl.VisualLabel,null,Object(b.b)("p",null," ",Object(c.__)("Link","presto-player"))),Object(b.b)(u.a,{setSettings:function(e){g({button_link:e})},settings:(null==v?void 0:v.button_link)||{}})),Object(b.b)(i.BaseControl,{className:"presto-player__control--headline"},Object(b.b)(i.TextareaControl,{label:Object(c.__)("Headline","presto-player"),help:Object(c.__)("The headline for your form.","presto-player"),value:null==v?void 0:v.headline,onChange:function(e){g({headline:e})}})),Object(b.b)(i.BaseControl,{className:"presto-player__control--bottom-text"},Object(b.b)(i.TextareaControl,{label:Object(c.__)("Bottom Text","presto-player"),help:Object(c.__)("Text displayed below the form. HTML allowed.","presto-player"),value:null==v?void 0:v.bottom_text,onChange:function(e){g({bottom_text:e})}})),Object(b.b)(i.BaseControl,{className:"presto-player__control--show-button"},Object(b.b)(i.ToggleControl,{label:Object(c.__)("Show Button","presto-player"),help:Object(c.__)("Show a call to action button.","presto-player"),onChange:function(e){g({show_button:e})},checked:null==v?void 0:v.show_button})),!(null==v||!v.show_button)&&Object(b.b)("div",null,Object(b.b)(i.BaseControl,{className:"presto-player__control--button-text"},Object(b.b)(i.TextControl,{label:Object(c.__)("Button Text","presto-player"),help:Object(b.b)("p",null,Object(c.__)("Button text for the Call To Action","presto-player")),value:null==v?void 0:v.button_text,onChange:function(e){return g({button_text:e})}})),Object(b.b)("h3",null,Object(c.__)("Style","presto-player")),Object(b.b)(i.BaseControl,null,Object(b.b)(i.RangeControl,{label:Object(c.__)("Round Corners","presto-player"),help:Object(c.__)("Border radius of form elements.","presto-player"),value:(null==v?void 0:v.button_radius)||0,onChange:function(e){return g({button_radius:e})},min:0,max:25})),Object(b.b)(i.BaseControl,{className:"presto-player__control--button-color"},Object(b.b)(i.Flex,null,Object(b.b)(i.BaseControl.VisualLabel,null,Object(c.__)("Button Color","presto-player")),Object(b.b)(d.a,{color:(null==v?void 0:v.button_color)||(null==h?void 0:h.color),setColor:function(e){return g({button_color:e&&e.hex})}}))),Object(b.b)(i.BaseControl,{className:"presto-player__control--button-text-color"},Object(b.b)(i.Flex,null,Object(b.b)(i.BaseControl.VisualLabel,null,Object(c.__)("Button Text Color","presto-player")),Object(b.b)(d.a,{color:(null==v?void 0:v.button_text_color)||"#ffffff",setColor:function(e){return g({button_text_color:e&&e.hex})}})))),Object(b.b)(i.BaseControl,null,Object(b.b)(i.RangeControl,{label:Object(c.__)("Background Opacity","presto-player"),help:Object(c.__)("Opacity percentage of the cover background.","presto-player"),value:(null==v?void 0:v.background_opacity)||75,onChange:function(e){return g({background_opacity:e})},min:0,max:100}))))}v.defaultProps={catName:"Sandy",eyeColor:"deepblue",age:"120"},t.a=v},function(e,t,r){"use strict";var n=wp.apiFetch;n.use(n.createNonceMiddleware(prestoPlayer.nonce)),n.use(n.createRootURLMiddleware(prestoPlayer.root+prestoPlayer.prestoVersionString)),t.a=n},function(e,t,r){"use strict";r.d(t,"a",(function(){return N}));var n=r(8),a=r(49),o=r(1),l=r(5);function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var s=wp.i18n,p=s.__,u=s.sprintf,d=wp.components,b=d.NavigableMenu,m=d.MenuItem,y=d.FormFileUpload,v=d.MenuGroup,f=d.ToolbarGroup,h=d.ToolbarButton,O=d.Dropdown,g=(d.SVG,d.Rect,d.Path,d.Button),j=d.TextControl,w=(d.SelectControl,wp.blockEditor),_=w.MediaUpload,E=w.MediaUploadCheck,R=wp.data.useSelect,k=wp.element.useState,P=["text/vtt"],C=React.createElement("svg",{viewBox:"0 0 29 25",fill:"none",xmlns:"http://www.w3.org/2000/svg"},React.createElement("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M17.5014 20.2854H28.6316V0.764648H0.110825V20.2854H11.241L14.3712 24.2854L17.5014 20.2854ZM14.3712 21.0401L16.5269 18.2854H26.6316V2.76465H2.11082V18.2854H12.2155L14.3712 21.0401Z"}),React.createElement("path",{d:"M10.4503 14.9446C9.56226 14.9446 8.76226 14.7606 8.05026 14.3926C7.33826 14.0166 6.77826 13.4966 6.37026 12.8326C5.97026 12.1606 5.77026 11.4006 5.77026 10.5526C5.77026 9.70464 5.97026 8.94864 6.37026 8.28464C6.77826 7.61264 7.33826 7.09264 8.05026 6.72464C8.76226 6.34864 9.56226 6.16064 10.4503 6.16064C11.2663 6.16064 11.9943 6.30464 12.6343 6.59264C13.2743 6.88064 13.8023 7.29664 14.2183 7.84064L12.4303 9.43664C11.9103 8.78064 11.2983 8.45264 10.5943 8.45264C10.0023 8.45264 9.52626 8.64464 9.16626 9.02864C8.80626 9.40464 8.62626 9.91264 8.62626 10.5526C8.62626 11.1926 8.80626 11.7046 9.16626 12.0886C9.52626 12.4646 10.0023 12.6526 10.5943 12.6526C11.2983 12.6526 11.9103 12.3246 12.4303 11.6686L14.2183 13.2646C13.8023 13.8086 13.2743 14.2246 12.6343 14.5126C11.9943 14.8006 11.2663 14.9446 10.4503 14.9446Z"}),React.createElement("path",{d:"M19.2042 14.9446C18.3162 14.9446 17.5162 14.7606 16.8042 14.3926C16.0922 14.0166 15.5322 13.4966 15.1242 12.8326C14.7242 12.1606 14.5242 11.4006 14.5242 10.5526C14.5242 9.70464 14.7242 8.94864 15.1242 8.28464C15.5322 7.61264 16.0922 7.09264 16.8042 6.72464C17.5162 6.34864 18.3162 6.16064 19.2042 6.16064C20.0202 6.16064 20.7482 6.30464 21.3882 6.59264C22.0282 6.88064 22.5562 7.29664 22.9722 7.84064L21.1842 9.43664C20.6642 8.78064 20.0522 8.45264 19.3482 8.45264C18.7562 8.45264 18.2802 8.64464 17.9202 9.02864C17.5602 9.40464 17.3802 9.91264 17.3802 10.5526C17.3802 11.1926 17.5602 11.7046 17.9202 12.0886C18.2802 12.4646 18.7562 12.6526 19.3482 12.6526C20.0522 12.6526 20.6642 12.3246 21.1842 11.6686L22.9722 13.2646C22.5562 13.8086 22.0282 14.2246 21.3882 14.5126C20.7482 14.8006 20.0202 14.9446 19.2042 14.9446Z"}));function x(e){var t,r=e.tracks,n=e.onEditPress;return t=0===r.length?React.createElement("p",{className:"block-library-video-tracks-editor__tracks-informative-message"},p("Captions are .vtt files that help make your content more accesible to a wider range of users.","presto-player")):r.map((function(e,t){return React.createElement("div",{key:t,className:"block-library-video-tracks-editor__track-list-track"},React.createElement("span",null,e.label," "),React.createElement(g,{isTertiary:!0,onClick:function(){return n(t)},"aria-label":u(p("Edit %s","presto-player"),e.label)},p("Edit","presto-player")))})),React.createElement(v,{label:p("Captions","presto-player"),className:"block-library-video-tracks-editor__track-list"},t)}function S(e){var t=e.track,r=e.onChange,n=e.onClose,a=e.onRemove,o=t.src,l=void 0===o?"":o,c=t.label,s=void 0===c?"":c,u=t.srcLang,d=void 0===u?"":u,m=(t.kind,l.startsWith("blob:")?"":l.substring(l.lastIndexOf("/")+1));return React.createElement(b,null,React.createElement("div",{className:"block-library-video-tracks-editor__single-track-editor"},React.createElement("span",{className:"block-library-video-tracks-editor__single-track-editor-edit-track-label"},p("Edit caption track","presto-player")),React.createElement("span",null,p("File","presto-player"),": ",React.createElement("b",null,m)),React.createElement("div",{className:"block-library-video-tracks-editor__single-track-editor-label-language"},React.createElement(j,{autoFocus:!0,onChange:function(e){return r(i(i({},t),{},{label:e}))},label:p("Label","presto-player"),value:s,help:p("Title of track","presto-player")}),React.createElement(j,{onChange:function(e){return r(i(i({},t),{},{srcLang:e}))},label:p("Source language","presto-player"),value:d,help:p("Language tag (en, fr, etc.)","presto-player")})),React.createElement("div",{className:"block-library-video-tracks-editor__single-track-editor-buttons-container"},React.createElement(g,{isSecondary:!0,onClick:function(){var e={},a=!1;""===s&&(e.label=p("English","presto-player"),a=!0),""===d&&(e.srcLang="en",a=!0),a&&r(i(i({},t),e)),n()}},p("Close","presto-player")),React.createElement(g,{isDestructive:!0,isLink:!0,onClick:a},p("Remove track","presto-player")))))}function N(e){var t=e.tracks,r=void 0===t?[]:t,l=e.onChange,c=R((function(e){return e("core/block-editor").getSettings().mediaUpload}),[]),s=k(null),u=Object(o.a)(s,2),d=u[0],g=u[1];return c?React.createElement(O,{contentClassName:"block-library-video-tracks-editor",renderToggle:function(e){var t=e.isOpen,r=e.onToggle;return React.createElement(f,null,React.createElement(h,{label:p("Captions","presto-player"),showTooltip:!0,"aria-expanded":t,"aria-haspopup":"true",onClick:r,icon:C}))},renderContent:function(e){return Object(a.a)(e),null!==d?React.createElement(S,{track:r[d],onChange:function(e){var t=Object(n.a)(r);t[d]=e,l(t)},onClose:function(){return g(null)},onRemove:function(){l(r.filter((function(e,t){return t!==d}))),g(null)}}):React.createElement(React.Fragment,null,React.createElement(b,null,React.createElement(x,{tracks:r,onEditPress:g}),React.createElement(v,{className:"block-library-video-tracks-editor__add-tracks-container",label:p("Add caption languages","presto-player")},React.createElement(_,{onSelect:function(e){var t=e.url,a=r.length;l([].concat(Object(n.a)(r),[{src:t}])),g(a)},allowedTypes:P,render:function(e){var t=e.open;return React.createElement(m,{icon:"media",onClick:t},p("Open Media Library","presto-player"))}}),React.createElement(E,null,React.createElement(y,{onChange:function(e){var t=e.target.files,a=r.length;c({allowedTypes:P,filesList:t,onFileChange:function(e){var t=Object(o.a)(e,1)[0].url,c=Object(n.a)(r);c[a]||(c[a]={}),c[a]=i(i({},r[a]),{},{src:t}),l(c),g(a)}})},accept:".vtt,text/vtt",render:function(e){var t=e.openFileDialog;return React.createElement(m,{icon:"upload",onClick:function(){t()}},p("Upload","presto-player"))}})))))}}):null}},function(e,t,r){"use strict";var n=r(5),a=r(1),o=r(24),l=r(9),c=r(14);function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function s(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?i(Object(r),!0).forEach((function(t){Object(n.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):i(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var p=wp.i18n.__,u=wp.components.Disabled,d=wp.element,b=d.useState,m=d.useEffect;t.a=function(e){var t,r,n,i=e.state,d=e.branding,y=e.menu,v=e.src,f=e.poster,h=e.currentTime,O=e.preload,g=e.overlays,j=e.isDisabled,w=void 0===j||j,_=b(1),E=Object(a.a)(_,2),R=E[0],k=E[1],P=i.email_collection,C=i.cta;m((function(){k(R+1)}),[i.skin,i["play-large"],i.rewind,i.play,i["fast-forward"],i.progress,i["current-time"],i.mute,i.volume,i.speed,i.pip,i.fullscreen,i.captions,i.hide_logo]);var x={email:!(null==P||!P.enabled)&&React.createElement(o.b,{className:"email-overlay",slot:"player-end",headline:null==P?void 0:P.headline,style:s(s({"--presto-player-email-border-radiuss":"".concat(null==P?void 0:P.button_radius,"px"),"--plyr-color-main":(null==i?void 0:i.background_color)||(null==d?void 0:d.color)},P.button_color?{"--presto-player-button-color":"".concat(P.button_color)}:{}),P.button_text_color?{"--presto-player-button-text":"".concat(P.button_text_color)}:{}),defaultHeadline:p("Enter your email to play.","presto-player"),bottomText:null==P?void 0:P.bottom_text,allowSkip:null==P?void 0:P.allow_skip,skipText:p("Skip","presto-player"),buttonText:null==P?void 0:P.button_text,placeholder:p("Email address","presto-player"),i18n:window.prestoPlayer.i18n}),cta:!(null==C||!C.enabled)&&React.createElement(o.a,{className:"cta-overlay",style:s(s(s({"--presto-player-button-border-radius":"".concat(C.button_radius,"px")},null!=C&&C.background_opacity?{"--presto-player-cta-background-opacity":"".concat((null==C?void 0:C.background_opacity)/100)}:{}),C.button_color?{"--presto-player-button-color":"".concat(C.button_color)}:{}),C.button_text_color?{"--presto-player-button-text":"".concat(C.button_text_color)}:{}),slot:"player-end",headline:null==C?void 0:C.headline,"bottom-text":null==C?void 0:C.bottom_text,"button-link":null==C?void 0:C.button_link,"allow-skip":100!==(null==C?void 0:C.percentage)&&(null==C?void 0:C.show_skip),borderRadius:null==C?void 0:C.border_radius,"allow-rewatch":100===(null==C?void 0:C.percentage)&&(null==C?void 0:C.show_rewatch),"skip-text":p("Skip","presto-player"),"show-button":null==C?void 0:C.show_button,"button-text":null==C?void 0:C.button_text,i18n:null===(t=window)||void 0===t||null===(r=t.prestoPlayer)||void 0===r?void 0:r.i18n})};return React.createElement(u,{isDisabled:w,className:"disable-player"},React.createElement("div",{className:"presto-player__wrapper"},React.createElement(c.a,{src:v||"",className:"\n ".concat("cta"===y&&!(null==C||!C.enabled)&&"cta-active"," \n ").concat("email"===y&&!(null==P||!P.enabled)&&"email-active"),preset:i,branding:s(s({},d),{},{logo:null!=i&&i.hide_logo?"":d.logo}),i18n:null===(n=prestoPlayerAdmin)||void 0===n?void 0:n.i18n,preload:O,attributes:{chapters:[],poster:f},currentTime:h?Object(l.e)(h):"",overlays:g,key:R,adminPreview:(null==x?void 0:x[y])||""})))}},function(e,t,r){"use strict";var n=r(1),a=wp.i18n.__,o=wp.components.TextareaControl,l=wp.element.useState;t.a=function(e){var t=e.text,r=e.update,c=e.onFocus,i=l(!1),s=Object(n.a)(i,2),p=s[0],u=s[1];return React.createElement("div",{style:{display:"block",width:"100%"}},React.createElement(o,{label:"Text",help:React.createElement("span",null,a("This field accepts","presto-player")," ",React.createElement("a",{href:"#",onClick:function(e){u(!p),e.preventDefault()}},a("Dynamic Data","presto-player")),!!p&&React.createElement("div",{style:{marginTop:"20px"}},a("This field will also accept dynamic values that we will replace with dynamic content: {user.user_login}, {user.user_nicename}, {user.user_email}, {user.user_url},{user.user_registered}, {user.display_name}, {site.url}, {site.name}, {ip_address}","presto-player"))),className:"presto-player__overlay--text",placeholder:a("Enter some text.","presto-player"),value:t||"",onChange:function(e){return r({text:e})},autoComplete:"off",onFocus:c}))}},function(e,t,r){"use strict";var n=r(1),a=wp.components,o=a.Button,l=a.Placeholder,c=a.TextControl,i=a.Flex,s=a.FlexItem,p=a.FlexBlock,u=wp.element.useState,d=wp.i18n.__;t.a=function(e){var t=e.attributes,r=(e.setAttributes,e.icon),a=e.onSelectURL,b=e.label,m=e.instructions,y=e.placeholder,v=t.src,f=u({src:v}),h=Object(n.a)(f,2),O=h[0],g=h[1];return React.createElement(l,{icon:r,label:b||d("Presto Embedded Video","presto-player"),instructions:m||d("Enter video URL","presto-player")},React.createElement("form",{onSubmit:function(e){e.preventDefault(),a(O.url)}},React.createElement(i,{style:{width:"100%",maxWidth:"400px"}},React.createElement(p,null,React.createElement(c,{type:"url",className:"presto-link-placeholder-input",placeholder:y||d("Youtube URL","presto-player"),value:O.url,onChange:function(e){return g({url:e})}})),React.createElement(s,null,React.createElement(o,{isPrimary:!0,style:{marginBottom:"8px"},type:"submit"},d("Add Video","presto-player"))))))}},function(e,t,r){"use strict";var n,a,o=r(6),l=r(5),c=r(3),i=r(4),s=r(15),p=r(8),u=r(7),d=r(1),b=r(2),m=r.n(b),y=function(){return React.createElement("div",null,React.createElement("presto-player-skeleton",{style:{width:"30%",marginBottom:"10px"}}),React.createElement("presto-player-skeleton",{style:{height:"2rem",marginBottom:"20px"}}))},v=wp.i18n.__,f=wp.components,h=f.SelectControl,O=f.TextControl,g=f.Notice,j=wp.element,w=j.useEffect,_=j.useState,E=function(e){var t=e.options,r=e.updateEmailState,n=_(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=_([{value:null,label:v("Choose an audience","presto-player")}]),i=Object(d.a)(c,2),s=i[0],b=i[1],f=_(""),j=Object(d.a)(f,2),E=j[0],R=j[1],k=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/mailchimp/lists"});case 4:t=e.sent,r=s,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.name}])})),b(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&R(e.t0.message);case 13:return e.prev=13,l(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}();return w((function(){k()}),[]),o?React.createElement("div",null,React.createElement(y,null),React.createElement(y,null)):E?React.createElement(g,{className:"presto-notice",status:"error",isDismissible:!1},E):React.createElement("div",null,React.createElement(h,{label:v("Choose an audience","presto-player"),value:null==t?void 0:t.provider_list,options:s,onChange:function(e){return r({provider_list:e})}}),React.createElement(O,{label:v("Tag","presto-player"),help:React.createElement("p",null,v("Give this contact an optional tag when they are added to the list.","presto-player")),value:null==t?void 0:t.provider_tag,onChange:function(e){return r({provider_tag:e})}}))},R=wp.i18n.__,k=wp.components,P=k.SelectControl,C=k.Notice,x=wp.element,S=x.useEffect,N=x.useState,T=function(e){var t=e.options,r=e.updateEmailState,n=N(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=N([{value:null,label:R("Choose a group","presto-player")}]),i=Object(d.a)(c,2),s=i[0],b=i[1],v=N(""),f=Object(d.a)(v,2),h=f[0],O=f[1],g=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/mailerlite/groups"});case 4:t=e.sent,r=s,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.name}])})),b(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&O(e.t0.message);case 13:return e.prev=13,l(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}();return S((function(){g()}),[]),o?React.createElement(y,null):h?React.createElement(C,{className:"presto-notice",status:"error",isDismissible:!1},h):React.createElement("div",null,React.createElement(P,{label:R("Choose a group","presto-player"),value:null==t?void 0:t.provider_list,options:s,onChange:function(e){return r({provider_list:e})}}))},D=wp.i18n.__,B=wp.components,A=B.SelectControl,L=B.Notice,I=wp.element,F=I.useEffect,V=I.useState,U=function(e){var t=e.options,r=e.updateEmailState,n=V(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=V(!1),i=Object(d.a)(c,2),s=i[0],b=i[1],v=V([{value:null,label:D("Choose a list","presto-player")}]),f=Object(d.a)(v,2),h=f[0],O=f[1],g=V([{value:null,label:D("Choose a tag","presto-player")}]),j=Object(d.a)(g,2),w=j[0],_=j[1],E=V(""),R=Object(d.a)(E,2),k=R[0],P=R[1],C=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/activecampaign/lists"});case 4:t=e.sent,r=h,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.name||D("Default list","presto-player")}])})),O(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&P(e.t0.message);case 13:return e.prev=13,l(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}(),x=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return b(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/activecampaign/tags"});case 4:t=e.sent,r=w,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.tag}])})),_(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&P(e.t0.message);case 13:return e.prev=13,b(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}();return F((function(){C(),x()}),[]),k?React.createElement(L,{className:"presto-notice",status:"error",isDismissible:!1},k):React.createElement("div",null,o?React.createElement(y,null):h.length>1&&React.createElement(A,{label:D("Choose a list","presto-player"),value:null==t?void 0:t.provider_list,options:h,onChange:function(e){return r({provider_list:e})}}),s?React.createElement(y,null):w.length>1&&React.createElement(A,{label:D("Choose a tag","presto-player"),value:null==t?void 0:t.provider_tag,options:w,onChange:function(e){return r({provider_tag:e})}}))},M=wp.i18n.__,z=wp.components,W=z.SelectControl,H=z.Notice,Y=wp.element,G=Y.useEffect,q=Y.useState,Z=function(e){var t=e.options,r=e.updateEmailState,n=q(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=q(!1),i=Object(d.a)(c,2),s=i[0],b=i[1],v=q([{value:null,label:M("Choose a list","presto-player")}]),f=Object(d.a)(v,2),h=f[0],O=f[1],g=q([{value:null,label:M("Choose a tag","presto-player")}]),j=Object(d.a)(g,2),w=j[0],_=j[1],E=q(""),R=Object(d.a)(E,2),k=R[0],P=R[1],C=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/fluentcrm/lists"});case 4:t=e.sent,r=h,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.title||e.slug}])})),O(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&P(e.t0.message);case 13:return e.prev=13,l(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}(),x=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return b(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/fluentcrm/tags"});case 4:t=e.sent,r=w,(t||[]).forEach((function(e){r=[].concat(Object(p.a)(r),[{value:e.id,label:e.title||e.slug}])})),_(r),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(1),null!==e.t0&&void 0!==e.t0&&e.t0.message&&P(e.t0.message);case 13:return e.prev=13,b(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,10,13,16]])})));return function(){return e.apply(this,arguments)}}();return G((function(){C(),x()}),[]),k?React.createElement(H,{className:"presto-notice",status:"error",isDismissible:!1},k):React.createElement("div",null,o?React.createElement(y,null):h.length>1&&React.createElement(W,{label:M("Choose a list","presto-player"),value:null==t?void 0:t.provider_list,options:h,onChange:function(e){return r({provider_list:e})}}),s?React.createElement(y,null):w.length>1&&React.createElement(W,{label:M("Choose a tag","presto-player"),value:null==t?void 0:t.provider_tag,options:w,onChange:function(e){return r({provider_tag:e})}}))},K=wp.i18n.__,Q=wp.components,X=Q.SelectControl,$=Q.Button,J=Q.Flex,ee=Q.Icon,te=wp.element,re=te.useEffect,ne=te.useState,ae=function(e){var t=e.options,r=e.updateEmailState,n=ne(!1),a=Object(d.a)(n,2),o=a[0],l=a[1],c=ne([{value:"none",label:K("None","presto-player")}]),i=Object(d.a)(c,2),s=i[0],b=i[1],v=ne(""),f=Object(d.a)(v,2),h=f[0],O=f[1],g={presto_player_activecampaign:{label:"ActiveCampaign",value:"activecampaign"},presto_player_mailchimp:{label:"MailChimp",value:"mailchimp"},presto_player_mailerlite:{label:"MailerLite",value:"mailerlite"},presto_player_fluentcrm:{label:"FluentCRM",value:"fluentcrm"}},j=function(){var e=Object(u.a)(m.a.mark((function e(){var t,r;return m.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return l(!0),O(""),e.prev=2,e.next=5,wp.apiFetch({path:"wp/v2/settings"});case 5:t=e.sent,r=s,Object.keys(t).forEach((function(e){var n;null!=g&&g[e]&&null!==(n=t[e])&&void 0!==n&&n.connected&&(r=[].concat(Object(p.a)(r),[g[e]]))})),b(r),e.next=14;break;case 11:e.prev=11,e.t0=e.catch(2),null!==e.t0&&void 0!==e.t0&&e.t0.message&&O(e.t0.message);case 14:return e.prev=14,l(!1),e.finish(14);case 17:case"end":return e.stop()}}),e,null,[[2,11,14,17]])})));return function(){return e.apply(this,arguments)}}();re((function(){j()}),[]);return o?React.createElement(y,null):React.createElement("div",null,h,s.length>1?React.createElement("div",null,React.createElement(X,{label:K("Choose an email provider","presto-player"),value:null==t?void 0:t.provider,options:s,onChange:function(e){return r({provider:e})}}),function(){var e=s.find((function(e){return e.value===(null==t?void 0:t.provider)}));if(Object.keys(e||{}).length)switch(null==t?void 0:t.provider){case"mailchimp":return React.createElement(E,{options:t,updateEmailState:r});case"mailerlite":return React.createElement(T,{options:t,updateEmailState:r});case"activecampaign":return React.createElement(U,{options:t,updateEmailState:r});case"fluentcrm":return React.createElement(Z,{options:t,updateEmailState:r})}}()):React.createElement(J,null,React.createElement($,{target:"_blank",href:"/wp-admin/edit.php?post_type=pp_video_block&page=presto-player-settings#/integrations",isSecondary:!0,isSmall:!0},K("Connect a provider","presto-player")),React.createElement($,{isSmall:!0,onClick:function(e){e.preventDefault(),j()}},React.createElement(ee,{icon:"update"}))))},oe=r(12),le=r(0);function ce(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ie(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ce(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ce(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}t.a=function(e){var t=e.state,r=e.updateState,l=e.className,p=t.email_collection,u=t.cta,d=Object(s.useSelect)((function(e){return e("presto-player/player").branding()})),b=function(e){r(ie(ie({},t),{},{email_collection:ie(ie({},p),e)}))};return Object(le.b)("div",{className:l},Object(le.b)(i.BaseControl,null,Object(le.b)("h3",null,Object(c.__)("Email Capture","presto-player"))),Object(le.b)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.b)(i.ToggleControl,{label:Object(c.__)("Enable","presto-player"),help:Object(c.__)("Show an email collection form and message over your player.","presto-player"),onChange:function(e){b({enabled:e})},checked:null==p?void 0:p.enabled})),!(null==p||!p.enabled)&&Object(le.b)(React.Fragment,null,Object(le.b)(i.BaseControl,{className:"presto-player__control--percentage-watched"},Object(le.b)(i.RangeControl,{label:Object(c.__)("Display At (Percentage)","presto-player"),labelPosition:"top",onChange:function(e){b({percentage:e})},marks:[{value:0,label:Object(c.__)("Start","presto-player")},{value:50,label:Object(c.__)("50% Watched","presto-player")},{value:100,label:Object(c.__)("End","presto-player")}],shiftStep:5,value:(null==p?void 0:p.percentage)||0})),(null==u?void 0:u.enabled)&&(null==p?void 0:p.percentage)===(null==u?void 0:u.percentage)&&Object(le.b)(i.Notice,{css:Object(le.a)(n||(n=Object(o.a)(["\n margin: 0 0 30px 0 !important;\n "]))),status:"warning",isDismissible:!1},Object(c.__)("You already have a Call To Action set display at the same time.","presto-player"),Object(le.b)(i.Button,{onClick:function(){r(ie(ie({},t),{},{cta:ie(ie({},u),{enabled:!1})}))},isLink:!0,css:Object(le.a)(a||(a=Object(o.a)(["\n margin-top: 10px !important;\n "])))},Object(c.__)("Disable Call To Action","presto-player"))),Object(le.b)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.b)(i.ToggleControl,{label:Object(c.__)("Allow Skipping","presto-player"),help:Object(c.__)("Let the viewer skip","presto-player"),onChange:function(e){b({allow_skip:e})},checked:null==p?void 0:p.allow_skip})),Object(le.b)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.b)(i.TextareaControl,{label:Object(c.__)("Headline","presto-player"),help:Object(c.__)("The headline for your form.","presto-player"),value:null==p?void 0:p.headline,onChange:function(e){b({headline:e})}})),Object(le.b)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.b)(i.TextareaControl,{label:Object(c.__)("Bottom Text","presto-player"),help:Object(c.__)("Text displayed below the form. HTML allowed.","presto-player"),value:null==p?void 0:p.bottom_text,onChange:function(e){b({bottom_text:e})}})),Object(le.b)(i.BaseControl,{className:"presto-player__control--large-play"},Object(le.b)(i.TextControl,{label:Object(c.__)("Play Button Text","presto-player"),help:Object(le.b)("p",null,Object(c.__)("Submit button text","presto-player")),value:null==p?void 0:p.button_text,onChange:function(e){return b({button_text:e})}})),Object(le.b)(i.BaseControl,{className:"presto-player__control--button-color"},Object(le.b)(i.Flex,null,Object(le.b)(i.BaseControl.VisualLabel,null,Object(c.__)("Button Color","presto-player")),Object(le.b)(oe.a,{color:(null==u?void 0:u.button_color)||(null==d?void 0:d.color),setColor:function(e){return b({button_color:e&&e.hex})}}))),Object(le.b)(i.BaseControl,{className:"presto-player__control--button-text-color"},Object(le.b)(i.Flex,null,Object(le.b)(i.BaseControl.VisualLabel,null,Object(c.__)("Button Text Color","presto-player")),Object(le.b)(oe.a,{color:(null==u?void 0:u.button_text_color)||"#ffffff",setColor:function(e){return b({button_text_color:e&&e.hex})}}))),Object(le.b)("h3",null,Object(c.__)("Integrate","presto-player")),Object(le.b)(i.BaseControl,null,Object(le.b)(ae,{updateEmailState:b,options:p})),Object(le.b)("h3",null,Object(c.__)("Style","presto-player")),Object(le.b)(i.BaseControl,null,Object(le.b)(i.RangeControl,{label:Object(c.__)("Round Corners","presto-player"),help:Object(c.__)("Border radius of form elements.","presto-player"),value:(null==p?void 0:p.border_radius)||0,onChange:function(e){return b({border_radius:e})},min:0,max:25}))))}},function(e,t,r){"use strict";var n=r(8),a=r(5),o=r(1),l=r(9),c=wp.i18n.__,i=wp.components,s=i.Flex,p=i.FlexItem,u=i.FlexBlock,d=i.TextControl,b=i.Button,m=wp.element.useState,y=function(e){var t=e.update,r=e.add,n=e.remove,i=e.className,y=e.time,v=e.title,f=(e.disabled,e.showNotice,m(y)),h=Object(o.a)(f,2),O=h[0],g=h[1];return React.createElement(s,{align:"center",className:i},React.createElement(p,null,React.createElement(d,Object(a.a)({className:"presto-player__caption--time",style:{width:"60px"},placeholder:"0:00",value:O,onChange:function(e){return g(e)},onBlur:function(){var e=Object(l.b)(O);t({time:e}),g(e)},autoComplete:"off"},"placeholder","0:00"))),React.createElement(u,null,React.createElement(d,{className:"presto-player__caption--title",placeholder:c("Title","presto-player"),value:v||"",onChange:function(e){return t({title:e})},autoComplete:"off"})),React.createElement(p,null,n&&React.createElement(b,{icon:"minus",className:"ph-chapter__remove",style:{marginBottom:"8px"},label:c("Remove Chapter","presto-player"),onClick:n}),r&&React.createElement(b,{icon:"plus-alt",className:"ph-chapter__add",label:c("Add Chapter","presto-player"),style:{marginBottom:"8px"},onClick:function(){r(),g("")}})))};function v(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function f(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?v(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):v(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}wp.i18n.__;var h=wp.element.useState,O=wp.data.dispatch;t.a=function(e){var t,r=e.setAttributes,a=e.attributes,l=function(){O("presto-player/player").setProModal(!0)};if(null===(t=prestoPlayer)||void 0===t||!t.isPremium)return React.createElement(y,{disabled:!0,className:"ph-chapter is-new",time:"",title:"",update:function(){},showNotice:l,add:l});var c=a.chapters,i=h({title:"",time:""}),s=Object(o.a)(i,2),p=s[0],u=s[1];return React.createElement(React.Fragment,null,(c||[]).sort((function(e,t){return parseInt(e.time.split(":")[0])-parseInt(t.time.split(":")[0])==0?parseInt(e.time.split(":")[1])-parseInt(t.time.split(":")[1]):parseInt(e.time.split(":")[0])-parseInt(t.time.split(":")[0])})).map((function(e,t){return React.createElement(y,{key:"".concat(t,"-").concat(e.time),className:"ph-chapter",time:e.time,title:e.title,chapter:e,update:function(t){!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=c.indexOf(e),a=c.map((function(e,r){return r!==n?e:f(f({},e),t)}));r({chapters:a})}(e,t)},remove:function(){!function(e){var t=c.indexOf(e);r({chapters:c.filter((function(e,r){return r!==t}))})}(e)}})})),React.createElement(y,{className:"ph-chapter is-new",time:p.time,title:p.title,update:function(e){u(f(f({},p),e))},add:function(){p.time&&p.title&&(r({chapters:[].concat(Object(n.a)(c||[]),[{time:p.time,title:p.title}])}),u({title:"",time:""}))}}))}},function(e,t,r){"use strict";var n,a,o,l=r(5),c=r(1),i=r(12),s=r(26),p=r(6),u=r(7),d=r(2),b=r.n(d),m=r(0);function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function v(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?y(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):y(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var f=wp.i18n.__,h=wp.components,O=h.TextControl,g=h.ExternalLink,j=h.Button,w=(h.Flex,wp.element),_=w.useState,E=w.useEffect,R=wp.data,k=R.useSelect,P=R.dispatch,C=function(e){var t=e.onClose,r=e.value,l=e.setValue,i=_(!1),s=Object(c.a)(i,2),d=s[0],y=s[1],h=wp.data.useSelect((function(e){return e("core").canUser("read","settings")})),w=k((function(e){return e("presto-player/player").youtube()}));E((function(){l(w.channel_id)}),[null==w?void 0:w.channel_id]);var R=function(){var e=Object(u.a)(b.a.mark((function e(n){var a,o;return b.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n.preventDefault(),y(!0),P("presto-player/player").updateYoutube({channel_id:r}),a=v(v({},w),{channel_id:r}),e.prev=4,e.next=7,wp.apiFetch({path:"wp/v2/settings",method:"POST",data:{presto_player_youtube:a}});case 7:null!=(o=e.sent)&&o.presto_player_youtube&&(P("presto-player/player").setYoutube(null==o?void 0:o.presto_player_youtube),t()),e.next=13;break;case 11:e.prev=11,e.t0=e.catch(4);case 13:return e.prev=13,y(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[4,11,13,16]])})));return function(t){return e.apply(this,arguments)}}();return h?Object(m.b)("form",{onSubmit:R},Object(m.b)(O,{css:Object(m.a)(n||(n=Object(p.a)(["\n margin-bottom: 0 !important;\n "]))),label:f("Youtube Channel ID","presto-player"),help:Object(m.b)("p",null,Object(m.b)(g,{href:"https://support.google.com/youtube/answer/3250431?hl=en"},f("Find my channel id","presto-player"))),value:r,onChange:function(e){return l(e)}}),Object(m.b)(j,{disabled:d,isBusy:d,css:Object(m.a)(a||(a=Object(p.a)(["\n margin-bottom: 1em;\n "]))),isPrimary:!0,type:"submot"},f("Save","presto-player")),Object(m.b)(j,{onClick:t,css:Object(m.a)(o||(o=Object(p.a)(["\n margin-bottom: 1em;\n "]))),isTertiary:!0},f("Cancel","presto-player"))):""};function x(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function S(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?x(Object(r),!0).forEach((function(t){Object(l.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):x(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var N=wp.i18n.__,T=wp.components,D=T.ToggleControl,B=T.Flex,A=T.Button,L=T.BaseControl,I=T.RangeControl,F=T.TextControl,V=T.SelectControl,U=T.TextareaControl,M=wp.element,z=M.useEffect,W=M.useState,H=wp.data.useSelect;t.a=function(e){var t=e.state,r=e.updateState,n=e.className,a=e.value,o=e.setValue,l=t.action_bar,p=W(!1),u=Object(c.a)(p,2),d=u[0],b=u[1],m=H((function(e){return e("presto-player/player").branding()})),y=H((function(e){return e("presto-player/player").youtube()})),v=function(e){r(S(S({},t),{},{action_bar:S(S({},l),e)}))};z((function(){null!=l&&l.text||v({text:"Like this?"}),null!=l&&l.button_type||v({button_type:"custom"}),null!=l&&l.button_text||v({button_text:"Click Here"})}),[t]);return React.createElement("div",{className:n},React.createElement(L,null,React.createElement("h3",null,N("Action Bar","presto-player"))),React.createElement(L,{className:"presto-player__control--large-play"},React.createElement(D,{label:N("Enable","presto-player"),help:N("Show an action bar below your player while it's playing.","presto-player"),onChange:function(e){v({enabled:e})},checked:null==l?void 0:l.enabled})),!(null==l||!l.enabled)&&React.createElement(React.Fragment,null,React.createElement(L,{className:"presto-player__control--percentage-watched"},React.createElement(I,{label:N("Display At (Percentage)","presto-player"),labelPosition:"top",onChange:function(e){v({percentage_start:e})},marks:[{value:0,label:N("Start","presto-player")},{value:50,label:N("50% Watched","presto-player")},{value:100,label:N("End","presto-player")}],shiftStep:5,value:(null==l?void 0:l.percentage_start)||0})),React.createElement(L,{className:"presto-player__control--large-play"},React.createElement(U,{label:N("Text","presto-player"),help:N("Action bar text.","presto-player"),value:null==l?void 0:l.text,onChange:function(e){return v({text:e})}})),React.createElement(L,{className:"presto-player__control--large-play"},React.createElement(B,null,React.createElement(L.VisualLabel,null,N("Action Bar Background","presto-player")),React.createElement(i.a,{color:(null==l?void 0:l.background_color)||"#1d1d1d",setColor:function(e){return v({background_color:e&&e.hex})}}))),React.createElement(L,null,React.createElement("h3",null,N("Button","presto-player"))),React.createElement(L,{className:"presto-player__control--button-type"},React.createElement(V,{label:N("Button Type","presto-player"),value:null==l?void 0:l.button_type,options:[{value:"custom",label:N("Custom","presto-player")},{value:"youtube",label:N("YouTube Subscribe","presto-player")},{value:"none",label:N("None","presto-player")}],onChange:function(e){return v({button_type:e})}})),"youtube"===(null==l?void 0:l.button_type)&&(null==y?void 0:y.channel_id)&&React.createElement(D,{label:N("Show Count","presto-player"),help:N("Show your follower count.","presto-player"),onChange:function(e){v({button_count:e})},checked:null==l?void 0:l.button_count}),function(){if("youtube"===(null==l?void 0:l.button_type))return d?React.createElement(C,{onClose:function(){return b(!1)},value:a,setValue:o}):React.createElement("div",null,React.createElement(A,{isSecondary:!0,onClick:function(e){e.preventDefault(),b(!0)}},null!=y&&y.channel_id?N("Update Youtube Channel Id","presto-player"):N("Add Youtube Channel Id","presto-player")),React.createElement("br",null),React.createElement("br",null),React.createElement("br",null))}(),"custom"===(null==l?void 0:l.button_type)&&React.createElement("div",null,React.createElement(L,{className:"presto-player__control--button-text"},React.createElement(F,{label:N("Button Text","presto-player"),help:React.createElement("p",null,N("Submit button text","presto-player")),value:null==l?void 0:l.button_text,onChange:function(e){return v({button_text:e})}})),React.createElement(L,{className:"presto-player__control--button-text"},React.createElement(L.VisualLabel,null,React.createElement("p",null," ",N("Button Link","presto-player"))),React.createElement(s.a,{setSettings:function(e){v({button_link:e})},settings:(null==l?void 0:l.button_link)||{}})),React.createElement(L,{className:"presto-player__control--button-radius"},React.createElement(I,{label:N("Round Corners","presto-player"),help:N("Border radius of the button","presto-player"),value:(null==l?void 0:l.button_radius)||0,onChange:function(e){return v({button_radius:e})},min:0,max:25})),React.createElement(L,{className:"presto-player__control--button-color"},React.createElement(B,null,React.createElement(L.VisualLabel,null,N("Button Color","presto-player")),React.createElement(i.a,{color:(null==l?void 0:l.button_color)||(null==m?void 0:m.color),setColor:function(e){return v({button_color:e&&e.hex})}}))),React.createElement(L,{className:"presto-player__control--button-text-color"},React.createElement(B,null,React.createElement(L.VisualLabel,null,N("Button Text Color","presto-player")),React.createElement(i.a,{color:(null==l?void 0:l.button_text_color)||"#ffffff",setColor:function(e){return v({button_text_color:e&&e.hex})}}))))))}},function(e,t){e.exports=window.wp.editor},,,,,,,function(e,t,r){"use strict";(function(e){var n,a,o=r(6),l=r(8),c=r(5),i=r(1),s=r(52),p=r(0),u=r(37),d=r(51);function b(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function m(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?b(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):b(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var y=wp.i18n.__,v=wp.components,f=v.Button,h=v.Flex,O=v.FlexItem,g=v.FlexBlock,j=v.Modal,w=wp.element,_=w.useState,E=w.useEffect,R=wp.data.useSelect;t.a=function(t){var r=t.closeModal,c=t.attributes,b=t.setAttributes,v=t.updateOverlayAttribute,w=_(!1),k=Object(i.a)(w,2),P=k[0],C=k[1],x=_(""),S=Object(i.a)(x,2),N=S[0],T=S[1],D=c.overlays,B=c.preset,A=c.src,L=c.poster,I=c.previewSrc,F=R((function(e){return e("presto-player/player").branding()})),V=R((function(e){return e("presto-player/player").getPreset(B)}));E((function(){D.length||U()}),[]);var U=function(){var e={startTime:"0:00",endTime:"0:05",text:y("Here's a link to click!","presto-player"),link:{},position:"top-right",color:"#fff",backgroundColor:"#000",opacity:75};D[D.length-1]&&(e=m({},D[D.length-1]));e.id=Object(s.a)(10),b({overlays:[].concat(Object(l.a)(D||[]),[e])})};return Object(p.b)(j,{title:y("Manage Video Overlays","presto-player"),onRequestClose:r,className:"presto-player__modal-presets",overlayClassName:"presto-player__modal-presets-overlay",shouldCloseOnClickOutside:!1},Object(p.b)("div",{className:"presto-player__preset-options","data-cy":"preset-modal"},Object(p.b)(h,{align:"stretch",className:"presto-player__style-preview-area"},Object(p.b)(O,{className:"presto-player__style-sidebar"},Object(p.b)("div",{css:{padding:"3px"}},(D||[]).sort((function(e,t){return parseInt(e.startTime.split(":")[0])-parseInt(t.startTime.split(":")[0])==0?parseInt(e.startTime.split(":")[1])-parseInt(t.startTime.split(":")[1]):parseInt(e.startTime.split(":")[0])-parseInt(t.startTime.split(":")[0])})).map((function(t,r){return Object(p.b)(d.a,{key:"".concat(r,"-").concat(t.startTime),overlayIndex:r,className:"presto-player__overlay",startTime:t.startTime,endTime:t.endTime,text:t.text,link:t.link,position:t.position,color:t.color,backgroundColor:t.backgroundColor,opacity:t.opacity,overlay:t,update:function(e){!function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=D.indexOf(e),n=D.map((function(e,n){return n!==r?e:m(m({},e),t)}));b({overlays:n})}(t,e)},remove:function(){!function(e){var t=D.indexOf(e);b({overlays:D.filter((function(e,r){return r!==t}))})}(t)},updateCurrentTime:function(t){!function(t){T(""),e.nextTick((function(){T(t)}))}(t)}})})),Object(p.b)(f,{isPrimary:!0,onClick:U},y("Add An Overlay","presto-player")))),Object(p.b)(g,{className:"presto-player__style-preview-panel"},Object(p.b)(u.a,{preload:"auto",currentTime:N,src:I||A,isDisabled:!1,state:m(m({},V),{},{lazy_load_youtube:!1,invert_time:!1}),branding:F,poster:L,overlays:D}))),Object(p.b)("br",null),Object(p.b)("div",{css:Object(p.a)(n||(n=Object(o.a)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n "])))},Object(p.b)("div",{css:Object(p.a)(a||(a=Object(o.a)(["\n opacity: 0.5;\n font-size: 12px;\n "])))}),Object(p.b)("div",null,Object(p.b)(f,{isTertiary:!0,onClick:r,style:{margin:"0 6px"}},y("Cancel","presto-player")),Object(p.b)(f,{isPrimary:!0,isBusy:P,disabled:P,onClick:function(){C(!0),v(D),C(!1),r()},"data-cy":"submit-preset"},y("Save Overlays","presto-player"))))))}}).call(this,r(63))},function(e,t,r){"use strict";var n=r(1),a=r(0),o=r(9),l=r(26),c=r(38),i=r(12),s=wp.i18n.__,p=wp.components,u=p.Flex,d=p.FlexItem,b=p.TextControl,m=p.Button,y=p.BaseControl,v=p.RadioControl,f=p.RangeControl,h=(p.withFocusReturn,wp.element),O=h.useRef,g=h.useEffect,j=wp.element.useState;t.a=function(e){var t=e.overlayIndex,r=e.update,p=e.remove,h=e.className,w=e.startTime,_=e.endTime,E=e.text,R=e.link,k=e.position,P=e.color,C=e.backgroundColor,x=e.opacity,S=e.updateCurrentTime,N=j(w),T=Object(n.a)(N,2),D=T[0],B=T[1],A=j(_),L=Object(n.a)(A,2),I=L[0],F=L[1],V=j(k),U=Object(n.a)(V,2),M=U[0],z=U[1],W=O();g((function(){if(Object(o.e)(w)>=Object(o.e)(_)){var e=Object(o.b)(w),t=Object(o.e)(e)+1;e=Object(o.b)(Object(o.c)(t)),r({endTime:e}),F(e)}}),[w,_]);var H=function(){var e=Object(o.b)(D);r({startTime:e}),B(e),S(e)};return Object(a.b)("div",null,Object(a.b)(u,{align:"center",className:h},Object(a.b)(d,null,Object(a.b)(b,{ref:W,id:"start-time-".concat(t),label:s("Start Time","presto-player"),className:"presto-player__overlay--start-time",value:D,onChange:function(e){return B(e)},onBlur:H,onFocus:H,autoComplete:"off",placeholder:"0:00"})),Object(a.b)(d,null,Object(a.b)(b,{label:s("End Time","presto-player"),className:"presto-player__overlay--end-time",value:I,onChange:F,onBlur:function(){var e=Object(o.b)(I);r({endTime:e}),F(e)},autoComplete:"off",placeholder:"0:00"}))),Object(a.b)(c.a,{text:E,update:r,onFocus:function(){S(Object(o.b)(D))}}),Object(a.b)(y,{style:{width:"100%"}},Object(a.b)(y.VisualLabel,null,Object(a.b)("p",null," ",s("Link","presto-player"))),Object(a.b)(l.a,{onFocus:function(){S(Object(o.b)(D))},setSettings:function(e){return r({link:e})},settings:R||{}})),Object(a.b)(y,{className:h},Object(a.b)(v,{label:s("Position","presto-player"),options:[{label:s("Top Right","presto-player"),value:"top-right"},{label:s("Top Left","presto-player"),value:"top-left"}],selected:M||"right",onFocus:function(){S(Object(o.b)(D))},onChange:function(e){r({position:e}),z(e),S(Object(o.b)(D))}})),Object(a.b)(y,{className:"presto-player__control--overlay-text-color"},Object(a.b)(u,null,Object(a.b)(y.VisualLabel,null,s("Text Color","presto-player")),Object(a.b)(i.a,{onFocus:function(){S(Object(o.b)(D))},color:P,setColor:function(e){r({color:e&&e.hex})}}))),Object(a.b)(y,{className:"presto-player__control--overlay-background-color"},Object(a.b)(u,null,Object(a.b)(y.VisualLabel,null,s("Background Color","presto-player")),Object(a.b)(i.a,{onFocus:function(){S(Object(o.b)(D))},color:C,setColor:function(e){r({backgroundColor:e&&e.hex})}}))),Object(a.b)(y,null,Object(a.b)(f,{label:s("Opacity","presto-player"),help:s("Opacity percentage of the overlay.","presto-player"),value:x,onChange:function(e){return r({opacity:e})},min:0,max:100})),p&&Object(a.b)(y,{className:h},Object(a.b)(u,{justify:"flex-end"},Object(a.b)(m,{isDestructive:!0,isSmall:!0,onClick:p},s("Remove Overlay","presto-player")))),Object(a.b)("hr",{css:{marginBottom:"20px"}}))}},,,function(e,t,r){r(55),e.exports=r(68)},,,,function(e,t,r){var n={"./audio/index.js":67,"./bunny/index.js":66,"./hosted/index.js":70,"./reusable-display/index.js":71,"./reusable-edit/index.js":64,"./vimeo/index.js":72,"./youtube/index.js":73};function a(e){var t=o(e);return r(t)}function o(e){if(!r.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}a.keys=function(){return Object.keys(n)},a.resolve=o,e.exports=a,a.id=58},,,,,,function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return v})),r.d(t,"options",(function(){return f}));var n=wp.i18n.__,a=wp.blockEditor,o=a.InnerBlocks,l=a.useBlockProps,c=wp.data,i=c.useSelect,s=c.dispatch,p=wp.components,u=p.Button,d=p.Placeholder,b=wp.plugins,m=(b.getPlugins,b.unregisterPlugin),y=wp.element.useEffect,v="presto-player/reusable-edit",f={title:"Reusable Block Container",category:"presto",supports:{inserter:!1,reusable:!1,html:!1},icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("circle",{cx:"12",cy:"12",r:"10"}),React.createElement("line",{x1:"2",y1:"12",x2:"22",y2:"12"}),React.createElement("path",{d:"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"})),edit:function(e){var t=l(),r=e.clientId,a=e.isSelected,c=i((function(e){return e("core/block-editor").getBlock(r).innerBlocks}));y((function(){a&&wp.data.dispatch("core/edit-post").openGeneralSidebar("edit-post/block")}),[a]),s("core/block-editor").setTemplateValidity(!0),y((function(){m("presto-player")}),[]);var p,b=function(e){var t=wp.blocks.createBlock("presto-player/".concat(e));return s("core/block-editor").insertBlock(t,0,r)};return null!=c&&c.length?React.createElement("div",null,React.createElement("div",t,React.createElement(o,{templateLock:!1,renderAppender:function(){return 0===c.length&&React.createElement(o.ButtonBlockAppender,null)}}))):React.createElement("div",null,React.createElement("div",t,React.createElement(d,{icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("polygon",{points:"23 7 16 12 23 17 23 7"}),React.createElement("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"})),instructions:n("Choose a video type to get started.","presto-player"),label:n("Choose a Video Type","presto-player")},React.createElement(u,{isPrimary:!0,onClick:function(){b("self-hosted")}},n("Video","presto-player")),React.createElement(u,{isPrimary:!0,onClick:function(){b("youtube")}},n("Youtube","presto-player")),React.createElement(u,{isPrimary:!0,onClick:function(){b("vimeo")}},n("Vimeo","presto-player")),null!==(p=prestoPlayer)&&void 0!==p&&p.isPremium?React.createElement(u,{isPrimary:!0,onClick:function(){b("bunny")}},n("Bunny.net","presto-player")):"",React.createElement(u,{isPrimary:!0,onClick:function(){b("audio")}},n("Audio","presto-player"))),React.createElement(o,{templateLock:!1,renderAppender:function(){return!1}})))},save:function(){var e=l.save();return React.createElement("div",e,React.createElement(o.Content,null))}}},function(e,t,r){var n={"./reusable-videos/index.js":69};function a(e){var t=o(e);return r(t)}function o(e){if(!r.o(n,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return n[e]}a.keys=function(){return Object.keys(n)},a.resolve=o,e.exports=a,a.id=65},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return xa})),r.d(t,"options",(function(){return Sa}));var n={};r.r(n),r.d(n,"videos",(function(){return Q})),r.d(n,"collections",(function(){return X})),r.d(n,"uploads",(function(){return $})),r.d(n,"isPrivate",(function(){return J})),r.d(n,"isLoading",(function(){return ee})),r.d(n,"errors",(function(){return te})),r.d(n,"videosFetched",(function(){return re})),r.d(n,"currentCollection",(function(){return ne})),r.d(n,"ui",(function(){return ae})),r.d(n,"requestType",(function(){return oe}));var a={};r.r(a),r.d(a,"setVideos",(function(){return le})),r.d(a,"addVideos",(function(){return ce})),r.d(a,"removeVideo",(function(){return ie})),r.d(a,"setCollections",(function(){return se})),r.d(a,"addCollection",(function(){return pe})),r.d(a,"setIsPrivate",(function(){return ue})),r.d(a,"setSearch",(function(){return de})),r.d(a,"setCollectionRequest",(function(){return be})),r.d(a,"setUploads",(function(){return me})),r.d(a,"addUploads",(function(){return ye})),r.d(a,"removeUpload",(function(){return ve})),r.d(a,"setVideosFetched",(function(){return fe})),r.d(a,"setLoading",(function(){return he})),r.d(a,"setUI",(function(){return Oe})),r.d(a,"addError",(function(){return ge})),r.d(a,"removeError",(function(){return je}));var o,l,c=r(5),i=r(7),s=r(1),p=r(2),u=r.n(p),d=function(){var e=Object(i.a)(u.a.mark((function e(t){var r;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:return e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/sign",method:"POST",data:{url:t,id:0}});case 4:return r=e.sent,e.abrupt("return",r);case 6:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),b=r(21),m=r(22),y=r(36),v=function(e){var t=e.file,r=e.path,n=e.onProgress,a=e.onComplete,o=e.onError,l=0,c=!1,s=Math.min(prestoPlayerAdmin.wp_max_upload_size-1e6,159e5),p=Math.max(s,19e5);p=Math.min(p,104857600);var d=function(){var e=Object(i.a)(u.a.mark((function e(i){var s,b,m,y,v;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return s=i+p+1,b=t.slice(i,s),m=Math.ceil(t.size/(p+1)),l++,n(l/m*100),(y=new FormData).append("file",b),y.append("name",t.name),y.append("chunk",l),y.append("chunks",m),e.prev=10,e.next=13,wp.apiFetch({path:r,method:"POST",body:y});case 13:if(v=e.sent,!c){e.next=17;break}return console.log("cancelled"),e.abrupt("return");case 17:s<t.size?(n(void 0),d(s)):a(v),e.next=24;break;case 20:e.prev=20,e.t0=e.catch(10),o(e.t0),console.error(e.t0);case 24:case"end":return e.stop()}}),e,null,[[10,20]])})));return function(t){return e.apply(this,arguments)}}();return l=0,new FileReader,d(0),{cancel:function(){c=!0}}},f=r(6),h=function(e){var t=e.item,r=e.onClick,n=e.className;var a,o=function(){return!(null==t||!t.encodeProgress)&&100!==t.encodeProgress};return React.createElement("div",{className:"presto-player__media-list-item ".concat(n),onClick:r},React.createElement("div",{className:"presto-player__media-list-item-icon"},React.createElement("svg",Object(c.a)({xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"},"strokeLinecap","round"),React.createElement("polygon",{points:"23 7 16 12 23 17 23 7"}),React.createElement("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"}))),React.createElement("div",{className:"presto-player__media-list-item-title"},null==t?void 0:t.title),o()&&React.createElement("div",{className:"presto-player__media-list-item-size"},"Encoding..."),!o()&&React.createElement("div",{className:"presto-player__media-list-item-size"},function(e){if(0==e)return"0 Byte";var t=parseInt(Math.floor(Math.log(e)/Math.log(1024)));return Math.round(e/Math.pow(1024,t),2)+" "+["Bytes","KB","MB","GB","TB"][t]}(null==t?void 0:t.size)),!o()&&React.createElement("div",{className:"presto-player__media-list-item-modified"},(a=t.updated_at,new Date(a).toLocaleString())))},O=function(e){var t,r=e.item,n=e.onClick,a=e.className;return React.createElement("div",{className:"presto-player__media-list-item ".concat(a),onClick:n},React.createElement("div",{className:"presto-player__media-list-item-icon"},React.createElement("svg",Object(c.a)({xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round"},"strokeLinecap","round"),React.createElement("polygon",{points:"23 7 16 12 23 17 23 7"}),React.createElement("rect",{x:"1",y:"5",width:"15",height:"14",rx:"2",ry:"2"}))),React.createElement("div",{className:"presto-player__media-list-item-title"},null==r?void 0:r.title),React.createElement("div",{className:"presto-player__media-list-item-size"},function(e){if(0==e)return"0 Byte";var t=parseInt(Math.floor(Math.log(e)/Math.log(1024)));return Math.round(e/Math.pow(1024,t),2)+" "+["Bytes","KB","MB","GB","TB"][t]}(null==r?void 0:r.size)),React.createElement("div",{className:"presto-player__media-list-item-modified"},(t=r.updated_at,new Date(t).toLocaleString())))},g=r(0),j=wp.i18n.__,w=wp.components,_=w.Modal,E=w.Spinner,R=w.Button,k=w.BaseControl,P=w.Flex,C=w.FlexBlock,x=w.Notice,S=w.Card,N=w.CardBody,T=w.Disabled,D=w.DropZone,B=w.FormFileUpload,A=w.DropZoneProvider,L=wp.element,I=L.useEffect,F=L.useState,V=L.useRef,U=function(e){var t=e.onClose,r=e.title,n=e.header,a=e.onLoad,c=e.items,i=e.folders,p=e.fetching,u=e.progressMessage,d=e.onSelect,b=e.error,m=e.onDelete,y=e.onUpload,v=e.progress,w=F({}),L=Object(s.a)(w,2),U=L[0],M=L[1],z=F(!1),W=Object(s.a)(z,2),H=W[0],Y=W[1],G=V();I((function(){a&&a()}),[]);var q,Z,K,Q,X=function(){m(U),Y(!1)},$=function(){return Object.keys(U||{}).length};return Object(g.b)(_,{title:n||j("Add Media","presto-player"),onRequestClose:t,className:"presto-player__media-modal presto-player__full-modal",overlayClassName:"presto-player__modal-overlay"},Object(g.b)("div",{className:"presto-player__media-modal-layout","data-cy":"media-modal"},Object(g.b)("div",{className:"presto-player__media-modal-header"},Object(g.b)("div",{className:"presto-player__media-modal-upload",css:Object(g.a)(o||(o=Object(f.a)(["\n display: flex;\n align-items: center;\n "])))},Object(g.b)(B,{isPrimary:!0,accept:"video/mp4,video/x-m4v,video/*",onChange:function(e){e.target.files&&(y(e.target.files),jQuery(e.target).val(null))}},j("Upload New Video","presto-player")),Object(g.b)("div",{css:Object(g.a)(l||(l=Object(f.a)(["\n margin-left: 10px;\n "])))},j("Or drag a file here to upload.","presto-player"))),b&&Object(g.b)(x,{status:"error",isDismissible:!1},b)),Object(g.b)("div",{className:"presto-player__media-modal-content"},Object(g.b)(A,null,p?Object(g.b)(P,{className:"presto-player__media-loading"},Object(g.b)(C,{style:{textAlign:"center"}},v?Object(g.b)(React.Fragment,null,Object(g.b)("div",null,Object(g.b)("strong",null,u||j("Uploading","presto-player"))),Object(g.b)("div",null,j("Please don't navigate away from this page.","presto-player")),Object(g.b)("progress",{className:"presto-progress",max:"100",value:v,style:{width:"100px"}})):Object(g.b)(E,null))):null!=c&&c.length?Object(g.b)("div",{className:"presto-player__media-list"},Object(g.b)("h2",null,r),i&&Object(g.b)("div",{className:"presto-player__media-list-folders"},i.map((function(e){return Object(g.b)(O,{key:e.id,item:e})}))),Object(g.b)("div",{className:"presto-player__media-list-items"},c.map((function(e){return Object(g.b)(h,{item:e,key:e.id,onClick:function(){M(U===e?{}:e)},className:U===e?"is-selected":""})})))):Object(g.b)(P,{"align-items":"center",className:"presto-player__media-not-found"},Object(g.b)("div",null,Object(g.b)("h2",null,"Drop video files here to upload"),Object(g.b)("p",null,"or browse for a video"),Object(g.b)(B,{isSecondary:!0,accept:"video/mp4,video/x-m4v,video/*",onChange:function(e){e.target.files&&(y(e.target.files),jQuery(e.target).val(null))}},j("Upload New Video","presto-player")))),Object(g.b)(D,{label:"Drop files",onFilesDrop:y}))),Object(g.b)("div",{className:"presto-player__media-modal-sidebar"},$()?Object(g.b)("div",{className:"presto-player__media-modal-sidebar-content"},Object(g.b)(k,null,Object(g.b)(T,{key:U.id},null!=U&&U.thumbnail?Object(g.b)("img",{src:null==U?void 0:U.thumbnail,style:{maxWidth:"100%"}}):Object(g.b)("video",{preload:"metadata"},Object(g.b)("source",{src:U.previewUrl})))),Object(g.b)(k,null,Object(g.b)(k.VisualLabel,null,j("Name","presto-player")),Object(g.b)("h3",{style:{marginTop:"5px"}},U.title)),!(null==U||!U.visibility)&&Object(g.b)(k,null,Object(g.b)(k.VisualLabel,null,j("Visibility","presto-player")),Object(g.b)("h3",{style:{marginTop:"5px"}},U.visibility)),Object(g.b)(k,null,Object(g.b)(k.VisualLabel,null,j("Size","presto-player")),Object(g.b)("h3",{style:{marginTop:"5px"}},function(e){if(0==e)return"0 Byte";var t=parseInt(Math.floor(Math.log(e)/Math.log(1024)));return Math.round(e/Math.pow(1024,t),2)+" "+["Bytes","KB","MB","GB","TB"][t]}((null==U?void 0:U.size)||0))),Object(g.b)(k,null,Object(g.b)(k.VisualLabel,null,j("Created","presto-player")),Object(g.b)("h3",{style:{marginTop:"5px"}},(q=null==U?void 0:U.created_at,Z=(q=new Date(q)).getHours(),K=q.getMinutes(),Q=Z>=12?"pm":"am",Z=(Z%=12)||12,K=K<10?"0"+K:K,q.getDate()+"-"+(q.getMonth()+1)+"-"+q.getFullYear()+" at "+Z+":"+K+Q))),Object(g.b)(k,null,H?Object(g.b)(S,null,Object(g.b)(N,null,Object(g.b)("p",null,Object(g.b)("strong",null,"Are you sure?")),Object(g.b)("p",null,"Are you sure you want to delete this video?"),Object(g.b)(R,{isDestructive:!0,onClick:X},"Yes"),Object(g.b)(R,{onClick:function(){return Y(!1)}},"Cancel"))):Object(g.b)(R,{isDestructive:!0,onClick:function(){Y(!H)}},j("Delete video","presto-player")))):Object(g.b)(React.Fragment,null)),Object(g.b)("div",{className:"presto-player__media-modal-footer"},Object(g.b)(R,{isPrimary:!0,disabled:!$(),onClick:function(){U&&(d(U),t())},ref:G},j("Choose","presto-player")))))},M=wp.i18n.__,z=wp.element,W=z.useState,H=z.useEffect,Y=function(e){var t=e.closePopup,r=e.noticeOperations,n=e.onSelect,a=e.isPrivate,o=W([]),l=Object(s.a)(o,2),c=l[0],p=l[1],d=W(!1),b=Object(s.a)(d,2),m=b[0],y=b[1],f=W(0),h=Object(s.a)(f,2),O=h[0],g=h[1],j=W(""),w=Object(s.a)(j,2),_=w[0],E=w[1],R=W(""),k=Object(s.a)(R,2),P=k[0],C=k[1],x=a?"private-videos":"public-videos";H((function(){g(0),C("")}),[]);var S=function(){var e=Object(i.a)(u.a.mark((function e(t){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:C(""),y(!0),E(M("Uploading","presto-player")),v({file:t[0],path:"presto-player/v1/bunny/upload",onProgress:function(e){g(e-10)},onComplete:N,onError:function(e){C(e.message),g(0),y(!1)}});case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),N=function(){var e=Object(i.a)(u.a.mark((function e(t){var r,n,a;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.path,n=t.name,E(M("Storing","presto-player")),e.prev=2,e.next=5,wp.apiFetch({path:"presto-player/v1/bunny/".concat(x),method:"POST",data:{path:r,name:n}});case 5:a=e.sent,p(a),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(2),C(e.t0.message),console.error(e.t0);case 13:return e.prev=13,g(0),y(!1),e.finish(13);case 17:case"end":return e.stop()}}),e,null,[[2,9,13,17]])})));return function(t){return e.apply(this,arguments)}}(),T=function(){var e=Object(i.a)(u.a.mark((function e(t){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,p((c||[]).filter((function(e){return e!==t}))),e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/".concat(x),method:"DELETE",data:{name:null==t?void 0:t.title}});case 4:e.next=9;break;case 6:e.prev=6,e.t0=e.catch(0),C(e.t0.message);case 9:case"end":return e.stop()}}),e,null,[[0,6]])})));return function(t){return e.apply(this,arguments)}}(),D=function(){var e=Object(i.a)(u.a.mark((function e(){var t;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,y(!0),e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/".concat(x)});case 4:t=e.sent,p(t),e.next=11;break;case 8:e.prev=8,e.t0=e.catch(0),C(e.t0.message);case 11:return e.prev=11,y(!1),e.finish(11);case 14:case"end":return e.stop()}}),e,null,[[0,8,11,14]])})));return function(){return e.apply(this,arguments)}}();return React.createElement(U,{onClose:t,progressMessage:_,fetching:m,error:P,onUpload:S,onLoad:D,items:c,progress:O,onDelete:T,onSelect:n,onError:function(e){r.removeAllNotices(),r.createErrorNotice(e)},header:M(a?"Bunny.net Private Video Storage":"Bunny.net Public Video Storage","presto-player"),title:M(a?"Private Video Library":"Public Video Library","presto-player")})},G=r(8);function q(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Z(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?q(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):q(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var K=(0,wp.data.combineReducers)({videosReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_VIDEOS":return t.value;case"ADD_VIDEOS":return[].concat(Object(G.a)(e),Object(G.a)(t.value));case"ADD_VIDEO":return[].concat(Object(G.a)(e),[t.value]);case"UPDATE_VIDEO":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:Z(Z({},e),t.value)}));case"REMOVE_VIDEO":return e.filter((function(e){return e.guid!==t.value.guid}))}return e},collectionsReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_COLLECTIONS":return t.value;case"ADD_COLLECTION":return[].concat(Object(G.a)(e),[t.value]);case"UPDATE_COLLECTION":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:Z(Z({},e),t.value)}));case"REMOVE_COLLECTION":return e.filter((function(e){return e!==t.value}))}return e},uploadsReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_UPLOADS":return t.value;case"ADD_UPLOADS":return[].concat(Object(G.a)(e),Object(G.a)(t.value));case"ADD_UPLOAD":return[].concat(Object(G.a)(e),[t.value]);case"UPDATE_UPLOAD":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:Z(Z({},e),t.value)}));case"REMOVE_UPLOAD":return e.filter((function(e){return e!==t.value}))}return e},requestReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{private:!1,collection:"",search:""},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PRIVATE_REQUEST":return Z(Z({},e),{},{private:t.value});case"SET_SEARCH_REQUEST":return Z(Z({},e),{},{search:t.value});case"SET_COLLECTION_REQUEST":return Z(Z({},e),{},{collection:t.value})}return e},UIReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{loading:!1,videosFetched:!1,createCollection:!1,selectedId:null},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_LOADING":return Z(Z({},e),{},{loading:t.value});case"SET_VIDEOS_FETCHED":return Z(Z({},e),{},{videosFetched:t.value});case"SET_UI_ITEM":return Z(Z({},e),{},Object(c.a)({},t.item,t.value))}return e},errorReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"ADD_ERROR":return[].concat(Object(G.a)(e),[t.value]);case"REMOVE_ERROR":return e.filter((function(e){return e!==t.value}))}return e}});function Q(e){return(null==e?void 0:e.videosReducer)||[]}function X(e){return(null==e?void 0:e.collectionsReducer)||[]}function $(e){return(null==e?void 0:e.uploadsReducer)||[]}function J(e){var t;return!(null==e||null===(t=e.requestReducer)||void 0===t||!t.private)}function ee(e){var t;return(null==e||null===(t=e.UIReducer)||void 0===t?void 0:t.loading)||!1}function te(e){return(null==e?void 0:e.errorReducer)||[]}function re(e){var t;return(null==e||null===(t=e.UIReducer)||void 0===t?void 0:t.videosFetched)||!1}function ne(e){var t;return null==e||null===(t=e.requestReducer)||void 0===t?void 0:t.collection}function ae(e,t){var r;return null==e||null===(r=e.UIReducer)||void 0===r?void 0:r[t]}function oe(e){var t;return null!=e&&null!==(t=e.requestReducer)&&void 0!==t&&t.private?"private":"public"}function le(e){return{type:"SET_VIDEOS",value:e}}function ce(e){return{type:"ADD_VIDEOS",value:e}}function ie(e){return{type:"REMOVE_VIDEO",value:e}}function se(e){return{type:"SET_COLLECTIONS",value:e}}function pe(e){return{type:"ADD_COLLECTION",value:e}}function ue(e){return{type:"SET_PRIVATE_REQUEST",value:e}}function de(e){return{type:"SET_SEARCH",value:e}}function be(e){return{type:"SET_COLLECTION_REQUEST",value:e}}function me(e){return{type:"SET_UPLOADS",value:e}}function ye(e){return{type:"ADD_UPLOADS",value:e}}function ve(e){return{type:"REMOVE_UPLOAD",value:e}}function fe(e){return{type:"SET_VIDEOS_FETCHED",value:e}}function he(e){return{type:"SET_LOADING",value:e}}function Oe(e,t){return{type:"SET_UI_ITEM",item:e,value:t}}function ge(e){return{type:"ADD_ERROR",value:e}}function je(e){return{type:"REMOVE_ERROR",value:e}}(0,wp.data.registerStore)("presto-player/bunny-popup",{reducer:K,selectors:n,actions:a});var we,_e,Ee,Re,ke,Pe,Ce,xe,Se,Ne,Te,De,Be,Ae,Le,Ie,Fe,Ve,Ue,Me,ze,We=function(e){return 3==(null==e?void 0:e.status)&&(null==e?void 0:e.availableResolutions.length)},He=function(e){return We(e)||4===(null==e?void 0:e.status)},Ye=function(e){return 0==(null==e?void 0:e.status)?"Processing":1==(null==e?void 0:e.status)?"Uploaded":2==(null==e?void 0:e.status)?"Processing":We(e)?"Playable":3==(null==e?void 0:e.status)?"Encoding":4==(null==e?void 0:e.status)?"Live":5==(null==e?void 0:e.status)?"Error":6==(null==e?void 0:e.status)?"Upload Failed":void 0},Ge=function(e){return null==e||null==e?"":new Date(1e3*e).toISOString().substr(11,8)},qe=function(e){if(null==e||0==e)return"Unknown";if(0==e)return"0 b";var t=parseInt(Math.floor(Math.log(e)/Math.log(1024)).toString());return(e/Math.pow(1024,t)).toFixed(2)+" "+["b","KB","MB","GB","TB"][t]},Ze=wp.i18n.__,Ke=wp.components,Qe=Ke.Button,Xe=Ke.BaseControl,$e=Ke.Disabled,Je=Ke.Card,et=Ke.CardBody,tt=wp.element,rt=tt.useState,nt=(tt.useContext,tt.useEffect),at=wp.data,ot=at.dispatch,lt=at.useSelect,ct=function(){var e=rt(!1),t=Object(s.a)(e,2),r=t[0],n=t[1],a=rt(!1),o=Object(s.a)(a,2),l=o[0],c=o[1],p=rt(null),d=Object(s.a)(p,2),b=d[0],m=d[1],y=lt((function(e){return e("presto-player/bunny-popup").isPrivate()})),v=lt((function(e){return e("presto-player/bunny-popup").ui("selectedId")})),h=lt((function(e){return e("presto-player/bunny-popup").videos()}));nt((function(){m(v?h.find((function(e){return e.guid===v})):null)}),[h,v]);var O=function(){var e=Object(i.a)(u.a.mark((function e(){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,wp.apiFetch({path:"presto-player/v1/bunny/stream/videos/".concat(b.id),method:"DELETE",data:{type:y?"private":"public"}});case 2:ot("presto-player/bunny-popup").removeVideo(b),ot("presto-player/bunny-popup").setUI("selectedId",null),c(!1),n(!1);case 6:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),j=Object(g.a)(we||(we=Object(f.a)(["\n margin-top: 5px;\n "])));if(!b)return"";var w,_,E,R,k=function(e){return y?null==e?void 0:e.webPURLSigned:null==e?void 0:e.webPURL};return b&&Object(g.b)("div",{className:"presto-player__media-modal-sidebar-content"},Object(g.b)(Xe,{css:Object(g.a)(_e||(_e=Object(f.a)(["\n position: relative;\n "])))},Object(g.b)($e,{key:b.id},He(b)&&k(b)&&Object(g.b)("img",{src:k(b),css:{maxWidth:"100%"}})),Object(g.b)(Qe,{isSmall:!0,isPrimary:!0,isBusy:!He(b),css:Object(g.a)(Ee||(Ee=Object(f.a)(["\n ","\n top: 8px;\n right: 8px;\n font-size: 11px;\n color: #ffffff;\n padding: 2px 10px;\n border-radius: 9999px;\n "])),He(b)?"position: absolute;":"")},Ye(b))),Object(g.b)(Xe,null,Object(g.b)(Xe.VisualLabel,null,Ze("Name","presto-player")),Object(g.b)("h3",{css:j},b.title)),!(null==b||!b.visibility)&&Object(g.b)(Xe,null,Object(g.b)(Xe.VisualLabel,null,Ze("Visibility","presto-player")),Object(g.b)("h3",{css:j},b.visibility)),Object(g.b)(Xe,null,Object(g.b)(Xe.VisualLabel,null,Ze("Size","presto-player")),Object(g.b)("h3",{css:j},qe((null==b?void 0:b.size)||0))),Object(g.b)(Xe,null,Object(g.b)(Xe.VisualLabel,null,Ze("Length","presto-player")),Object(g.b)("h3",{css:j},Ge(null==b?void 0:b.length))),Object(g.b)(Xe,null,Object(g.b)(Xe.VisualLabel,null,Ze("Created","presto-player")),Object(g.b)("h3",{css:j},(w=null==b?void 0:b.created_at,_=(w=new Date(w)).getHours(),E=w.getMinutes(),R=_>=12?"pm":"am",_=(_%=12)||12,E=E<10?"0"+E:E,w.getDate()+"-"+(w.getMonth()+1)+"-"+w.getFullYear()+" at "+_+":"+E+R))),Object(g.b)(Xe,null,r?Object(g.b)(Je,null,Object(g.b)(et,null,Object(g.b)("p",null,Object(g.b)("strong",null,Ze("Are you sure?","presto-player"))),Object(g.b)("p",null,Ze("Are you sure you want to delete this video?","presto-player")),Object(g.b)(Qe,{isDestructive:!0,disabled:l,isBusy:l,onClick:function(e){e.preventDefault(),O(),c(!0)}},Ze("Yes","presto-player")),Object(g.b)(Qe,{onClick:function(){return n(!1)}},Ze("Cancel","presto-player")))):Object(g.b)(Qe,{isDestructive:!0,onClick:function(){n(!r)}},Ze("Delete video","presto-player"))))},it=function(e){var t=e.className,r=e.progress;return Object(g.b)("div",{className:t},Object(g.b)("div",{css:Object(g.a)(Re||(Re=Object(f.a)(["\n height: 100%;\n background-color: var(--wp-admin-theme-color, #007cba);\n "]))),style:{width:"".concat(r,"%")}}))},st=function(e){var t=e.progress;return Object(g.b)("div",{css:Object(g.a)(ke||(ke=Object(f.a)(["\n max-width: 100%;\n object-fit: cover;\n width: 100%;\n height: 140px;\n background-color: #222;\n color: white;\n text-decoration: none;\n text-align: center;\n box-sizing: border-box;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n "])))},Object(g.b)(it,{progress:t,css:Object(g.a)(Pe||(Pe=Object(f.a)(["\n width: 100%;\n border-radius: 0px;\n margin: 0 15px;\n background-color: #e3e3e3;\n height: 3px;\n "])))}))},pt=function(e){var t=e.thumbnail,r=e.title,n=e.footer,a=e.badge,o=e.before,l=e.after;return Object(g.b)("div",Object.assign({className:"presto-player__video-thumb",css:Object(g.a)(Ce||(Ce=Object(f.a)(["\n cursor: pointer;\n user-select: none;\n display: inline-block;\n position: relative;\n margin-right: 20px;\n font-weight: bold;\n margin-bottom: 20px;\n width: 220px;\n flex: 0 0 220px;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n overflow: hidden;\n "])))},e),!!o&&o,!!t&&t,Object(g.b)("div",{css:Object(g.a)(xe||(xe=Object(f.a)(["\n margin: 14px;\n "])))},!!a&&Object(g.b)("div",{css:Object(g.a)(Se||(Se=Object(f.a)(["\n position: absolute;\n top: 8px;\n right: 8px;\n "])))},a),!!r&&Object(g.b)("span",{css:Object(g.a)(Ne||(Ne=Object(f.a)(["\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n width: 100%;\n max-width: 100%;\n display: inline-block;\n margin-bottom: 7px;\n font-size: 13px;\n "])))},r),!!n&&Object(g.b)("div",{css:Object(g.a)(Te||(Te=Object(f.a)(["\n font-size: 12px;\n opacity: 0.75;\n margin-bottom: 7px;\n "])))},n)),!!l&&l)},ut=wp.components,dt=ut.Icon,bt=ut.Button,mt=wp.element,yt=mt.useEffect,vt=mt.useState,ft=wp.data,ht=ft.useSelect,Ot=ft.dispatch,gt=function(e){var t=e.video,r=vt(),n=Object(s.a)(r,2),a=n[0],o=n[1],l=ht((function(e){return e("presto-player/bunny-popup").isPrivate()})),c=ht((function(e){return e("presto-player/bunny-popup").ui("selectedId")}));yt((function(){o(c?c===t.guid:null)}),[c]);return Object(g.b)(pt,{onClick:function(){Ot("presto-player/bunny-popup").setUI("selectedId",null==t?void 0:t.guid)},css:Object(g.a)(Ue||(Ue=Object(f.a)(["\n ","\n border: 1px solid\n ",";\n "])),a&&"box-shadow: 0 0 0 0px #fff, 0 0 0 3px var(--wp-admin-theme-color, #007cba);",a?"var(--wp-admin-theme-color, #007cba)":"#e0e0e0"),thumbnail:function(){if(t.status<3)return Object(g.b)(st,{progress:t.encodeProgress});var e=l?null==t?void 0:t.thumbnailURLSigned:null==t?void 0:t.thumbnailURL;return e?Object(g.b)("img",{css:Object(g.a)(Be||(Be=Object(f.a)(["\n max-width: 100%;\n object-fit: cover;\n width: 100%;\n height: 140px;\n display: block;\n "]))),src:e}):void 0}(),badge:Object(g.b)(bt,{isSmall:!0,isPrimary:!0,isBusy:!He(t),css:Object(g.a)(De||(De=Object(f.a)(["\n font-size: 11px;\n color: #ffffff;\n padding: 2px 10px;\n border-radius: 9999px;\n "])))},Ye(t)),title:t.title,footer:Object(g.b)("div",{css:Object(g.a)(Ae||(Ae=Object(f.a)(["\n display: flex;\n align-items: center;\n "])))},Object(g.b)("span",{css:Object(g.a)(Le||(Le=Object(f.a)(["\n margin-right: 10px;\n display: flex;\n align-items: center;\n "])))},Object(g.b)(dt,{css:Object(g.a)(Ie||(Ie=Object(f.a)(["\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n opacity: 0.5;\n "]))),icon:"clock",size:14}),Object(g.b)("span",null,Ge(t.length))),Object(g.b)("span",{css:Object(g.a)(Fe||(Fe=Object(f.a)(["\n display: flex;\n align-items: center;\n "])))},Object(g.b)(dt,{css:Object(g.a)(Ve||(Ve=Object(f.a)(["\n opacity: 0.5;\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n "]))),icon:"database",size:14}),Object(g.b)("span",null,qe(t.storageSize)))),after:3===t.status?Object(g.b)(it,{css:Object(g.a)(Me||(Me=Object(f.a)(["\n width: 100%;\n border-radius: 0px;\n margin: 0;\n background-color: #e3e3e3;\n height: 3px;\n "]))),progress:t.encodeProgress}):""})},jt=wp.components,wt=jt.Flex,_t=jt.FlexBlock,Et=jt.Spinner,Rt=function(e){var t=e.className;return Object(g.b)(wt,{className:t},Object(g.b)(_t,{css:{textAlign:"center"}},Object(g.b)(Et,null)))};function kt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Pt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?kt(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):kt(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Ct,xt,St,Nt,Tt,Dt,Bt,At,Lt,It,Ft=wp.i18n.__,Vt=wp.element,Ut=Vt.useState,Mt=Vt.useEffect,zt=Vt.Fragment,Wt=wp.components,Ht=Wt.Flex,Yt=Wt.FormFileUpload,Gt=Wt.Notice,qt=wp.data,Zt=qt.dispatch,Kt=qt.useSelect,Qt=function(){var e=Ut(!1),t=Object(s.a)(e,2),r=t[0],n=t[1],a=Ut(""),o=Object(s.a)(a,2),l=o[0],c=o[1],p=Kt((function(e){return e("presto-player/bunny-popup").videosFetched()})),d=Kt((function(e){return e("presto-player/bunny-popup").videos()})),b=Kt((function(e){return e("presto-player/bunny-popup").requestType()})),m=Kt((function(e){return e("presto-player/bunny-popup").currentCollection()}));Mt((function(){p||y()}),[p]),Mt((function(){var e=setInterval((function(){y({sync:!0})}),3e3);return function(){return clearInterval(e)}}),[p]);var y=function(){var e=Object(i.a)(u.a.mark((function e(){var t,r,n,a,o=arguments;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return t=o.length>0&&void 0!==o[0]?o[0]:{sync:!1},r=t.sync,e.prev=1,e.next=4,wp.apiFetch({path:wp.url.addQueryArgs("presto-player/v1/bunny/stream/videos",Pt(Pt({type:b},null!=m&&m.guid?{collection:null==m?void 0:m.guid}:{}),{},{items_per_page:500}))});case 4:n=e.sent,Zt("presto-player/bunny-popup").setVideos(null==n?void 0:n.items),c(""),e.next=15;break;case 9:if(e.prev=9,e.t0=e.catch(1),401!==(null===e.t0||void 0===e.t0||null===(a=e.t0.data)||void 0===a?void 0:a.status)){e.next=14;break}return c(Ft("Please wait. Pullzone cache is clearing. This may take a minute or two...")),e.abrupt("return");case 14:r||Zt("presto-player/bunny-popup").addError(e.t0.message);case 15:return e.prev=15,Zt("presto-player/bunny-popup").setVideosFetched(!0),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[1,9,15,18]])})));return function(){return e.apply(this,arguments)}}();return l?Object(g.b)(Gt,{status:"warning",isDismissible:!1},Object(g.b)("div",{css:{display:"flex",alignItems:"center"}},Object(g.b)(Rt,{css:{flex:1}}),l)):p?Object(g.b)(zt,null,d&&d.length?Object(g.b)("div",null,!(null!=m&&m.guid)&&Object(g.b)("h2",null,Ft("Videos","presto-player")),d.map((function(e){if((null==e?void 0:e.collectionId)===((null==m?void 0:m.guid)||""))return Object(g.b)(gt,{key:e.id,video:e,onClick:function(){n(r.guid===e.guid?{}:e)},selected:r.guid===e.guid})}))):Object(g.b)(Ht,{align:"center",justify:"center",css:Object(g.a)(ze||(ze=Object(f.a)(["\n height: 100%;\n text-align: center;\n "])))},Object(g.b)("div",null,Object(g.b)("h2",null,Ft("Drop video files here to upload","presto-player")),Object(g.b)("p",null,Ft("or browse for a video","presto-player")),Object(g.b)(Yt,{isSecondary:!0,accept:"video/mp4,video/x-m4v,video/*",onChange:function(e){e.target.files&&(Zt("presto-player/bunny-popup").addUploads(e.target.files),jQuery(e.target).val(null))}},Ft("Upload New Video","presto-player"))))):Object(g.b)(Rt,{css:{flex:1}})},Xt=wp.components.Icon,$t=wp.data.dispatch,Jt=function(e){var t=e.collection;return Object(g.b)(pt,{onClick:function(e){e.preventDefault(),$t("presto-player/bunny-popup").setCollectionRequest(t),$t("presto-player/bunny-popup").setVideosFetched(!1)},title:Object(g.b)("div",null,Object(g.b)(Xt,{icon:"open-folder",css:Object(g.a)(Ct||(Ct=Object(f.a)(["\n color: var(--wp-admin-theme-color);\n margin-right: 10px;\n "])))}),t.name),footer:Object(g.b)("div",null,t.videoCount," Videos")})},er=wp.i18n.__,tr=wp.element.useEffect,rr=wp.data,nr=rr.useSelect,ar=rr.dispatch,or=function(){var e=nr((function(e){return e("presto-player/bunny-popup").collections()})),t=nr((function(e){return e("presto-player/bunny-popup").requestType()})),r=function(){var e=Object(i.a)(u.a.mark((function e(){var r,n;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,wp.apiFetch({path:wp.url.addQueryArgs("presto-player/v1/bunny/stream/collections",{type:t,items_per_page:500})});case 3:r=e.sent,ar("presto-player/bunny-popup").setCollections(null==r?void 0:r.items),e.next=12;break;case 7:if(e.prev=7,e.t0=e.catch(0),401!==(null===e.t0||void 0===e.t0||null===(n=e.t0.data)||void 0===n?void 0:n.status)){e.next=11;break}return e.abrupt("return");case 11:ar("presto-player/bunny-popup").addError(e.t0.message);case 12:case"end":return e.stop()}}),e,null,[[0,7]])})));return function(){return e.apply(this,arguments)}}();return tr((function(){r()}),[]),!!e.length&&Object(g.b)("div",null,Object(g.b)("h2",null,er("Collections","presto-player")),Object(g.b)("div",{css:Object(g.a)(xt||(xt=Object(f.a)(["\n display: flex;\n align-items: stretch;\n overflow: auto;\n "])))},e.map((function(e){return Object(g.b)(Jt,{collection:e,key:e.guid})}))))},lr=wp.i18n.__,cr=wp.components,ir=cr.Button,sr=cr.TextControl,pr=cr.Modal,ur=cr.BaseControl,dr=wp.element,br=dr.useState,mr=dr.Fragment,yr=wp.data,vr=yr.dispatch,fr=yr.useSelect,hr=function(){var e=br(""),t=Object(s.a)(e,2),r=t[0],n=t[1],a=br(!1),o=Object(s.a)(a,2),l=o[0],c=o[1],p=fr((function(e){return e("presto-player/bunny-popup").requestType()})),d=fr((function(e){return e("presto-player/bunny-popup").ui("createCollection")})),b=function(e){vr("presto-player/bunny-popup").setUI("createCollection",e)},m=function(){var e=Object(i.a)(u.a.mark((function e(){var t;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/stream/collections",method:"POST",data:{type:p,name:r}});case 4:t=e.sent,vr("presto-player/bunny-popup").addCollection(t),vr("presto-player/bunny-popup").setCollectionRequest(t),vr("presto-player/bunny-popup").setVideosFetched(!1),n(""),b(!1),e.next=15;break;case 12:e.prev=12,e.t0=e.catch(1),console.error(e.t0);case 15:return e.prev=15,c(!1),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[1,12,15,18]])})));return function(){return e.apply(this,arguments)}}();return Object(g.b)(mr,null,Object(g.b)(ir,{isSecondary:!0,onClick:function(){return b(!0)}},lr("Create Collection","presto-player")),d&&Object(g.b)(pr,{overlayClassName:"presto-modal",title:"Create New Collection",shouldCloseOnClickOutside:!1,isDismissible:!1},Object(g.b)(sr,{css:Object(g.a)(St||(St=Object(f.a)(["\n margin-bottom: 15px;\n "]))),tabIndex:"0",placeholder:lr("Enter a collection name","presto-player"),value:r,onChange:function(e){return n(e)}}),Object(g.b)(ur,null,Object(g.b)(ir,{isBusy:l,disabled:l,isPrimary:!0,onClick:function(){m()}},lr("Create","presto-player"))," ",Object(g.b)(ir,{onClick:function(){return b(!1)}},lr("Cancel","presto-player")))))},Or=wp.i18n.__,gr=wp.components,jr=gr.Flex,wr=gr.FlexBlock,_r=gr.FlexItem,Er=(gr.Button,gr.FormFileUpload),Rr=wp.data.dispatch,kr=function(e){var t=e.afterUpload;return Object(g.b)(jr,null,Object(g.b)(wr,null,Object(g.b)(jr,{justify:"flex-start"},Object(g.b)(Er,{multiple:!0,isPrimary:!0,accept:"video/mp4,video/x-m4v,video/*",onChange:function(e){e.target.files&&(Rr("presto-player/bunny-popup").addUploads(e.target.files),jQuery(e.target).val(null))}},Or("Upload Videos","presto-player"))," ",Object(g.b)(hr,null),!!t&&t)),Object(g.b)(_r,null))},Pr=wp.i18n.__,Cr=wp.components.Button,xr=wp.element,Sr=xr.useState,Nr=xr.useEffect,Tr=wp.data.useSelect,Dr=function(e){var t=e.onChoose,r=Sr(null),n=Object(s.a)(r,2),a=n[0],o=n[1],l=Sr(!1),c=Object(s.a)(l,2),i=c[0],p=c[1],u=Tr((function(e){return e("presto-player/bunny-popup").ui("selectedId")})),d=Tr((function(e){return e("presto-player/bunny-popup").videos()}));return Nr((function(){o(u?d.find((function(e){return e.guid===u})):null)}),[d,u]),Nr((function(){3==(null==a?void 0:a.status)&&null!=a&&a.availableResolutions.length?p(!0):p((null==a?void 0:a.status)>3&&(null==a?void 0:a.status)<5)}),[null==a?void 0:a.availableResolutions]),React.createElement(Cr,{isPrimary:!0,disabled:!i,onClick:function(){return t(a)}},null!=a&&a.id&&!i?Pr("Please wait, video is encoding...","presto-player"):Pr("Choose","presto-player"))},Br=wp.components.Icon,Ar=function(e){var t=e.children,r=e.onClick;return Object(g.b)("span",{onClick:r,css:Object(g.a)(Nt||(Nt=Object(f.a)(["\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n color: var(--wp-admin-theme-color, #007cba);\n padding: 6px 0;\n "])))},Object(g.b)(Br,{css:Object(g.a)(Tt||(Tt=Object(f.a)(["\n width: 14px;\n height: 14px;\n font-size: 14px;\n margin-right: 5px;\n "]))),icon:"arrow-left-alt",size:14}),Object(g.b)("span",null,t))},Lr=wp.i18n.__,Ir=wp.element.useState,Fr=wp.data,Vr=Fr.dispatch,Ur=Fr.useSelect,Mr=wp.components,zr=Mr.Button,Wr=Mr.Modal,Hr=Mr.BaseControl,Yr=function(){var e=Ir(!1),t=Object(s.a)(e,2),r=t[0],n=t[1],a=Ir(!1),o=Object(s.a)(a,2),l=o[0],c=o[1],p=Ir(""),d=Object(s.a)(p,2),b=(d[0],d[1],Ur((function(e){return e("presto-player/bunny-popup").currentCollection()}))),m=Ur((function(e){return e("presto-player/bunny-popup").requestType()})),y=function(){var e=Object(i.a)(u.a.mark((function e(){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c(!0),e.prev=1,e.next=4,wp.apiFetch({path:"presto-player/v1/bunny/stream/collections/".concat(null==b?void 0:b.guid),method:"DELETE",data:{type:m}});case 4:n(!1),Vr("presto-player/bunny-popup").setCollectionRequest(""),Vr("presto-player/bunny-popup").setVideosFetched(!1),e.next=13;break;case 9:e.prev=9,e.t0=e.catch(1),n(!1),Vr("presto-player/bunny-popup").addError(e.t0.message);case 13:return e.prev=13,c(!1),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[1,9,13,16]])})));return function(){return e.apply(this,arguments)}}();return Object(g.b)("div",{css:Object(g.a)(Dt||(Dt=Object(f.a)(["\n margin-bottom: 2em;\n display: flex;\n align-items: center;\n justify-content: space-between;\n "])))},Object(g.b)("div",null,Object(g.b)(Ar,{onClick:function(){Vr("presto-player/bunny-popup").setCollectionRequest(""),Vr("presto-player/bunny-popup").setVideosFetched(!1)}},Lr("Back To Main Folder","presto-player")),Object(g.b)("h2",null,b.name)),Object(g.b)(zr,{isDestructive:!0,onClick:function(){return n(!0)}},Lr("Delete Collection","presto-player")),r&&Object(g.b)(Wr,{shouldCloseOnClickOutside:!1,overlayClassName:"presto-modal",title:"Delete Collection",onRequestClose:function(){return n(!1)}},Object(g.b)("h2",null,Lr("Are you sure you want to delete the collection? ","presto-player")),Object(g.b)("p",null,Lr("This will also delete all videos inside of the collection.","presto-player")),Object(g.b)(Hr,null,Object(g.b)(zr,{isDestructive:!0,disabled:l,isBusy:l,onClick:y},Lr("Delete","presto-player"))," ",Object(g.b)(zr,{onClick:function(){return n(!1)}},Lr("Cancel","presto-player")))))};function Gr(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function qr(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Gr(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Gr(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}wp.components.Icon;var Zr,Kr,Qr,Xr,$r,Jr,en,tn,rn,nn,an,on,ln,cn=wp.element,sn=cn.useState,pn=cn.useEffect,un=(cn.useContext,wp.data),dn=un.useSelect,bn=(un.dispatch,wp.i18n.__),mn=function(e){var t,r=e.file,n=e.name,a=e.onComplete,o=sn(0),l=Object(s.a)(o,2),c=l[0],p=l[1],d=sn(bn("Uploading","presto-player")),b=Object(s.a)(d,2),m=(b[0],b[1]),y=sn(""),h=Object(s.a)(y,2),O=h[0],j=h[1],w=sn(!1),_=Object(s.a)(w,2),E=_[0],R=_[1],k=dn((function(e){return e("presto-player/bunny-popup").requestType()})),P=dn((function(e){return e("presto-player/bunny-popup").currentCollection()})),C=function(){var e=Object(i.a)(u.a.mark((function e(){return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:m(bn("Uploading","presto-player")),t=v({file:null!=r&&r[0]?null==r?void 0:r[0]:r,path:"presto-player/v1/bunny/stream/upload",onProgress:function(e){p(e)},onComplete:x,onError:function(e){j(e.message),m(bn("Error","presto-player")),p(0)}});case 2:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}(),x=function(){var e=Object(i.a)(u.a.mark((function e(t){var r,n,a;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.path,n=t.name,m(bn("Creating","presto-player")),e.prev=2,e.next=5,wp.apiFetch({path:"presto-player/v1/bunny/stream/videos",method:"POST",data:qr({type:k,name:n},null!=P&&P.guid?{collection:P.guid}:{})});case 5:a=e.sent,R(!0),S({path:r,video:a}),e.next=13;break;case 10:e.prev=10,e.t0=e.catch(2),j(e.t0.message);case 13:return e.prev=13,p(0),e.finish(13);case 16:case"end":return e.stop()}}),e,null,[[2,10,13,16]])})));return function(t){return e.apply(this,arguments)}}(),S=function(){var e=Object(i.a)(u.a.mark((function e(t){var r,n;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return r=t.path,n=t.video,e.next=3,wp.apiFetch({path:"presto-player/v1/bunny/stream/store",method:"POST",data:{type:k,path:r,guid:n.guid}});case 3:a();case 4:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return pn((function(){return C(),function(){t&&t.cancel()}}),[]),E?"":Object(g.b)("div",{css:Object(g.a)(Bt||(Bt=Object(f.a)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n animation: components-button__busy-animation 2500ms infinite linear;\n opacity: 1;\n padding: 6px 12px;\n border-radius: 99999px;\n border: 1px solid #dddddd;\n background-size: 100px 100%;\n background-image: linear-gradient(\n -45deg,\n #ffffff 33%,\n #f3f3f3 33%,\n #f3f3f3 70%,\n #ffffff 70%\n );\n "])))},Object(g.b)("div",{css:Object(g.a)(At||(At=Object(f.a)(["\n flex: 1;\n white-space: nowrap;\n overflow: hidden;\n max-width: 150px;\n text-overflow: ellipsis;\n font-weight: bold;\n "])))},!!O&&O,!!n&&n," ",r.name,"..."),Object(g.b)("div",{css:Object(g.a)(Lt||(Lt=Object(f.a)(["\n display: flex;\n align-items: center;\n "])))},Object(g.b)(it,{css:Object(g.a)(It||(It=Object(f.a)(["\n width: 50px;\n height: 3px;\n margin: 0 5px;\n background: #e3e3e3;\n border-radius: 9999px;\n overflow: hidden;\n "]))),progress:c})))},yn=wp.data.useSelect,vn=function(e){var t=e.removeUpload,r=(e.isPrivate,yn((function(e){return e("presto-player/bunny-popup").uploads()})));return r.length?Object(g.b)("div",{css:Object(g.a)(Zr||(Zr=Object(f.a)(["\n overflow: auto;\n display: flex;\n align-items: center;\n position: relative;\n "])))},r.length&&r.map((function(e){return Object(g.b)(mn,{css:Object(g.a)(Kr||(Kr=Object(f.a)(["\n margin-right: 0px;\n "]))),file:e,onComplete:function(){return t(e)}})}))):""},fn=wp.i18n.__,hn=wp.components.Modal,On=function(e){var t=e.onClose,r=e.title,n=e.header,a=e.error,o=e.mainContent,l=e.sidebar,c=e.footer;return Object(g.b)(hn,{title:r||fn("Add Media","presto-player"),onRequestClose:t,css:Object(g.a)(Qr||(Qr=Object(f.a)(["\n width: 100%;\n height: 100%;\n max-width: calc(100% - 32px);\n max-height: calc(100% - 32px);\n\n .components-modal__content {\n display: flex;\n flex-direction: column;\n }\n "]))),overlayClassName:"presto-player__modal-overlay"},Object(g.b)("div",{css:Object(g.a)(Xr||(Xr=Object(f.a)(['\n @media screen and (min-width: 780px) {\n margin: -24px;\n display: grid;\n flex: 1;\n max-height: calc(100vh - 68px);\n grid-template-columns: 1fr 1fr minmax(0px, 267px);\n grid-template-rows: minmax(50px, auto) 1fr 60px;\n grid-template-areas:\n "header header sidebar"\n "main main sidebar"\n "footer footer footer";\n overflow: hidden;\n }\n ']))),"data-cy":"media-modal"},Object(g.b)("div",{css:Object(g.a)($r||($r=Object(f.a)(["\n grid-area: header;\n padding: 24px 24px 12px 24px;\n "])))},Object(g.b)("div",{css:Object(g.a)(Jr||(Jr=Object(f.a)(["\n display: flex;\n align-items: center;\n\n > * {\n margin-right: 10px;\n }\n "])))},n),a),Object(g.b)("div",{css:Object(g.a)(en||(en=Object(f.a)(["\n grid-area: main;\n display: grid;\n overflow: hidden;\n\n .components-drop-zone__provider {\n overflow: hidden;\n display: grid;\n }\n\n .components-drop-zone {\n z-index: 99;\n }\n "])))},o),Object(g.b)("div",{css:Object(g.a)(tn||(tn=Object(f.a)(["\n display: none;\n grid-area: sidebar;\n padding: 0 16px;\n z-index: 75;\n background: #f3f3f3;\n border-left: 1px solid #ddd;\n overflow: auto;\n\n @media screen and (min-width: 780px) {\n display: block;\n }\n\n .sidebar-content {\n padding: 16px 0;\n }\n "])))},l),Object(g.b)("div",{css:Object(g.a)(rn||(rn=Object(f.a)(["\n grid-area: footer;\n border-top: 1px solid #ddd;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 8px;\n "])))},c)))},gn=wp.i18n.__,jn=wp.components,wn=(jn.Button,jn.DropZone),_n=jn.DropZoneProvider,En=jn.Notice,Rn=wp.element,kn=(Rn.useState,Rn.useEffect),Pn=(Rn.Fragment,wp.data),Cn=Pn.dispatch,xn=Pn.useSelect,Sn=function(e){var t=e.onClose,r=e.onChoose,n=xn((function(e){return e("presto-player/bunny-popup").isPrivate()})),a=xn((function(e){return e("presto-player/bunny-popup").uploads()})),o=xn((function(e){return e("presto-player/bunny-popup").currentCollection()})),l=xn((function(e){return e("presto-player/bunny-popup").errors()}));kn((function(){Cn("presto-player/bunny-popup").setVideosFetched(!1),Cn("presto-player/bunny-popup").setCollections([]),Cn("presto-player/bunny-popup").setVideos([])}),[]);var c=function(e){Cn("presto-player/bunny-popup").addUploads(e)},i=gn(n?"Private Stream Library":"Public Stream Library","presto-player"),s=Object(g.b)(kr,{afterUpload:Object(g.b)(vn,{uploads:a,removeUpload:function(e){Cn("presto-player/bunny-popup").removeUpload(e)},isPrivate:n})}),p=Object(g.b)(ct,null),u=Object(g.b)(Dr,{onChoose:r});return Object(g.b)(On,{title:i,header:s,mainContent:Object(g.b)(_n,{css:Object(g.a)(nn||(nn=Object(f.a)(["\n overflow: auto;\n display: flex;\n flex-direction: column;\n "])))},Object(g.b)("div",{css:Object(g.a)(an||(an=Object(f.a)(["\n padding: 12px 24px;\n overflow: auto;\n display: flex;\n flex-direction: column;\n "])))},!!l.length&&l.map((function(e){return Object(g.b)(En,{css:Object(g.a)(on||(on=Object(f.a)(["\n margin: 0 0 20px 0;\n "]))),status:"error",onRemove:function(){return Cn("presto-player/bunny-popup").removeError(e)}},e)})),o?Object(g.b)(Yr,null):Object(g.b)(or,null),Object(g.b)("div",{css:Object(g.a)(ln||(ln=Object(f.a)(["\n display: flex;\n align-items: stretch;\n "])))},Object(g.b)(Qt,null)),Object(g.b)(wn,{label:"Drop files",onFilesDrop:c}))),onClose:function(){a.length?confirm("Discard your uploads?")&&(t(),Cn("presto-player/bunny-popup").setUploads([])):t()},footer:u,sidebar:p})},Nn=wp.i18n.__,Tn=wp.element.useEffect,Dn=wp.data.dispatch,Bn=function(e){var t=e.closePopup,r=e.onSelect,n=e.isPrivate;return Tn((function(){Dn("presto-player/bunny-popup").setIsPrivate(n)}),[n]),React.createElement(Sn,{onClose:t,onChoose:function(e){e.url=e.playlistURL,e.thumbnail=e.thumbnailURL,e.preview=e.webPURL,r(e)},header:Nn(n?"Private Stream Library":"Public Stream Library","presto-player"),title:Nn(n?"Private Video Stream":"Public Video Stream","presto-player")})},An=wp.i18n.__,Ln=wp.element.useState,In="".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"bunny/"),Fn=wp.i18n.__,Vn=wp.element.useState,Un="".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"bunny/stream/"),Mn=wp.i18n.__,zn=wp.components,Wn=zn.Button,Hn=zn.TextControl,Yn=zn.Placeholder,Gn=zn.Flex,qn=zn.FlexBlock,Zn=zn.ExternalLink,Kn=zn.Spinner,Qn=zn.FlexItem,Xn=zn.Notice,$n=wp.element.useEffect,Jn=function(e){var t=e.onRefetch,r=e.type,n=e.autoSubmit,a="stream"===r?function(e){var t=Vn(""),r=Object(s.a)(t,2),n=r[0],a=r[1],o=Vn(""),l=Object(s.a)(o,2),c=l[0],p=l[1],d=Vn(!1),b=Object(s.a)(d,2),m=b[0],y=b[1],v=Vn(0),f=Object(s.a)(v,2),h=f[0],O=f[1],g=Vn(""),j=Object(s.a)(g,2),w=j[0],_=j[1],E=function(e){return e.includes("Authorization has been denied")?"Your API key is incorrect. Please double-check to make sure you've copied it correctly.":e.includes("localhost")?"You cannot use a CDN on a local site. Please use Bunny.net on a live, publicly accessible site.":e};return{saveKey:function(){var t=Object(i.a)(u.a.mark((function t(){var r,a;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return _(""),t.prev=1,y(!0),O(0),p(Fn("Validating API Key...","presto-player")),t.next=7,wp.apiFetch({url:"".concat(Un,"api-key"),method:"POST",data:{api_key:n}});case 7:if(r=t.sent,r.success){t.next=11;break}throw{message:"Could not save the API key. Please double check it to make sure it's correct."};case 11:t.next=18;break;case 13:return t.prev=13,t.t0=t.catch(1),O(0),_(null!==t.t0&&void 0!==t.t0&&t.t0.message?E(t.t0.message):"Something went wrong. Please try again"),t.abrupt("return");case 18:return t.prev=18,O(1),y(!1),p(""),t.finish(18);case 23:return t.prev=23,y(!0),p(Fn("Setting up public video library. This make take a few moments...","presto-player")),t.next=28,wp.apiFetch({url:"".concat(Un,"library"),method:"POST",data:{type:"public"}});case 28:a=t.sent,a.id,t.next=37;break;case 32:return t.prev=32,t.t1=t.catch(23),O(0),_(null!==t.t1&&void 0!==t.t1&&t.t1.message?E(t.t1.message):"Something went wrong. Please try again"),t.abrupt("return");case 37:return t.prev=37,O(2),y(!1),p(""),t.finish(37);case 42:return t.prev=42,y(!0),p(Fn("Setting up private video library. This make take a few moments...","presto-player")),t.next=47,wp.apiFetch({url:"".concat(Un,"library"),method:"POST",data:{type:"private"}});case 47:t.next=54;break;case 49:return t.prev=49,t.t2=t.catch(42),O(0),_(null!==t.t2&&void 0!==t.t2&&t.t2.message?E(t.t2.message):"Something went wrong. Please try again"),t.abrupt("return");case 54:return t.prev=54,O(2),y(!1),p(""),t.finish(54);case 59:e();case 60:case"end":return t.stop()}}),t,null,[[1,13,18,23],[23,32,37,42],[42,49,54,59]])})));return function(){return t.apply(this,arguments)}}(),setApikey:a,step:h,saveMessage:c,saving:m,error:w,totalSteps:3}}(t):function(e){var t=Ln(""),r=Object(s.a)(t,2),n=r[0],a=r[1],o=Ln(""),l=Object(s.a)(o,2),c=l[0],p=l[1],d=Ln(!1),b=Object(s.a)(d,2),m=b[0],y=b[1],v=Ln(0),f=Object(s.a)(v,2),h=f[0],O=f[1],g=Ln(""),j=Object(s.a)(g,2),w=j[0],_=j[1],E=function(e){return e.includes("Authorization has been denied")?"Your API key is incorrect. Please double-check to make sure you've copied it correctly.":e.includes("localhost")?"You cannot use a CDN on a local site. Please use Bunny.net on a live, publicly accessible site.":e};return{saveKey:function(){var t=Object(i.a)(u.a.mark((function t(){var r,a,o;return u.a.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return _(""),t.prev=1,y(!0),O(0),p(An("Validating API Key...","presto-player")),t.next=7,wp.apiFetch({url:"".concat(In,"api-key"),method:"POST",data:{api_key:n}});case 7:if(r=t.sent,r.success){t.next=11;break}throw{message:"Could not save the API key. Please double check it to make sure it's correct."};case 11:t.next=18;break;case 13:return t.prev=13,t.t0=t.catch(1),O(0),_(null!==t.t0&&void 0!==t.t0&&t.t0.message?E(t.t0.message):"Something went wrong. Please try again"),t.abrupt("return");case 18:return t.prev=18,O(1),y(!1),p(""),t.finish(18);case 23:return t.prev=23,y(!0),p(An("Setting up storage zones. This make take a few minutes...","presto-player")),t.next=28,wp.apiFetch({url:"".concat(In,"storage-zones"),method:"POST"});case 28:a=t.sent,a.id,t.next=37;break;case 32:return t.prev=32,t.t1=t.catch(23),O(0),_(null!==t.t1&&void 0!==t.t1&&t.t1.message?E(t.t1.message):"Something went wrong. Please try again"),t.abrupt("return");case 37:return t.prev=37,O(2),y(!1),p(""),t.finish(37);case 42:return t.prev=42,y(!0),p(An("Setting up pull zones. This make take a few minutes...","presto-player")),t.next=47,wp.apiFetch({url:"".concat(In,"pull-zones"),method:"POST"});case 47:o=t.sent,o.id,t.next=56;break;case 51:return t.prev=51,t.t2=t.catch(42),O(0),_(null!==t.t2&&void 0!==t.t2&&t.t2.message?E(t.t2.message):"Something went wrong. Please try again"),t.abrupt("return");case 56:return t.prev=56,O(3),y(!1),p(""),t.finish(56);case 61:e();case 62:case"end":return t.stop()}}),t,null,[[1,13,18,23],[23,32,37,42],[42,51,56,61]])})));return function(){return t.apply(this,arguments)}}(),setApikey:a,step:h,saveMessage:c,saving:m,error:w,totalSteps:3}}(t),o=a.saveKey,l=a.apikey,c=a.setApikey,p=a.saveMessage,d=a.saving,b=a.totalSteps,m=a.step,y=a.error;return $n((function(){n&&o()}),[n]),React.createElement(Yn,{label:Mn("Bunny.net Video","presto-player"),instructions:React.createElement(React.Fragment,null,Mn("Enter your Bunny.net API key, which can be found on your Bunny CDN Account page.","presto-player")," ",React.createElement(Zn,{href:"https://bunnycdn.com/dashboard/account"},Mn("Get My API Key","presto-player")))},d?React.createElement(Gn,null,React.createElement(Qn,null,React.createElement(Kn,null)),React.createElement(qn,null,p,React.createElement("progress",{className:"presto-progress",max:b,value:m,style:{width:"100%"}}))):React.createElement("form",{onSubmit:function(e){e.preventDefault(),o()}},y&&React.createElement(Gn,{style:{width:"100%"}},React.createElement(qn,null,React.createElement(Xn,{status:"error",isDismissible:!1},y))),React.createElement(Gn,{style:{width:"100%",maxWidth:"400px"}},React.createElement(qn,null,React.createElement(Hn,{value:l,onChange:function(e){return c(e)},className:"presto-link-placeholder-input",type:"password",autoComplete:"off",placeholder:Mn("Your Bunny.net API Key","presto-player"),required:!0})),React.createElement(Qn,null,React.createElement(Wn,{isPrimary:!0,style:{marginBottom:"8px"},type:"submit"},Mn("Next","presto-player")," →")))))},ea=r(23),ta=r(14);function ra(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function na(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ra(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ra(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var aa=wp.components,oa=aa.Button,la=aa.Disabled,ca=aa.DropdownMenu,ia=aa.Spinner,sa=aa.Toolbar,pa=aa.withNotices,ua=aa.BaseControl,da=aa.Placeholder,ba=aa.ToggleControl,ma=wp.editor,ya=ma.BlockControls,va=ma.InspectorControls,fa=wp.i18n.__,ha=wp.compose.compose,Oa=wp.element,ga=Oa.useEffect,ja=Oa.useState,wa=Oa.Fragment,_a=wp.data.dispatch,Ea=ha([Object(m.a)(),Object(b.a)()])(pa((function(e){var t,r,n=e.attributes,a=e.setAttributes,o=e.noticeOperations,l=e.branding,c=(e.isSelected,e.presetData),p=e.createVideo,b=e.lockSave,m=e.unlockSave,v=e.onRemoveSrc,f=e.renderKey,h=e.defaultPreset,O=n.poster,g=n.src,j=n.id,w=n.tracks,_=n.visibility,E=n.previewSrc,R=n.thumbnail,k=ja(""),P=Object(s.a)(k,2),C=P[0],x=P[1],S=ja(!1),N=Object(s.a)(S,2),T=N[0],D=N[1],B=ja(""),A=Object(s.a)(B,2),L=A[0],I=A[1],F=ja({stream:!1,storage:!1}),V=Object(s.a)(F,2),U=V[0],M=V[1],z=ja(!1),W=Object(s.a)(z,2),H=W[0],G=W[1],q=ja(!1),Z=Object(s.a)(q,2),K=Z[0],Q=Z[1],X=ja(!1),$=Object(s.a)(X,2),J=($[0],$[1]),ee=ja(!1),te=Object(s.a)(ee,2),re=te[0],ne=te[1],ae=wp.data.useSelect((function(e){return e("core").canUser("read","settings")})),oe="private"===_,le=null===(t=prestoPlayerAdmin)||void 0===t||null===(r=t.bunny)||void 0===r?void 0:r.disable_legacy_storage;function ce(e){e.url?(a(na(na({src:e.url,preset:null==h?void 0:h.id},null!=e&&e.thumbnail?{thumbnail:e.thumbnail}:{}),null!=e&&e.preview?{preview:e.preview}:{})),D(!0),b(),p(na({src:e.url,type:"bunny",title:e.title},null!=e&&e.guid?{external_id:e.guid}:{})).catch((function(e){a({src:""}),console.error(e)})).finally((function(){m(),D(!1)}))):a({src:void 0,id:void 0})}ga((function(){_a("presto-player/bunny-popup").setIsPrivate("private"===_)}),[_]),ga((function(){var e,t,r,n,a,o;M({storage:null===(e=prestoPlayerAdmin)||void 0===e||null===(t=e.isSetup)||void 0===t||null===(r=t.bunny)||void 0===r?void 0:r.storage,stream:null===(n=prestoPlayerAdmin)||void 0===n||null===(a=n.isSetup)||void 0===a||null===(o=a.bunny)||void 0===o?void 0:o.stream})}),[]);var ie=function(){var e=Object(i.a)(u.a.mark((function e(){var t,r,n,a,o,l,c,i;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,wp.apiFetch({path:"wp/v2/settings"});case 3:t=e.sent,r=t.presto_player_bunny_pull_zones,n=t.presto_player_bunny_storage_zones,a=t.presto_player_bunny_stream_private,o=t.presto_player_bunny_stream_public,Q(!0),a||G(!0),c=(l=function(e){return!(null==e||!e.private_id||null==e||!e.public_id)})(r)||l(n),i=(null==a?void 0:a.pull_zone_url)&&(null==o?void 0:o.pull_zone_url),M({storage:c,stream:i}),I(c||i?"":"stream");case 15:return e.prev=15,J(!1),e.finish(15);case 18:case"end":return e.stop()}}),e,null,[[0,,15,18]])})));return function(){return e.apply(this,arguments)}}();ga((function(){ae?ie():Q(!0)}),[ae]);var se=function(){var e=Object(i.a)(u.a.mark((function e(){var t;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!oe){e.next=7;break}return e.next=3,d(g);case 3:t=e.sent,a({previewSrc:t}),e.next=8;break;case 7:a({previewSrc:g});case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();ga((function(){se()}),[g]);var pe=function(){var e=Object(i.a)(u.a.mark((function e(){var t;return u.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!oe){e.next=7;break}return e.next=3,d(R);case 3:(t=e.sent)&&a({previewThumbnail:t}),e.next=8;break;case 7:a({previewThumbnail:R});case 8:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();ga((function(){pe()}),[R]);var ue=function(){var e=[];return!H&&e.push({title:U.stream?fa("Reconnect Stream","presto-player"):fa("Connect Stream","presto-player"),onClick:function(){I("stream"),ne(!1)}}),!le&&e.push({title:U.storage?fa("Reconnect Storage (Classic)","presto-player"):fa("Connect Storage (Classic)","presto-player"),onClick:function(){return I("storage")}}),React.createElement(ca,{icon:"ellipsis",label:fa("Connection Options","presto-player"),controls:e})};return T||!K?React.createElement(da,{className:"presto-player__placeholder is-loading"},React.createElement(ia,null)):"stream"===L?React.createElement(Jn,{type:"stream",autoSubmit:re,onRefetch:function(){Q(!1),ie()}}):"storage"===L?React.createElement(Jn,{type:"storage",onRefetch:function(){Q(!1),ie()}}):j?React.createElement(React.Fragment,null,React.createElement(ya,null,React.createElement(y.a,{tracks:w,onChange:function(e){a({tracks:e})}}),React.createElement(sa,null,React.createElement(oa,{onClick:function(){return v()}},fa("Replace","presto-player")))),React.createElement(va,null,React.createElement(ea.a,{setAttributes:a,attributes:n})),React.createElement("figure",{className:"wp-block-video"},React.createElement(la,null,React.createElement(ta.a,{poster:O,src:E,id:j,type:"bunny",attributes:n,setAttributes:a,preset:c,branding:l,key:f})))):React.createElement("div",null,React.createElement(da,{label:fa(oe?"Bunny.net Private Video":"Bunny.net Video","presto-player"),icon:oe?React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})):React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("polyline",{points:"8 17 12 21 16 17"}),React.createElement("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),React.createElement("path",{d:"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29"})),instructions:React.createElement(React.Fragment,null,fa("Add or select a Bunny.net video","presto-player"))},React.createElement(ua,{className:"presto-player__placeholder-control"},React.createElement(ba,{label:"Private Video",help:oe?"Video is only accessible to those who are logged in.":"Video is accessible to everyone.",checked:oe,onChange:function(e){a({visibility:e?"private":"public"})}})),React.createElement(wa,null,U.stream&&React.createElement(oa,{isPrimary:!0,onClick:function(){return x("stream")}},fa(oe?"Add/Select Private Video Stream":"Add/Select Video Stream","presto-player")),!le&&U.storage&&React.createElement(oa,{isSecondary:U.stream,isPrimary:!U.stream,onClick:function(){return x("storage")}},fa(oe?"Add/Select Private Video (Classic)":"Add/Select Video (Classic)","presto-player")),!U.stream&&!H&&U.storage&&React.createElement(oa,{isSecondary:!0,onClick:function(){ne(!0),I("stream")}},fa("Enable Bunny.net Stream!","presto-player")),!!ae&&ue())),"storage"===C&&React.createElement(Y,{isPrivate:oe,closePopup:function(){return x("")},noticeOperations:o,onSelect:ce}),"stream"===C&&React.createElement(Bn,{isPrivate:oe,closePopup:function(){return x("")},noticeOperations:o,onSelect:ce}))}))),Ra=r(17);function ka(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Pa(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ka(Object(r),!0).forEach((function(t){Object(c.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ka(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Ca=wp.i18n.__,xa="presto-player/bunny",Sa=Pa(Pa({},Ra.a),{},{attributes:Pa(Pa({},Ra.a.attributes),{thumbnail:{type:String,default:""},preview:{type:String,default:""}}),premium:!0,title:Ca("Presto Bunny.net Video","presto-player"),description:Ca("Serve video through Bunny.net CDN.","presto-player"),variations:[{name:"public",isDefault:!0,title:Ca("Presto Bunny.net Video","presto-player"),description:Ca("Serve public video through Bunny.net CDN.","presto-player"),attributes:{visibility:"public"}},{name:"private",title:Ca("Presto Bunny.net Private Video","presto-player"),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})),description:Ca("Serve private, secure video through Bunny.net CDN.","presto-player"),attributes:{visibility:"private"}}],icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("polyline",{points:"8 17 12 21 16 17"}),React.createElement("line",{x1:"12",y1:"12",x2:"12",y2:"21"}),React.createElement("path",{d:"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29"})),edit:Ea})},function(e,t,r){"use strict";r.r(t),r.d(t,"name",(function(){return ot})),r.d(t,"options",(function(){return lt}));var n=r(8),a=r(5),o=r(3),l=r(1),c=r(19),i=r.n(c),s=r(16),p=r(4),u=r(13),d=r(15),b=r(25),m=window.location.href,y=function(e){var t=e.src,r=e.onChange,n=e.onSubmit,a=e.onClose;return React.createElement(b.URLPopover,{onClose:a},React.createElement("form",{className:"block-editor-media-placeholder__url-input-form",onSubmit:n},React.createElement("input",{"data-cy":"url-input",className:"block-editor-media-placeholder__url-input-field",type:"url","aria-label":Object(o.__)("URL","presto-player"),placeholder:Object(o.__)("Paste an mp3 URL","presto-player"),onChange:r,value:t}),React.createElement(p.Button,{"data-cy":"url-submit",className:"block-editor-media-placeholder__url-input-submit-button",icon:"editor-break",label:Object(o.__)("Apply","presto-player"),type:"submit"})))};var v=Object(p.withFilters)("editor.MediaPlaceholder")((function(e){var t=e.value,r=void 0===t?{}:t,n=e.allowedTypes,a=void 0===n?[]:n,c=e.className,v=e.icon,f=e.url,h=void 0===f||f,O=e.labels,g=void 0===O?{}:O,j=e.mediaPreview,w=e.notices,_=e.isAppender,E=e.isPrivate,R=e.addToGallery,k=e.onSelect,P=e.onCancel,C=e.onSelectURL,x=e.onDoubleClick,S=e.children,N=e.allowURLs,T=Object(d.useSelect)((function(e){return(0,e("core/block-editor").getSettings)().mediaUpload}),[]),D=Object(u.useState)(""),B=Object(l.a)(D,2),A=B[0],L=B[1],I=Object(u.useState)(!1),F=Object(l.a)(I,2),V=F[0],U=F[1];Object(u.useEffect)((function(){var e;L(null!==(e=null==r?void 0:r.src)&&void 0!==e?e:"")}),[r]);var M=function(e){L(e.target.value)},z=function(){U(!0)},W=function(){U(!1)},H=function(e){e.preventDefault(),A&&C&&(C(A),W())},Y=function(e,t){var r=g.instructions,n=g.title;T||C||(r=Object(o.__)("To edit this block, you need permission to upload media.","presto-player"));var a=i()("block-editor-media-placeholder",c,{"is-appender":_});return React.createElement(p.Placeholder,{icon:v,label:n,instructions:r,className:a,notices:w,onClick:t,onDoubleClick:x,preview:j},S,e)},G=function(){return C&&React.createElement("div",{className:"block-editor-media-placeholder__url-input-container"},h&&!1===E&&React.createElement(p.Button,{className:"block-editor-media-placeholder__button",onClick:z,isPressed:V,isTertiary:!0},Object(o.__)("Audio URL","presto-player")),V&&React.createElement(y,{src:A,onChange:M,onSubmit:H,onClose:W}))};return React.createElement(b.MediaUploadCheck,{fallback:Y(G())},function(){var e=React.createElement(b.MediaUpload,{title:E?Object(o.__)("Select or Upload Private Audio","presto-player"):Object(o.__)("Select or Upload Audio","presto-player"),addToGallery:R,gallery:!1,multiple:!1,onSelect:function(e){s.a.unsetUrlParams(),k(e)},onClose:function(){s.a.unsetUrlParams()},allowedTypes:a,value:Array.isArray(r)?r.map((function(e){return e.id})):r.id,render:function(e){var t=e.open;return React.createElement(p.Button,{isPrimary:!0,onClick:function(e){e.stopPropagation(),s.a.unsetUrlParams(),E?s.a.setUrlPrivate(m):s.a.setUrlPublic(m),t()}},E?Object(o.__)("Add/Select Private Audio","presto-player"):Object(o.__)("Add/Select Audio","presto-player"))}});if(T){var t=React.createElement(React.Fragment,null,e,!!N&&G(),P&&React.createElement(p.Button,{className:"block-editor-media-placeholder__cancel-button",title:Object(o.__)("Cancel","presto-player"),isLink:!0,onClick:P},Object(o.__)("Cancel","presto-player")));return Y(t)}return Y(e)}())})),f=r(11),h=wp.i18n.__,O=wp.components,g=(O.withNotices,O.BaseControl),j=O.ToggleControl,w=O.Notice,E=["audio"],R=function(e){var t,r,n=e.attributes,o=e.setAttributes,l=e.onSelectURL,c=e.onSelect,i=e.children,s="private"===n.visibility;return React.createElement(v,(r={icon:s?React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),React.createElement("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})):React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"presto-block-icon"},React.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3"})),labels:{title:h("Presto Audio","presto-player"),instructions:h("Upload a audio file, or pick one from your media library.","presto-player")},accept:"audio/*",setAttributes:o,allowedTypes:E,switcher:!0,isPrivate:s,allowURLs:!s,onSelectURL:l,onSelect:c,value:n},Object(a.a)(r,"allowURLs",!0),Object(a.a)(r,"onError",(function(){return console.log("error")})),r),React.createElement("div",{style:{width:"100%"}},React.createElement(g,{className:"presto-player__placeholder-control"},React.createElement(j,{label:React.createElement("div",null,h("Make Private","presto-player")," ",!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(f.a,null)),help:h(s?"This audio is only accessible to those who are logged in.":"This audio is currently accessible to everyone.","presto-player"),checked:s,onChange:function(e){var t;null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium?o({visibility:e?"private":"public"}):Object(d.dispatch)("presto-player/player").setProModal(!0)}})),!!i&&React.createElement("div",{style:{width:"100%"}},i),!!s&&React.createElement(w,{status:"warning",isDismissible:!1},React.createElement("div",null,React.createElement("div",null,React.createElement("strong",null,h("Note","presto-player"))),h("Private audio uses php to stream your audio. Keep in mind this will use up disk space and bandwidth so it may not be an appropriate choice for some hosts.","presto-player")))))},k=r(43),P=r(30),C=r(31),x=r(41),S=r(6),N=r(7),T=r(2),D=r.n(T),B=r(9),A=r(32),L=r(0),I=r(24),F=r(14);function V(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function U(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?V(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):V(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var M,z,W=function(e){var t,r=e.state,n=e.branding,a=e.menu,c=e.src,i=e.poster,s=e.currentTime,d=e.preload,b=e.mediaTitle,m=e.overlays,y=e.isDisabled,v=void 0===y||y,f=Object(u.useState)(1),h=Object(l.a)(f,2),O=h[0],g=h[1],j=r.email_collection,w=r.cta;Object(u.useEffect)((function(){g(O+1)}),[r.skin,r["play-large"],r.rewind,r.play,r["fast-forward"],r.progress,r["current-time"],r.mute,r.volume,r.speed,r.pip,r.fullscreen,r.captions,r.hide_logo]);var _={email:!(null==j||!j.enabled)&&React.createElement(I.b,{className:"email-overlay",slot:"player-end",headline:null==j?void 0:j.headline,style:U(U({"--presto-player-email-border-radiuss":"".concat(null==j?void 0:j.button_radius,"px"),"--plyr-color-main":(null==r?void 0:r.background_color)||(null==n?void 0:n.color)},j.button_color?{"--presto-player-button-color":"".concat(j.button_color)}:{}),j.button_text_color?{"--presto-player-button-text":"".concat(j.button_text_color)}:{}),defaultHeadline:Object(o.__)("Enter your email to play.","presto-player"),bottomText:null==j?void 0:j.bottom_text,allowSkip:null==j?void 0:j.allow_skip,skipText:Object(o.__)("Skip","presto-player"),buttonText:null==j?void 0:j.button_text,placeholder:Object(o.__)("Email address","presto-player"),i18n:window.prestoPlayer.i18n,type:"audio"}),cta:!(null==w||!w.enabled)&&React.createElement(I.a,{className:"cta-overlay",style:U(U(U({"--presto-player-button-border-radius":"".concat(w.button_radius,"px")},null!=w&&w.background_opacity?{"--presto-player-cta-background-opacity":"".concat((null==w?void 0:w.background_opacity)/100)}:{}),w.button_color?{"--presto-player-button-color":"".concat(w.button_color)}:{}),w.button_text_color?{"--presto-player-button-text":"".concat(w.button_text_color)}:{}),slot:"player-end",headline:null==w?void 0:w.headline,"bottom-text":null==w?void 0:w.bottom_text,"button-link":null==w?void 0:w.button_link,"allow-skip":100!==(null==w?void 0:w.percentage)&&(null==w?void 0:w.show_skip),borderRadius:null==w?void 0:w.border_radius,"allow-rewatch":100===(null==w?void 0:w.percentage)&&(null==w?void 0:w.show_rewatch),"skip-text":Object(o.__)("Skip","presto-player"),"show-button":null==w?void 0:w.show_button,"button-text":null==w?void 0:w.button_text,i18n:window.prestoPlayer.i18n,type:"audio"})};return React.createElement(p.Disabled,{isDisabled:v,className:"disable-player"},React.createElement("div",{className:"presto-player__wrapper"},React.createElement(F.a,{src:c||"http://something.mp3",classes:"\n ".concat("cta"===a&&!(null==w||!w.enabled)&&"cta-active"," \n ").concat("email"===a&&!(null==j||!j.enabled)&&"email-active"),preset:r,branding:n,i18n:null===(t=prestoPlayerAdmin)||void 0===t?void 0:t.i18n,preload:d,attributes:{chapters:[],poster:i,title:b},type:"audio",currentTime:s?Object(B.e)(s):"",overlays:m,key:O,adminPreview:(null==_?void 0:_[a])||""})))},H=wp.i18n.__,Y=wp.components,G=Y.ToggleControl,q=Y.BaseControl,Z=(Y.HorizontalRule,Y.__experimentalAlignmentMatrixControl,Y.SelectControl),K=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(q,null,React.createElement("h3",null,H("Behavior","presto-player"))),React.createElement(q,null,React.createElement(G,{label:H("Save Play Position","presto-player"),help:H("Saves the user's play position so when they come back to the page they can continue the audio from where they left off.","presto-player"),onChange:function(e){r({save_player_position:e})},checked:t.save_player_position})),React.createElement(q,null,React.createElement(G,{label:H("Focus Mode","presto-player"),help:H("Play only when tab is visible and audio is in viewport.","presto-player"),onChange:function(e){r({play_video_viewport:e})},checked:t.play_video_viewport})),React.createElement(q,null,React.createElement(G,{label:H("Sticky On Scroll","presto-player"),help:H("Stick audios to the side of the screen when the page is scrolled and the audio is playing.","presto-player"),onChange:function(e){r({sticky_scroll:e})},checked:t.sticky_scroll})),React.createElement(q,null,React.createElement(Z,{label:H("On Audio End","presto-player"),value:t.on_video_end,options:[{value:"select",label:H("Select","presto-player")},{value:"loop",label:H("Loop","presto-player")},{value:"go-to-start",label:H("Go to start","presto-player")}],onChange:function(e){r({on_video_end:e})}})))},Q=wp.i18n.__,X=wp.components,$=X.ToggleControl,J=X.BaseControl,ee=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(J,null,React.createElement("h3",null,Q("Controls","presto-player"))),React.createElement(J,{className:"presto-player__control--large-play"},React.createElement($,{label:Q("Large Play Button","presto-player"),help:Q("Adds a large play button over the top of the player.","presto-player"),onChange:function(e){r({"play-large":e})},checked:t["play-large"]})),React.createElement(J,{className:"presto-player__control--rewind"},React.createElement($,{label:Q("Rewind","presto-player"),help:Q("Adds a 10 second rewind button to the player.","presto-player"),onChange:function(e){r({rewind:e})},checked:t.rewind})),React.createElement(J,{className:"presto-player__control--play"},React.createElement($,{label:Q("Small Play Button","presto-player"),help:Q("Adds a small play button to the bottom of the player.","presto-player"),onChange:function(e){r({play:e})},checked:t.play})),React.createElement(J,{className:"presto-player__control--fast-forward"},React.createElement($,{label:Q("Fast Forward","presto-player"),help:Q("Adds a 10 second rewind button to the player.","presto-player"),onChange:function(e){r({"fast-forward":e})},checked:t["fast-forward"]})),React.createElement(J,{className:"presto-player__control--progress"},React.createElement($,{label:Q("Progress Bar","presto-player"),help:Q("Shows a seekable progress bar.","presto-player"),onChange:function(e){r({progress:e})},checked:t.progress})),React.createElement(J,{className:"presto-player__control--current-time"},React.createElement($,{label:Q("Current Time","presto-player"),help:Q("Shows the audio timestamp.","presto-player"),onChange:function(e){r({"current-time":e})},checked:t["current-time"]})),React.createElement(J,{className:"presto-player__control--volume"},React.createElement($,{label:Q("Volume","presto-player"),help:Q("Shows a volume bar.","presto-player"),onChange:function(e){r({volume:e,mute:e})},checked:t.volume})),React.createElement(J,{className:"presto-player__control--speed"},React.createElement($,{label:Q("Speed","presto-player"),help:Q("Shows playback speed controls.","presto-player"),onChange:function(e){r({speed:e})},checked:t.speed})))},te=r(12),re=function(e){var t=e.state,r=e.updateState,n=e.className;return React.createElement("div",{className:n},React.createElement(p.BaseControl,null,React.createElement("h3",null,Object(o.__)("Style","presto-player"))),React.createElement(p.BaseControl,null,React.createElement(p.RangeControl,{label:Object(o.__)("Round Corners","presto-player"),help:Object(o.__)("Player border radius size.","presto-player"),value:(null==t?void 0:t.border_radius)||0,onChange:function(e){return r({border_radius:e})},min:0,max:25})),React.createElement(p.BaseControl,null,React.createElement(p.Flex,null,React.createElement(p.BaseControl.VisualLabel,null,React.createElement("p",null,Object(o.__)("Background Color","presto-player"))),React.createElement(te.a,{color:(null==t?void 0:t.background_color)||"#000000",setColor:function(e){r({background_color:e.hex})}}))),React.createElement(p.BaseControl,null,React.createElement(p.Flex,null,React.createElement(p.BaseControl.VisualLabel,null,React.createElement("p",null,Object(o.__)("Control Color","presto-player"))),React.createElement(te.a,{color:(null==t?void 0:t.control_color)||"#000000",setColor:function(e){r({control_color:e.hex})}}))))},ne=r(42),ae=r(34),oe=r(40);function le(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ce(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?le(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):le(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var ie=wp.i18n.__,se=wp.components,pe=se.TextControl,ue=se.BaseControl,de=se.Icon,be=se.Notice,me=se.Button,ye=se.Flex,ve=se.FlexItem,fe=se.SelectControl,he=se.FlexBlock,Oe=se.Modal,ge=wp.element,je=ge.useState,we=ge.useEffect,_e=wp.data,Ee=_e.useSelect,Re=_e.dispatch;var ke=function(e){var t=e.type,r=void 0===t?"new":t,n=e.closeModal,a=e.addPreset,o=e.onSave,c=e.updatePreset,i=e.name,s=void 0===i?"":i,p=e.attributes,u=e.preset,d=void 0===u?{"play-large":!0,rewind:!0,play:!0,"fast-forward":!0,progress:!0,"current-time":!0,mute:!0,volume:!0,speed:!1,pip:!1,save_player_position:!1,reset_on_end:!1,sticky_scroll:!1,hide_logo:!1,border_radius:0,skin:"default",background_color:"",control_color:"",cta:{},email_collection:{},action_bar:{}}:u,b=je(!1),m=Object(l.a)(b,2),y=m[0],v=m[1],f=je(""),h=Object(l.a)(f,2),O=h[0],g=h[1],j=je(""),w=Object(l.a)(j,2),_=w[0],E=w[1],R=je(s),k=Object(l.a)(R,2),P=k[0],C=k[1],x=je(d),T=Object(l.a)(x,2),I=T[0],F=T[1],V=Ee((function(e){return e("presto-player/player").branding()})),U=je(""),H=Object(l.a)(U,2),Y=H[0],G=H[1],q={message:ie("The preset could not be saved. Please reload the page and try again.","presto-player")},Z=Ee((function(e){return e("presto-player/player").youtube()}));we((function(){G(Z.channel_id)}),[null==Z?void 0:Z.channel_id]);var Q=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};F(ce(ce({},I),e))},X=function(){var e=Object(N.a)(D.a.mark((function e(){var t,r,a,l;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return v(!0),e.prev=1,t=ce(ce({},I),{name:P}),e.next=5,wp.apiFetch({method:"POST",url:wp.url.addQueryArgs("".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"audio-preset/").concat(d.id),{_method:"PUT"}),data:t});case 5:if(r=e.sent){e.next=8;break}throw q;case 8:c(r),n(),o&&o(r),Object(B.d)({message:ie("Preset updated!","presto-player")}),e.next=17;break;case 14:e.prev=14,e.t0=e.catch(1),g(null!==e.t0&&void 0!==e.t0&&e.t0.message?e.t0.message:q);case 17:return e.prev=17,v(!1),e.finish(17);case 20:return Re("presto-player/player").updateYoutube({channel_id:Y}),a=ce(ce({},Z),{channel_id:Y}),e.prev=22,e.next=25,wp.apiFetch({path:"wp/v2/settings",method:"POST",data:{presto_player_youtube:a}});case 25:null!=(l=e.sent)&&l.presto_player_youtube&&(Re("presto-player/player").setYoutube(null==l?void 0:l.presto_player_youtube),onClose()),e.next=32;break;case 29:e.prev=29,e.t1=e.catch(22),console.log(e.t1);case 32:case"end":return e.stop()}}),e,null,[[1,14,17,20],[22,29]])})));return function(){return e.apply(this,arguments)}}(),$=function(){var e=Object(N.a)(D.a.mark((function e(){var t;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return v(!0),e.prev=1,e.next=4,wp.apiFetch({method:"POST",url:prestoPlayer.root+prestoPlayer.prestoVersionString+"audio-preset",data:ce(ce({},{name:P}),I)});case 4:if(t=e.sent){e.next=7;break}throw q;case 7:a(t),n(),o&&o(t),Object(B.d)({message:ie("Preset created!","presto-player")}),e.next=16;break;case 13:e.prev=13,e.t0=e.catch(1),g(null!==e.t0&&void 0!==e.t0&&e.t0.message?e.t0.message:q);case 16:return e.prev=16,v(!1),e.finish(16);case 19:case"end":return e.stop()}}),e,null,[[1,13,16,19]])})));return function(){return e.apply(this,arguments)}}(),J=[{name:"controls",title:ie("Controls","presto-player"),icon:Object(L.b)(de,{icon:"admin-settings"}),component:Object(L.b)(ee,{updateState:Q,state:I})},{name:"behavior",title:ie("Behavior","presto-player"),icon:Object(L.b)(de,{icon:"admin-generic"}),component:Object(L.b)(K,{updateState:Q,state:I})},{name:"style",title:ie("Style","presto-player"),icon:Object(L.b)(de,{icon:"admin-customizer"}),component:Object(L.b)(re,{updateState:Q,state:I})},{name:"email",title:ie("Email Capture","presto-player"),icon:Object(L.b)(de,{icon:"email"}),component:Object(L.b)(oe.a,{updateState:Q,state:I})},{name:"cta",title:ie("Call To Action","presto-player"),icon:Object(L.b)(de,{icon:"megaphone"}),component:Object(L.b)(ae.a,{updateState:Q,state:I})},{name:"action_bar",title:ie("Action Bar","presto-player"),icon:Object(L.b)(de,{icon:"cover-image"}),component:Object(L.b)(ne.a,{updateState:Q,state:I,value:Y,setValue:G})}];return Object(L.b)(Oe,{title:ie("edit"==r?"Edit A Audio Preset":"Create A New Audio Preset","presto-player"),onRequestClose:n,className:"presto-player__modal-presets",overlayClassName:"presto-player__modal-presets-overlay"},Object(L.b)("div",{className:"presto-player__preset-options","data-cy":"preset-modal"},Object(L.b)(pe,{value:P,hideLabelFromVision:!0,label:ie("Preset Name","presto-player"),onChange:function(e){return C(e)},placeholder:ie("Enter a preset name...","presto-player"),className:"presto-player__modal--style-name",autoFocus:!0}),Object(L.b)(ye,{align:"stretch",className:"presto-player__style-preview-area"},Object(L.b)(ve,{className:"presto-player__style-sidebar"},Object(L.b)("div",null,Object(L.b)(A.a,{items:J,title:ie("Customize","presto-player"),onSelect:E},(function(e){return e.component})))),Object(L.b)(he,{className:"presto-player__style-preview-panel"},Object(L.b)("div",{style:{position:"absolute",top:0,left:0,padding:"20px"}},Object(L.b)(fe,{label:ie("Skin","presto-player"),labelPosition:"side",value:null==I?void 0:I.skin,hideLabelFromVision:!0,options:[{label:ie("Basic","presto-player"),value:"default"},{label:ie("Stacked","presto-player"),value:"stacked"}],onChange:function(e){Q({skin:e})}})),Object(L.b)(W,{poster:p.poster,src:p.src,state:I,branding:V,menu:_,mediaTitle:p.title}))),Object(L.b)("br",null),O&&Object(L.b)(ue,null,Object(L.b)(be,{className:"presto-player__modal--error-notice",status:"error",isDismissible:!1,style:{margin:0}},O.replace(/(<([^>]+)>)/gi,""))),Object(L.b)("div",{css:Object(L.a)(M||(M=Object(S.a)(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n "])))},Object(L.b)("div",{css:Object(L.a)(z||(z=Object(S.a)(["\n opacity: 0.5;\n font-size: 12px;\n "])))},"Preset ID: ",d.id),Object(L.b)("div",null,Object(L.b)(me,{isTertiary:!0,onClick:n,style:{margin:"0 6px"}},ie("Cancel","presto-player")),Object(L.b)(me,{isPrimary:!0,isBusy:y,disabled:y,onClick:function(){if(P)return"edit"===r?X():$();g(ie("You must enter a name for the preset.","presto-player"))},"data-cy":"submit-preset"},ie("edit"==r?"Update Preset":"Create Preset","presto-player"))))))},Pe=wp.i18n.__,Ce=wp.components,xe=Ce.Icon,Se=Ce.Spinner,Ne=Ce.Modal,Te=Ce.Button,De=Ce.ButtonGroup,Be=wp.element.useState,Ae=function(e){var t,r,n=e.preset,a=e.index,o=e.isActive,c=e.remove,i=e.setPreset,s=e.onEdit,p=Be(!1),u=Object(l.a)(p,2),d=u[0],b=u[1],m=Be(!1),y=Object(l.a)(m,2),v=y[0],f=y[1],h=function(){return f(!1)},O=function(){var e=Object(N.a)(D.a.mark((function e(){return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.id){e.next=3;break}return c(n),e.abrupt("return");case 3:return e.prev=3,b(!0),e.next=7,wp.apiFetch({method:"POST",url:wp.url.addQueryArgs("".concat(prestoPlayer.root).concat(prestoPlayer.prestoVersionString,"audio-preset/").concat(n.id),{_method:"DELETE"})});case 7:e.sent&&(c(n),wp.data.dispatch("core/notices").createNotice("success",Pe("Preset trashed.","presto-player"),{type:"snackbar",isDismissible:!0})),e.next=15;break;case 11:e.prev=11,e.t0=e.catch(3),console.error(e.t0),null!==e.t0&&void 0!==e.t0&&e.t0.message&&wp.data.dispatch("core/notices").createNotice("error",e.t0.message,{type:"snackbar",isDismissible:!0});case 15:return e.prev=15,f(!1),b(!1),e.finish(15);case 19:case"end":return e.stop()}}),e,null,[[3,11,15,19]])})));return function(){return e.apply(this,arguments)}}();return d?React.createElement("div",{className:"block-editor-block-styles__item",role:"button",tabIndex:a,"aria-label":"Fill",style:{color:o?"var(--wp-admin-theme-color)":"inherit"}},React.createElement("div",{className:"block-editor-block-styles__item-preview",style:{border:o?"2px solid var(--wp-admin-theme-color)":"2px solid #e3e3e3",margin:0,display:"flex","align-items":"center","justify-content":"center"}},React.createElement(Se,null))):React.createElement("div",{className:"block-editor-block-styles__item presto-preset-".concat(n.slug),onClick:function(){i(n)},role:"button",tabIndex:a,"aria-label":"Fill",style:{color:o?"var(--wp-admin-theme-color)":"inherit"}},React.createElement("div",{className:"block-editor-block-styles__item-preview",style:{border:o?"2px solid var(--wp-admin-theme-color)":"2px solid #e3e3e3",margin:0}},React.createElement("div",{style:{textAlign:"center",width:"100%",color:o?"var(--wp-admin-theme-color)":"inherit",opacity:o?1:.75}},null!=n&&n.icon?React.createElement(xe,{icon:null==n?void 0:n.icon,style:{fontSize:"30px",width:"30px",height:"30px"}}):React.createElement("h1",{style:{opacity:.75}},(null==n||null===(t=n.name)||void 0===t||null===(r=t.charAt(0))||void 0===r?void 0:r.toUpperCase())||"Untitled"))),React.createElement("div",{className:"block-editor-block-styles__item-label",style:{fontWeight:"bold",textTransform:"capitalize"}},(null==n?void 0:n.name)||"Untitled"),!(null!=n&&n.is_locked)&&React.createElement("div",{className:"block-editor-block-styles__item-edit"},React.createElement("div",{className:"block-editor-block-styles__item-edit-icon",onClick:s},React.createElement(xe,{icon:"edit"})),React.createElement("div",{className:"block-editor-block-styles__item-edit-icon",onClick:function(){return f(!0)}},React.createElement(xe,{icon:"trash"}))),v&&React.createElement(Ne,{title:Pe("Trash Preset?","presto-player"),onRequestClose:h,style:{maxWidth:"250px"}},React.createElement("p",null,React.createElement("strong",null,Pe("Warning!","presto-player")," "),Pe("Any audios assigned to this preset will automatically use the default preset.","presto-player")),React.createElement(De,null,React.createElement(Te,{isDestructive:!0,onClick:O,style:{margin:"0 4px"}},Pe("Trash","presto-player")),React.createElement(Te,{isTertiary:!0,onClick:h,style:{margin:"0 4px",boxShadow:"none"}},Pe("Cancel","presto-player")))))},Le=wp.i18n.__,Ie=wp.components,Fe=Ie.withNotices,Ve=Ie.BaseControl,Ue=Ie.Spinner,Me=Ie.Button,ze=wp.element,We=ze.useState,He=(ze.useEffect,wp.data),Ye=He.useSelect,Ge=He.dispatch;var qe=Fe((function(e){var t,r=e.attributes,n=e.setAttributes,a=We(!1),o=Object(l.a)(a,2),c=o[0],i=o[1],s=function(){return i(!1)},p=We(null),u=Object(l.a)(p,2),d=u[0],b=u[1],m=We(null),y=Object(l.a)(m,2),v=y[0],h=y[1],O=Ye((function(e){return{presets:e("presto-player/player").getAudioPresets(),loading:e("presto-player/player").isResolving("getAudioPresets")}})),g=O.presets,j=O.loading,w=function(e){Ge("presto-player/player").addAudioPreset(e)},_=function(e){Ge("presto-player/player").removeAudioPreset(e)},E=function(e){n({preset:e.id})};return j?React.createElement("div",{className:"presto-settings__loading"},React.createElement(Ue,null)):React.createElement(React.Fragment,null,g.length?React.createElement("p",null,Le("Select a audio configuration preset, or add your own.","presto-player")):"",React.createElement(Ve,null,React.createElement("div",{className:"block-editor-block-styles"},(g||[]).length?g.map((function(e,t){return React.createElement(Ae,{setPreset:E,index:t,isActive:(null==r?void 0:r.preset)===e.id,preset:e,key:e.id,onEdit:function(){h(e.name),b(e),i("edit")},remove:_})})):Le("No style presets. You can create a new style by clicking 'Add New Style'.","presto-plugin"))),React.createElement(Ve,null,React.createElement(Me,{isPrimary:!0,"data-cy":"add-new-preset",onClick:function(){var e;null!==(e=prestoPlayer)&&void 0!==e&&e.isPremium?i("new"):Ge("presto-player/player").setProModal(!0)}},Le("Add New Preset","presto-player")),!(null!==(t=prestoPlayer)&&void 0!==t&&t.isPremium)&&React.createElement(f.a,null)),"new"==c&&React.createElement(ke,{closeModal:s,addPreset:w,type:"new",onSave:E,attributes:r}),"edit"==c&&React.createElement(ke,{closeModal:s,addPreset:w,updatePreset:function(e){Ge("presto-player/player").updateAudioPreset(e)},type:"edit",preset:d,name:v,attributes:r}))})),Ze=["image"];var Ke=function e(t){var r,n,a=t.attributes,l=t.setAttributes,c=Object(C.useInstanceId)(e),i="audio-block__poster-image-description-".concat(c),s=a.autoplay,u=a.poster,d=a.preload,m=a.title;return React.createElement(React.Fragment,null,React.createElement(p.PanelBody,{title:React.createElement(React.Fragment,null,Object(o.__)("Title","presto-player")," "),initialOpen:!0},React.createElement(p.FlexBlock,null,React.createElement(p.TextControl,{className:"presto-player__caption--title",placeholder:Object(o.__)("Title","presto-player"),value:m||"",onChange:function(e){return l({title:e})},autoComplete:"off"}))),React.createElement(p.PanelBody,{title:React.createElement(React.Fragment,null,Object(o.__)("Chapters","presto-player")," ",!(null!==(r=prestoPlayer)&&void 0!==r&&r.isPremium)&&React.createElement(f.a,null)),initialOpen:null===(n=prestoPlayer)||void 0===n?void 0:n.isPremium},React.createElement(x.a,{setAttributes:l,attributes:a})),React.createElement(p.PanelBody,{title:React.createElement(React.Fragment,null,Object(o.__)("Audio Settings","presto-player")," ")},React.createElement(p.ToggleControl,{label:React.createElement(React.Fragment,null,Object(o.__)("Autoplay","presto-player")," "),checked:s,onChange:function(e){l({autoplay:e})}}),React.createElement(p.PanelRow,null,React.createElement(p.SelectControl,{label:React.createElement(p.Flex,null,React.createElement("div",null,Object(o.__)("Performance Preference","presto-player")),React.createElement("a",{href:"https://prestoplayer.com/docs/performance-preferences-explained",target:"_blank",style:{textDecoration:"none"}},React.createElement(p.Icon,{icon:"editor-help"}))),className:"presto-setting__preload",value:d,onChange:function(e){return l({preload:e})},options:[{value:"auto",label:Object(o.__)("Audio Playback Speed","presto-player")},{value:"metadata",label:Object(o.__)("Page Load Speed","presto-player")},{value:"none",label:Object(o.__)("Page Load Speed (Extreme)","presto-player")}]})),React.createElement(b.MediaUploadCheck,null,React.createElement(p.BaseControl,{className:"editor-video-poster-control"},React.createElement(p.BaseControl.VisualLabel,null,React.createElement("p",null,Object(o.__)("Poster image","presto-player"))),React.createElement(b.MediaUpload,{title:Object(o.__)("Select poster image","presto-player"),onSelect:function(e){l({poster:e.url})},allowedTypes:Ze,render:function(e){var t=e.open;return React.createElement(p.Button,{className:"presto-setting__poster",isPrimary:!0,onClick:t,"aria-describedby":i},u?Object(o.__)("Replace","presto-player"):Object(o.__)("Select","presto-player"))}}),React.createElement("p",{id:i,hidden:!0},u?sprintf(Object(o.__)("The current poster image url is %s","presto-player"),u):Object(o.__)("There is no poster image currently selected","presto-player")),!!u&&React.createElement(p.Button,{onClick:function(){l({poster:""})},className:"presto-setting__remove-poster",isTertiary:!0},Object(o.__)("Remove","presto-player"))))),React.createElement(p.PanelBody,{title:Object(o.__)("Audio Preset","presto-player")},React.createElement(qe,{setAttributes:l,attributes:a})),React.createElement(p.PanelBody,{title:React.createElement(React.Fragment,null,Object(o.__)("Global Player Branding","presto-player")),initialOpen:!1},React.createElement(P.a,{setAttributes:l,attributes:a,type:"audio"})))},Qe=r(35);function Xe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function $e(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?Xe(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xe(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var Je=wp.data.withSelect;function et(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function tt(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?et(Object(r),!0).forEach((function(t){Object(a.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):et(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var rt,nt,at=(0,wp.compose.compose)([Je((function(e){return{branding:e("presto-player/player").branding(),loading:e("presto-player/player").isResolving("getAudioPresets"),presets:e("presto-player/player").getAudioPresets(),defaultPreset:e("presto-player/player").getDefaultAudioPreset()}})),Object(C.createHigherOrderComponent)((function(e){return function(t){var r=t.presets,n=t.attributes,a=t.setAttributes,c=t.defaultPreset,i=t.isSelected,s=t.branding,p=Object(u.useState)({}),b=Object(l.a)(p,2),m=b[0],y=b[1],v=Object(u.useState)(1),f=Object(l.a)(v,2),h=f[0],O=f[1],g=n.poster,j=n.chapters;Object(u.useEffect)((function(){i&&null!=n&&n.id&&Object(d.dispatch)("core/edit-post").openGeneralSidebar("edit-post/block")}),[i]),Object(u.useEffect)((function(){i&&null!=n&&n.selectionOverrideClientId&&Object(d.dispatch)("core/block-editor").selectBlock(null==n?void 0:n.selectionOverrideClientId)}),[i]),Object(u.useEffect)((function(){if(r&&r.length){var e=r.find((function(e){return e.id===(null==n?void 0:n.preset)}));e?y(e):(y(c),a({preset:null==c?void 0:c.id}))}}),[r,null==n?void 0:n.preset]),Object(u.useEffect)((function(){w()}),[g,m,j,s.logo]);var w=function(){O(h+1)},E=Object(B.f)(j);Object(u.useEffect)((function(){var e=null==j?void 0:j.map((function(e){return e.time})),t=null==E?void 0:E.map((function(e){return e.time}));_.difference(e,t).length&&w()}),[j]);var R=function(){var e=Object(N.a)(D.a.mark((function e(t){var r,n,o,l,c,i,s;return D.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.src,n=t.external_id,o=t.attachment_id,l=t.type,c=t.title,r||n||o){e.next=3;break}return e.abrupt("return");case 3:return e.next=5,Object(Qe.a)({method:"POST",path:"/presto-player/v1/videos",data:$e($e({attachment_id:o,post_id:wp.data.select("core/editor").getCurrentPostId(),external_id:n},c?{title:c}:{}),{},{src:r,type:l})});case 5:i=e.sent,s=i.id,a({id:s});case 8:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}();return null!=n&&n.preset||a({preset:null==c?void 0:c.id}),React.createElement(e,Object.assign({},t,{lockSave:function(){return Object(d.dispatch)("core/editor").lockPostSaving("presto-player")},unlockSave:function(){return Object(d.dispatch)("core/editor").unlockPostSaving("presto-player")},createVideo:R,onUpdate:w,onRemoveSrc:function(){confirm(Object(o.__)("Remove this","presto-player"))&&a({src:"",id:void 0})},presetData:m,setPresetData:y,renderKey:h}))}}),"withPlayerEdit")])(Object(p.withNotices)((function(e){var t=e.attributes,r=e.setAttributes,n=e.branding,a=e.presetData,l=e.renderKey,c=e.defaultPreset,i=e.lockSave,s=e.unlockSave,u=e.loading,d=e.createVideo,b=e.onRemoveSrc,m=t.poster,y=t.src,v=t.id;return y?u||!v?React.createElement(p.Placeholder,{className:"presto-player__placeholder is-loading"},React.createElement(p.Spinner,null)):React.createElement(React.Fragment,null,React.createElement(k.BlockControls,null,React.createElement(p.Toolbar,null,React.createElement(p.Button,{onClick:function(){return b()}},Object(o.__)("Replace","presto-player")))),React.createElement(k.InspectorControls,null,React.createElement(Ke,{attributes:t,setAttributes:r})),React.createElement("figure",null,React.createElement(p.Disabled,null,React.createElement(F.a,{poster:m,src:y,id:v,type:"audio",attributes:t,setAttributes:r,preset:a,branding:n,key:l})))):React.createElement(React.Fragment,null,React.createElement(R,{attributes:t,setAttributes:r,onSelectURL:function(e){r(tt(tt({},t),{},{src:e,title:e,preset:null==c?void 0:c.id})),i(),d({src:e,type:"link"}).catch((function(e){r({src:""}),showNotice(e)})).finally(s)},onSelect:function(e){e&&e.url?e.title?(r({src:e.url,preset:null==c?void 0:c.id,title:e.title,attachment_id:e.id}),i(),d({src:e.url,type:"attachment",attachment_id:e.id}).catch((function(e){r({src:""}),showNotice(e)})).finally(s)):r({src:e.url,title:e.url,preset:null==c?void 0:c.id}):r({src:void 0,id:void 0})}}))}))),ot="presto-player/audio",lt={category:"presto",attributes:(rt={src:{type:"string"},autoplay:{type:Boolean,default:!1},poster:{type:"string"},chapters:{type:"array",default:[]},preload:{type:"string"},title:{type:"string"},tracks:{type:"array",items:{type:"object"},default:[]},preset:{type:Number},id:{type:Number},attachment_id:{type:Number}},Object(a.a)(rt,"src",{type:String}),Object(a.a)(rt,"visibility",{type:String,default:"public"}),rt),title:Object(o.__)("Presto Audio","presto-player"),description:Object(o.__)("A audio player wrapper.","presto-player"),variations:[{name:"public",isDefault:!0,title:Object(o.__)("Presto Audio","presto-player"),description:Object(o.__)("Presto self-hosted audio block.","presto-player"),attributes:{visibility:"public"}}].concat(Object(n.a)(null!==(nt=prestoPlayer)&&void 0!==nt&&nt.isPremium?[{name:"private",title:Object(o.__)("Presto Private Audio","presto-player"),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"presto-block-icon"},React.createElement("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),React.createElement("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"})),description:Object(o.__)("Private self-hosted audio block.","presto-player"),attributes:{visibility:"private"}}]:[])),icon:React.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",className:"presto-block-icon"},React.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M9 19V6l12-3v13M9 19c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zm12-3c0 1.105-1.343 2-3 2s-3-.895-3-2 1.343-2 3-2 3 .895 3 2zM9 10l12-3"})),edit:at}},function(e,t,r){"use strict";r.r(t);var n={};r.r(n),r.d(n,"getPresets",(function(){return v})),r.d(n,"getAudioPresets",(function(){return f})),r.d(n,"getPreset",(function(){return h})),r.d(n,"getReusableVideos",(function(){return O})),r.d(n,"getReusableVideo",(function(){return g})),r.d(n,"getDefaultPreset",(function(){return j})),r.d(n,"getDefaultAudioPreset",(function(){return w})),r.d(n,"presetsLoading",(function(){return _})),r.d(n,"branding",(function(){return E})),r.d(n,"playerCSS",(function(){return R})),r.d(n,"youtube",(function(){return k})),r.d(n,"proModal",(function(){return P}));var a={};r.r(a),r.d(a,"setPresetLoading",(function(){return x})),r.d(a,"setVideosLoading",(function(){return S})),r.d(a,"setProModal",(function(){return N})),r.d(a,"setVideos",(function(){return T})),r.d(a,"updateVideos",(function(){return D})),r.d(a,"appendVideos",(function(){return B})),r.d(a,"addVideo",(function(){return A})),r.d(a,"setPresets",(function(){return L})),r.d(a,"addPreset",(function(){return I})),r.d(a,"updatePreset",(function(){return F})),r.d(a,"removePreset",(function(){return V})),r.d(a,"setAudioPresets",(function(){return U})),r.d(a,"addAudioPreset",(function(){return M})),r.d(a,"updateAudioPreset",(function(){return z})),r.d(a,"removeAudioPreset",(function(){return W})),r.d(a,"setBranding",(function(){return H})),r.d(a,"updateBranding",(function(){return Y})),r.d(a,"saveOptions",(function(){return G})),r.d(a,"fetchOptions",(function(){return q})),r.d(a,"fetchFromAPI",(function(){return Z})),r.d(a,"fetchFromWPAPI",(function(){return K})),r.d(a,"setYoutube",(function(){return Q})),r.d(a,"updateYoutube",(function(){return X})),r.d(a,"setPresetSettings",(function(){return $})),r.d(a,"setPresetAudioSettings",(function(){return J}));var o=r(5),l=r(8);function c(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?c(Object(r),!0).forEach((function(t){Object(o.a)(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):c(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var s=wp.data,p=s.combineReducers,u=s.dispatch,d=wp.apiFetch,b=lodash.pick,m=function(e,t){return e.find((function(e){return e.id===t.id}))?e:[].concat(Object(l.a)(e),[t])},y=p({presetReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_PRESET":return t.value;case"ADD_PRESET":return[].concat(Object(l.a)(e),[t.value]);case"UPDATE_PRESET":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:i(i({},e),t.value)}));case"REMOVE_PRESET":return e.filter((function(e){return e!==t.value}))}return e},audioPresetReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_AUDIO_PRESET":case"SET_AUDIO_PRESET":return t.value;case"ADD_AUDIO_PRESET":return[].concat(Object(l.a)(e),[t.value]);case"UPDATE_AUDIO_PRESET":return e.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:i(i({},e),t.value)}));case"REMOVE_AUDIO_PRESET":return e.filter((function(e){return e!==t.value}))}return e},presetLoadingReducer:function(){var e=arguments.length>1?arguments[1]:void 0;switch(e.type){case"SET_PRESET_LOADING":return e.value}},videosLoadingReducer:function(){var e=arguments.length>1?arguments[1]:void 0;switch(e.type){case"SET_VIDEOS_LOADING":return e.value}},videosReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{total:0,total_pages:0,videos:[],hasResolved:!1,isError:!1},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_VIDEOS":return t.value;case"UPDATE_VIDEOS":return i(i({},e),t.value);case"APPEND_VIDEOS":var r=e;return(t.value||[]).forEach((function(e){r.videos=m(r.videos,e)})),r;case"ADD_VIDEO":return i(i({},e),{},{videos:m(e.videos,t.value)});case"UPDATE_VIDEO":return i(i({},e),{},{videos:e.videos.map((function(e,r){var n;return e.id!==(null===(n=t.value)||void 0===n?void 0:n.id)?e:i(i({},e),t.value)}))});case"REMOVE_VIDEO":return i(i({},e),{},{videos:e.videos.filter((function(e){return e!==t.value}))})}return e},proModalReducer:function(){var e=arguments.length>1?arguments[1]:void 0;switch(e.type){case"SET_PRO_MODAL":return e.value}},brandingReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_BRANDING":return t.value;case"UPDATE_BRANDING":return i(i({},e),{},Object(o.a)({},t.name,t.value))}return e},youtubeReducer:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;switch(t.type){case"SET_YOUTUBE":return t.value;case"UPDATE_YOUTUBE":return i(i({},e),{},Object(o.a)({},t.name,t.value))}return e},presetSett