/*! * Tiny Templates plugin * * Copyright (c) 2023 Ephox Corporation DBA Tiny Technologies, Inc. * Licensed under the Tiny commercial license. See https://www.tiny.cloud/legal/ * * Version: 8.3.0-112 */ !function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=r=e,(o=String).prototype.isPrototypeOf(n)||r.constructor?.name===o.name)?"string":t;var n,r,o})(t)===e,t=e=>t=>typeof t===e,n=e("string"),r=e("object"),o=e("array"),a=t("boolean"),s=e=>undefined===e;const i=e=>null==e,l=e=>!i(e),c=t("function"),d=t("number"),m=()=>{},u=e=>()=>e,p=e=>e,g=e=>e(),v=u(!1),h=u(!0);class y{tag;value;static singletonNone=new y(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new y(!0,e)}static none(){return y.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?y.some(e(this.value)):y.none()}bind(e){return this.tag?e(this.value):y.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:y.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return l(e)?y.some(e):y.none()}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const f=Array.prototype.slice,w=Array.prototype.indexOf,b=Array.prototype.push,S=(e,t)=>((e,t)=>w.call(e,t))(e,t)>-1,x=(e,t)=>{for(let n=0,r=e.length;n{const n=e.length,r=new Array(n);for(let o=0;o{for(let n=0,r=e.length;n{const n=[];for(let r=0,o=e.length;r((e,t,n)=>{for(let r=0,o=e.length;r{for(let n=0,r=e.length;n(e=>{const t=[];for(let n=0,r=e.length;n{for(let n=0,r=e.length;n{const n=A(e);for(let r=0,o=n.length;rL(e,((e,n)=>({k:n,v:t(e,n)}))),L=(e,t)=>{const n={};return k(e,((e,r)=>{const o=t(e,r);n[o.k]=o.v})),n},I=(e,t)=>{const n=[];return k(e,((e,r)=>{n.push(t(e,r))})),n},M=(e,t)=>T.call(e,t),j=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}},N=e=>{const t=t=>t(e),n=u(e),r=()=>o,o={tag:!0,inner:e,fold:(t,n)=>n(e),isValue:h,isError:v,map:t=>z.value(t(e)),mapError:r,bind:t,exists:t,forall:t,getOr:n,or:r,getOrThunk:n,orThunk:r,getOrDie:n,each:t=>{t(e)},toOptional:()=>y.some(e)};return o},B=e=>{const t=()=>n,n={tag:!1,inner:e,fold:(t,n)=>t(e),isValue:v,isError:h,map:t,mapError:t=>z.error(t(e)),bind:t,exists:v,forall:h,getOr:p,or:p,getOrThunk:g,orThunk:g,getOrDie:(r=String(e),()=>{throw new Error(r)}),each:m,toOptional:y.none};var r;return n},z={value:N,error:B,fromOption:(e,t)=>e.fold((()=>B(t)),N)},V=(e,t)=>e?y.some(t):y.none(),H=(e,t,n=0,r)=>{const o=e.indexOf(t,n);return-1!==o&&(!!s(r)||o+t.length<=r)},U=(F=/^\s+|\s+$/g,e=>e.replace(F,""));var F;const q=(e,t)=>{const{type:n,message:r}=t;e.notificationManager.open({type:n,text:r})},K=e=>{(e=>{switch(e){case"error":return console.error;case"info":return console.info;case"warn":return console.warn;default:return console.log}})(e.type)(e.message)},W=(e,t)=>{const{protect:n,allowList:r=[],blockList:o=[]}=null!=e?e:{};let a;return a=l(n)?n:r.length>0||o.length>0||t,{protect:a,allowList:r,blockList:o}},G=e=>{const{protect:t,allowList:n,blockList:r}=null!=e?e:{};return e=>{const o=e.toLowerCase();return n.length>0?!x(n,(e=>e.toLowerCase()===o)):r.length>0?x(r,(e=>e.toLowerCase()===o)):t}},Q=e=>{const t=G(e);return(e,n)=>{const r=((e,t)=>`${e}:${t}`)(n,e.toLowerCase());return t(r)}},J=(e,t,n,r)=>{const o=Reflect.get(e,"on"),a={protectedEventHandlers:[],cleanupScheduled:!1},s=(e,t)=>{r&&console.log(`[EventsProxy] ${e}`,t||"")},i=t=>{"invalid"===t&&a.protectedEventHandlers.length>0&&(s("Removing event handlers",a.protectedEventHandlers),_(a.protectedEventHandlers,(t=>{e.off(t.name,t.callback)})),a.protectedEventHandlers=[])},l=t.onStatusChange(i);return e.on("remove",l),(r,l,c)=>{s(`Adding event listener: ${r}`,{shouldProtect:n(r)});const d=((e,r)=>{const o=n(e),s=t.getStatus(),i=o&&"invalid"===s?m:r;return o&&a.protectedEventHandlers.push({name:e,callback:i}),i})(r,l);return a.cleanupScheduled||(a.cleanupScheduled=!0,window.setTimeout((()=>{i(t.getStatus()),a.cleanupScheduled=!1}),0)),Reflect.apply(o,e,[r,d,c])}},Y=(e,t,n)=>r=>{const o="invalid"!==t.getStatus()&&l(n)?n(r):m,a=((e,t,n)=>{const r=e=>{"invalid"===e&&n.setEnabled(!1)},o=()=>r(t.getStatus());r(t.getStatus()),e.on("NodeChange",o);const a=t.onStatusChange(r);return()=>{e.off("NodeChange",o),a()}})(e,t,r);return e=>{null==o||o(e),a()}},X=(e,t,n)=>(...r)=>{var o;return"invalid"===e.getStatus()?n:null!==(o=null==t?void 0:t(...r))&&void 0!==o?o:n},Z=(e,t)=>X(e,t,Promise.resolve([])),ee=(e,t)=>X(e,t,[]),te=(e,t)=>X(e,t,!1),ne=(e,t,r,o)=>{const a=t=>{const{command:a,value:s}=t,i=y.from(s).filter(n).map((e=>e.toLowerCase())),l=a.toLowerCase()===o.toLowerCase(),c=i.exists((e=>r.has(e))),d=i.exists((t=>t===e.queryCommandValue(o)));l&&c&&!d&&t.preventDefault()},s=t.onStatusChange((t=>{if("invalid"===t){e.on("BeforeExecCommand",a);const t=()=>{const t=e.queryCommandValue(o);r.has(t.toLowerCase())&&e.execCommand(o,!1,t)};e.initialized?t():e.on("init",t)}}));e.on("remove",(()=>{s(),e.off("BeforeExecCommand",a)}))},re=(e,t,r,o,a,s=!1)=>{const i=new Set,l=new Set,c=(e,t)=>{s&&console.log(`[UiProxy] ${e}`,t||"")};((e,t,n)=>{ne(e,t,n,"ToggleView")})(e,r,i),((e,t,n)=>{ne(e,t,n,"ToggleSidebar")})(e,r,l);const d=(t,n,s,i)=>{const l=a(t,s);return c(`${i}: ${t}`,{spec:n,context:o,shouldProtect:l}),l?{...n,onSetup:Y(e,r,n.onSetup)}:n};return new Proxy(t,{get:(e,t,s)=>{const m=Reflect.get(e,t,s);if(!n(t))return m;switch(t){case"addButton":case"addGroupToolbarButton":case"addToggleButton":case"addMenuButton":case"addSplitButton":return(...n)=>{const[r,o,...a]=n,s=d(r,o,"button",String(t));return Reflect.apply(m,e,[r,s,...a])};case"addMenuItem":case"addToggleMenuItem":case"addNestedMenuItem":return(...n)=>{const[r,o,...a]=n,s=d(r,o,"menuitem",String(t));return Reflect.apply(m,e,[r,s,...a])};case"addAutocompleter":return(...n)=>{const[s,i,...l]=n,d=a(s,"autocompleter");if(c(`${String(t)}: ${s}`,{spec:i,context:o,shouldProtect:d}),d){const t={...i,fetch:Z(r,i.fetch)};return Reflect.apply(m,e,[s,t,...l])}return Reflect.apply(m,e,[s,i,...l])};case"addSidebar":return(...n)=>{const[r,s,...i]=n,d=a(r,"sidebar");if(c(`${String(t)}: ${r}`,{spec:s,context:o,shouldProtect:d}),d){l.add(r.toLowerCase());const t={...s};return Reflect.apply(m,e,[r,t,...i])}return Reflect.apply(m,e,[r,s,...i])};case"addView":return(...n)=>{const[r,s,...l]=n,d=a(r,"view");if(c(`${String(t)}: ${r}`,{spec:s,context:o,shouldProtect:d}),d){i.add(r.toLowerCase());const t={...s};return Reflect.apply(m,e,[r,t,...l])}return Reflect.apply(m,e,[r,s,...l])};case"addContextMenu":return(...n)=>{const[s,i,...l]=n,d=a(s,"contextmenu");if(c(`${String(t)}: ${s}`,{spec:i,context:o,shouldProtect:d}),d){const t={...i,update:ee(r,i.update)};return Reflect.apply(m,e,[s,t,...l])}return Reflect.apply(m,e,[s,i,...l])};case"addContextToolbar":case"addContextForm":return(...n)=>{const[s,i,...l]=n,d=a(s,"contexttoolbar");if(c(`${String(t)}: ${s}`,{spec:i,context:o,shouldProtect:d}),d){const t={...i,predicate:te(r,i.predicate)};return Reflect.apply(m,e,[s,t,...l])}return Reflect.apply(m,e,[s,i,...l])};case"addIcon":case"getAll":case"addContext":return m}}})},oe=new Set(["addCommand","addCommands","addQueryStateHandler","addQueryValueHandler"]),ae=e=>(t,n)=>{e&&console.log(`[EditorProxy] ${t}`,n||"")},se=(e,t)=>{const{statusProvider:n,uiContext:r,protection:o,debug:a=!1}=t,{events:s,commands:i,ui:l}=o;ae(a)("Creating enhanced editor with options:",{hasStatusProvider:!!n,uiContext:r,debug:a,protection:o});const{editorUiProxy:d,editorCommandsProxy:u,editorEventListenerProxy:p}=((e,t,n,r,o,a,s)=>{const i=a.protect?{...e.ui,registry:re(e,e.ui.registry,t,n,Q(a),s)}:e.ui,l=r.protect?((e,t,n,r,o)=>{const a={protectedCommands:[],cleanupScheduled:!1},s=(e,t)=>{o&&console.log(`[CommandsProxy] ${e}`,t||"")},i=(e,t)=>{const o=r(e),s=n.getStatus();return o&&a.protectedCommands.push(e),o&&"invalid"===s?m:t},l=t=>{"invalid"===t&&a.protectedCommands.length>0&&(s("Removing commands",a.protectedCommands),_(a.protectedCommands,(t=>{e.editorCommands.removeCommand(t)})),a.protectedCommands=[])},c=()=>{a.cleanupScheduled||(a.cleanupScheduled=!0,window.setTimeout((()=>{l(n.getStatus()),a.cleanupScheduled=!1}),0))},d=n.onStatusChange(l);return e.on("remove",d),new Proxy(t,{get:(e,n,o)=>{if(s(`Accessing property: ${String(n)}`),"addCommand"===n){const a=Reflect.get(e,n,o);return(e,n,...o)=>{s(`Adding command: ${e}`,{shouldProtect:r(e)});const l=i(e,n);return c(),Reflect.apply(a,t,[e,l,...o])}}if("addCommands"===n){const r=Reflect.get(e,n,o);return(e,n="exec")=>{s(`Adding commands (${n})`,{commandCount:Object.keys(e).length,willApplyEnforcement:"exec"===n});const o="exec"!==n?e:D(e,((e,t)=>i(t,e)));return c(),Reflect.apply(r,t,[o,n])}}return Reflect.get(e,n,o)}})})(e,e.editorCommands,t,G(r),s):e.editorCommands;return{editorUiProxy:i,editorCommandsProxy:l,editorEventListenerProxy:o.protect?J(e,t,G(o),s):e.on.bind(e)}})(e,n,r||"",i,s,l,a),g=((e,t,n,r)=>(o,a,s)=>{const i=String(a);if("on"===a)return ae(r)("on intercepted"),n;if(oe.has(i))return ae(r)(`${i} intercepted`),t[i].bind(t);if("editorCommands"===a)return ae(r)("editorCommands accessed"),t;if("ui"===a)return ae(r)("ui accessed"),e;const l=Reflect.get(o,a,s);return c(l)?l.bind(o):l})(d,u,p,a);return new Proxy(e,{get:g,set:(e,t,n,r)=>Reflect.set(e,t,n,r),has:(e,t)=>Reflect.has(e,t),ownKeys:e=>Reflect.ownKeys(e),getOwnPropertyDescriptor:(e,t)=>Reflect.getOwnPropertyDescriptor(e,t),defineProperty:(e,t,n)=>Reflect.defineProperty(e,t,n),deleteProperty:(e,t)=>Reflect.deleteProperty(e,t),isExtensible:e=>Reflect.isExtensible(e),preventExtensions:e=>Reflect.preventExtensions(e),getPrototypeOf:e=>Reflect.getPrototypeOf(e),setPrototypeOf:(e,t)=>Reflect.setPrototypeOf(e,t)})},ie=e=>parseInt(e,10),le=(e,t)=>{const n=e-t;return 0===n?0:n>0?1:-1},ce=(e,t,n)=>({major:e,minor:t,patch:n}),de=e=>{const t=/([0-9]+)\.([0-9]+)\.([0-9]+)(?:(\-.+)?)/.exec(e);return t?ce(ie(t[1]),ie(t[2]),ie(t[3])):ce(0,0,0)},me=(e,t)=>!!e&&-1===((e,t)=>{const n=le(e.major,t.major);if(0!==n)return n;const r=le(e.minor,t.minor);if(0!==r)return r;const o=le(e.patch,t.patch);return 0!==o?o:0})((e=>de((e=>[e.majorVersion,e.minorVersion].join(".").split(".").slice(0,3).join("."))(e)))(e),de(t)),ue=de("8.3.0"),pe=`${ue.major}.${ue.minor}.0`,ge=`${ue.major+1}.0.0`,ve=(e,t)=>{const{setup:n,protection:r}=t;return(o,a)=>{if(!((e,t)=>me(e,pe)?(console.error(`The "${t}" plugin requires at least version ${pe} of TinyMCE.`),!1):!!me(e,ge)||(console.error(`The "${t}" plugin requires at least version ${pe} of TinyMCE but less than ${ge}.`),!1))(tinymce,e)||((e,t)=>!!(e=>{var t;const n=null===(t=e.options.get("license_key"))||void 0===t?void 0:t.toLowerCase(),r=e.options.get("online_license_key");return i(r)&&"gpl"===n})(e)&&(((e,t)=>{const{console:n,editor:r}=t;l(r)&&(e._skinLoaded?q(e,r):e.on("SkinLoaded",(()=>{q(e,r)}))),l(n)&&K(n)})(e,{console:{type:"error",message:[`The "${t}" plugin requires a valid TinyMCE license key.`,"Read more: https://www.tiny.cloud/docs/tinymce/latest/license-key/"].join(" ")}}),!0))(o,e))return{};const s=(e=>{const{protect:t=!0,events:n,commands:r,ui:o,api:a}=null!=e?e:{};return{protect:t,events:W(n,false),commands:W(r,true),ui:W(o,true),api:W(a,true)}})(r),d=((e="pre-validation")=>{const t=j(e),n=new Set;let r=!1;const{enableLogging:o=!1}={},a=(e,...t)=>{o&&console.log(`[StatusProvider] ${e}`,...t)};return{setStatus:e=>{const r=t.get();if(r===e)return a("Status unchanged:",e),!1;t.set(e),a("Status changed:",r,"->",e);const o={currentStatus:e,previousStatus:r},s=Array.from(n);return _(s,(e=>{e(o.currentStatus,o.previousStatus)})),!0},onStatusChange:e=>(n.add(e),a("Callback registered, total listeners:",n.size),()=>{n.delete(e)&&a("Callback unregistered, remaining listeners:",n.size)}),getStatus:t.get,hasListeners:()=>n.size>0,destroy:()=>{r||(a("Destroying StatusProvider, clearing",n.size,"listeners"),n.clear(),r=!0)}}})(),m=((e,t,n)=>{const r=`commercial-license-${t}`;return e.ui.registry.addContext(r,(()=>"invalid"!==n.getStatus()&&!e.mode.isReadOnly())),e.licenseKeyManager.validate({plugin:t}).then((e=>{n.setStatus(e?"valid":"invalid")}),(e=>{console.error(e),console.error(`An unknown error occurred when trying to validate "${t}" plugin.`),n.setStatus("invalid")})),{ui:{context:r}}})(o,e,d),u=s.protect?se(o,{statusProvider:d,uiContext:m.ui.context,debug:t.debug||!1,protection:s}):o,p=((e,t)=>({pluginCode:e,enforcer:{isInvalid:()=>"invalid"===t.getStatus(),onInvalid:e=>t.onStatusChange(((t,n)=>{"invalid"===t&&e(t,n)}))}}))(e,d);return((e,t,n,r)=>{if(t.protect&&t.api.protect&&l(e)){const a=G(t.api);return(o=e=>"invalid"===n.getStatus()&&a(e),(e,t)=>D(e,((e,n)=>c(e)?(...r)=>{if(o(n.toLowerCase())){const e=`Method "${l(t)?`${t}.`:""}${n}" is not available due to license key restrictions.`,r=new Error(e);throw console.error(e),r}return e(...r)}:e)))(e,r)}var o;return e})(n(u,a,p),s,d,e)}};class he extends Error{constructor(e){super(e),this.name="AdvTemplateError"}}const ye=e=>n(e)&&e.length>0,fe=e=>ye(e),we=e=>M(e,"id")&&fe(e.id),be=e=>M(e,"title")&&ye(e.title),Se=e=>M(e,"content")&&ye(e.content),xe=e=>r(e)&&we(e)&&be(e)&&M(e,"items")&&Re(e.items),Ce=e=>e.locked||!1,_e=(e,t)=>Pe(e.id,t).exists(Ce),Pe=(e,t)=>E(t,(t=>xe(t)&&S(C(t.items,(({id:e})=>e)),e))),Ee=e=>r(e)&&we(e)&&be(e)&&(e=>!M(e,"items")||Re(e.items))(e),Re=e=>o(e)&&O(e,Ee),$e=e=>M(e,"items")&&Ae(e.items),Oe=e=>r(e)&&be(e)&&((e=>Se(e))(e)||$e(e)),Ae=e=>o(e)&&O(e,Oe),Te=(e,t)=>n=>e(n)?z.value(n):z.error(t),ke=Te((e=>r(e)&&(e=>{for(const t in e)if(T.call(e,t))return!1;return!0})(e)),"response should contain empty object"),De=Te((e=>r(e)&&we(e)),"response should contain id"),Le=Te((e=>r(e)&&we(e)&&be(e)&&Se(e)),"response contains invalid template data"),Ie=e=>Re(e)?(e=>{const t=e=>$(e,(e=>xe(e)?[e.id,...t(e.items)]:[e.id])),n=t(e);return n.length===[...new Set(n)].length})(e)?z.value(e):z.error("response contains duplicated ids"):z.error("response contains invalid data"),Me=e=>t=>t.options.get(e),je=e=>{const t=(t,n)=>{var o,a;o=t,a=(e,t)=>(...o)=>((e,t,n)=>{return r(o=n)&&c(o.then)&&c(o.catch)?n.then((n=>t(n).fold((t=>Promise.reject(new he(`${e} ${t}`))),(e=>Promise.resolve(e))))):Promise.reject(new he(`${e} should return a Promise`));var o})(e,n,t(...o)),e.options.register(o,{processor:e=>c(e)?{valid:!0,value:a(o,e)}:{valid:!1,message:"Must be a function returning promise"},default:()=>Promise.reject(new he(`${o} option is not configured`))})};t("advtemplate_create_category",De),t("advtemplate_rename_category",ke),t("advtemplate_move_category_items",ke),t("advtemplate_delete_category",ke),t("advtemplate_create_template",De),t("advtemplate_rename_template",ke),t("advtemplate_update_template",ke),t("advtemplate_move_template",ke),t("advtemplate_get_template",Le),t("advtemplate_delete_template",ke),t("advtemplate_delete_all",ke),t("advtemplate_list",Ie),e.options.register("advtemplate_templates",{processor:Ae})},Ne=Me("advtemplate_create_category"),Be=Me("advtemplate_rename_category"),ze=Me("advtemplate_move_category_items"),Ve=Me("advtemplate_delete_category"),He=Me("advtemplate_create_template"),Ue=Me("advtemplate_rename_template"),Fe=Me("advtemplate_move_template"),qe=Me("advtemplate_get_template"),Ke=Me("advtemplate_delete_template"),We=Me("advtemplate_list"),Ge=Me("advtemplate_templates"),Qe=Me("content_style"),Je=Me("body_class"),Ye=Me("content_css_cors"),Xe=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},Ze=(e,t)=>{const n=(t||document).createElement(e);return Xe(n)},et=Xe,tt=e=>1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType||0===e.childElementCount,nt=()=>rt(0,0),rt=(e,t)=>({major:e,minor:t}),ot={nu:rt,detect:(e,t)=>{const n=String(t).toLowerCase();return 0===e.length?nt():((e,t)=>{const n=((e,t)=>{for(let n=0;nNumber(t.replace(n,"$"+e));return rt(r(1),r(2))})(e,n)},unknown:nt},at=(e,t)=>{const n=String(t).toLowerCase();return E(e,(e=>e.search(n)))},st=/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,it=e=>t=>H(t,e),lt=[{name:"Edge",versionRegexes:[/.*?edge\/ ?([0-9]+)\.([0-9]+)$/],search:e=>H(e,"edge/")&&H(e,"chrome")&&H(e,"safari")&&H(e,"applewebkit")},{name:"Chromium",brand:"Chromium",versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/,st],search:e=>H(e,"chrome")&&!H(e,"chromeframe")},{name:"IE",versionRegexes:[/.*?msie\ ?([0-9]+)\.([0-9]+).*/,/.*?rv:([0-9]+)\.([0-9]+).*/],search:e=>H(e,"msie")||H(e,"trident")},{name:"Opera",versionRegexes:[st,/.*?opera\/([0-9]+)\.([0-9]+).*/],search:it("opera")},{name:"Firefox",versionRegexes:[/.*?firefox\/\ ?([0-9]+)\.([0-9]+).*/],search:it("firefox")},{name:"Safari",versionRegexes:[st,/.*?cpu os ([0-9]+)_([0-9]+).*/],search:e=>(H(e,"safari")||H(e,"mobile/"))&&H(e,"applewebkit")}],ct=[{name:"Windows",search:it("win"),versionRegexes:[/.*?windows\ nt\ ?([0-9]+)\.([0-9]+).*/]},{name:"iOS",search:e=>H(e,"iphone")||H(e,"ipad"),versionRegexes:[/.*?version\/\ ?([0-9]+)\.([0-9]+).*/,/.*cpu os ([0-9]+)_([0-9]+).*/,/.*cpu iphone os ([0-9]+)_([0-9]+).*/]},{name:"Android",search:it("android"),versionRegexes:[/.*?android\ ?([0-9]+)\.([0-9]+).*/]},{name:"macOS",search:it("mac os x"),versionRegexes:[/.*?mac\ os\ x\ ?([0-9]+)_([0-9]+).*/]},{name:"Linux",search:it("linux"),versionRegexes:[]},{name:"Solaris",search:it("sunos"),versionRegexes:[]},{name:"FreeBSD",search:it("freebsd"),versionRegexes:[]},{name:"ChromeOS",search:it("cros"),versionRegexes:[/.*?chrome\/([0-9]+)\.([0-9]+).*/]}],dt={browsers:u(lt),oses:u(ct)},mt=e=>{const t=e.current,n=e.version,r=e=>()=>t===e;return{current:t,version:n,isEdge:r("Edge"),isChromium:r("Chromium"),isIE:r("IE"),isOpera:r("Opera"),isFirefox:r("Firefox"),isSafari:r("Safari")}},ut=()=>mt({current:void 0,version:ot.unknown()}),pt=mt,gt=e=>{const t=e.current,n=e.version,r=e=>()=>t===e;return{current:t,version:n,isWindows:r("Windows"),isiOS:r("iOS"),isAndroid:r("Android"),isMacOS:r("macOS"),isLinux:r("Linux"),isSolaris:r("Solaris"),isFreeBSD:r("FreeBSD"),isChromeOS:r("ChromeOS")}},vt=()=>gt({current:void 0,version:ot.unknown()}),ht=gt,yt=(e,t,n)=>{const r=dt.browsers(),o=dt.oses(),a=t.bind((e=>((e,t)=>((e,t)=>{for(let n=0;n{const n=t.brand.toLowerCase();return E(e,(e=>n===e.brand?.toLowerCase())).map((e=>({current:e.name,version:ot.nu(parseInt(t.version,10),0)})))})))(r,e))).orThunk((()=>((e,t)=>at(e,t).map((e=>{const n=ot.detect(e.versionRegexes,t);return{current:e.name,version:n}})))(r,e))).fold(ut,pt),s=((e,t)=>at(e,t).map((e=>{const n=ot.detect(e.versionRegexes,t);return{current:e.name,version:n}})))(o,e).fold(vt,ht),i=((e,t,n,r)=>{const o=e.isiOS()&&!0===/ipad/i.test(n),a=e.isiOS()&&!o,s=e.isiOS()||e.isAndroid(),i=s||r("(pointer:coarse)"),l=o||!a&&s&&r("(min-device-width:768px)"),c=a||s&&!l,d=t.isSafari()&&e.isiOS()&&!1===/safari/i.test(n),m=!c&&!l&&!d;return{isiPad:u(o),isiPhone:u(a),isTablet:u(l),isPhone:u(c),isTouch:u(i),isAndroid:e.isAndroid,isiOS:e.isiOS,isWebView:u(d),isDesktop:u(m)}})(s,a,e,n);return{browser:a,os:s,deviceType:i}},ft=e=>window.matchMedia(e).matches;let wt=(e=>{let t,n=!1;return(...r)=>(n||(n=!0,t=e.apply(null,r)),t)})((()=>yt(window.navigator.userAgent,y.from(window.navigator.userAgentData),ft)));const bt=()=>wt(),St=()=>{const e=bt().os.isMacOS()||bt().os.isiOS();return`