diff --git a/.nvmrc b/.nvmrc index c946e1df4..12419e9c5 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v20.9.0 \ No newline at end of file +v20.18.1 \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index dc9308ddc..e38cd4cd4 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,15 +1,17 @@ { - // Utilisez IntelliSense pour en savoir plus sur les attributs possibles. - // Pointez pour afficher la description des attributs existants. - // Pour plus d'informations, visitez : https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { - "type": "chrome", + "name": "Debug Main Process", + "type": "node", "request": "launch", - "name": "Launch Chrome against localhost", - "url": "http://localhost:8080", - "webRoot": "${workspaceFolder}" + "cwd": "${workspaceFolder}", + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron", + "windows": { + "runtimeExecutable": "${workspaceFolder}/node_modules/.bin/electron.cmd" + }, + "args": ["."], + "outputCapture": "std" } ] -} \ No newline at end of file +} diff --git a/README.md b/README.md index 27b6d6a62..c84639f96 100644 --- a/README.md +++ b/README.md @@ -28,13 +28,13 @@ The font [Belle Allure](https://www.jeanboyault.fr/belle-allure/) is used with p # Branches -- **main** --> default branch, latest stable version (currently v10), in Electron (offline app). See release page for Linux/Mac/Windows installers. +- **main** --> default branch, latest stable version (currently v11), in Electron (offline app). See release page for Linux/Mac/Windows installers. - **main-node** --> latest stable version without Electron, to use on online servers. - **main-dev** --> fixes and small improvements on top of the current version, in Electron. Used for testing before merging changes to **main**. - **main-dev-node** --> fixes and small improvements on top of the current version, for servers. Used for testing before merging changes to - **main-node**. -- **next** --> code for the next major version (v10.1 or v11), in Electron. Use at your own risks. +- **next** --> code for the next major version (v11), in Electron. Use at your own risks. - **next-node** --> code for the next major version, without Electron. Use at your own risks. # Install do•doc @@ -66,7 +66,7 @@ Default values are: - $preview (String, editable) if set, search for a meta filename in this folder and read it when reading folder (useful for advanced cover of this folder) - $date_created (Date) when the folder was created - $date_modified (Date) when the folder was last edited -- $files (Array) list of all the files in this folder (see Files below) +- $files (Array) list of all the files in this folder (see Files below) (bypass with no_files=true to improve performance where files are not needed) - $status (String, editable) determines whether the folder gets listed - $public (Boolean, editable) if true, return that folder, its files, and its source medias even when request is not auth - $password (String, editable, stored as hash) limit editing to users with password diff --git a/client/.nvmrc b/client/.nvmrc index c946e1df4..12419e9c5 100644 --- a/client/.nvmrc +++ b/client/.nvmrc @@ -1 +1 @@ -v20.9.0 \ No newline at end of file +v20.18.1 \ No newline at end of file diff --git a/client/babel.config.js b/client/babel.config.js index 162a3ea97..f4bf1e942 100644 --- a/client/babel.config.js +++ b/client/babel.config.js @@ -1,3 +1,4 @@ module.exports = { presets: ["@vue/cli-plugin-babel/preset"], + plugins: ["@babel/plugin-transform-private-methods"], }; diff --git a/client/dist/bundle.js b/client/dist/bundle.js deleted file mode 100644 index e0a58c4ce..000000000 --- a/client/dist/bundle.js +++ /dev/null @@ -1,21 +0,0 @@ -(function(){var t={77724:function(t,e,n){"use strict";n.d(e,{A:function(){return c}});var r=function(){var t=this,e=t._self._c;return e("div",{staticClass:"_authorCard",class:{"u-card2":"full"!==t.context},attrs:{"data-context":t.context,"data-isself":t.is_self}},[e("full"!==t.context?"router-link":"span",{tag:"component",staticClass:"_linkTo",attrs:{to:t.author_url},nativeOn:{click:function(e){"full"!==t.context&&t.$emit("navToPage")}}},[e("div",{staticClass:"_topbar"},[e("div",{staticClass:"_cover"},[e("CoverField",{attrs:{context:t.context,cover:t.author.$cover,title:t.$t("pick_portrait"),preview_format:"circle",path:t.author.$path,placeholder:t.author.name.substring(0,2),can_edit:t.can_edit}})],1),"full"===t.context?e("div",{staticClass:"u-spacingBottom"}):t._e(),e("div",{staticClass:"_text"},[e("div",{},[e("TitleField",{attrs:{field_name:"name",content:t.author.name,path:t.author.$path,required:!0,minlength:3,maxlength:40,tag:"full"===t.context?"h2":"h3",can_edit:t.can_edit}}),t.authorIsInstance({field:"$admins",folder_path:t.author.$path})?e("div",{staticClass:"u-instructions"},[e("small",[e("b-icon",{attrs:{icon:"shield-check","aria-label":t.$t("admin")}}),t._v(" "+t._s(t.$t("admin"))+" ")],1)]):t._e()],1),"full"===t.context?e("div",{staticClass:"u-spacingBottom"}):t._e(),t.author.group||t.can_edit?e("div",[e("TagsField",{attrs:{label:"full"===t.context?t.$t("group"):void 0,field_name:"group",tag_type:"accountgroup",content:t.author.group,path:t.author.$path,can_edit:t.can_edit}})],1):t._e(),"full"===t.context?e("div",{staticClass:"u-spacingBottom"}):t._e(),t.can_edit?e("div",{staticClass:"u-spacingBottom"},[e("TitleField",{attrs:{field_name:"email",label:"full"===t.context?t.$t("email"):void 0,content:t.author.email,path:t.author.$path,required:t.$root.app_infos.instance_meta.require_mail_to_signup,input_type:"email",autocomplete:"email",can_edit:t.can_edit}})],1):t._e(),"full"===t.context&&(t.can_edit||t.author.presentation)?e("div",{staticClass:"u-spacingBottom"},[e("CollaborativeEditor2",{attrs:{label:"full"===t.context&&(t.author.presentation||t.can_edit)?t.$t("presentation"):void 0,field_to_edit:"presentation",path:t.author.$path,content:t.author.presentation,custom_formats:["bold","italic","link"],is_collaborative:!1,can_edit:t.can_edit}})],1):t._e()]),"full"===t.context&&(t.can_edit||t.author.$location)?e("DetailsPane",{staticClass:"u-spacingBottom",attrs:{header:t.$t("location"),is_open_initially:!0,has_items:!!t.author.$location,icon:"map"}},[e("PositionPicker",{attrs:{field_name:"$location",content:t.author.$location,path:t.author.$path,can_edit:t.can_edit}})],1):t._e(),t.can_edit?e("DetailsPane",{attrs:{header:t.$t("options"),icon:"gear"}},[t.is_instance_admin&&"full"===t.context&&!t.authorIsInstance({field:"$admins",folder_path:t.author.$path})?e("div",{staticClass:"u-spacingBottom"},[e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:function(e){t.show_settings_modal=!0}}},[t._v(" "+t._s(t.$t("add_to_instance_admin"))+" ")]),t.show_settings_modal?e("AdminSettings",{attrs:{starting_tab:"administration_and_access_control"},on:{close:function(e){t.show_settings_modal=!1}}}):t._e()],1):t._e(),e("div",{staticClass:"u-spacingBottom"},[e("TitleField",{attrs:{field_name:"$password",label:t.$t("password"),content:"",path:t.author.$path,required:!0,minlength:3,maxlength:20,input_type:"password",can_edit:t.can_edit}})],1),e("div",{},[e("RemoveMenu",{attrs:{remove_text:t.$t("remove_account"),remove_expl:t.$t("remove_account_expl")},on:{remove:t.removeAuthor}})],1)]):t._e()],1)])],1)},i=[],o=(n(44114),{props:{author:Object,context:String},components:{AdminSettings:()=>n.e(141).then(n.bind(n,54141))},data(){return{show_settings_modal:!1}},created(){},mounted(){},beforeDestroy(){},watch:{},computed:{is_self(){return!!this.connected_as&&this.connected_as.$path===this.author.$path},can_edit(){return(this.is_self||this.is_instance_admin)&&"full"===this.context},author_url(){return this.createURLFromPath(this.author.$path)}},methods:{async removeAuthor(){await this.$api.deleteItem({path:this.author.$path}),this.is_self&&await this.$api.logoutFromFolder(),this.$router.push("/@")}}}),a=o,s=(n(74898),n(81656)),l=(0,s.A)(a,r,i,!1,null,"5f1283cc",null),c=l.exports},36156:function(t,e,n){"use strict";n.d(e,{A:function(){return c}});var r=function(){var t=this,e=t._self._c;return e("div",[e("button",{staticClass:"u-buttonLink u-buttonLink_red",attrs:{type:"button"},on:{click:function(e){t.show_confirm_delete=!0}}},[e("b-icon",{attrs:{icon:"trash"}}),t.show_button_text?[t._v(" "+t._s(t.remove_text)+" ")]:t._e()],2),t.show_confirm_delete?e("BaseModal2",{attrs:{title:t.remove_text},on:{close:t.modalClosed}},[t.remove_expl?e("div",[t._v(" "+t._s(t.remove_expl)+" ")]):t._e(),e("div",{staticClass:"u-sameRow",attrs:{slot:"footer"},slot:"footer"},[e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:function(e){t.show_confirm_delete=!1}}},[t._v(" "+t._s(t.$t("cancel"))+" ")]),e("button",{staticClass:"u-button u-button_red",attrs:{type:"button",autofocus:""},on:{click:t.confirmRemove}},[t._v(" "+t._s(t.$t("confirm_removal"))+" ")])])]):t._e()],1)},i=[],o={props:{remove_text:String,remove_expl:String,show_button_text:{type:Boolean,default:!0},show_modal_on_startup:Boolean},components:{},data(){return{show_confirm_delete:!0===this.show_modal_on_startup}},created(){},mounted(){},beforeDestroy(){},watch:{},computed:{},methods:{confirmRemove(){this.$emit("remove"),this.show_confirm_delete=!1},modalClosed(){this.show_confirm_delete=!1,this.$emit("modalClosed")}}},a=o,s=n(81656),l=(0,s.A)(a,r,i,!1,null,"748e59eb",null),c=l.exports},93833:function(t,e,n){"use strict";n.d(e,{A:function(){return c}});var r=function(){var t=this,e=t._self._c;return e("div",{staticClass:"_importFileZone"},[e("label",{staticClass:"u-dropzone",class:{"is--dragover":t.is_dragover,"is--active":t.$root.has_file_dragover_on_window},attrs:{for:t.id+"-add_file"},on:{dragover:t.onDragover,dragenter:t.onDragEnter,dragleave:t.onDragLeave,drop:t.onDrop}},[e("div",{staticClass:"u-button u-button_red"},[e("b-icon",{attrs:{icon:"upload",label:t.$t("import")}}),t._v(" "+t._s(t.$t("import"))+" ")],1),e("div",{staticClass:"u-instructions"},[t._v(" "+t._s(t.$t("or_drag_drop_file_here").toLowerCase())+" ")])]),e("input",{attrs:{type:"file",multiple:t.multiple,id:t.id+"-add_file",name:"file",accept:t.accepts},on:{change:function(e){return t.updateInputFiles(e)}}})])},i=[],o=(n(74423),{props:{files_to_import:Array,accepts:String,multiple:Boolean},components:{},data(){return{id:`image_select_${(Math.random().toString(36)+"00000000000000000").slice(2,5)}`,is_dragover:!1}},created(){window.addEventListener("paste",this.handlePaste)},mounted(){window.removeEventListener("paste",this.handlePaste)},beforeDestroy(){},watch:{},computed:{},methods:{handlePaste(t){this.$root.modal_is_opened||t.clipboardData.files?.length>0&&this.$emit("update:files_to_import",Array.from(t.clipboardData.files))},updateInputFiles(t){this.$emit("update:files_to_import",Array.from(t.target.files)),t.target.value=""},fileDropped(t){this.$emit("update:files_to_import",Array.from(t))},onDragover(t){t.preventDefault()},onDragEnter(t){t.preventDefault(),t.dataTransfer.types.includes("Files")&&(this.is_dragover=!0)},onDragLeave(t){t.preventDefault(),this.is_dragover=!1},onDrop(t){this.is_dragover=!1,t.dataTransfer.files?.length>0&&this.$emit("update:files_to_import",Array.from(t.dataTransfer.files))}}}),a=o,s=(n(81329),n(81656)),l=(0,s.A)(a,r,i,!1,null,"909e19d4",null),c=l.exports},80461:function(t,e,n){"use strict";n.d(e,{A:function(){return c}});var r=function(){var t=this,e=t._self._c;return e("div",{staticClass:"_spaceProjectPicker"},[e("DLabel",{attrs:{str:t.$t("destination_project")}}),e("div",{staticClass:"_row"},[e("div",{},[e("div",{staticClass:"u-buttonLink",attrs:{disabled:""}},[t._v(" "+t._s(t.$t("space"))+" ")]),e("select",{directives:[{name:"model",rawName:"v-model",value:t.destination_space_path,expression:"destination_space_path"}],on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.destination_space_path=e.target.multiple?n:n[0]}}},t._l(t.sorted_spaces,(function(n){return e("option",{key:n.$path,domProps:{value:n.$path,textContent:t._s(t.makeSpaceTitle(n))}})})),0)]),e("div",{staticClass:"_arrowBtn"},[e("b-icon",{attrs:{icon:"arrow-right-short",label:""}})],1),t.projects?t.projects.length>0?e("div",[e("div",{staticClass:"u-buttonLink",attrs:{disabled:""}},[t._v(" "+t._s(t.$t("project"))+" ")]),e("select",{directives:[{name:"model",rawName:"v-model",value:t.destination_project_path,expression:"destination_project_path"}],on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.destination_project_path=e.target.multiple?n:n[0]}}},t._l(t.sorted_projects,(function(n){return e("option",{key:n.$path,domProps:{value:n.$path,textContent:t._s(t.makeProjectTitle(n))}})})),0)]):0===t.sorted_projects.length?e("div",[e("small",{staticClass:"u-instructions"},[t._v(" "+t._s(t.$t("no_projects"))+" ")])]):t._e():e("div",{staticClass:"_projectLoader"},[e("LoaderSpinner")],1)])],1)},i=[],o={props:{path:String},components:{},data(){return{destination_space_path:void 0,destination_project_path:void 0,spaces:void 0,projects:void 0,current_space_path:void 0,current_project_path:void 0}},async created(){const{space_slug:t,project_slug:e}=this.decomposePath(this.path);this.current_space_path=this.destination_space_path=this.createPath({space_slug:t}),this.current_project_path=this.destination_project_path=this.createPath({space_slug:t,project_slug:e}),this.spaces=await this.$api.getFolders({path:"spaces"})},async mounted(){},beforeDestroy(){},watch:{async destination_space_path(){this.projects=void 0,this.projects=await this.$api.getFolders({path:this.destination_space_path+"/projects"}),0===this.sorted_projects.length?this.destination_project_path="":this.sorted_projects.length>0&&!this.sorted_projects.some((t=>t.$path===this.destination_project_path))&&(this.destination_project_path=this.sorted_projects[0].$path)},destination_project_path(){this.$emit("newProjectSelected",this.destination_project_path)}},computed:{sorted_spaces(){return this.spaces?this.spaces.slice().filter((t=>this.canLoggedinSeeFolder({folder:t}))).sort(((t,e)=>t.title.localeCompare(e.title))):[]},sorted_projects(){return this.projects?this.projects.slice().filter((t=>this.canLoggedinSeeFolder({folder:t}))).sort(((t,e)=>t.title.localeCompare(e.title))):[]}},methods:{makeSpaceTitle(t){return t.$path===this.current_space_path?"• "+t.title:t.title},makeProjectTitle(t){return t.$path===this.current_project_path?"• "+t.title:t.title}}},a=o,s=(n(45703),n(81656)),l=(0,s.A)(a,r,i,!1,null,"2105b2dd",null),c=l.exports},35272:function(t,e,n){"use strict";n.d(e,{A:function(){return c}});var r=function(){var t=this,e=t._self._c;return e("transition",{attrs:{name:"scaleInFade",duration:150,mode:"out-in"}},[t.is_loaded?e("svg",{staticClass:"_dodocLogo",attrs:{"enable-background":"new 0 0 515 168",viewBox:"10 0 515 168",xmlns:"http://www.w3.org/2000/svg"}},[e("g",{attrs:{fill:"var(--color1)"}},[e("path",{attrs:{d:"m288.3 29h37.6v71.6l-37.6 37.1z"}}),e("ellipse",{attrs:{cx:"375.1",cy:"101.1",rx:"37.6",ry:"37.6",transform:"matrix(.4927 -.8702 .8702 .4927 102.2979 377.7576)"}}),e("path",{attrs:{d:"m488.3 74.5c-14.7-14.7-38.5-14.7-53.2 0s-14.7 38.5 0 53.2z"}}),e("path",{attrs:{d:"m52 29h37.6v71.6l-37.6 37.1z"}}),e("circle",{attrs:{cx:"145.3",cy:"101.1",r:"37.6"}}),e("path",{attrs:{d:"m435.1 74.5c-14.7 14.7-14.7 38.5 0 53.2s38.5 14.7 53.2 0z"}})]),e("g",{attrs:{fill:"var(--color2)"}},[e("ellipse",{attrs:{cx:"288.3",cy:"100.6",rx:"37.6",ry:"37.6",transform:"matrix(.9665 -.2567 .2567 .9665 -16.1696 77.357)"}}),e("path",{attrs:{d:"m52 63c20.8 0 37.6 16.8 37.6 37.6s-16.8 37.6-37.6 37.6-37.6-16.8-37.6-37.6 16.8-37.6 37.6-37.6z"}}),e("circle",{attrs:{cx:"375.1",cy:"100.6",r:"18.7"}}),e("circle",{attrs:{cx:"145.3",cy:"100.6",r:"18.7"}}),e("circle",{attrs:{cx:"215.9",cy:"101.7",r:"18.7"}}),e("circle",{attrs:{cx:"461.2",cy:"100.6",r:"18.7"}})])]):t._e()])},i=[],o={props:{},components:{},data(){return{is_loaded:!1}},created(){},mounted(){this.$nextTick((()=>{this.is_loaded=!0}))},beforeDestroy(){},watch:{},computed:{},methods:{}},a=o,s=(n(94600),n(81656)),l=(0,s.A)(a,r,i,!1,null,"255ec2f0",null),c=l.exports},44623:function(t,e,n){"use strict";n.d(e,{A:function(){return T}});n(74423);var r=function(){var t=this,e=t._self._c;return e("div",{staticClass:"_mediaLibrary"},[e("section",{staticClass:"_scrollBox"},[e("div",{staticClass:"_importButton"},[e("ImportFileZone",{attrs:{multiple:!0,files_to_import:t.files_to_import},on:{"update:files_to_import":function(e){t.files_to_import=e}}}),t.files_to_import.length>0?e("UploadFiles",{attrs:{files_to_import:t.files_to_import,path:t.project.$path},on:{importedMedias:function(e){return t.mediaJustImported(e)},close:function(e){t.files_to_import=[]}}}):t._e()],1),e("div",{staticClass:"_topSection"},[e("div",{staticClass:"_topSection--left"},[0===t.medias.length?e("small",[t._v(" "+t._s(t.$t("no_media_in_project"))+" ")]):t.medias.length>0?[e("div",{staticClass:"_mediaCount"},[t._v(" "+t._s(t.$t("number_of_media"))+" = "+t._s(t.medias.length)+" "),t.filtered_medias.length!==t.medias.length?[t._v(" ("),e("span",{domProps:{innerHTML:t._s(t.$t("displayed:").toLowerCase())}}),t._v(" "+t._s(t.filtered_medias.length)+") ")]:t._e()],2),t.select_mode||t.batch_mode?t._e():e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:function(e){t.batch_mode=!t.batch_mode}}},[e("b-icon",{attrs:{icon:"hand-index"}}),t._v(" "+t._s(t.$t("select"))+" ")],1),t.batch_mode?e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:t.cancelSelect}},[e("b-icon",{attrs:{icon:"x-square"}}),t._v(" "+t._s(t.$t("cancel"))+" ")],1):t._e(),"multiple"===t.select_mode||t.batch_mode?e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:t.selectAllVisibleMedias}},[e("b-icon",{attrs:{icon:"plus-square"}}),t._v(" "+t._s(t.$t("select_all"))+" ")],1):t._e()]:t._e()],2),e("div",{staticClass:"_topSection--right"},[e("button",{staticClass:"u-button u-button_icon _favFilter",attrs:{type:"button"},on:{click:function(e){t.fav_filter=!t.fav_filter}}},[e("b-icon",{attrs:{icon:t.fav_filter?"star-fill":"star"}})],1),e("select",{directives:[{name:"model",rawName:"v-model",value:t.origin_of_media_to_display,expression:"origin_of_media_to_display"}],staticClass:"_selectMediaOrigin",class:{"is--active":"all"!==t.origin_of_media_to_display},attrs:{size:"small"},on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.origin_of_media_to_display=e.target.multiple?n:n[0]}}},t._l(t.origins_of_medias,(function(n){return e("option",{key:n.key,attrs:{disabled:0===t.quantityOfMediaWithKey({key:"$origin",val:n.key})},domProps:{value:n.key,textContent:t._s(n.label+t.formattedQuantity({key:"$origin",val:n.key}))}})})),0),e("select",{directives:[{name:"model",rawName:"v-model",value:t.type_of_media_to_display,expression:"type_of_media_to_display"}],staticClass:"_selectMediaType",class:{"is--active":"all"!==t.type_of_media_to_display},attrs:{size:"small",disabled:t.show_only_media_type&&"all"!==t.show_only_media_type},on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.type_of_media_to_display=e.target.multiple?n:n[0]}}},t._l(t.types_of_medias,(function(n){return e("option",{key:n.key,attrs:{disabled:0===t.quantityOfMediaWithKey({key:"$type",val:n.key})},domProps:{value:n.key,textContent:t._s(n.label+t.formattedQuantity({key:"$type",val:n.key}))}})})),0),e("select",{directives:[{name:"model",rawName:"v-model",value:t.author_of_media_to_display,expression:"author_of_media_to_display"}],staticClass:"_selectMediaAuthor",class:{"is--active":"all"!==t.author_of_media_to_display},attrs:{size:"small"},on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.author_of_media_to_display=e.target.multiple?n:n[0]}}},[e("option",{key:"all",attrs:{value:"all"},domProps:{textContent:t._s(t.$t("all_accounts"))}}),t._l(t.authors_of_medias,(function(n){return e("option",{key:n.$path,attrs:{disabled:0===t.quantityOfMediaWithAuthor(n.$path)},domProps:{value:n.$path,textContent:t._s(n.name+t.formattedQuantityWithAuthor(n.$path))}})}))],2),e("div",{staticClass:"_groupBy"},["map"!==t.tile_mode?t._l(t.group_options,(function(n){return e("div",{key:n.key},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.group_mode,expression:"group_mode"}],attrs:{type:"radio",id:n.key},domProps:{value:n.key,checked:t._q(t.group_mode,n.key)},on:{change:function(e){t.group_mode=n.key}}}),e("label",{class:{"is--selected":n.key===t.group_mode},attrs:{for:n.key},domProps:{textContent:t._s(n.label)}})])})):t._e()],2),e("div",{staticClass:"_tileMode"},[e("button",{staticClass:"u-button u-button_transparent",class:{"is--active":"table"===t.tile_mode},attrs:{type:"button"},on:{click:function(e){t.tile_mode="table"}}},[e("b-icon",{attrs:{icon:"list-ol"}})],1),e("button",{staticClass:"u-button u-button_transparent",class:{"is--active":"tiny"===t.tile_mode},attrs:{type:"button"},on:{click:function(e){t.tile_mode="tiny"}}},[e("b-icon",{attrs:{icon:"grid-3x2-gap-fill"}})],1),e("button",{staticClass:"u-button u-button_transparent",class:{"is--active":"medium"===t.tile_mode},attrs:{type:"button"},on:{click:function(e){t.tile_mode="medium"}}},[e("b-icon",{attrs:{icon:"grid-fill"}})],1),e("button",{staticClass:"u-button u-button_transparent",class:{"is--active":"map"===t.tile_mode},attrs:{type:"button"},on:{click:function(e){t.tile_mode="map"}}},[e("b-icon",{attrs:{icon:"map-fill"}})],1)])])]),e("transition",{attrs:{name:"pagechange",mode:"out-in"}},["map"===t.tile_mode?e("MediaMap",{key:"mediaMap",attrs:{medias:t.filtered_medias},on:{toggleMediaFocus:t.toggleMediaFocus}}):e("div",{key:t.group_mode,staticClass:"_gridSection"},t._l(t.grouped_medias,(function({label:n,files:r}){return e("div",{key:n,staticClass:"_dayFileSection"},[e("div",{staticClass:"_mediaLibrary--lib--label"},[e("strong",[t._v(t._s(n))])]),e("transition-group",{ref:"mediaTiles",refInFor:!0,staticClass:"_mediaLibrary--lib--grid",attrs:{tag:"div","data-tilemode":t.tile_mode,name:"StoryModules",appear:""}},t._l(r,(function(n){return e("MediaTile",{key:n.$path,attrs:{project_path:t.project.$path,index:n._index,file:n,was_focused:t.media_just_focused===t.getFilename(n.$path),is_selectable:t.mediaTileIsSelectable(n.$path),is_selected:t.selected_medias.includes(n.$path),"data-filepath":n.$path,tile_mode:t.tile_mode,is_already_selected:t.mediaTileAlreadySelected(n.$path)},on:{toggleMediaFocus:function(e){return t.toggleMediaFocus(n.$path)},setSelected:e=>t.setSelected(e,n.$path)}})})),1)],1)})),0)],1),e("transition",{attrs:{name:"slideup"}},[t.selected_medias.length>0?e("div",{staticClass:"_selectBtn"},[t.select_mode?[e("button",{staticClass:"u-button u-button_bleuvert",attrs:{type:"button"},on:{click:function(e){return t.addMedias(t.selected_medias)}}},[t._v(" "+t._s(`${t.$t("add")} (${t.selected_medias.length})`)+" ")])]:t.batch_mode?[e("button",{staticClass:"u-button u-button_red",attrs:{type:"button"},on:{click:function(e){return t.removeAllMedias(t.selected_medias)}}},[t._v(" "+t._s(`${t.$t("remove")} (${t.selected_medias.length})`)+" ")])]:t._e(),e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:t.cancelSelect}},[e("b-icon",{attrs:{icon:"x-circle"}}),t._v(" "+t._s(t.$t("cancel"))+" ")],1)],2):t._e()])],1),e("transition",{attrs:{name:"mediaModal",mode:"in-out"}},[t.focused_media?e("MediaModal",{key:t.focused_media.$path,attrs:{file:t.focused_media,select_mode:t.select_mode,position_in_list:t.focused_media_position_in_list},on:{remove:function(e){return t.removeMedia(t.focused_media.$path)},close:function(e){return t.closeMediaFocus()},select:function(e){return t.addMedias([t.focused_media.$path])},prevMedia:t.prevMedia,nextMedia:t.nextMedia}}):t._e()],1)],1)},i=[],o=(n(44114),n(93833)),a=function(){var t=this,e=t._self._c;return e("div",{staticClass:"_mediaTile",class:{"was--focused":t.was_focused,"is--dragged":t.is_dragged,"is--selected":t.is_selected,"is--own":t.is_own_media},attrs:{"data-tilemode":t.tile_mode}},[e("div",{staticClass:"u-nut _index",style:`--o-color: var(--color-${t.file.$origin})`,domProps:{innerHTML:t._s(t.index)},on:{click:function(e){return t.$emit("toggleMediaFocus")}}}),e("MediaContent",{staticClass:"_content",attrs:{file:t.file,resolution:t.media_resolution}}),"table"===t.tile_mode?e("div",{domProps:{innerHTML:t._s(t.formatDateToPrecise(t.file.$date_uploaded))}}):t._e(),e("FavSwitch",{staticClass:"_favSwitch",attrs:{fav:t.file.fav,path:t.file.$path,can_edit:!0}}),t.has_coordinates||"table"===t.tile_mode?e("div",{staticClass:"_hasCoordinates"},[t.has_coordinates?e("b-icon",{attrs:{icon:"pin-map-fill"}}):e("span",{domProps:{textContent:t._s("-")}})],1):t._e(),[t.duration?e("span",{staticClass:"_fileType",domProps:{innerHTML:t._s(t.duration)}}):t._e(),["pdf","stl"].includes(t.file.$type)||"table"===t.tile_mode?e("span",{staticClass:"_fileType",domProps:{innerHTML:t._s(t.$t(t.file.$type))}}):t._e()],"tiny"!==t.tile_mode?e("span",{staticClass:"_caption",domProps:{innerHTML:t._s(t.file.caption||"–")}}):t._e(),t.is_already_selected?e("div",{staticClass:"_alreadySelected"},[e("div",{style:`--notice-bg: ${t.is_already_selected.color}`},[e("span",[t._v(t._s(t.is_already_selected.label))])])]):t._e(),e("button",{staticClass:"_focusMediaBtn",attrs:{type:"button"},on:{click:function(e){return t.$emit("toggleMediaFocus")}}}),e("div",{staticClass:"_dragFileIcon"},[e("DragFile",{attrs:{file:t.file,is_dragged:t.is_dragged},on:{"update:is_dragged":function(e){t.is_dragged=e}}})],1),t.is_selectable?e("ToggleInput",{staticClass:"_selectCb",attrs:{content:t.is_selected},on:{"update:content":function(e){return t.$emit("setSelected",e)}}}):t._e()],2)},s=[],l={props:{file:Object,index:Number,project_path:String,was_focused:Boolean,is_selectable:Boolean,is_selected:Boolean,is_already_selected:[Boolean,Object],tile_mode:{type:String,default:"tiny"}},components:{},data(){return{is_dragged:!1}},created(){},mounted(){},beforeDestroy(){},watch:{},computed:{media_resolution(){return"medium"===this.tile_mode?440:220},has_coordinates(){return this.file.$location},is_own_media(){return this.isOwnItem({folder:this.file})},duration(){return this.displayDuration({media:this.file})}},methods:{}},c=l,u=(n(99432),n(81656)),d=(0,u.A)(c,a,s,!1,null,"d014b2a4",null),p=d.exports,f=function(){var t=this,e=t._self._c;return e("div",{staticClass:"_mediaModal"},[e("div",{staticClass:"_mediaModal--overlay",on:{click:function(e){return t.$emit("close")}}}),e("div",{staticClass:"_mediaModal--content",class:{"is--mobileView":t.$root.is_mobile_view}},[t.$root.is_mobile_view?e("div",{staticClass:"_stickyClose"},[e("div",{staticClass:"_stickyClose--content"},[e("button",{staticClass:"u-button u-button_icon _navBtn",attrs:{type:"button"},on:{click:function(e){return t.$emit("close")}}},[e("b-icon",{attrs:{icon:"x-lg"}})],1)])]):t._e(),e("div",{staticClass:"_preview"},[e("MediaContent",{attrs:{file:t.file,resolution:1600,context:"full",show_fs_button:!0,zoom_on_click:!0}}),t.optimization_strongly_recommended?e("div",{staticClass:"_optimizeNotice"},[e("div",{},[t._v(" "+t._s(t.$t("convert_to_format"))+" "),e("OptimizeMedia",{attrs:{media:t.file},on:{close:function(e){return t.$emit("close")}}})],1)]):t._e(),t.$root.is_mobile_view?t._e():e("div",{staticClass:"_topRightBtn"},[e("DragFile",{staticClass:"_dragFile",attrs:{file:t.file}}),e("button",{staticClass:"u-button u-button_icon _navBtn",attrs:{type:"button"},on:{click:t.toggleMeta}},[e("b-icon",{attrs:{icon:t.show_meta_sidebar?"chevron-double-right":"chevron-double-left"}})],1),e("button",{staticClass:"u-button u-button_icon _navBtn",attrs:{type:"button"},on:{click:function(e){return t.$emit("close")}}},[e("b-icon",{attrs:{icon:"x-lg"}})],1)],1),e("transition",{attrs:{name:"scaleOutFade",mode:"out-in"}},["alone"!==t.position_in_list&&t.show_nav_btn?e("div",{key:t.file.$path,staticClass:"_navBtns"},[e("span",["first"!==t.position_in_list?e("button",{staticClass:"u-button u-button_icon _navBtn _leftArrow",attrs:{type:"button"},on:{click:function(e){return t.$emit("prevMedia")}}},[e("b-icon",{attrs:{icon:"arrow-left-short"}})],1):t._e()]),e("span",[e("button",{directives:[{name:"show",rawName:"v-show",value:"last"!==t.position_in_list,expression:"position_in_list !== 'last'"}],staticClass:"u-button u-button_icon _navBtn _rightArrow",attrs:{type:"button"},on:{click:function(e){return t.$emit("nextMedia")}}},[e("b-icon",{attrs:{icon:"arrow-right-short"}})],1)])]):t._e()])],1),t.show_meta_sidebar||t.$root.is_mobile_view?e("div",{staticClass:"_meta"},[e("div",{staticClass:"u-spacingBottom"},[e("div",{staticClass:"_topbar"},[e("h3",[t._v(" "+t._s(t.$t("media"))+" "+t._s(t.file._index)+" "),e("FavSwitch",{staticClass:"_favSwitch",attrs:{fav:t.file.fav,path:t.file.$path,can_edit:!0}})],1),e("DropDown",{attrs:{right:!0}},[e("div",[e("DownloadFile",{attrs:{file:t.file}},[e("b-icon",{attrs:{icon:"file-earmark-arrow-down"}}),t._v(" "+t._s(t.$t("download"))+" ")],1)],1),t.optimization_possible?e("OptimizeMedia",{attrs:{media:t.file},on:{close:function(e){return t.$emit("close")}}}):t._e(),e("DuplicateMedia",{attrs:{path:t.file.$path},on:{close:function(e){return t.$emit("close")}}}),t.$listeners.remove?e("RemoveMenu",{attrs:{remove_text:t.$t("remove_media")},on:{remove:function(e){return t.$emit("remove")}}}):t._e()],1)],1),e("small",{staticClass:"fieldCaption"},[t._v(t._s(t.file.$media_filename))])]),e("hr",{staticClass:"u-spacingBottom"}),e("div",{staticClass:"u-spacingBottom"},[e("CollaborativeEditor2",{attrs:{label:t.$t("caption"),field_to_edit:"caption",content:t.file.caption,path:t.file.$path,custom_formats:["bold","italic","link"],is_collaborative:!1,can_edit:!0}})],1),e("div",{staticClass:"u-spacingBottom"},[e("CollaborativeEditor2",{attrs:{label:t.$t("credit/reference"),field_to_edit:"$credits",content:t.file.$credits,path:t.file.$path,custom_formats:["bold","italic","link"],is_collaborative:!1,can_edit:!0}})],1),e("div",{staticClass:"u-spacingBottom"},[e("AuthorField",{staticClass:"u-spacingBottom",attrs:{label:t.$t("authors"),field:"$authors",authors_paths:t.authors_path,path:t.file.$path,can_edit:!0,instructions:t.$t("file_author_instructions"),no_options:!0}})],1),e("DetailsPane",{staticClass:"u-spacingBottom",attrs:{header:t.$t("informations"),icon:"info-square",is_open_initially:!0}},[e("DateDisplay",{attrs:{title:t.$t("date_uploaded"),date:t.file.$date_uploaded}}),e("DateDisplay",{attrs:{title:t.$t("date_modified"),date:t.file.$date_modified}}),t.file.$infos&&t.file.$infos.size?e("SizeDisplay",{attrs:{size:t.file.$infos.size}}):t._e(),t.file.$infos&&(t.file.$infos.width||t.file.$infos.height)?e("ResolutionDisplay",{attrs:{width:t.file.$infos.width,height:t.file.$infos.height}}):t._e(),t.file.$infos&&t.file.$infos.duration?e("DurationDisplay",{attrs:{title:t.$t("duration"),duration:t.file.$infos.duration}}):t._e(),t.file.$origin?e("div",{staticClass:"_metaField"},[e("DLabel",{attrs:{str:t.$t("origin")}}),e("div",{staticClass:"_originInd",style:`--o-color: var(--color-${t.file.$origin})`},[e("i",[t._v(" "+t._s(t.$t(t.file.$origin))+" ")])])],1):t._e()],1),e("DetailsPane",{attrs:{header:t.$t("location"),icon:"map",has_items:!!t.file.$location}},[e("PositionPicker",{attrs:{field_name:"$location",content:t.file.$location,path:t.file.$path,can_edit:!0}})],1)],1):t._e()]),t.select_mode?e("div",{staticClass:"_selectBtn"},[e("button",{staticClass:"u-buttonLink has--whitebg",attrs:{type:"button"},on:{click:function(e){return t.$emit("close")}}},[t._v(" "+t._s(t.$t("cancel"))+" ")]),e("button",{staticClass:"u-button u-button_bleuvert",attrs:{type:"button"},on:{click:function(e){return t.$emit("select")}}},[t._v(" "+t._s(t.$t("select"))+" ")])]):t._e()])},h=[],v=function(){var t=this,e=t._self._c;return e("div",[e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:function(e){t.show_modal=!0}}},[e("b-icon",{attrs:{icon:"file-plus"}}),t._v(" "+t._s(t.$t("duplicate_or_move"))+" ")],1),t.show_modal?e("BaseModal2",{attrs:{title:t.$t("duplicate_or_move")},on:{close:function(e){t.show_modal=!1}}},[t.navigation_to_copy?[e("router-link",{staticClass:"u-button u-button_bleumarine",attrs:{to:t.navigation_to_copy}},[t._v(" "+t._s(t.$t("open_copy"))+" ")])]:[e("div",{},[e("div",{staticClass:"u-spacingBottom u-instructions"},[e("small",[t._v(" "+t._s(t.$t("dmm_instr"))+" ")])]),e("SpaceProjectPicker",{staticClass:"u-spacingBottom",attrs:{path:t.path},on:{newProjectSelected:function(e){t.destination_project_path=e}}}),e("div",{staticClass:"u-spacingBottom"},[e("ToggleInput",{attrs:{content:t.remove_original,label:t.$t("remove_original"),options:{true:t.$t("remove_original_after_copy"),false:t.$t("keep_original_after_copy")}},on:{"update:content":function(e){t.remove_original=e}}})],1)],1),e("div",{staticClass:"u-sameRow",attrs:{slot:"footer"},slot:"footer"},[t.is_copying?e("LoaderSpinner"):[e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:function(e){t.show_modal=!1}}},[t._v(" "+t._s(t.$t("cancel"))+" ")]),e("button",{staticClass:"u-button u-button_red",attrs:{type:"button",autofocus:"",disabled:!t.destination_project_path},on:{click:t.confirm}},[t.remove_original?[t._v(" "+t._s(t.$t("move"))+" ")]:[t._v(" "+t._s(t.$t("duplicate"))+" ")]],2)]],2)]],2):t._e()],1)},m=[],g=n(80461),_={props:{path:String,source_title:String},components:{SpaceProjectPicker:g.A},data(){return{show_modal:!1,navigation_to_copy:!1,destination_project_path:void 0,remove_original:!1,is_copying:!1}},created(){},async mounted(){},beforeDestroy(){},watch:{show_modal(){this.navigation_to_copy=!1,this.destination_project_path=void 0,this.is_copying=!1}},computed:{},methods:{async confirm(){this.is_copying=!0;const t=this.destination_project_path,e=await this.$api.copyFile({path:this.path,path_to_destination_folder:t,new_meta:{}}).catch((t=>{throw"not_allowed_to_copy_to_folder"===t&&this.$alertify.delay(4e3).error(this.$t("not_allowed_to_copy_to_project")),this.is_copying=!1,"fail"}));this.$alertify.closeLogOnClick(!0).delay(4e3).success(this.$t("completed"));let n={};n.projectpanes=JSON.stringify([{type:"collect",size:100,focus:e}]);const r={path:this.createURLFromPath(t),query:n};this.remove_original?(this.is_copying=!1,await this.$api.deleteItem({path:this.path}),this.$emit("close")):(this.navigation_to_copy=r,this.is_copying=!1)}}},b=_,y=(0,u.A)(b,v,m,!1,null,"83c6f7f4",null),w=y.exports,k={props:{file:Object,select_mode:String,position_in_list:String},components:{DuplicateMedia:w},data(){return{show_nav_btn:!1,show_meta_sidebar:!0}},created(){"false"===localStorage.getItem("show_meta_sidebar")&&(this.show_meta_sidebar=!1)},mounted(){setTimeout((()=>{this.show_nav_btn=!0}),200)},beforeDestroy(){},watch:{},computed:{optimization_possible(){return this.fileCanBeOptimized({path:this.file.$media_filename})},optimization_strongly_recommended(){return this.fileShouldBeOptimized({path:this.file.$media_filename})},authors_path(){return this.file.$authors||"noone"}},methods:{toggleMeta(){this.show_meta_sidebar=!this.show_meta_sidebar,localStorage.setItem("show_meta_sidebar",this.show_meta_sidebar)}}},x=k,O=(n(68573),(0,u.A)(x,f,h,!1,null,"5a5c7aee",null)),E=O.exports,C={props:{project:Object,media_focused:[Boolean,String],select_mode:String,hide_already_present_medias:Boolean,meta_filenames_already_present:[Boolean,Array],show_only_media_type:String},components:{ImportFileZone:o.A,MediaTile:p,MediaModal:E,MediaMap:()=>n.e(636).then(n.bind(n,55636))},data(){return{selected_medias:[],batch_mode:!1,tile_mode:localStorage.getItem("library_tile_mode")||"tiny",files_to_import:[],media_just_focused:void 0,hide_dropzone_timeout:void 0,fav_filter:!1,group_mode:localStorage.getItem("library_group_mode")||"day",group_options:[{key:"day",label:this.$t("day")},{key:"month",label:this.$t("month")},{key:"year",label:this.$t("year")}],type_of_media_to_display:this.show_only_media_type||"all",types_of_medias:[{key:"all",label:this.$t("all_medias_types")},{key:"image",label:this.$t("image")},{key:"video",label:this.$t("video")},{key:"audio",label:this.$t("audio")},{key:"text",label:this.$t("text")},{key:"pdf",label:this.$t("pdf")},{key:"stl",label:this.$t("stl")},{key:"obj",label:this.$t("obj")},{key:"other",label:this.$t("other")}],origin_of_media_to_display:"all",origins_of_medias:[{key:"all",label:this.$t("all_origins")},{key:"capture",label:"1 • "+this.$t("capture")},{key:"collect",label:"2 • "+this.$t("collect")},{key:"make",label:"3 • "+this.$t("make")},{key:"publish",label:"4 • "+this.$t("publish")}],author_of_media_to_display:"all"}},created(){},mounted(){console.log("MediaLibrary / mounted"),window.addEventListener("keyup",this.handleKeyPress),this.media_focused&&this.$nextTick((()=>{}))},beforeDestroy(){window.removeEventListener("keyup",this.handleKeyPress)},watch:{tile_mode(){localStorage.setItem("library_tile_mode",this.tile_mode)},group_mode(){localStorage.setItem("library_group_mode",this.group_mode)}},computed:{medias(){return this.project.$files||[]},sorted_medias(){let t=JSON.parse(JSON.stringify(this.medias));return t=t.sort(((t,e)=>+new Date(e.$date_uploaded)-+new Date(t.$date_uploaded))).reverse().map(((t,e)=>(t._index=e+1,t))).reverse(),t},filtered_medias(){return this.sorted_medias.filter((t=>(!0!==this.hide_already_present_medias||!this.mediaTileAlreadySelected(t.$path))&&((!0!==this.fav_filter||!0===t.fav)&&(("all"===this.type_of_media_to_display||t.$type===this.type_of_media_to_display)&&(("all"===this.origin_of_media_to_display||t.$origin===this.origin_of_media_to_display)&&(!("all"!==this.author_of_media_to_display&&!t.$authors?.includes(this.author_of_media_to_display))&&!("map"===this.tile_mode&&!t.$location)))))))},grouped_medias(){return this.groupFilesBy(this.filtered_medias,["$date_uploaded"],this.group_mode)},focused_media(){if(!this.media_focused)return!1;const t=this.sorted_medias.find((t=>this.getFilename(t.$path)===this.media_focused))||!1;return t&&this.$refs.mediaTiles&&this.scrollToMediaTile(t.$path),t},focused_media_index(){return this.filtered_medias.findIndex((t=>t.$path===this.focused_media.$path))},focused_media_position_in_list(){return 1===this.filtered_medias.length?"alone":0===this.focused_media_index?"first":this.focused_media_index===this.filtered_medias.length-1?"last":"none"},authors_of_medias(){return this.sorted_medias.reduce(((t,e)=>(e.$authors?.map((e=>{if(!t.some((t=>t.$path===e))){const n=this.getAuthor(e);n&&t.push(n)}})),t)),[])}},methods:{scrollToMediaTile(t){},handleKeyPress(t){if(!(!this.$el.closest("._baseModal")&&this.$root.modal_is_opened||"input"===t.target.tagName.toLowerCase()||"textarea"===t.target.tagName.toLowerCase()||t.target.className.includes("ql-editor")||t.target.hasAttribute("contenteditable"))){switch(t.key){case"Escape":this.closeMediaFocus();break;case"w":case"z":case"ArrowLeft":this.prevMedia();break;case"s":case"ArrowRight":this.nextMedia();break}return!1}},mediaTileIsSelectable(){return"multiple"===this.select_mode||this.batch_mode},mediaTileAlreadySelected(t){if(!this.meta_filenames_already_present)return!1;const e=this.getFilename(t),n=this.meta_filenames_already_present.find((t=>t.medias.includes(e)));if(n){const t=n.label,e=n.color;return{label:t,color:e}}return!1},async removeAllMedias(t){for(const e of t)await this.removeMedia(e),this.selected_medias=this.selected_medias.filter((t=>t!==e));this.batch_mode=!1},selectAllVisibleMedias(){this.selected_medias=this.filtered_medias.map((t=>t.$path))},cancelSelect(){this.selected_medias=[],this.batch_mode&&(this.batch_mode=!1)},quantityOfMediaWithKey({key:t,val:e}){if("all"===e)return!1;const n=this.sorted_medias.filter((n=>n[t]&&n[t]===e)).length;return n},formattedQuantity({key:t,val:e}){const n=this.quantityOfMediaWithKey({key:t,val:e});return!1===n?"":` (${n})`},quantityOfMediaWithAuthor(t){const e=this.sorted_medias.filter((e=>e.$authors?.includes(t))).length;return e},formattedQuantityWithAuthor(t){const e=this.quantityOfMediaWithAuthor(t);return!1===e?"":` (${e})`},mediaJustImported(t){if(!this.select_mode||"single"===this.select_mode)return!1;const e=t.map((t=>this.project.$path+"/"+t));"multiple"===this.select_mode&&(this.selected_medias=this.selected_medias.concat(e))},toggleMediaFocus(t){if(!t)return this.$emit("update:media_focused",void 0);const e=this.getFilename(t);this.media_focused===e?this.closeMediaFocus():this.openMediaFocus(e)},openMediaFocus(t){this.$emit("update:media_focused",t),this.media_just_focused=t},closeMediaFocus(){this.$emit("update:media_focused",void 0)},setSelected(t,e){t?this.selected_medias.push(e):this.selected_medias=this.selected_medias.filter((t=>t!==e))},addMedias(t){this.$emit("addMedias",t)},async removeMedia(t){await this.$api.deleteItem({path:t}),this.closeMediaFocus(),this.$alertify.closeLogOnClick(!0).delay(4e3).success(this.$t("media_removed"))},prevMedia(){this.toggleMediaFocus(this.filtered_medias[this.focused_media_index-1].$path)},nextMedia(){this.toggleMediaFocus(this.filtered_medias[this.focused_media_index+1].$path)}}},S=C,A=(n(46074),(0,u.A)(S,r,i,!1,null,"c6cedf02",null)),T=A.exports},81656:function(t,e,n){"use strict";function r(t,e,n,r,i,o,a,s){var l,c="function"===typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),o&&(c._scopeId="data-v-"+o),a?(l=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=l):i&&(l=s?function(){i.call(this,(c.functional?this.parent:this).$root.$options.shadowRoot)}:i),l)if(c.functional){c._injectStyles=l;var u=c.render;c.render=function(t,e){return l.call(e),u(t,e)}}else{var d=c.beforeCreate;c.beforeCreate=d?[].concat(d,l):[l]}return{exports:t,options:c}}n.d(e,{A:function(){return r}})},24262:function(t,e,n){var r;t=n.nmd(t),function(){"use strict";function i(){var t={parent:document.body,version:"1.0.12",defaultOkLabel:"Ok",okLabel:"Ok",defaultCancelLabel:"Cancel",cancelLabel:"Cancel",defaultMaxLogItems:2,maxLogItems:2,promptValue:"",promptPlaceholder:"",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:"alertify-logs",logContainerDefaultClass:"alertify-logs",dialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},defaultDialogs:{buttons:{holder:"",ok:"",cancel:""},input:"",message:"

{{message}}

",log:"
{{message}}
"},build:function(t){var e=this.dialogs.buttons.ok,n="
"+this.dialogs.message.replace("{{message}}",t.message);return"confirm"!==t.type&&"prompt"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),"prompt"===t.type&&(n+=this.dialogs.input),(n+this.dialogs.buttons.holder+"
").replace("{{buttons}}",e).replace("{{ok}}",this.okLabel).replace("{{cancel}}",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener("click",(function(){a(t)})),e=e&&!isNaN(+e)?+e:this.delay,0>e?a(t):e>0&&setTimeout((function(){a(t)}),e)},dialog:function(t,e,n,r){return this.setup({type:e,message:t,onOkay:n,onCancel:r})},log:function(t,e,n){var r=document.querySelectorAll(".alertify-logs > div");if(r){var i=r.length-this.maxLogItems;if(i>=0)for(var o=0,a=i+1;a>o;o++)this.close(r[o],-1)}this.notify(t,e,n)},setLogPosition:function(t){this.logContainerClass="alertify-logs "+t},setupLogContainer:function(){var t=document.querySelector(".alertify-logs"),e=this.logContainerClass;return t||(t=document.createElement("div"),t.className=e,this.parent.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,n,r){var i=this.setupLogContainer(),o=document.createElement("div");o.className=n||"default",t.logTemplateMethod?o.innerHTML=t.logTemplateMethod(e):o.innerHTML=e,"function"==typeof r&&o.addEventListener("click",r),i.appendChild(o),setTimeout((function(){o.className+=" show"}),10),this.close(o,this.delay)},setup:function(t){function e(e){"function"!=typeof e&&(e=function(){}),i&&i.addEventListener("click",(function(r){t.onOkay&&"function"==typeof t.onOkay&&(s?t.onOkay(s.value,r):t.onOkay(r)),e(s?{buttonClicked:"ok",inputValue:s.value,event:r}:{buttonClicked:"ok",event:r}),a(n)})),o&&o.addEventListener("click",(function(r){t.onCancel&&"function"==typeof t.onCancel&&t.onCancel(r),e({buttonClicked:"cancel",event:r}),a(n)})),s&&s.addEventListener("keyup",(function(t){13===t.which&&i.click()}))}var n=document.createElement("div");n.className="alertify hide",n.innerHTML=this.build(t);var r,i=n.querySelector(".ok"),o=n.querySelector(".cancel"),s=n.querySelector("input"),l=n.querySelector("label");return s&&("string"==typeof this.promptPlaceholder&&(l?l.textContent=this.promptPlaceholder:s.placeholder=this.promptPlaceholder),"string"==typeof this.promptValue&&(s.value=this.promptValue)),"function"==typeof Promise?r=new Promise(e):e(),this.parent.appendChild(n),setTimeout((function(){n.classList.remove("hide"),s&&t.type&&"prompt"===t.type?(s.select(),s.focus()):i&&i.focus()}),100),r},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){return t=t||0,this.delay=isNaN(t)?this.defaultDelay:parseInt(t,10),this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case"bootstrap":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="";break;case"purecss":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="";break;case"mdl":case"material-design-light":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"angular-material":this.dialogs.buttons.ok="",this.dialogs.buttons.cancel="",this.dialogs.input="
";break;case"default":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.parent=document.body,this.theme("default"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue="",this.promptPlaceholder="",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition("bottom left"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector("#alertifyCSS")){var t=document.getElementsByTagName("head")[0],e=document.createElement("style");e.type="text/css",e.id="alertifyCSS",e.innerHTML=".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector("#alertifyCSS");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,parent:function(e){t.parent=e},reset:function(){return t.reset(),this},alert:function(e,n,r){return t.dialog(e,"alert",n,r)||this},confirm:function(e,n,r){return t.dialog(e,"confirm",n,r)||this},prompt:function(e,n,r){return t.dialog(e,"prompt",n,r)||this},log:function(e,n){return t.log(e,"default",n),this},theme:function(e){return t.theme(e),this},success:function(e,n){return t.log(e,"success",n),this},error:function(e,n){return t.log(e,"error",n),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||""),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML="",this},version:t.version}}var o=500,a=function(t){if(t){var e=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove("show"),t.classList.add("hide"),t.addEventListener("transitionend",e),setTimeout(e,o)}};if(t&&t.exports){t.exports=function(){return new i};var s=new i;for(var l in s)t.exports[l]=s[l]}else r=function(){return new i}.call(e,n,e,t),void 0===r||(t.exports=r)}()},51657:function(t,e,n){t=n.nmd(t),n(59848),n(16280),n(44114),n(13609),function(t,n){n(e)}(0,(function(e){"use strict";function r(t,e){e|=0;for(var n=Math.max(t.length-e,0),r=Array(n),i=0;i-1&&t%1==0&&t<=F}function H(t){return null!=t&&B(t.length)&&!D(t)}var U={};function V(){}function W(t){return function(){if(null!==t){var e=t;t=null,e.apply(this,arguments)}}}var Y="function"===typeof Symbol&&Symbol.iterator,G=function(t){return Y&&t[Y]&&t[Y]()};function K(t,e){var n=-1,r=Array(t);while(++n-1&&t%1==0&&t2&&(i=r(arguments,1)),e){var o={};Se(a,(function(t,e){o[e]=t})),o[t]=i,l=!0,c=Object.create(null),n(e,o)}else a[t]=i,m(t)}));s++;var o=_(e[e.length-1]);e.length>1?o(a,i):o(i)}}function b(){var t,e=0;while(d.length)t=d.pop(),e++,Oe(y(t),(function(t){0===--p[t]&&d.push(t)}));if(e!==o)throw new Error("async.auto cannot execute tasks due to a recursive dependency")}function y(e){var n=[];return Se(t,(function(t,r){rt(t)&&Me(t,e,0)>=0&&n.push(r)})),n}Se(t,(function(e,n){if(!rt(e))return f(n,[e]),void d.push(n);var r=e.slice(0,e.length-1),i=r.length;if(0===i)return f(n,e),void d.push(n);p[n]=i,Oe(r,(function(o){if(!t[o])throw new Error("async.auto task `"+n+"` has a non-existent dependency `"+o+"` in "+r.join(", "));v(o,(function(){i--,0===i&&f(n,e)}))}))})),b(),h()};function Le(t,e){var n=-1,r=null==t?0:t.length,i=Array(r);while(++ni?0:i+e),n=n>i?i:n,n<0&&(n+=i),i=e>n?0:n-e>>>0,e>>>=0;var o=Array(i);while(++r=r?t:De(t,e,n)}function Be(t,e){var n=t.length;while(n--&&Me(e,t[n],0)>-1);return n}function He(t,e){var n=-1,r=t.length;while(++n-1);return n}function Ue(t){return t.split("")}var Ve="\\ud800-\\udfff",We="\\u0300-\\u036f",Ye="\\ufe20-\\ufe2f",Ge="\\u20d0-\\u20ff",Ke=We+Ye+Ge,Je="\\ufe0e\\ufe0f",Ze="\\u200d",Xe=RegExp("["+Ze+Ve+Ke+Je+"]");function Qe(t){return Xe.test(t)}var tn="\\ud800-\\udfff",en="\\u0300-\\u036f",nn="\\ufe20-\\ufe2f",rn="\\u20d0-\\u20ff",on=en+nn+rn,an="\\ufe0e\\ufe0f",sn="["+tn+"]",ln="["+on+"]",cn="\\ud83c[\\udffb-\\udfff]",un="(?:"+ln+"|"+cn+")",dn="[^"+tn+"]",pn="(?:\\ud83c[\\udde6-\\uddff]){2}",fn="[\\ud800-\\udbff][\\udc00-\\udfff]",hn="\\u200d",vn=un+"?",mn="["+an+"]?",gn="(?:"+hn+"(?:"+[dn,pn,fn].join("|")+")"+mn+vn+")*",_n=mn+vn+gn,bn="(?:"+[dn+ln+"?",ln,pn,fn,sn].join("|")+")",yn=RegExp(cn+"(?="+cn+")|"+bn+_n,"g");function wn(t){return t.match(yn)||[]}function kn(t){return Qe(t)?wn(t):Ue(t)}function xn(t){return null==t?"":ze(t)}var On=/^\s+|\s+$/g;function En(t,e,n){if(t=xn(t),t&&(n||void 0===e))return t.replace(On,"");if(!t||!(e=ze(e)))return t;var r=kn(t),i=kn(e),o=He(r,i),a=Be(r,i)+1;return Fe(r,o,a).join("")}var Cn=/^(?:async\s+)?(function)?\s*[^\(]*\(\s*([^\)]*)\)/m,Sn=/,/,An=/(=.+)?(\s*)$/,Tn=/((\/\/.*$)|(\/\*[\s\S]*?\*\/))/gm;function qn(t){return t=t.toString().replace(Tn,""),t=t.match(Cn)[2].replace(" ",""),t=t?t.split(Sn):[],t=t.map((function(t){return En(t.replace(An,""))})),t}function Mn(t,e){var n={};Se(t,(function(t,e){var r,i=g(t),o=!i&&1===t.length||i&&0===t.length;if(rt(t))r=t.slice(0,-1),t=t[t.length-1],n[e]=r.concat(r.length>0?a:t);else if(o)n[e]=t;else{if(r=qn(t),0===t.length&&!i&&0===r.length)throw new Error("autoInject task functions require explicit parameters.");i||r.pop(),n[e]=r.concat(a)}function a(e,n){var i=Le(r,(function(t){return e[t]}));i.push(n),_(t).apply(null,i)}})),Pe(n,e)}function Pn(){this.head=this.tail=null,this.length=0}function Ln(t,e){t.length=1,t.head=t.tail=e}function jn(t,e,n){if(null==e)e=1;else if(0===e)throw new Error("Concurrency must not be zero");var r=_(t),i=0,o=[],a=!1;function s(t,e,n){if(null!=n&&"function"!==typeof n)throw new Error("task callback must be a function");if(u.started=!0,rt(t)||(t=[t]),0===t.length&&u.idle())return p((function(){u.drain()}));for(var r=0,i=t.length;r0&&o.splice(s,1),a.callback.apply(a,arguments),null!=e&&u.error(e,a.data)}i<=u.concurrency-u.buffer&&u.unsaturated(),u.idle()&&u.drain(),u.process()}}var c=!1,u={_tasks:new Pn,concurrency:e,payload:n,saturated:V,unsaturated:V,buffer:e/4,empty:V,drain:V,error:V,started:!1,paused:!1,push:function(t,e){s(t,!1,e)},kill:function(){u.drain=V,u._tasks.empty()},unshift:function(t,e){s(t,!0,e)},remove:function(t){u._tasks.remove(t)},process:function(){if(!c){c=!0;while(!u.paused&&i2&&(o=r(arguments,1)),i[e]=o,n(t)}))}),(function(t){n(t,i)}))}function Pr(t,e){Mr(ve,t,e)}function Lr(t,e,n){Mr(ue(e),t,n)}var jr=function(t,e){var n=_(t);return jn((function(t,e){n(t[0],e)}),e,1)},$r=function(t,e){var n=jr(t,e);return n.push=function(t,e,r){if(null==r&&(r=V),"function"!==typeof r)throw new Error("task callback must be a function");if(n.started=!0,rt(t)||(t=[t]),0===t.length)return p((function(){n.drain()}));e=e||0;var i=n._tasks.head;while(i&&e>=i.priority)i=i.next;for(var o=0,a=t.length;or?1:0}_e(t,(function(t,e){r(t,(function(n,r){if(n)return e(n);e(null,{value:t,criteria:r})}))}),(function(t,e){if(t)return n(t);n(null,Le(e.sort(i),pr("value")))}))}function Xr(t,e,n){var r=_(t);return o((function(i,o){var a,s=!1;function l(){var e=t.name||"anonymous",r=new Error('Callback function "'+e+'" timed out.');r.code="ETIMEDOUT",n&&(r.info=n),s=!0,o(r)}i.push((function(){s||(o.apply(null,arguments),clearTimeout(a))})),a=setTimeout(l,e),r.apply(null,i)}))}var Qr=Math.ceil,ti=Math.max;function ei(t,e,n,r){var i=-1,o=ti(Qr((e-t)/(n||1)),0),a=Array(o);while(o--)a[r?o:++i]=t,t+=n;return a}function ni(t,e,n,r){var i=_(n);we(ei(0,t,1),e,i,r)}var ri=pe(ni,1/0),ii=pe(ni,1);function oi(t,e,n,r){arguments.length<=3&&(r=n,n=e,e=rt(t)?[]:{}),r=W(r||V);var i=_(n);ve(t,(function(t,n,r){i(e,t,n,r)}),(function(t){r(t,e)}))}function ai(t,e){var n,i=null;e=e||V,ar(t,(function(t,e){_(t)((function(t,o){n=arguments.length>2?r(arguments,1):o,i=t,e(!t)}))}),(function(){e(i,n)}))}function si(t){return function(){return(t.unmemoized||t).apply(null,arguments)}}function li(t,e,n){n=ce(n||V);var i=_(e);if(!t())return n(null);var o=function(e){if(e)return n(e);if(t())return i(o);var a=r(arguments,1);n.apply(null,[null].concat(a))};i(o)}function ci(t,e,n){li((function(){return!t.apply(this,arguments)}),e,n)}var ui=function(t,e){if(e=W(e||V),!rt(t))return e(new Error("First argument to waterfall must be an array of functions"));if(!t.length)return e();var n=0;function i(e){var r=_(t[n++]);e.push(ce(o)),r.apply(null,e)}function o(o){if(o||n===t.length)return e.apply(null,arguments);i(r(arguments,1))}i([])},di={apply:i,applyEach:be,applyEachSeries:xe,asyncify:f,auto:Pe,autoInject:Mn,cargo:$n,compose:zn,concat:Bn,concatLimit:Fn,concatSeries:Hn,constant:Un,detect:Gn,detectLimit:Kn,detectSeries:Jn,dir:Xn,doDuring:Qn,doUntil:er,doWhilst:tr,during:nr,each:ir,eachLimit:or,eachOf:ve,eachOfLimit:de,eachOfSeries:Rn,eachSeries:ar,ensureAsync:sr,every:cr,everyLimit:ur,everySeries:dr,filter:mr,filterLimit:gr,filterSeries:_r,forever:br,groupBy:wr,groupByLimit:yr,groupBySeries:kr,log:xr,map:_e,mapLimit:we,mapSeries:ke,mapValues:Cr,mapValuesLimit:Or,mapValuesSeries:Sr,memoize:Tr,nextTick:qr,parallel:Pr,parallelLimit:Lr,priorityQueue:$r,queue:jr,race:Rr,reduce:Nn,reduceRight:Nr,reflect:Ir,reflectAll:zr,reject:Fr,rejectLimit:Br,rejectSeries:Hr,retry:Vr,retryable:Wr,seq:In,series:Yr,setImmediate:p,some:Gr,someLimit:Kr,someSeries:Jr,sortBy:Zr,timeout:Xr,times:ri,timesLimit:ni,timesSeries:ii,transform:oi,tryEach:ai,unmemoize:si,until:ci,waterfall:ui,whilst:li,all:cr,allLimit:ur,allSeries:dr,any:Gr,anyLimit:Kr,anySeries:Jr,find:Gn,findLimit:Kn,findSeries:Jn,forEach:ir,forEachSeries:ar,forEachLimit:or,forEachOf:ve,forEachOfSeries:Rn,forEachOfLimit:de,inject:Nn,foldl:Nn,foldr:Nr,select:mr,selectLimit:gr,selectSeries:_r,wrapSync:f};e["default"]=di,e.apply=i,e.applyEach=be,e.applyEachSeries=xe,e.asyncify=f,e.auto=Pe,e.autoInject=Mn,e.cargo=$n,e.compose=zn,e.concat=Bn,e.concatLimit=Fn,e.concatSeries=Hn,e.constant=Un,e.detect=Gn,e.detectLimit=Kn,e.detectSeries=Jn,e.dir=Xn,e.doDuring=Qn,e.doUntil=er,e.doWhilst=tr,e.during=nr,e.each=ir,e.eachLimit=or,e.eachOf=ve,e.eachOfLimit=de,e.eachOfSeries=Rn,e.eachSeries=ar,e.ensureAsync=sr,e.every=cr,e.everyLimit=ur,e.everySeries=dr,e.filter=mr,e.filterLimit=gr,e.filterSeries=_r,e.forever=br,e.groupBy=wr,e.groupByLimit=yr,e.groupBySeries=kr,e.log=xr,e.map=_e,e.mapLimit=we,e.mapSeries=ke,e.mapValues=Cr,e.mapValuesLimit=Or,e.mapValuesSeries=Sr,e.memoize=Tr,e.nextTick=qr,e.parallel=Pr,e.parallelLimit=Lr,e.priorityQueue=$r,e.queue=jr,e.race=Rr,e.reduce=Nn,e.reduceRight=Nr,e.reflect=Ir,e.reflectAll=zr,e.reject=Fr,e.rejectLimit=Br,e.rejectSeries=Hr,e.retry=Vr,e.retryable=Wr,e.seq=In,e.series=Yr,e.setImmediate=p,e.some=Gr,e.someLimit=Kr,e.someSeries=Jr,e.sortBy=Zr,e.timeout=Xr,e.times=ri,e.timesLimit=ni,e.timesSeries=ii,e.transform=oi,e.tryEach=ai,e.unmemoize=si,e.until=ci,e.waterfall=ui,e.whilst=li,e.all=cr,e.allLimit=ur,e.allSeries=dr,e.any=Gr,e.anyLimit=Kr,e.anySeries=Jr,e.find=Gn,e.findLimit=Kn,e.findSeries=Jn,e.forEach=ir,e.forEachSeries=ar,e.forEachLimit=or,e.forEachOf=ve,e.forEachOfSeries=Rn,e.forEachOfLimit=de,e.inject=Nn,e.foldl=Nn,e.foldr=Nr,e.select=mr,e.selectLimit=gr,e.selectSeries=_r,e.wrapSync=f,Object.defineProperty(e,"__esModule",{value:!0})}))},91960:function(t,e,n){n(69599),n(75526).enable("axios")},69599:function(t,e,n){"use strict";var r=n(68466),i=n(81158),o=n(65987),a=n(79351),s=n(75526)("axios"),l="__AXIOS-DEBUG-LOG_URL__";function c(t){var e=t.url;return t.baseURL&&!i(e)&&(e=a(t.baseURL,e)),o(e,t.params,t.paramsSerializer)}var u={request:function(t,e){var n=c(e);Object.defineProperty(e,l,{value:n}),t(e.method.toUpperCase()+" "+n)},response:function(t,e){var n=e.config[l];t(e.status+" "+e.statusText,"("+e.config.method.toUpperCase()+" "+n+")")},error:function(t,e){if(e.config){var n=e.config[l];t(e.name+": "+e.message,"("+e.config.method.toUpperCase()+" "+n+")")}else t(e.name+": "+e.message)}};function d(t,e){void 0===e&&(e=s),t.interceptors.request.use((function(t){return u.request(e,t),t})),t.interceptors.response.use((function(t){return u.response(e,t),t}),(function(t){throw u.error(e,t),t}))}d(r),r.create=function(t){return function(){var e=t.apply(this,arguments);return d(e),e}}(r.create),e=t.exports=function(t){for(var e in u)e in t&&(u[e]=t[e])},e.addLogger=d},68466:function(t,e,n){t.exports=n(35004)},31217:function(t,e,n){"use strict";n(64979);var r=n(21639),i=n(9073),o=n(43),a=n(65987),s=n(48874),l=n(59641),c=n(84429),u=n(49427),d=n(13010),p=n(38110),f=n(73311),h=n(23392);t.exports=function(t){return new Promise((function(e,n){var v,m=t.data,g=t.headers,_=t.responseType,b=t.withXSRFToken;function y(){t.cancelToken&&t.cancelToken.unsubscribe(v),t.signal&&t.signal.removeEventListener("abort",v)}r.isFormData(m)&&r.isStandardBrowserEnv()&&delete g["Content-Type"];var w=new XMLHttpRequest;if(t.auth){var k=t.auth.username||"",x=t.auth.password?unescape(encodeURIComponent(t.auth.password)):"";g.Authorization="Basic "+btoa(k+":"+x)}var O=s(t.baseURL,t.url);function E(){if(w){var r="getAllResponseHeaders"in w?l(w.getAllResponseHeaders()):null,o=_&&"text"!==_&&"json"!==_?w.response:w.responseText,a={data:o,status:w.status,statusText:w.statusText,headers:r,config:t,request:w};i((function(t){e(t),y()}),(function(t){n(t),y()}),a),w=null}}if(w.open(t.method.toUpperCase(),a(O,t.params,t.paramsSerializer),!0),w.timeout=t.timeout,"onloadend"in w?w.onloadend=E:w.onreadystatechange=function(){w&&4===w.readyState&&(0!==w.status||w.responseURL&&0===w.responseURL.indexOf("file:"))&&setTimeout(E)},w.onabort=function(){w&&(n(new d("Request aborted",d.ECONNABORTED,t,w)),w=null)},w.onerror=function(){n(new d("Network Error",d.ERR_NETWORK,t,w)),w=null},w.ontimeout=function(){var e=t.timeout?"timeout of "+t.timeout+"ms exceeded":"timeout exceeded",r=t.transitional||u;t.timeoutErrorMessage&&(e=t.timeoutErrorMessage),n(new d(e,r.clarifyTimeoutError?d.ETIMEDOUT:d.ECONNABORTED,t,w)),w=null},r.isStandardBrowserEnv()&&(b&&r.isFunction(b)&&(b=b(t)),b||!1!==b&&c(O))){var C=t.xsrfHeaderName&&t.xsrfCookieName&&o.read(t.xsrfCookieName);C&&(g[t.xsrfHeaderName]=C)}"setRequestHeader"in w&&r.forEach(g,(function(t,e){"undefined"===typeof m&&"content-type"===e.toLowerCase()?delete g[e]:w.setRequestHeader(e,t)})),r.isUndefined(t.withCredentials)||(w.withCredentials=!!t.withCredentials),_&&"json"!==_&&(w.responseType=t.responseType),"function"===typeof t.onDownloadProgress&&w.addEventListener("progress",t.onDownloadProgress),"function"===typeof t.onUploadProgress&&w.upload&&w.upload.addEventListener("progress",t.onUploadProgress),(t.cancelToken||t.signal)&&(v=function(e){w&&(n(!e||e.type?new p(null,t,w):e),w.abort(),w=null)},t.cancelToken&&t.cancelToken.subscribe(v),t.signal&&(t.signal.aborted?v():t.signal.addEventListener("abort",v))),m||!1===m||0===m||""===m||(m=null);var S=f(O);S&&-1===h.protocols.indexOf(S)?n(new d("Unsupported protocol "+S+":",d.ERR_BAD_REQUEST,t)):w.send(m)}))}},35004:function(t,e,n){"use strict";var r=n(21639),i=n(98681),o=n(28166),a=n(72506),s=n(52329),l=n(32243);function c(t){var e=new o(t),n=i(o.prototype.request,e);return r.extend(n,o.prototype,e),r.extend(n,e),n.create=function(e){return c(a(t,e))},n}var u=c(s);u.Axios=o,u.CanceledError=n(38110),u.CancelToken=n(20222),u.isCancel=n(68179),u.VERSION=n(85660).version,u.toFormData=n(74477),u.AxiosError=n(13010),u.Cancel=u.CanceledError,u.all=function(t){return Promise.all(t)},u.spread=n(633),u.isAxiosError=n(57494),u.formToJSON=function(t){return l(r.isHTMLForm(t)?new FormData(t):t)},t.exports=u,t.exports["default"]=u},20222:function(t,e,n){"use strict";n(16280),n(44114);var r=n(38110);function i(t){if("function"!==typeof t)throw new TypeError("executor must be a function.");var e;this.promise=new Promise((function(t){e=t}));var n=this;this.promise.then((function(t){if(n._listeners){var e=n._listeners.length;while(e-- >0)n._listeners[e](t);n._listeners=null}})),this.promise.then=function(t){var e,r=new Promise((function(t){n.subscribe(t),e=t})).then(t);return r.cancel=function(){n.unsubscribe(e)},r},t((function(t,i,o){n.reason||(n.reason=new r(t,i,o),e(n.reason))}))}i.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},i.prototype.subscribe=function(t){this.reason?t(this.reason):this._listeners?this._listeners.push(t):this._listeners=[t]},i.prototype.unsubscribe=function(t){if(this._listeners){var e=this._listeners.indexOf(t);-1!==e&&this._listeners.splice(e,1)}},i.source=function(){var t,e=new i((function(e){t=e}));return{token:e,cancel:t}},t.exports=i},38110:function(t,e,n){"use strict";var r=n(13010),i=n(21639);function o(t,e,n){r.call(this,null==t?"canceled":t,r.ERR_CANCELED,e,n),this.name="CanceledError"}i.inherits(o,r,{__CANCEL__:!0}),t.exports=o},68179:function(t){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},28166:function(t,e,n){"use strict";n(13609),n(44114);var r=n(21639),i=n(65987),o=n(28340),a=n(80847),s=n(72506),l=n(48874),c=n(17642),u=c.validators;function d(t){this.defaults=t,this.interceptors={request:new o,response:new o}}d.prototype.request=function(t,e){"string"===typeof t?(e=e||{},e.url=t):e=t||{},e=s(this.defaults,e),e.method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var n=e.transitional;void 0!==n&&c.assertOptions(n,{silentJSONParsing:u.transitional(u.boolean),forcedJSONParsing:u.transitional(u.boolean),clarifyTimeoutError:u.transitional(u.boolean)},!1);var i=e.paramsSerializer;void 0!==i&&c.assertOptions(i,{encode:u.function,serialize:u.function},!0),r.isFunction(i)&&(e.paramsSerializer={serialize:i});var o=[],l=!0;this.interceptors.request.forEach((function(t){"function"===typeof t.runWhen&&!1===t.runWhen(e)||(l=l&&t.synchronous,o.unshift(t.fulfilled,t.rejected))}));var d,p=[];if(this.interceptors.response.forEach((function(t){p.push(t.fulfilled,t.rejected)})),!l){var f=[a,void 0];Array.prototype.unshift.apply(f,o),f=f.concat(p),d=Promise.resolve(e);while(f.length)d=d.then(f.shift(),f.shift());return d}var h=e;while(o.length){var v=o.shift(),m=o.shift();try{h=v(h)}catch(g){m(g);break}}try{d=a(h)}catch(g){return Promise.reject(g)}while(p.length)d=d.then(p.shift(),p.shift());return d},d.prototype.getUri=function(t){t=s(this.defaults,t);var e=l(t.baseURL,t.url);return i(e,t.params,t.paramsSerializer)},r.forEach(["delete","get","head","options"],(function(t){d.prototype[t]=function(e,n){return this.request(s(n||{},{method:t,url:e,data:(n||{}).data}))}})),r.forEach(["post","put","patch"],(function(t){function e(e){return function(n,r,i){return this.request(s(i||{},{method:t,headers:e?{"Content-Type":"multipart/form-data"}:{},url:n,data:r}))}}d.prototype[t]=e(),d.prototype[t+"Form"]=e(!0)})),t.exports=d},13010:function(t,e,n){"use strict";n(16280);var r=n(21639);function i(t,e,n,r,i){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack,this.message=t,this.name="AxiosError",e&&(this.code=e),n&&(this.config=n),r&&(this.request=r),i&&(this.response=i)}r.inherits(i,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var o=i.prototype,a={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach((function(t){a[t]={value:t}})),Object.defineProperties(i,a),Object.defineProperty(o,"isAxiosError",{value:!0}),i.from=function(t,e,n,a,s,l){var c=Object.create(o);return r.toFlatObject(t,c,(function(t){return t!==Error.prototype})),i.call(c,t.message,e,n,a,s),c.cause=t,c.name=t.name,l&&Object.assign(c,l),c},t.exports=i},28340:function(t,e,n){"use strict";n(44114);var r=n(21639);function i(){this.handlers=[]}i.prototype.use=function(t,e,n){return this.handlers.push({fulfilled:t,rejected:e,synchronous:!!n&&n.synchronous,runWhen:n?n.runWhen:null}),this.handlers.length-1},i.prototype.eject=function(t){this.handlers[t]&&(this.handlers[t]=null)},i.prototype.clear=function(){this.handlers&&(this.handlers=[])},i.prototype.forEach=function(t){r.forEach(this.handlers,(function(e){null!==e&&t(e)}))},t.exports=i},48874:function(t,e,n){"use strict";var r=n(81158),i=n(79351);t.exports=function(t,e){return t&&!r(e)?i(t,e):e}},80847:function(t,e,n){"use strict";var r=n(21639),i=n(73884),o=n(68179),a=n(52329),s=n(38110),l=n(78277);function c(t){if(t.cancelToken&&t.cancelToken.throwIfRequested(),t.signal&&t.signal.aborted)throw new s}t.exports=function(t){c(t),t.headers=t.headers||{},t.data=i.call(t,t.data,t.headers,null,t.transformRequest),l(t.headers,"Accept"),l(t.headers,"Content-Type"),t.headers=r.merge(t.headers.common||{},t.headers[t.method]||{},t.headers),r.forEach(["delete","get","head","post","put","patch","common"],(function(e){delete t.headers[e]}));var e=t.adapter||a.adapter;return e(t).then((function(e){return c(t),e.data=i.call(t,e.data,e.headers,e.status,t.transformResponse),e}),(function(e){return o(e)||(c(t),e&&e.response&&(e.response.data=i.call(t,e.response.data,e.response.headers,e.response.status,t.transformResponse))),Promise.reject(e)}))}},72506:function(t,e,n){"use strict";var r=n(21639);t.exports=function(t,e){e=e||{};var n={};function i(t,e){return r.isPlainObject(t)&&r.isPlainObject(e)?r.merge(t,e):r.isEmptyObject(e)?r.merge({},t):r.isPlainObject(e)?r.merge({},e):r.isArray(e)?e.slice():e}function o(n){return r.isUndefined(e[n])?r.isUndefined(t[n])?void 0:i(void 0,t[n]):i(t[n],e[n])}function a(t){if(!r.isUndefined(e[t]))return i(void 0,e[t])}function s(n){return r.isUndefined(e[n])?r.isUndefined(t[n])?void 0:i(void 0,t[n]):i(void 0,e[n])}function l(n){return n in e?i(t[n],e[n]):n in t?i(void 0,t[n]):void 0}var c={url:a,method:a,data:a,baseURL:s,transformRequest:s,transformResponse:s,paramsSerializer:s,timeout:s,timeoutMessage:s,withCredentials:s,withXSRFToken:s,adapter:s,responseType:s,xsrfCookieName:s,xsrfHeaderName:s,onUploadProgress:s,onDownloadProgress:s,decompress:s,maxContentLength:s,maxBodyLength:s,beforeRedirect:s,transport:s,httpAgent:s,httpsAgent:s,cancelToken:s,socketPath:s,responseEncoding:s,validateStatus:l};return r.forEach(Object.keys(t).concat(Object.keys(e)),(function(t){var e=c[t]||o,i=e(t);r.isUndefined(i)&&e!==l||(n[t]=i)})),n}},9073:function(t,e,n){"use strict";var r=n(13010);t.exports=function(t,e,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?e(new r("Request failed with status code "+n.status,[r.ERR_BAD_REQUEST,r.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}},73884:function(t,e,n){"use strict";var r=n(21639),i=n(52329);t.exports=function(t,e,n,o){var a=this||i;return r.forEach(o,(function(r){t=r.call(a,t,e,n)})),t}},52329:function(t,e,n){"use strict";var r=n(21639),i=n(78277),o=n(13010),a=n(49427),s=n(74477),l=n(12888),c=n(23392),u=n(32243),d={"Content-Type":"application/x-www-form-urlencoded"};function p(t,e){!r.isUndefined(t)&&r.isUndefined(t["Content-Type"])&&(t["Content-Type"]=e)}function f(){var t;return("undefined"!==typeof XMLHttpRequest||"undefined"!==typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(t=n(31217)),t}function h(t,e,n){if(r.isString(t))try{return(e||JSON.parse)(t),r.trim(t)}catch(i){if("SyntaxError"!==i.name)throw i}return(n||JSON.stringify)(t)}var v={transitional:a,adapter:f(),transformRequest:[function(t,e){i(e,"Accept"),i(e,"Content-Type");var n=e&&e["Content-Type"]||"",o=n.indexOf("application/json")>-1,a=r.isObject(t);a&&r.isHTMLForm(t)&&(t=new FormData(t));var c,d=r.isFormData(t);if(d)return o?JSON.stringify(u(t)):t;if(r.isArrayBuffer(t)||r.isBuffer(t)||r.isStream(t)||r.isFile(t)||r.isBlob(t))return t;if(r.isArrayBufferView(t))return t.buffer;if(r.isURLSearchParams(t))return p(e,"application/x-www-form-urlencoded;charset=utf-8"),t.toString();if(a){if(-1!==n.indexOf("application/x-www-form-urlencoded"))return l(t,this.formSerializer).toString();if((c=r.isFileList(t))||n.indexOf("multipart/form-data")>-1){var f=this.env&&this.env.FormData;return s(c?{"files[]":t}:t,f&&new f,this.formSerializer)}}return a||o?(p(e,"application/json"),h(t)):t}],transformResponse:[function(t){var e=this.transitional||v.transitional,n=e&&e.forcedJSONParsing,i="json"===this.responseType;if(t&&r.isString(t)&&(n&&!this.responseType||i)){var a=e&&e.silentJSONParsing,s=!a&&i;try{return JSON.parse(t)}catch(l){if(s){if("SyntaxError"===l.name)throw o.from(l,o.ERR_BAD_RESPONSE,this,null,this.response);throw l}}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:c.classes.FormData,Blob:c.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(t){v.headers[t]={}})),r.forEach(["post","put","patch"],(function(t){v.headers[t]=r.merge(d)})),t.exports=v},49427:function(t){"use strict";t.exports={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1}},54559:function(t,e,n){t.exports=n(13845)},85660:function(t){t.exports={version:"0.28.1"}},9527:function(t,e,n){"use strict";n(44114);var r=n(74477);function i(t){var e={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(t).replace(/[!'\(\)~]|%20|%00/g,(function(t){return e[t]}))}function o(t,e){this._pairs=[],t&&r(t,this,e)}var a=o.prototype;a.append=function(t,e){this._pairs.push([t,e])},a.toString=function(t){var e=t?function(e){return t.call(this,e,i)}:i;return this._pairs.map((function(t){return e(t[0])+"="+e(t[1])}),"").join("&")},t.exports=o},98681:function(t){"use strict";t.exports=function(t,e){return function(){return t.apply(e,arguments)}}},65987:function(t,e,n){"use strict";var r=n(21639),i=n(9527);function o(t){return encodeURIComponent(t).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,n){if(!e)return t;var a=t.indexOf("#");-1!==a&&(t=t.slice(0,a));var s,l=n&&n.encode||o,c=n&&n.serialize;return s=c?c(e,n):r.isURLSearchParams(e)?e.toString():new i(e,n).toString(l),s&&(t+=(-1===t.indexOf("?")?"?":"&")+s),t}},79351:function(t){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},43:function(t,e,n){"use strict";n(44114);var r=n(21639);t.exports=r.isStandardBrowserEnv()?function(){return{write:function(t,e,n,i,o,a){var s=[];s.push(t+"="+encodeURIComponent(e)),r.isNumber(n)&&s.push("expires="+new Date(n).toGMTString()),r.isString(i)&&s.push("path="+i),r.isString(o)&&s.push("domain="+o),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()},32243:function(t,e,n){"use strict";var r=n(21639);function i(t){return r.matchAll(/\w+|\[(\w*)]/g,t).map((function(t){return"[]"===t[0]?"":t[1]||t[0]}))}function o(t){var e,n,r={},i=Object.keys(t),o=i.length;for(e=0;e=t.length;if(s=!s&&r.isArray(i)?i.length:s,c)return r.hasOwnProperty(i,s)?i[s]=[i[s],n]:i[s]=n,!l;i[s]&&r.isObject(i[s])||(i[s]=[]);var u=e(t,n,i[s],a);return u&&r.isArray(i[s])&&(i[s]=o(i[s])),!l}if(r.isFormData(t)&&r.isFunction(t.entries)){var n={};return r.forEachEntry(t,(function(t,r){e(i(t),r,n,0)})),n}return null}t.exports=a},81158:function(t){"use strict";t.exports=function(t){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(t)}},57494:function(t,e,n){"use strict";var r=n(21639);t.exports=function(t){return r.isObject(t)&&!0===t.isAxiosError}},84429:function(t,e,n){"use strict";var r=n(21639);t.exports=r.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(t){var r=t;return e&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=i(window.location.href),function(e){var n=r.isString(e)?i(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return function(){return!0}}()},78277:function(t,e,n){"use strict";var r=n(21639);t.exports=function(t,e){r.forEach(t,(function(n,r){r!==e&&r.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[r])}))}},59641:function(t,e,n){"use strict";var r=n(21639),i=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,n,o,a={};return t?(r.forEach(t.split("\n"),(function(t){if(o=t.indexOf(":"),e=r.trim(t.slice(0,o)).toLowerCase(),n=r.trim(t.slice(o+1)),e){if(a[e]&&i.indexOf(e)>=0)return;a[e]="set-cookie"===e?(a[e]?a[e]:[]).concat([n]):a[e]?a[e]+", "+n:n}})),a):a}},73311:function(t){"use strict";t.exports=function(t){var e=/^([-+\w]{1,25})(:?\/\/|:)/.exec(t);return e&&e[1]||""}},633:function(t){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},74477:function(t,e,n){"use strict";n(16280),n(44114);var r=n(21639),i=n(13010),o=n(54559);function a(t){return r.isPlainObject(t)||r.isArray(t)}function s(t){return r.endsWith(t,"[]")?t.slice(0,-2):t}function l(t,e,n){return t?t.concat(e).map((function(t,e){return t=s(t),!n&&e?"["+t+"]":t})).join(n?".":""):e}function c(t){return r.isArray(t)&&!t.some(a)}var u=r.toFlatObject(r,{},null,(function(t){return/^is[A-Z]/.test(t)}));function d(t){return t&&r.isFunction(t.append)&&"FormData"===t[Symbol.toStringTag]&&t[Symbol.iterator]}function p(t,e,n){if(!r.isObject(t))throw new TypeError("target must be an object");e=e||new(o||FormData),n=r.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,(function(t,e){return!r.isUndefined(e[t])}));var p=n.metaTokens,f=n.visitor||b,h=n.dots,v=n.indexes,m=n.Blob||"undefined"!==typeof Blob&&Blob,g=m&&d(e);if(!r.isFunction(f))throw new TypeError("visitor must be a function");function _(t){if(null===t)return"";if(r.isDate(t))return t.toISOString();if(!g&&r.isBlob(t))throw new i("Blob is not supported. Use a Buffer instead.");return r.isArrayBuffer(t)||r.isTypedArray(t)?g&&"function"===typeof Blob?new Blob([t]):Buffer.from(t):t}function b(t,n,i){var o=t;if(t&&!i&&"object"===typeof t)if(r.endsWith(n,"{}"))n=p?n:n.slice(0,-2),t=JSON.stringify(t);else if(r.isArray(t)&&c(t)||r.isFileList(t)||r.endsWith(n,"[]")&&(o=r.toArray(t)))return n=s(n),o.forEach((function(t,i){!r.isUndefined(t)&&e.append(!0===v?l([n],i,h):null===v?n:n+"[]",_(t))})),!1;return!!a(t)||(e.append(l(i,n,h),_(t)),!1)}var y=[],w=Object.assign(u,{defaultVisitor:b,convertValue:_,isVisitable:a});function k(t,n){if(!r.isUndefined(t)){if(-1!==y.indexOf(t))throw Error("Circular reference detected in "+n.join("."));y.push(t),r.forEach(t,(function(t,i){var o=!r.isUndefined(t)&&f.call(e,t,r.isString(i)?i.trim():i,n,w);!0===o&&k(t,n?n.concat(i):[i])})),y.pop()}}if(!r.isObject(t))throw new TypeError("data must be an object");return k(t),e}t.exports=p},12888:function(t,e,n){"use strict";var r=n(21639),i=n(74477),o=n(23392);t.exports=function(t,e){return i(t,new o.classes.URLSearchParams,Object.assign({visitor:function(t,e,n,i){return o.isNode&&r.isBuffer(t)?(this.append(e,t.toString("base64")),!1):i.defaultVisitor.apply(this,arguments)}},e))}},17642:function(t,e,n){"use strict";var r=n(85660).version,i=n(13010),o={};["object","boolean","number","function","string","symbol"].forEach((function(t,e){o[t]=function(n){return typeof n===t||"a"+(e<1?"n ":" ")+t}}));var a={};function s(t,e,n){if("object"!==typeof t)throw new i("options must be an object",i.ERR_BAD_OPTION_VALUE);var r=Object.keys(t),o=r.length;while(o-- >0){var a=r[o],s=e[a];if(s){var l=t[a],c=void 0===l||s(l,a,t);if(!0!==c)throw new i("option "+a+" must be "+c,i.ERR_BAD_OPTION_VALUE)}else if(!0!==n)throw new i("Unknown option "+a,i.ERR_BAD_OPTION)}}o.transitional=function(t,e,n){function o(t,e){return"[Axios v"+r+"] Transitional option '"+t+"'"+e+(n?". "+n:"")}return function(n,r,s){if(!1===t)throw new i(o(r," has been removed"+(e?" in "+e:"")),i.ERR_DEPRECATED);return e&&!a[r]&&(a[r]=!0,console.warn(o(r," has been deprecated since v"+e+" and will be removed in the near future"))),!t||t(n,r,s)}},t.exports={assertOptions:s,validators:o}},58960:function(t){"use strict";t.exports=FormData},3711:function(t,e,n){"use strict";var r=n(9527);t.exports="undefined"!==typeof URLSearchParams?URLSearchParams:r},78899:function(t,e,n){"use strict";t.exports={isBrowser:!0,classes:{URLSearchParams:n(3711),FormData:n(58960),Blob:Blob},protocols:["http","https","file","blob","url","data"]}},23392:function(t,e,n){"use strict";t.exports=n(78899)},21639:function(t,e,n){"use strict";n(48140),n(21903),n(91134),n(28845),n(44114);var r=n(98681),i=Object.prototype.toString,o=function(t){return function(e){var n=i.call(e);return t[n]||(t[n]=n.slice(8,-1).toLowerCase())}}(Object.create(null));function a(t){return t=t.toLowerCase(),function(e){return o(e)===t}}function s(t){return Array.isArray(t)}function l(t){return"undefined"===typeof t}function c(t){return null!==t&&!l(t)&&null!==t.constructor&&!l(t.constructor)&&"function"===typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}var u=a("ArrayBuffer");function d(t){var e;return e="undefined"!==typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):t&&t.buffer&&u(t.buffer),e}function p(t){return"string"===typeof t}function f(t){return"number"===typeof t}function h(t){return null!==t&&"object"===typeof t}function v(t){if("object"!==o(t))return!1;var e=Object.getPrototypeOf(t);return null===e||e===Object.prototype}function m(t){return t&&0===Object.keys(t).length&&Object.getPrototypeOf(t)===Object.prototype}var g=a("Date"),_=a("File"),b=a("Blob"),y=a("FileList");function w(t){return"[object Function]"===i.call(t)}function k(t){return h(t)&&w(t.pipe)}function x(t){var e="[object FormData]";return t&&("function"===typeof FormData&&t instanceof FormData||i.call(t)===e||w(t.toString)&&t.toString()===e)}var O=a("URLSearchParams");function E(t){return t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}function C(){var t;return("undefined"===typeof navigator||"ReactNative"!==(t=navigator.product)&&"NativeScript"!==t&&"NS"!==t)&&("undefined"!==typeof window&&"undefined"!==typeof document)}function S(t,e){if(null!==t&&"undefined"!==typeof t)if("object"!==typeof t&&(t=[t]),s(t))for(var n=0,r=t.length;n0)a=i[o],r&&!r(a,t,e)||s[a]||(e[a]=t[a],s[a]=!0);t=!1!==n&&Object.getPrototypeOf(t)}while(t&&(!n||n(t,e))&&t!==Object.prototype);return e}function L(t,e,n){t=String(t),(void 0===n||n>t.length)&&(n=t.length),n-=e.length;var r=t.indexOf(e,n);return-1!==r&&r===n}function j(t){if(!t)return null;if(s(t))return t;var e=t.length;if(!f(e))return null;var n=new Array(e);while(e-- >0)n[e]=t[e];return n}var $=function(t){return function(e){return t&&e instanceof t}}("undefined"!==typeof Uint8Array&&Object.getPrototypeOf(Uint8Array));function R(t,e){var n,r=t&&t[Symbol.iterator],i=r.call(t);while((n=i.next())&&!n.done){var o=n.value;e.call(t,o[0],o[1])}}function N(t,e){var n,r=[];while(null!==(n=t.exec(e)))r.push(n);return r}var I=a("HTMLFormElement"),z=function(t){return function(e,n){return t.call(e,n)}}(Object.prototype.hasOwnProperty);t.exports={isArray:s,isArrayBuffer:u,isBuffer:c,isFormData:x,isArrayBufferView:d,isString:p,isNumber:f,isObject:h,isPlainObject:v,isEmptyObject:m,isUndefined:l,isDate:g,isFile:_,isBlob:b,isFunction:w,isStream:k,isURLSearchParams:O,isStandardBrowserEnv:C,forEach:S,merge:A,extend:T,trim:E,stripBOM:q,inherits:M,toFlatObject:P,kindOf:o,kindOfTest:a,endsWith:L,toArray:j,isTypedArray:$,isFileList:y,forEachEntry:R,matchAll:N,isHTMLForm:I,hasOwnProperty:z}},75526:function(t,e,n){function r(){return!("undefined"===typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"===typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!==typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!==typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!==typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))}function i(e){if(e[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+e[0]+(this.useColors?"%c ":" ")+"+"+t.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;e.splice(1,0,n,"color: inherit");let r=0,i=0;e[0].replace(/%[a-zA-Z%]/g,(t=>{"%%"!==t&&(r++,"%c"===t&&(i=r))})),e.splice(i,0,n)}function o(t){try{t?e.storage.setItem("debug",t):e.storage.removeItem("debug")}catch(n){}}function a(){let t;try{t=e.storage.getItem("debug")}catch(n){}return!t&&"undefined"!==typeof process&&"env"in process&&(t={NODE_ENV:"production",BASE_URL:"/_client/"}.DEBUG),t}function s(){try{return localStorage}catch(t){}}e.formatArgs=i,e.save=o,e.load=a,e.useColors=r,e.storage=s(),e.destroy=(()=>{let t=!1;return()=>{t||(t=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),e.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],e.log=console.debug||console.log||(()=>{}),t.exports=n(825)(e);const{formatters:l}=t.exports;l.j=function(t){try{return JSON.stringify(t)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}},825:function(t,e,n){function r(t){function e(t){let e=0;for(let n=0;n{if("%%"===e)return"%";a++;const o=r.formatters[i];if("function"===typeof o){const r=t[a];e=o.call(n,r),t.splice(a,1),a--}return e})),r.formatArgs.call(n,t);const l=n.log||r.log;l.apply(n,t)}return s.namespace=t,s.useColors=r.useColors(),s.color=r.selectColor(t),s.extend=i,s.destroy=r.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==a?a:(n!==r.namespaces&&(n=r.namespaces,o=r.enabled(t)),o),set:t=>{a=t}}),"function"===typeof r.init&&r.init(s),s}function i(t,e){const n=r(this.namespace+("undefined"===typeof e?":":e)+t);return n.log=this.log,n}function o(t){let e;r.save(t),r.namespaces=t,r.names=[],r.skips=[];const n=("string"===typeof t?t:"").split(/[\s,]+/),i=n.length;for(e=0;e"-"+t))].join(",");return r.enable(""),t}function s(t){if("*"===t[t.length-1])return!0;let e,n;for(e=0,n=r.skips.length;e{r[e]=t[e]})),r.names=[],r.skips=[],r.formatters={},r.selectColor=e,r.enable(r.load()),r}n(13609),n(44114),n(16280),t.exports=r},61536:function(t,e,n){"use strict";n(16280),n(44114),n(13609);var r,i="object"===typeof Reflect?Reflect:null,o=i&&"function"===typeof i.apply?i.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)};function a(t){console&&console.warn&&console.warn(t)}r=i&&"function"===typeof i.ownKeys?i.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var s=Number.isNaN||function(t){return t!==t};function l(){l.init.call(this)}t.exports=l,t.exports.once=y,l.EventEmitter=l,l.prototype._events=void 0,l.prototype._eventsCount=0,l.prototype._maxListeners=void 0;var c=10;function u(t){if("function"!==typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function d(t){return void 0===t._maxListeners?l.defaultMaxListeners:t._maxListeners}function p(t,e,n,r){var i,o,s;if(u(n),o=t._events,void 0===o?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,n.listener?n.listener:n),o=t._events),s=o[e]),void 0===s)s=o[e]=n,++t._eventsCount;else if("function"===typeof s?s=o[e]=r?[n,s]:[s,n]:r?s.unshift(n):s.push(n),i=d(t),i>0&&s.length>i&&!s.warned){s.warned=!0;var l=new Error("Possible EventEmitter memory leak detected. "+s.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");l.name="MaxListenersExceededWarning",l.emitter=t,l.type=e,l.count=s.length,a(l)}return t}function f(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function h(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=f.bind(r);return i.listener=n,r.wrapFn=i,i}function v(t,e,n){var r=t._events;if(void 0===r)return[];var i=r[e];return void 0===i?[]:"function"===typeof i?n?[i.listener||i]:[i]:n?b(i):g(i,i.length)}function m(t){var e=this._events;if(void 0!==e){var n=e[t];if("function"===typeof n)return 1;if(void 0!==n)return n.length}return 0}function g(t,e){for(var n=new Array(e),r=0;r0&&(a=e[0]),a instanceof Error)throw a;var s=new Error("Unhandled error."+(a?" ("+a.message+")":""));throw s.context=a,s}var l=i[t];if(void 0===l)return!1;if("function"===typeof l)o(l,this,e);else{var c=l.length,u=g(l,c);for(n=0;n=0;o--)if(n[o]===e||n[o].listener===e){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():_(n,i),1===n.length&&(r[t]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",t,a||e)}return this},l.prototype.off=l.prototype.removeListener,l.prototype.removeAllListeners=function(t){var e,n,r;if(n=this._events,void 0===n)return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[t]&&(0===--this._eventsCount?this._events=Object.create(null):delete n[t]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r=0;r--)this.removeListener(t,e[r]);return this},l.prototype.listeners=function(t){return v(this,t,!0)},l.prototype.rawListeners=function(t){return v(this,t,!1)},l.listenerCount=function(t,e){return"function"===typeof t.listenerCount?t.listenerCount(e):m.call(t,e)},l.prototype.listenerCount=m,l.prototype.eventNames=function(){return this._eventsCount>0?r(this._events):[]}},52315:function(t,e,n){n(13609),n(44114);var r=-1,i=1,o=0;function a(t,e,n,r){if(t===e)return t?[[o,t]]:[];if(null!=n){var i=y(t,e,n);if(i)return i}var a=u(t,e),l=t.substring(0,a);t=t.substring(a),e=e.substring(a),a=d(t,e);var c=t.substring(t.length-a);t=t.substring(0,t.length-a),e=e.substring(0,e.length-a);var p=s(t,e);return l&&p.unshift([o,l]),c&&p.push([o,c]),f(p,r),p}function s(t,e){var n;if(!t)return[[i,e]];if(!e)return[[r,t]];var s=t.length>e.length?t:e,c=t.length>e.length?e:t,u=s.indexOf(c);if(-1!==u)return n=[[i,s.substring(0,u)],[o,c],[i,s.substring(u+c.length)]],t.length>e.length&&(n[0][0]=n[2][0]=r),n;if(1===c.length)return[[r,t],[i,e]];var d=p(t,e);if(d){var f=d[0],h=d[1],v=d[2],m=d[3],g=d[4],_=a(f,v),b=a(h,m);return _.concat([[o,g]],b)}return l(t,e)}function l(t,e){for(var n=t.length,o=e.length,a=Math.ceil((n+o)/2),s=a,l=2*a,u=new Array(l),d=new Array(l),p=0;pn)m+=2;else if(k>o)v+=2;else if(h){var x=s+f-y;if(x>=0&&x=O)return c(t,e,S,k)}}}for(var E=-b+g;E<=b-_;E+=2){x=s+E;O=E===-b||E!==b&&d[x-1]n)_+=2;else if(C>o)g+=2;else if(!h){w=s+f-E;if(w>=0&&w=O)return c(t,e,S,k)}}}}return[[r,t],[i,e]]}function c(t,e,n,r){var i=t.substring(0,n),o=e.substring(0,r),s=t.substring(n),l=e.substring(r),c=a(i,o),u=a(s,l);return c.concat(u)}function u(t,e){if(!t||!e||t.charAt(0)!==e.charAt(0))return 0;var n=0,r=Math.min(t.length,e.length),i=r,o=0;while(ne.length?t:e,r=t.length>e.length?e:t;if(n.length<4||2*r.length=t.length?[r,i,o,a,c]:null}var o,a,s,l,c,p=i(n,r,Math.ceil(n.length/4)),f=i(n,r,Math.ceil(n.length/2));if(!p&&!f)return null;o=f?p&&p[4].length>f[4].length?p:f:p,t.length>e.length?(a=o[0],s=o[1],l=o[2],c=o[3]):(l=o[0],c=o[1],a=o[2],s=o[3]);var h=o[4];return[a,s,l,c,h]}function f(t,e){t.push([o,""]);var n,a=0,s=0,l=0,c="",p="";while(a=0&&g(t[h][1])){var v=t[h][1].slice(-1);if(t[h][1]=t[h][1].slice(0,-1),c=v+c,p=v+p,!t[h][1]){t.splice(h,1),a--;var _=h-1;t[_]&&t[_][0]===i&&(l++,p=t[_][1]+p,_--),t[_]&&t[_][0]===r&&(s++,c=t[_][1]+c,_--),h=_}}if(m(t[a][1])){v=t[a][1].charAt(0);t[a][1]=t[a][1].slice(1),c+=v,p+=v}}if(a0||p.length>0){c.length>0&&p.length>0&&(n=u(p,c),0!==n&&(h>=0?t[h][1]+=p.substring(0,n):(t.splice(0,0,[o,p.substring(0,n)]),a++),p=p.substring(n),c=c.substring(n)),n=d(p,c),0!==n&&(t[a][1]=p.substring(p.length-n)+t[a][1],p=p.substring(0,p.length-n),c=c.substring(0,c.length-n)));var b=l+s;0===c.length&&0===p.length?(t.splice(a-b,b),a-=b):0===c.length?(t.splice(a-b,b,[i,p]),a=a-b+1):0===p.length?(t.splice(a-b,b,[r,c]),a=a-b+1):(t.splice(a-b,b,[r,c],[i,p]),a=a-b+2)}0!==a&&t[a-1][0]===o?(t[a-1][1]+=t[a][1],t.splice(a,1)):a++,l=0,s=0,c="",p="";break}""===t[t.length-1][1]&&t.pop();var y=!1;a=1;while(a=55296&&t<=56319}function v(t){return t>=56320&&t<=57343}function m(t){return v(t.charCodeAt(0))}function g(t){return h(t.charCodeAt(t.length-1))}function _(t){for(var e=[],n=0;n0&&e.push(t[n]);return e}function b(t,e,n,a){return g(t)||m(a)?null:_([[o,t],[r,e],[i,n],[o,a]])}function y(t,e,n){var r="number"===typeof n?{index:n,length:0}:n.oldRange,i="number"===typeof n?null:n.newRange,o=t.length,a=e.length;if(0===r.length&&(null===i||0===i.length)){var s=r.index,l=t.slice(0,s),c=t.slice(s),u=i?i.index:null,d=s+a-o;if((null===u||u===d)&&!(d<0||d>a)){var p=e.slice(0,d),f=e.slice(d);if(f===c){var h=Math.min(s,d),v=l.slice(0,h),m=p.slice(0,h);if(v===m){var g=l.slice(h),_=p.slice(h);return b(v,g,_,c)}}}if(null===u||u===s){var y=s;p=e.slice(0,y),f=e.slice(y);if(p===l){var w=Math.min(o-y,a-y),k=c.slice(c.length-w),x=f.slice(f.length-w);if(k===x){g=c.slice(0,c.length-w),_=f.slice(0,f.length-w);return b(l,g,_,k)}}}}if(r.length>0&&i&&0===i.length){v=t.slice(0,r.index),k=t.slice(r.index+r.length),h=v.length,w=k.length;if(!(a=e.status}function o(t){try{t.dispatchEvent(new MouseEvent("click"))}catch(r){var e=document.createEvent("MouseEvents");e.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),t.dispatchEvent(e)}}var a="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof n.g&&n.g.global===n.g?n.g:void 0,s=a.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),l=a.saveAs||("object"!=typeof window||window!==a?function(){}:"download"in HTMLAnchorElement.prototype&&!s?function(t,e,n){var s=a.URL||a.webkitURL,l=document.createElement("a");e=e||t.name||"download",l.download=e,l.rel="noopener","string"==typeof t?(l.href=t,l.origin===location.origin?o(l):i(l.href)?r(t,e,n):o(l,l.target="_blank")):(l.href=s.createObjectURL(t),setTimeout((function(){s.revokeObjectURL(l.href)}),4e4),setTimeout((function(){o(l)}),0))}:"msSaveOrOpenBlob"in navigator?function(t,n,a){if(n=n||t.name||"download","string"!=typeof t)navigator.msSaveOrOpenBlob(e(t,a),n);else if(i(t))r(t,n,a);else{var s=document.createElement("a");s.href=t,s.target="_blank",setTimeout((function(){o(s)}))}}:function(t,e,n,i){if(i=i||open("","_blank"),i&&(i.document.title=i.document.body.innerText="downloading..."),"string"==typeof t)return r(t,e,n);var o="application/octet-stream"===t.type,l=/constructor/i.test(a.HTMLElement)||a.safari,c=/CriOS\/[\d]+/.test(navigator.userAgent);if((c||o&&l||s)&&"undefined"!=typeof FileReader){var u=new FileReader;u.onloadend=function(){var t=u.result;t=c?t:t.replace(/^data:[^;]*;/,"data:attachment/file;"),i?i.location.href=t:location=t,i=null},u.readAsDataURL(t)}else{var d=a.URL||a.webkitURL,p=d.createObjectURL(t);i?i.location=p:location.href=p,i=null,setTimeout((function(){d.revokeObjectURL(p)}),4e4)}});a.saveAs=l.saveAs=l,t.exports=l}))},13845:function(t){t.exports="object"==typeof self?self.FormData:window.FormData},8561:function(t,e,n){n(16280);var r=t.exports=function(t,e){if(e||(e=16),void 0===t&&(t=128),t<=0)return"0";for(var n=Math.log(Math.pow(2,t))/Math.log(e),i=2;n===1/0;i*=2)n=Math.log(Math.pow(2,t/i))/Math.log(e)*i;var o=n-Math.floor(n),a="";for(i=0;i=Math.pow(2,t)?r(t,e):a};r.rack=function(t,e,n){var i=function(i){var a=0;do{if(a++>10){if(!n)throw new Error("too many ID collisions, use more bits");t+=n}var s=r(t,e)}while(Object.hasOwnProperty.call(o,s));return o[s]=i,s},o=i.hats={};return i.get=function(t){return i.hats[t]},i.set=function(t,e){return i.hats[t]=e,i},i.bits=t||128,i.base=e||16,i}},76092:function(t,e,n){t=n.nmd(t),n(44114);var r=200,i="__lodash_hash_undefined__",o=9007199254740991,a="[object Arguments]",s="[object Array]",l="[object Boolean]",c="[object Date]",u="[object Error]",d="[object Function]",p="[object GeneratorFunction]",f="[object Map]",h="[object Number]",v="[object Object]",m="[object Promise]",g="[object RegExp]",_="[object Set]",b="[object String]",y="[object Symbol]",w="[object WeakMap]",k="[object ArrayBuffer]",x="[object DataView]",O="[object Float32Array]",E="[object Float64Array]",C="[object Int8Array]",S="[object Int16Array]",A="[object Int32Array]",T="[object Uint8Array]",q="[object Uint8ClampedArray]",M="[object Uint16Array]",P="[object Uint32Array]",L=/[\\^$.*+?()[\]{}|]/g,j=/\w*$/,$=/^\[object .+?Constructor\]$/,R=/^(?:0|[1-9]\d*)$/,N={};N[a]=N[s]=N[k]=N[x]=N[l]=N[c]=N[O]=N[E]=N[C]=N[S]=N[A]=N[f]=N[h]=N[v]=N[g]=N[_]=N[b]=N[y]=N[T]=N[q]=N[M]=N[P]=!0,N[u]=N[d]=N[w]=!1;var I="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,z="object"==typeof self&&self&&self.Object===Object&&self,D=I||z||Function("return this")(),F=e&&!e.nodeType&&e,B=F&&t&&!t.nodeType&&t,H=B&&B.exports===F;function U(t,e){return t.set(e[0],e[1]),t}function V(t,e){return t.add(e),t}function W(t,e){var n=-1,r=t?t.length:0;while(++n-1}function Ut(t,e){var n=this.__data__,r=oe(n,t);return r<0?n.push([t,e]):n[r][1]=e,this}function Vt(t){var e=-1,n=t?t.length:0;this.clear();while(++e-1&&t%1==0&&t-1&&t%1==0&&t<=o}function We(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function Ye(t){return!!t&&"object"==typeof t}function Ge(t){return Fe(t)?re(t):pe(t)}function Ke(){return[]}function Je(){return!1}t.exports=Ne},84231:function(t,e,n){t=n.nmd(t),n(44114);var r=200,i="__lodash_hash_undefined__",o=1,a=2,s=9007199254740991,l="[object Arguments]",c="[object Array]",u="[object AsyncFunction]",d="[object Boolean]",p="[object Date]",f="[object Error]",h="[object Function]",v="[object GeneratorFunction]",m="[object Map]",g="[object Number]",_="[object Null]",b="[object Object]",y="[object Promise]",w="[object Proxy]",k="[object RegExp]",x="[object Set]",O="[object String]",E="[object Symbol]",C="[object Undefined]",S="[object WeakMap]",A="[object ArrayBuffer]",T="[object DataView]",q="[object Float32Array]",M="[object Float64Array]",P="[object Int8Array]",L="[object Int16Array]",j="[object Int32Array]",$="[object Uint8Array]",R="[object Uint8ClampedArray]",N="[object Uint16Array]",I="[object Uint32Array]",z=/[\\^$.*+?()[\]{}|]/g,D=/^\[object .+?Constructor\]$/,F=/^(?:0|[1-9]\d*)$/,B={};B[q]=B[M]=B[P]=B[L]=B[j]=B[$]=B[R]=B[N]=B[I]=!0,B[l]=B[c]=B[A]=B[d]=B[T]=B[p]=B[f]=B[h]=B[m]=B[g]=B[b]=B[k]=B[x]=B[O]=B[S]=!1;var H="object"==typeof n.g&&n.g&&n.g.Object===Object&&n.g,U="object"==typeof self&&self&&self.Object===Object&&self,V=H||U||Function("return this")(),W=e&&!e.nodeType&&e,Y=W&&t&&!t.nodeType&&t,G=Y&&Y.exports===W,K=G&&H.process,J=function(){try{return K&&K.binding&&K.binding("util")}catch(t){}}(),Z=J&&J.isTypedArray;function X(t,e){var n=-1,r=null==t?0:t.length,i=0,o=[];while(++n-1}function Jt(t,e){var n=this.__data__,r=fe(n,t);return r<0?(++this.size,n.push([t,e])):n[r][1]=e,this}function Zt(t){var e=-1,n=null==t?0:t.length;this.clear();while(++ec))return!1;var d=s.get(t);if(d&&s.get(e))return d==e;var p=-1,f=!0,h=n&a?new re:void 0;s.set(t,e),s.set(e,t);while(++p-1&&t%1==0&&t-1&&t%1==0&&t<=s}function Ve(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}function We(t){return null!=t&&"object"==typeof t}var Ye=Z?nt(Z):ye;function Ge(t){return De(t)?pe(t):we(t)}function Ke(){return[]}function Je(){return!1}t.exports=Be},11280:function(t,e,n){n(16280);var r=1e3,i=60*r,o=60*i,a=24*o,s=7*a,l=365.25*a;function c(t){if(t=String(t),!(t.length>100)){var e=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(t);if(e){var n=parseFloat(e[1]),c=(e[2]||"ms").toLowerCase();switch(c){case"years":case"year":case"yrs":case"yr":case"y":return n*l;case"weeks":case"week":case"w":return n*s;case"days":case"day":case"d":return n*a;case"hours":case"hour":case"hrs":case"hr":case"h":return n*o;case"minutes":case"minute":case"mins":case"min":case"m":return n*i;case"seconds":case"second":case"secs":case"sec":case"s":return n*r;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return n;default:return}}}}function u(t){var e=Math.abs(t);return e>=a?Math.round(t/a)+"d":e>=o?Math.round(t/o)+"h":e>=i?Math.round(t/i)+"m":e>=r?Math.round(t/r)+"s":t+"ms"}function d(t){var e=Math.abs(t);return e>=a?p(t,e,a,"day"):e>=o?p(t,e,o,"hour"):e>=i?p(t,e,i,"minute"):e>=r?p(t,e,r,"second"):t+" ms"}function p(t,e,n,r){var i=e>=1.5*n;return Math.round(t/n)+" "+r+(i?"s":"")}t.exports=function(t,e){e=e||{};var n=typeof t;if("string"===n&&t.length>0)return c(t);if("number"===n&&isFinite(t))return e.long?d(t):u(t);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(t))}},84288:function(t,e,n){function r(t,e,n,r){var i=function(t,n,r,i){e(r,t,n,"left"),e(i,n,t,"right")},o=t.transformX=function(t,e){n(t),n(e);for(var a=[],s=0;s=r||o!==e.p[i])return null}return n},a.canOpAffectPath=function(t,e){return null!=a.commonLengthForOps({p:e},t)},a.transformComponent=function(t,e,n,i){e=o(e);var u=a.commonLengthForOps(n,e),d=a.commonLengthForOps(e,n),p=e.p.length,f=n.p.length;if((null!=e.na||e.t)&&p++,(null!=n.na||n.t)&&f++,null!=d&&f>p&&e.p[d]==n.p[d])if(void 0!==e.ld){var h=o(n);h.p=h.p.slice(p),e.ld=a.apply(o(e.ld),[h])}else if(void 0!==e.od){h=o(n);h.p=h.p.slice(p),e.od=a.apply(o(e.od),[h])}if(null!=u){var v=p==f;h=n;if(null==e.si&&null==e.sd||null==n.si&&null==n.sd||(l(e),h=o(n),l(h)),h.t&&s[h.t]){if(e.t&&e.t===h.t){var m=s[e.t].transform(e.o,h.o,i);if(null!=e.si||null!=e.sd)for(var g=e.p,_=0;_0)&&(e.o=m,a.append(t,e));return t}}else if(void 0!==n.na);else if(void 0!==n.li&&void 0!==n.ld){if(n.p[u]===e.p[u]){if(!v)return t;if(void 0!==e.ld){if(void 0===e.li||"left"!==i)return t;e.ld=o(n.li)}}}else if(void 0!==n.li)void 0!==e.li&&void 0===e.ld&&v&&e.p[u]===n.p[u]?"right"===i&&e.p[u]++:n.p[u]<=e.p[u]&&e.p[u]++,void 0!==e.lm&&v&&n.p[u]<=e.lm&&e.lm++;else if(void 0!==n.ld){if(void 0!==e.lm&&v){if(n.p[u]===e.p[u])return t;g=n.p[u];var b=e.p[u],y=e.lm;(gw&&e.p[u]--,b>k?e.p[u]++:b===k&&w>k&&(e.p[u]++,b===y&&e.lm++),(y>w||y===w&&y>b)&&e.lm--,y>k?e.lm++:y===k&&(k>w&&y>b||kb?e.lm++:y===w&&e.lm--)}else if(void 0!==e.li&&void 0===e.ld&&v){b=n.p[u],y=n.lm;g=e.p[u],g>b&&e.p[u]--,g>y&&e.p[u]++}else{b=n.p[u],y=n.lm;g=e.p[u],g===b?e.p[u]=y:(g>b&&e.p[u]--,(g>y||g===y&&b>y)&&e.p[u]++)}else if(void 0!==n.oi&&void 0!==n.od){if(e.p[u]===n.p[u]){if(void 0===e.oi||!v)return t;if("right"===i)return t;e.od=n.oi}}else if(void 0!==n.oi){if(void 0!==e.oi&&e.p[u]===n.p[u]){if("left"!==i)return t;a.append(t,{p:e.p,od:n.oi})}}else if(void 0!==n.od&&e.p[u]==n.p[u]){if(!v)return t;if(void 0===e.oi)return t;delete e.od}}return a.append(t,e),t},n(84288)(a,a.transformComponent,a.checkValidOp,a.append);var d=n(44929);a.registerSubtype(d),t.exports=a},44929:function(t,e,n){n(16280),n(44114);var r=t.exports={name:"text0",uri:"http://sharejs.org/types/textv0",create:function(t){if(null!=t&&"string"!==typeof t)throw new Error("Initial data must be a string");return t||""}},i=function(t,e,n){return t.slice(0,e)+n+t.slice(e)},o=function(t){if("number"!==typeof t.p)throw new Error("component missing position field");if("string"===typeof t.i===("string"===typeof t.d))throw new Error("component needs an i or d field");if(t.p<0)throw new Error("position cannot be negative")},a=function(t){for(var e=0;e=n.p+n.d.length)s(t,{d:e.d,p:e.p-n.d.length});else if(e.p+e.d.length<=n.p)s(t,e);else{var a={d:"",p:e.p};e.pn.p+n.d.length&&(a.d+=e.d.slice(n.p+n.d.length-e.p));var c=Math.max(e.p,n.p),u=Math.min(e.p+e.d.length,n.p+n.d.length),d=e.d.slice(c-e.p,u-e.p),p=n.d.slice(c-n.p,u-n.p);if(d!==p)throw new Error("Delete ops delete different text in the same region of the document");""!==a.d&&(a.p=l(a.p,n),s(t,a))}return t},u=function(t){return null!=t.i?{d:t.i,p:t.p}:{i:t.d,p:t.p}};r.invert=function(t){t=t.slice().reverse();for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:{};return t.reduce((function(t,n){var r=n.passengers[0],i="function"===typeof r?r(e):n.passengers;return t.concat(i)}),[])}function f(t,e){return t.map((function(t,e){return[e,t]})).sort((function(t,n){return e(t[1],n[1])||t[0]-n[0]})).map((function(t){return t[1]}))}function h(t,e){return e.reduce((function(e,n){return t.hasOwnProperty(n)&&(e[n]=t[n]),e}),{})}var v={},m={},g={},_=i.extend({data:function(){return{transports:v,targets:m,sources:g,trackInstances:u}},methods:{open:function(t){if(u){var e=t.to,n=t.from,r=t.passengers,o=t.order,a=void 0===o?1/0:o;if(e&&n&&r){var s={to:e,from:n,passengers:d(r),order:a},l=Object.keys(this.transports);-1===l.indexOf(e)&&i.set(this.transports,e,[]);var c=this.$_getTransportIndex(s),p=this.transports[e].slice(0);-1===c?p.push(s):p[c]=s,this.transports[e]=f(p,(function(t,e){return t.order-e.order}))}}},close:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=t.to,r=t.from;if(n&&(r||!1!==e)&&this.transports[n])if(e)this.transports[n]=[];else{var i=this.$_getTransportIndex(t);if(i>=0){var o=this.transports[n].slice(0);o.splice(i,1),this.transports[n]=o}}},registerTarget:function(t,e,n){u&&(this.trackInstances&&!n&&this.targets[t]&&console.warn("[portal-vue]: Target ".concat(t," already exists")),this.$set(this.targets,t,Object.freeze([e])))},unregisterTarget:function(t){this.$delete(this.targets,t)},registerSource:function(t,e,n){u&&(this.trackInstances&&!n&&this.sources[t]&&console.warn("[portal-vue]: source ".concat(t," already exists")),this.$set(this.sources,t,Object.freeze([e])))},unregisterSource:function(t){this.$delete(this.sources,t)},hasTarget:function(t){return!(!this.targets[t]||!this.targets[t][0])},hasSource:function(t){return!(!this.sources[t]||!this.sources[t][0])},hasContentFor:function(t){return!!this.transports[t]&&!!this.transports[t].length},$_getTransportIndex:function(t){var e=t.to,n=t.from;for(var r in this.transports[e])if(this.transports[e][r].from===n)return+r;return-1}}}),b=new _(v),y=1,w=i.extend({name:"portal",props:{disabled:{type:Boolean},name:{type:String,default:function(){return String(y++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}}},created:function(){var t=this;this.$nextTick((function(){b.registerSource(t.name,t)}))},mounted:function(){this.disabled||this.sendUpdate()},updated:function(){this.disabled?this.clear():this.sendUpdate()},beforeDestroy:function(){b.unregisterSource(this.name),this.clear()},watch:{to:function(t,e){e&&e!==t&&this.clear(e),this.sendUpdate()}},methods:{clear:function(t){var e={from:this.name,to:t||this.to};b.close(e)},normalizeSlots:function(){return this.$scopedSlots.default?[this.$scopedSlots.default]:this.$slots.default},normalizeOwnChildren:function(t){return"function"===typeof t?t(this.slotProps):t},sendUpdate:function(){var t=this.normalizeSlots();if(t){var e={from:this.name,to:this.to,passengers:a(t),order:this.order};b.open(e)}else this.clear()}},render:function(t){var e=this.$slots.default||this.$scopedSlots.default||[],n=this.tag;return e&&this.disabled?e.length<=1&&this.slim?this.normalizeOwnChildren(e)[0]:t(n,[this.normalizeOwnChildren(e)]):this.slim?t():t(n,{class:{"v-portal":!0},style:{display:"none"},key:"v-portal-placeholder"})}}),k=i.extend({name:"portalTarget",props:{multiple:{type:Boolean,default:!1},name:{type:String,required:!0},slim:{type:Boolean,default:!1},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},data:function(){return{transports:b.transports,firstRender:!0}},created:function(){var t=this;this.$nextTick((function(){b.registerTarget(t.name,t)}))},watch:{ownTransports:function(){this.$emit("change",this.children().length>0)},name:function(t,e){b.unregisterTarget(e),b.registerTarget(t,this)}},mounted:function(){var t=this;this.transition&&this.$nextTick((function(){t.firstRender=!1}))},beforeDestroy:function(){b.unregisterTarget(this.name)},computed:{ownTransports:function(){var t=this.transports[this.name]||[];return this.multiple?t:0===t.length?[]:[t[t.length-1]]},passengers:function(){return p(this.ownTransports,this.slotProps)}},methods:{children:function(){return 0!==this.passengers.length?this.passengers:this.$scopedSlots.default?this.$scopedSlots.default(this.slotProps):this.$slots.default||[]},noWrapper:function(){var t=this.slim&&!this.transition;return t&&this.children().length>1&&console.warn("[portal-vue]: PortalTarget with `slim` option received more than one child element."),t}},render:function(t){var e=this.noWrapper(),n=this.children(),r=this.transition||this.tag;return e?n[0]:this.slim&&!r?t():t(r,{props:{tag:this.transition&&this.tag?this.tag:void 0},class:{"vue-portal-target":!0}},n)}}),x=0,O=["disabled","name","order","slim","slotProps","tag","to"],E=["multiple","transition"],C=i.extend({name:"MountingPortal",inheritAttrs:!1,props:{append:{type:[Boolean,String]},bail:{type:Boolean},mountTo:{type:String,required:!0},disabled:{type:Boolean},name:{type:String,default:function(){return"mounted_"+String(x++)}},order:{type:Number,default:0},slim:{type:Boolean},slotProps:{type:Object,default:function(){return{}}},tag:{type:String,default:"DIV"},to:{type:String,default:function(){return String(Math.round(1e7*Math.random()))}},multiple:{type:Boolean,default:!1},targetSlim:{type:Boolean},targetSlotProps:{type:Object,default:function(){return{}}},targetTag:{type:String,default:"div"},transition:{type:[String,Object,Function]}},created:function(){if("undefined"!==typeof document){var t=document.querySelector(this.mountTo);if(t){var e=this.$props;if(b.targets[e.name])e.bail?console.warn("[portal-vue]: Target ".concat(e.name," is already mounted.\n Aborting because 'bail: true' is set")):this.portalTarget=b.targets[e.name];else{var n=e.append;if(n){var r="string"===typeof n?n:"DIV",i=document.createElement(r);t.appendChild(i),t=i}var o=h(this.$props,E);o.slim=this.targetSlim,o.tag=this.targetTag,o.slotProps=this.targetSlotProps,o.name=this.to,this.portalTarget=new k({el:t,parent:this.$parent||this,propsData:o})}}else console.error("[portal-vue]: Mount Point '".concat(this.mountTo,"' not found in document"))}},beforeDestroy:function(){var t=this.portalTarget;if(this.append){var e=t.$el;e.parentNode.removeChild(e)}t.$destroy()},render:function(t){if(!this.portalTarget)return console.warn("[portal-vue] Target wasn't mounted"),t();if(!this.$scopedSlots.manual){var e=h(this.$props,O);return t(w,{props:e,attrs:this.$attrs,on:this.$listeners,scopedSlots:this.$scopedSlots},this.$slots.default)}var n=this.$scopedSlots.manual({to:this.to});return Array.isArray(n)&&(n=n[0]),n||t()}});function S(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.component(e.portalName||"Portal",w),t.component(e.portalTargetName||"PortalTarget",k),t.component(e.MountingPortalName||"MountingPortal",C)}var A={install:S};e.Ay=A},48587:function(t,e,n){n(16280),n(44114),n(13609), -/*! - * Quill Editor v1.3.7 - * https://quilljs.com/ - * Copyright (c) 2014, Jason Chen - * Copyright (c) 2013, salesforce.com - */ -function(e,n){t.exports=n()}("undefined"!==typeof self&&self,(function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=109)}([function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(17),i=n(18),o=n(19),a=n(45),s=n(46),l=n(47),c=n(48),u=n(49),d=n(12),p=n(32),f=n(33),h=n(31),v=n(1),m={Scope:v.Scope,create:v.create,find:v.find,query:v.query,register:v.register,Container:r.default,Format:i.default,Leaf:o.default,Embed:c.default,Scroll:a.default,Block:l.default,Inline:s.default,Text:u.default,Attributor:{Attribute:d.default,Class:p.default,Style:f.default,Store:h.default}};e.default=m},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=function(t){function e(e){var n=this;return e="[Parchment] "+e,n=t.call(this,e)||this,n.message=e,n.name=n.constructor.name,n}return r(e,t),e}(Error);e.ParchmentError=i;var o,a={},s={},l={},c={};function u(t,e){var n=p(t);if(null==n)throw new i("Unable to create "+t+" blot");var r=n,o=t instanceof Node||t["nodeType"]===Node.TEXT_NODE?t:r.create(e);return new r(o,e)}function d(t,n){return void 0===n&&(n=!1),null==t?null:null!=t[e.DATA_KEY]?t[e.DATA_KEY].blot:n?d(t.parentNode,n):null}function p(t,e){var n;if(void 0===e&&(e=o.ANY),"string"===typeof t)n=c[t]||a[t];else if(t instanceof Text||t["nodeType"]===Node.TEXT_NODE)n=c["text"];else if("number"===typeof t)t&o.LEVEL&o.BLOCK?n=c["block"]:t&o.LEVEL&o.INLINE&&(n=c["inline"]);else if(t instanceof HTMLElement){var r=(t.getAttribute("class")||"").split(/\s+/);for(var i in r)if(n=s[r[i]],n)break;n=n||l[t.tagName]}return null==n?null:e&o.LEVEL&n.scope&&e&o.TYPE&n.scope?n:null}function f(){for(var t=[],e=0;e1)return t.map((function(t){return f(t)}));var n=t[0];if("string"!==typeof n.blotName&&"string"!==typeof n.attrName)throw new i("Invalid definition");if("abstract"===n.blotName)throw new i("Cannot register abstract class");if(c[n.blotName||n.attrName]=n,"string"===typeof n.keyName)a[n.keyName]=n;else if(null!=n.className&&(s[n.className]=n),null!=n.tagName){Array.isArray(n.tagName)?n.tagName=n.tagName.map((function(t){return t.toUpperCase()})):n.tagName=n.tagName.toUpperCase();var r=Array.isArray(n.tagName)?n.tagName:[n.tagName];r.forEach((function(t){null!=l[t]&&null!=n.className||(l[t]=n)}))}return n}e.DATA_KEY="__blot",function(t){t[t["TYPE"]=3]="TYPE",t[t["LEVEL"]=12]="LEVEL",t[t["ATTRIBUTE"]=13]="ATTRIBUTE",t[t["BLOT"]=14]="BLOT",t[t["INLINE"]=7]="INLINE",t[t["BLOCK"]=11]="BLOCK",t[t["BLOCK_BLOT"]=10]="BLOCK_BLOT",t[t["INLINE_BLOT"]=6]="INLINE_BLOT",t[t["BLOCK_ATTRIBUTE"]=9]="BLOCK_ATTRIBUTE",t[t["INLINE_ATTRIBUTE"]=5]="INLINE_ATTRIBUTE",t[t["ANY"]=15]="ANY"}(o=e.Scope||(e.Scope={})),e.create=u,e.find=d,e.query=p,e.register=f},function(t,e,n){var r=n(51),i=n(11),o=n(3),a=n(20),s=String.fromCharCode(0),l=function(t){Array.isArray(t)?this.ops=t:null!=t&&Array.isArray(t.ops)?this.ops=t.ops:this.ops=[]};l.prototype.insert=function(t,e){var n={};return 0===t.length?this:(n.insert=t,null!=e&&"object"===typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n))},l.prototype["delete"]=function(t){return t<=0?this:this.push({delete:t})},l.prototype.retain=function(t,e){if(t<=0)return this;var n={retain:t};return null!=e&&"object"===typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n)},l.prototype.push=function(t){var e=this.ops.length,n=this.ops[e-1];if(t=o(!0,{},t),"object"===typeof n){if("number"===typeof t["delete"]&&"number"===typeof n["delete"])return this.ops[e-1]={delete:n["delete"]+t["delete"]},this;if("number"===typeof n["delete"]&&null!=t.insert&&(e-=1,n=this.ops[e-1],"object"!==typeof n))return this.ops.unshift(t),this;if(i(t.attributes,n.attributes)){if("string"===typeof t.insert&&"string"===typeof n.insert)return this.ops[e-1]={insert:n.insert+t.insert},"object"===typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this;if("number"===typeof t.retain&&"number"===typeof n.retain)return this.ops[e-1]={retain:n.retain+t.retain},"object"===typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this}}return e===this.ops.length?this.ops.push(t):this.ops.splice(e,0,t),this},l.prototype.chop=function(){var t=this.ops[this.ops.length-1];return t&&t.retain&&!t.attributes&&this.ops.pop(),this},l.prototype.filter=function(t){return this.ops.filter(t)},l.prototype.forEach=function(t){this.ops.forEach(t)},l.prototype.map=function(t){return this.ops.map(t)},l.prototype.partition=function(t){var e=[],n=[];return this.forEach((function(r){var i=t(r)?e:n;i.push(r)})),[e,n]},l.prototype.reduce=function(t,e){return this.ops.reduce(t,e)},l.prototype.changeLength=function(){return this.reduce((function(t,e){return e.insert?t+a.length(e):e.delete?t-e.delete:t}),0)},l.prototype.length=function(){return this.reduce((function(t,e){return t+a.length(e)}),0)},l.prototype.slice=function(t,e){t=t||0,"number"!==typeof e&&(e=1/0);var n=[],r=a.iterator(this.ops),i=0;while(i0&&n.next(o.retain-s)}var c=new l(r);while(e.hasNext()||n.hasNext())if("insert"===n.peekType())c.push(n.next());else if("delete"===e.peekType())c.push(e.next());else{var u=Math.min(e.peekLength(),n.peekLength()),d=e.next(u),p=n.next(u);if("number"===typeof p.retain){var f={};"number"===typeof d.retain?f.retain=u:f.insert=d.insert;var h=a.attributes.compose(d.attributes,p.attributes,"number"===typeof d.retain);if(h&&(f.attributes=h),c.push(f),!n.hasNext()&&i(c.ops[c.ops.length-1],f)){var v=new l(e.rest());return c.concat(v).chop()}}else"number"===typeof p["delete"]&&"number"===typeof d.retain&&c.push(p)}return c.chop()},l.prototype.concat=function(t){var e=new l(this.ops.slice());return t.ops.length>0&&(e.push(t.ops[0]),e.ops=e.ops.concat(t.ops.slice(1))),e},l.prototype.diff=function(t,e){if(this.ops===t.ops)return new l;var n=[this,t].map((function(e){return e.map((function(n){if(null!=n.insert)return"string"===typeof n.insert?n.insert:s;var r=e===t?"on":"with";throw new Error("diff() called "+r+" non-document")})).join("")})),o=new l,c=r(n[0],n[1],e),u=a.iterator(this.ops),d=a.iterator(t.ops);return c.forEach((function(t){var e=t[1].length;while(e>0){var n=0;switch(t[0]){case r.INSERT:n=Math.min(d.peekLength(),e),o.push(d.next(n));break;case r.DELETE:n=Math.min(e,u.peekLength()),u.next(n),o["delete"](n);break;case r.EQUAL:n=Math.min(u.peekLength(),d.peekLength(),e);var s=u.next(n),l=d.next(n);i(s.insert,l.insert)?o.retain(n,a.attributes.diff(s.attributes,l.attributes)):o.push(l)["delete"](n);break}e-=n}})),o.chop()},l.prototype.eachLine=function(t,e){e=e||"\n";var n=a.iterator(this.ops),r=new l,i=0;while(n.hasNext()){if("insert"!==n.peekType())return;var o=n.peek(),s=a.length(o)-n.peekLength(),c="string"===typeof o.insert?o.insert.indexOf(e,s)-s:-1;if(c<0)r.push(n.next());else if(c>0)r.push(n.next(c));else{if(!1===t(r,n.next(1).attributes||{},i))return;i+=1,r=new l}}r.length()>0&&t(r,{},i)},l.prototype.transform=function(t,e){if(e=!!e,"number"===typeof t)return this.transformPosition(t,e);var n=a.iterator(this.ops),r=a.iterator(t.ops),i=new l;while(n.hasNext()||r.hasNext())if("insert"!==n.peekType()||!e&&"insert"===r.peekType())if("insert"===r.peekType())i.push(r.next());else{var o=Math.min(n.peekLength(),r.peekLength()),s=n.next(o),c=r.next(o);if(s["delete"])continue;c["delete"]?i.push(c):i.retain(o,a.attributes.transform(s.attributes,c.attributes,e))}else i.retain(a.length(n.next()));return i.chop()},l.prototype.transformPosition=function(t,e){e=!!e;var n=a.iterator(this.ops),r=0;while(n.hasNext()&&r<=t){var i=n.peekLength(),o=n.peekType();n.next(),"delete"!==o?("insert"===o&&(r0&&(t1&&void 0!==arguments[1]&&arguments[1];if(n&&(0===t||t>=this.length()-w)){var r=this.clone();return 0===t?(this.parent.insertBefore(r,this),this):(this.parent.insertBefore(r,this.next),r)}var o=i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"split",this).call(this,t,n);return this.cache={},o}}]),e}(u.default.Block);function O(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return null==t?e:("function"===typeof t.formats&&(e=(0,a.default)(e,t.formats())),null==t.parent||"scroll"==t.parent.blotName||t.parent.statics.scope!==t.statics.scope?e:O(t.parent,e))}x.blotName="block",x.tagName="P",x.defaultChild="break",x.allowedChildren=[h.default,u.default.Embed,m.default],e.bubbleFormats=O,e.BlockEmbed=k,e.default=x},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.overload=e.expandConfig=void 0;var r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(n.push(a.value),e&&n.length===e)break}catch(l){i=!0,o=l}finally{try{!r&&s["return"]&&s["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),o=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{};if(C(this,t),this.options=T(e,r),this.container=this.options.container,null==this.container)return S.error("Invalid Quill container",e);this.options.debug&&t.debug(this.options.debug);var i=this.container.innerHTML.trim();this.container.classList.add("ql-container"),this.container.innerHTML="",this.container.__quill=this,this.root=this.addContainer("ql-editor"),this.root.classList.add("ql-blank"),this.root.setAttribute("data-gramm",!1),this.scrollingContainer=this.options.scrollingContainer||this.root,this.emitter=new d.default,this.scroll=v.default.create(this.root,{emitter:this.emitter,whitelist:this.options.formats}),this.editor=new c.default(this.scroll),this.selection=new g.default(this.scroll,this.emitter),this.theme=new this.options.theme(this,this.options),this.keyboard=this.theme.addModule("keyboard"),this.clipboard=this.theme.addModule("clipboard"),this.history=this.theme.addModule("history"),this.theme.init(),this.emitter.on(d.default.events.EDITOR_CHANGE,(function(t){t===d.default.events.TEXT_CHANGE&&n.root.classList.toggle("ql-blank",n.editor.isBlank())})),this.emitter.on(d.default.events.SCROLL_UPDATE,(function(t,e){var r=n.selection.lastRange,i=r&&0===r.length?r.index:void 0;q.call(n,(function(){return n.editor.update(null,e,i)}),t)}));var o=this.clipboard.convert("
"+i+"


");this.setContents(o),this.history.clear(),this.options.placeholder&&this.root.setAttribute("data-placeholder",this.options.placeholder),this.options.readOnly&&this.disable()}return o(t,null,[{key:"debug",value:function(t){!0===t&&(t="log"),w.default.level(t)}},{key:"find",value:function(t){return t.__quill||v.default.find(t)}},{key:"import",value:function(t){return null==this.imports[t]&&S.error("Cannot import "+t+". Are you sure it was registered?"),this.imports[t]}},{key:"register",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"!==typeof t){var i=t.attrName||t.blotName;"string"===typeof i?this.register("formats/"+i,t,e):Object.keys(t).forEach((function(r){n.register(r,t[r],e)}))}else null==this.imports[t]||r||S.warn("Overwriting "+t+" with",e),this.imports[t]=e,(t.startsWith("blots/")||t.startsWith("formats/"))&&"abstract"!==e.blotName?v.default.register(e):t.startsWith("modules")&&"function"===typeof e.register&&e.register()}}]),o(t,[{key:"addContainer",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;if("string"===typeof t){var n=t;t=document.createElement("div"),t.classList.add(n)}return this.container.insertBefore(t,e),t}},{key:"blur",value:function(){this.selection.setRange(null)}},{key:"deleteText",value:function(t,e,n){var r=this,o=M(t,e,n),a=i(o,4);return t=a[0],e=a[1],n=a[3],q.call(this,(function(){return r.editor.deleteText(t,e)}),n,t,-1*e)}},{key:"disable",value:function(){this.enable(!1)}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.scroll.enable(t),this.container.classList.toggle("ql-disabled",!t)}},{key:"focus",value:function(){var t=this.scrollingContainer.scrollTop;this.selection.focus(),this.scrollingContainer.scrollTop=t,this.scrollIntoView()}},{key:"format",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:d.default.sources.API;return q.call(this,(function(){var r=n.getSelection(!0),i=new s.default;if(null==r)return i;if(v.default.query(t,v.default.Scope.BLOCK))i=n.editor.formatLine(r.index,r.length,E({},t,e));else{if(0===r.length)return n.selection.format(t,e),i;i=n.editor.formatText(r.index,r.length,E({},t,e))}return n.setSelection(r,d.default.sources.SILENT),i}),r)}},{key:"formatLine",value:function(t,e,n,r,o){var a=this,s=void 0,l=M(t,e,n,r,o),c=i(l,4);return t=c[0],e=c[1],s=c[2],o=c[3],q.call(this,(function(){return a.editor.formatLine(t,e,s)}),o,t,0)}},{key:"formatText",value:function(t,e,n,r,o){var a=this,s=void 0,l=M(t,e,n,r,o),c=i(l,4);return t=c[0],e=c[1],s=c[2],o=c[3],q.call(this,(function(){return a.editor.formatText(t,e,s)}),o,t,0)}},{key:"getBounds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=void 0;n="number"===typeof t?this.selection.getBounds(t,e):this.selection.getBounds(t.index,t.length);var r=this.container.getBoundingClientRect();return{bottom:n.bottom-r.top,height:n.height,left:n.left-r.left,right:n.right-r.left,top:n.top-r.top,width:n.width}}},{key:"getContents",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getLength()-t,n=M(t,e),r=i(n,2);return t=r[0],e=r[1],this.editor.getContents(t,e)}},{key:"getFormat",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.getSelection(!0),e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return"number"===typeof t?this.editor.getFormat(t,e):this.editor.getFormat(t.index,t.length)}},{key:"getIndex",value:function(t){return t.offset(this.scroll)}},{key:"getLength",value:function(){return this.scroll.length()}},{key:"getLeaf",value:function(t){return this.scroll.leaf(t)}},{key:"getLine",value:function(t){return this.scroll.line(t)}},{key:"getLines",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE;return"number"!==typeof t?this.scroll.lines(t.index,t.length):this.scroll.lines(t,e)}},{key:"getModule",value:function(t){return this.theme.modules[t]}},{key:"getSelection",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&this.focus(),this.update(),this.selection.getRange()[0]}},{key:"getText",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.getLength()-t,n=M(t,e),r=i(n,2);return t=r[0],e=r[1],this.editor.getText(t,e)}},{key:"hasFocus",value:function(){return this.selection.hasFocus()}},{key:"insertEmbed",value:function(e,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:t.sources.API;return q.call(this,(function(){return i.editor.insertEmbed(e,n,r)}),o,e)}},{key:"insertText",value:function(t,e,n,r,o){var a=this,s=void 0,l=M(t,0,n,r,o),c=i(l,4);return t=c[0],s=c[2],o=c[3],q.call(this,(function(){return a.editor.insertText(t,e,s)}),o,t,e.length)}},{key:"isEnabled",value:function(){return!this.container.classList.contains("ql-disabled")}},{key:"off",value:function(){return this.emitter.off.apply(this.emitter,arguments)}},{key:"on",value:function(){return this.emitter.on.apply(this.emitter,arguments)}},{key:"once",value:function(){return this.emitter.once.apply(this.emitter,arguments)}},{key:"pasteHTML",value:function(t,e,n){this.clipboard.dangerouslyPasteHTML(t,e,n)}},{key:"removeFormat",value:function(t,e,n){var r=this,o=M(t,e,n),a=i(o,4);return t=a[0],e=a[1],n=a[3],q.call(this,(function(){return r.editor.removeFormat(t,e)}),n,t)}},{key:"scrollIntoView",value:function(){this.selection.scrollIntoView(this.scrollingContainer)}},{key:"setContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d.default.sources.API;return q.call(this,(function(){t=new s.default(t);var n=e.getLength(),r=e.editor.deleteText(0,n),i=e.editor.applyDelta(t),o=i.ops[i.ops.length-1];null!=o&&"string"===typeof o.insert&&"\n"===o.insert[o.insert.length-1]&&(e.editor.deleteText(e.getLength()-1,1),i.delete(1));var a=r.compose(i);return a}),n)}},{key:"setSelection",value:function(e,n,r){if(null==e)this.selection.setRange(null,n||t.sources.API);else{var o=M(e,n,r),a=i(o,4);e=a[0],n=a[1],r=a[3],this.selection.setRange(new m.Range(e,n),r),r!==d.default.sources.SILENT&&this.selection.scrollIntoView(this.scrollingContainer)}}},{key:"setText",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d.default.sources.API,n=(new s.default).insert(t);return this.setContents(n,e)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:d.default.sources.USER,e=this.scroll.update(t);return this.selection.update(t),e}},{key:"updateContents",value:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:d.default.sources.API;return q.call(this,(function(){return t=new s.default(t),e.editor.applyDelta(t,n)}),n,!0)}}]),t}();function T(t,e){if(e=(0,b.default)(!0,{container:t,modules:{clipboard:!0,keyboard:!0,history:!0}},e),e.theme&&e.theme!==A.DEFAULTS.theme){if(e.theme=A.import("themes/"+e.theme),null==e.theme)throw new Error("Invalid theme "+e.theme+". Did you register it?")}else e.theme=x.default;var n=(0,b.default)(!0,{},e.theme.DEFAULTS);[n,e].forEach((function(t){t.modules=t.modules||{},Object.keys(t.modules).forEach((function(e){!0===t.modules[e]&&(t.modules[e]={})}))}));var r=Object.keys(n.modules).concat(Object.keys(e.modules)),i=r.reduce((function(t,e){var n=A.import("modules/"+e);return null==n?S.error("Cannot load "+e+" module. Are you sure you registered it?"):t[e]=n.DEFAULTS||{},t}),{});return null!=e.modules&&e.modules.toolbar&&e.modules.toolbar.constructor!==Object&&(e.modules.toolbar={container:e.modules.toolbar}),e=(0,b.default)(!0,{},A.DEFAULTS,{modules:i},n,e),["bounds","container","scrollingContainer"].forEach((function(t){"string"===typeof e[t]&&(e[t]=document.querySelector(e[t]))})),e.modules=Object.keys(e.modules).reduce((function(t,n){return e.modules[n]&&(t[n]=e.modules[n]),t}),{}),e}function q(t,e,n,r){if(this.options.strict&&!this.isEnabled()&&e===d.default.sources.USER)return new s.default;var i=null==n?null:this.getSelection(),o=this.editor.delta,a=t();if(null!=i&&(!0===n&&(n=i.index),null==r?i=P(i,a,e):0!==r&&(i=P(i,n,r,e)),this.setSelection(i,d.default.sources.SILENT)),a.length()>0){var l,c,u=[d.default.events.TEXT_CHANGE,a,o,e];if((l=this.emitter).emit.apply(l,[d.default.events.EDITOR_CHANGE].concat(u)),e!==d.default.sources.SILENT)(c=this.emitter).emit.apply(c,u)}return a}function M(t,e,n,i,o){var a={};return"number"===typeof t.index&&"number"===typeof t.length?"number"!==typeof e?(o=i,i=n,n=e,e=t.length,t=t.index):(e=t.length,t=t.index):"number"!==typeof e&&(o=i,i=n,n=e,e=0),"object"===("undefined"===typeof n?"undefined":r(n))?(a=n,o=i):"string"===typeof n&&(null!=i?a[n]=i:o=n),o=o||d.default.sources.API,[t,e,a,o]}function P(t,e,n,r){if(null==t)return null;var o=void 0,a=void 0;if(e instanceof s.default){var l=[t.index,t.index+t.length].map((function(t){return e.transformPosition(t,r!==d.default.sources.USER)})),c=i(l,2);o=c[0],a=c[1]}else{var u=[t.index,t.index+t.length].map((function(t){return t=0?t+n:Math.max(e,t+n)})),p=i(u,2);o=p[0],a=p[1]}return new m.Range(o,a-o)}A.DEFAULTS={bounds:null,formats:null,modules:{},placeholder:"",readOnly:!1,scrollingContainer:null,strict:!0,theme:"default"},A.events=d.default.events,A.sources=d.default.sources,A.version="1.3.7",A.imports={delta:s.default,parchment:v.default,"core/module":f.default,"core/theme":x.default},e.expandConfig=T,e.overload=M,e.default=A},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0){var n=this.parent.isolate(this.offset(),this.length());this.moveChildren(n),n.wrap(this)}}}],[{key:"compare",value:function(t,n){var r=e.order.indexOf(t),i=e.order.indexOf(n);return r>=0||i>=0?r-i:t===n?0:t1?e-1:0),r=1;r1&&void 0!==arguments[1]?arguments[1]:{};r(this,t),this.quill=e,this.options=n};i.DEFAULTS={},e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=["error","warn","log","info"],i="warn";function o(t){if(r.indexOf(t)<=r.indexOf(i)){for(var e,n=arguments.length,o=Array(n>1?n-1:0),a=1;a0&&"number"!==typeof t[0]))}function c(t,e,n){var c,u;if(s(t)||s(e))return!1;if(t.prototype!==e.prototype)return!1;if(o(t))return!!o(e)&&(t=r.call(t),e=r.call(e),a(t,e,n));if(l(t)){if(!l(e))return!1;if(t.length!==e.length)return!1;for(c=0;c=0;c--)if(d[c]!=p[c])return!1;for(c=d.length-1;c>=0;c--)if(u=d[c],!a(t[u],e[u],n))return!1;return typeof t===typeof e}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),i=function(){function t(t,e,n){void 0===n&&(n={}),this.attrName=t,this.keyName=e;var i=r.Scope.TYPE&r.Scope.ATTRIBUTE;null!=n.scope?this.scope=n.scope&r.Scope.LEVEL|i:this.scope=r.Scope.ATTRIBUTE,null!=n.whitelist&&(this.whitelist=n.whitelist)}return t.keys=function(t){return[].map.call(t.attributes,(function(t){return t.name}))},t.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(t.setAttribute(this.keyName,e),!0)},t.prototype.canAdd=function(t,e){var n=r.query(t,r.Scope.BLOT&(this.scope|r.Scope.TYPE));return null!=n&&(null==this.whitelist||("string"===typeof e?this.whitelist.indexOf(e.replace(/["']/g,""))>-1:this.whitelist.indexOf(e)>-1))},t.prototype.remove=function(t){t.removeAttribute(this.keyName)},t.prototype.value=function(t){var e=t.getAttribute(this.keyName);return this.canAdd(t,e)&&e?e:""},t}();e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Code=void 0;var r=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(n.push(a.value),e&&n.length===e)break}catch(l){i=!0,o=l}finally{try{!r&&s["return"]&&s["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function(){function t(t,e){for(var n=0;n=t+n)){var a=this.newlineIndex(t,!0)+1,s=o-a+1,l=this.isolate(a,s),u=l.next;l.format(r,i),u instanceof e&&u.formatAt(0,t-a+n-s,r,i)}}}},{key:"insertAt",value:function(t,e,n){if(null==n){var i=this.descendant(v.default,t),o=r(i,2),a=o[0],s=o[1];a.insertAt(s,e)}}},{key:"length",value:function(){var t=this.domNode.textContent.length;return this.domNode.textContent.endsWith("\n")?t:t+1}},{key:"newlineIndex",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(e)return this.domNode.textContent.slice(0,t).lastIndexOf("\n");var n=this.domNode.textContent.slice(t).indexOf("\n");return n>-1?t+n:-1}},{key:"optimize",value:function(t){this.domNode.textContent.endsWith("\n")||this.appendChild(c.default.create("text","\n")),o(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t);var n=this.next;null!=n&&n.prev===this&&n.statics.blotName===this.statics.blotName&&this.statics.formats(this.domNode)===n.statics.formats(n.domNode)&&(n.optimize(t),n.moveChildren(this),n.remove())}},{key:"replace",value:function(t){o(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replace",this).call(this,t),[].slice.call(this.domNode.querySelectorAll("*")).forEach((function(t){var e=c.default.find(t);null==e?t.parentNode.removeChild(t):e instanceof c.default.Embed?e.remove():e.unwrap()}))}}],[{key:"create",value:function(t){var n=o(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return n.setAttribute("spellcheck",!1),n}},{key:"formats",value:function(){return!0}}]),e}(d.default);w.blotName="code-block",w.tagName="PRE",w.TAB=" ",e.Code=y,e.default=w},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(n.push(a.value),e&&n.length===e)break}catch(l){i=!0,o=l}finally{try{!r&&s["return"]&&s["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),o=function(){function t(t,e){for(var n=0;n=o&&!u.endsWith("\n")&&(n=!0),e.scroll.insertAt(t,u);var p=e.scroll.line(t),f=i(p,2),h=f[0],v=f[1],_=(0,E.default)({},(0,m.bubbleFormats)(h));if(h instanceof g.default){var b=h.descendant(d.default.Leaf,v),y=i(b,1),w=y[0];_=(0,E.default)(_,(0,m.bubbleFormats)(w))}l=c.default.attributes.diff(_,l)||{}}else if("object"===r(a.insert)){var k=Object.keys(a.insert)[0];if(null==k)return t;e.scroll.insertAt(t,k,a.insert[k])}o+=s}return Object.keys(l).forEach((function(n){e.scroll.formatAt(t,s,n,l[n])})),t+s}),0),t.reduce((function(t,n){return"number"===typeof n.delete?(e.scroll.deleteAt(t,n.delete),t):t+(n.retain||n.insert.length||1)}),0),this.scroll.batchEnd(),this.update(t)}},{key:"deleteText",value:function(t,e){return this.scroll.deleteAt(t,e),this.update((new s.default).retain(t).delete(e))}},{key:"formatLine",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this.scroll.update(),Object.keys(r).forEach((function(i){if(null==n.scroll.whitelist||n.scroll.whitelist[i]){var o=n.scroll.lines(t,Math.max(e,1)),a=e;o.forEach((function(e){var o=e.length();if(e instanceof f.default){var s=t-e.offset(n.scroll),l=e.newlineIndex(s+a)-s+1;e.formatAt(s,l,i,r[i])}else e.format(i,r[i]);a-=o}))}})),this.scroll.optimize(),this.update((new s.default).retain(t).retain(e,(0,w.default)(r)))}},{key:"formatText",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object.keys(r).forEach((function(i){n.scroll.formatAt(t,e,i,r[i])})),this.update((new s.default).retain(t).retain(e,(0,w.default)(r)))}},{key:"getContents",value:function(t,e){return this.delta.slice(t,t+e)}},{key:"getDelta",value:function(){return this.scroll.lines().reduce((function(t,e){return t.concat(e.delta())}),new s.default)}},{key:"getFormat",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=[],r=[];0===e?this.scroll.path(t).forEach((function(t){var e=i(t,1),o=e[0];o instanceof g.default?n.push(o):o instanceof d.default.Leaf&&r.push(o)})):(n=this.scroll.lines(t,e),r=this.scroll.descendants(d.default.Leaf,t,e));var o=[n,r].map((function(t){if(0===t.length)return{};var e=(0,m.bubbleFormats)(t.shift());while(Object.keys(e).length>0){var n=t.shift();if(null==n)return e;e=M((0,m.bubbleFormats)(n),e)}return e}));return E.default.apply(E.default,o)}},{key:"getText",value:function(t,e){return this.getContents(t,e).filter((function(t){return"string"===typeof t.insert})).map((function(t){return t.insert})).join("")}},{key:"insertEmbed",value:function(t,e,n){return this.scroll.insertAt(t,e,n),this.update((new s.default).retain(t).insert(S({},e,n)))}},{key:"insertText",value:function(t,e){var n=this,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return e=e.replace(/\r\n/g,"\n").replace(/\r/g,"\n"),this.scroll.insertAt(t,e),Object.keys(r).forEach((function(i){n.scroll.formatAt(t,e.length,i,r[i])})),this.update((new s.default).retain(t).insert(e,(0,w.default)(r)))}},{key:"isBlank",value:function(){if(0==this.scroll.children.length)return!0;if(this.scroll.children.length>1)return!1;var t=this.scroll.children.head;return t.statics.blotName===g.default.blotName&&(!(t.children.length>1)&&t.children.head instanceof b.default)}},{key:"removeFormat",value:function(t,e){var n=this.getText(t,e),r=this.scroll.line(t+e),o=i(r,2),a=o[0],l=o[1],c=0,u=new s.default;null!=a&&(c=a instanceof f.default?a.newlineIndex(l)-l+1:a.length()-l,u=a.delta().slice(l,l+c-1).insert("\n"));var d=this.getContents(t,e+c),p=d.diff((new s.default).insert(n).concat(u)),h=(new s.default).retain(t).concat(p);return this.applyDelta(h)}},{key:"update",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=this.delta;if(1===e.length&&"characterData"===e[0].type&&e[0].target.data.match(T)&&d.default.find(e[0].target)){var i=d.default.find(e[0].target),o=(0,m.bubbleFormats)(i),a=i.offset(this.scroll),l=e[0].oldValue.replace(v.default.CONTENTS,""),c=(new s.default).insert(l),u=(new s.default).insert(i.value()),p=(new s.default).retain(a).concat(c.diff(u,n));t=p.reduce((function(t,e){return e.insert?t.insert(e.insert,o):t.push(e)}),new s.default),this.delta=r.compose(t)}else this.delta=this.getDelta(),t&&(0,x.default)(r.compose(t),this.delta)||(t=r.diff(this.delta,n));return t}}]),t}();function M(t,e){return Object.keys(e).reduce((function(n,r){return null==t[r]||(e[r]===t[r]?n[r]=e[r]:Array.isArray(e[r])?e[r].indexOf(t[r])<0&&(n[r]=e[r].concat([t[r]])):n[r]=[e[r],t[r]]),n}),{})}function P(t){return t.reduce((function(t,e){if(1===e.insert){var n=(0,w.default)(e.attributes);return delete n["image"],t.insert({image:e.attributes.image},n)}if(null==e.attributes||!0!==e.attributes.list&&!0!==e.attributes.bullet||(e=(0,w.default)(e),e.attributes.list?e.attributes.list="ordered":(e.attributes.list="bullet",delete e.attributes.bullet)),"string"===typeof e.insert){var r=e.insert.replace(/\r\n/g,"\n").replace(/\r/g,"\n");return t.insert(r,e.attributes)}return t.push(e)}),new s.default)}e.default=q},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.Range=void 0;var r=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(n.push(a.value),e&&n.length===e)break}catch(l){i=!0,o=l}finally{try{!r&&s["return"]&&s["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:0;g(this,t),this.index=e,this.length=n},y=function(){function t(e,n){var r=this;g(this,t),this.emitter=n,this.scroll=e,this.composing=!1,this.mouseDown=!1,this.root=this.scroll.domNode,this.cursor=a.default.create("cursor",this),this.lastRange=this.savedRange=new b(0,0),this.handleComposition(),this.handleDragging(),this.emitter.listenDOM("selectionchange",document,(function(){r.mouseDown||setTimeout(r.update.bind(r,p.default.sources.USER),1)})),this.emitter.on(p.default.events.EDITOR_CHANGE,(function(t,e){t===p.default.events.TEXT_CHANGE&&e.length()>0&&r.update(p.default.sources.SILENT)})),this.emitter.on(p.default.events.SCROLL_BEFORE_UPDATE,(function(){if(r.hasFocus()){var t=r.getNativeRange();null!=t&&t.start.node!==r.cursor.textNode&&r.emitter.once(p.default.events.SCROLL_UPDATE,(function(){try{r.setNativeRange(t.start.node,t.start.offset,t.end.node,t.end.offset)}catch(e){}}))}})),this.emitter.on(p.default.events.SCROLL_OPTIMIZE,(function(t,e){if(e.range){var n=e.range,i=n.startNode,o=n.startOffset,a=n.endNode,s=n.endOffset;r.setNativeRange(i,o,a,s)}})),this.update(p.default.sources.SILENT)}return i(t,[{key:"handleComposition",value:function(){var t=this;this.root.addEventListener("compositionstart",(function(){t.composing=!0})),this.root.addEventListener("compositionend",(function(){if(t.composing=!1,t.cursor.parent){var e=t.cursor.restore();if(!e)return;setTimeout((function(){t.setNativeRange(e.startNode,e.startOffset,e.endNode,e.endOffset)}),1)}}))}},{key:"handleDragging",value:function(){var t=this;this.emitter.listenDOM("mousedown",document.body,(function(){t.mouseDown=!0})),this.emitter.listenDOM("mouseup",document.body,(function(){t.mouseDown=!1,t.update(p.default.sources.USER)}))}},{key:"focus",value:function(){this.hasFocus()||(this.root.focus(),this.setRange(this.savedRange))}},{key:"format",value:function(t,e){if(null==this.scroll.whitelist||this.scroll.whitelist[t]){this.scroll.update();var n=this.getNativeRange();if(null!=n&&n.native.collapsed&&!a.default.query(t,a.default.Scope.BLOCK)){if(n.start.node!==this.cursor.textNode){var r=a.default.find(n.start.node,!1);if(null==r)return;if(r instanceof a.default.Leaf){var i=r.split(n.start.offset);r.parent.insertBefore(this.cursor,i)}else r.insertBefore(this.cursor,n.start.node);this.cursor.attach()}this.cursor.format(t,e),this.scroll.optimize(),this.setNativeRange(this.cursor.textNode,this.cursor.textNode.data.length),this.update()}}}},{key:"getBounds",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=this.scroll.length();t=Math.min(t,n-1),e=Math.min(t+e,n-1)-t;var i=void 0,o=this.scroll.leaf(t),a=r(o,2),s=a[0],l=a[1];if(null==s)return null;var c=s.position(l,!0),u=r(c,2);i=u[0],l=u[1];var d=document.createRange();if(e>0){d.setStart(i,l);var p=this.scroll.leaf(t+e),f=r(p,2);if(s=f[0],l=f[1],null==s)return null;var h=s.position(l,!0),v=r(h,2);return i=v[0],l=v[1],d.setEnd(i,l),d.getBoundingClientRect()}var m="left",g=void 0;return i instanceof Text?(l0&&(m="right")),{bottom:g.top+g.height,height:g.height,left:g[m],right:g[m],top:g.top,width:0}}},{key:"getNativeRange",value:function(){var t=document.getSelection();if(null==t||t.rangeCount<=0)return null;var e=t.getRangeAt(0);if(null==e)return null;var n=this.normalizeNative(e);return _.info("getNativeRange",n),n}},{key:"getRange",value:function(){var t=this.getNativeRange();if(null==t)return[null,null];var e=this.normalizedToRange(t);return[e,t]}},{key:"hasFocus",value:function(){return document.activeElement===this.root}},{key:"normalizedToRange",value:function(t){var e=this,n=[[t.start.node,t.start.offset]];t.native.collapsed||n.push([t.end.node,t.end.offset]);var i=n.map((function(t){var n=r(t,2),i=n[0],o=n[1],s=a.default.find(i,!0),l=s.offset(e.scroll);return 0===o?l:s instanceof a.default.Container?l+s.length():l+s.index(i,o)})),o=Math.min(Math.max.apply(Math,m(i)),this.scroll.length()-1),s=Math.min.apply(Math,[o].concat(m(i)));return new b(s,o-s)}},{key:"normalizeNative",value:function(t){if(!w(this.root,t.startContainer)||!t.collapsed&&!w(this.root,t.endContainer))return null;var e={start:{node:t.startContainer,offset:t.startOffset},end:{node:t.endContainer,offset:t.endOffset},native:t};return[e.start,e.end].forEach((function(t){var e=t.node,n=t.offset;while(!(e instanceof Text)&&e.childNodes.length>0)if(e.childNodes.length>n)e=e.childNodes[n],n=0;else{if(e.childNodes.length!==n)break;e=e.lastChild,n=e instanceof Text?e.data.length:e.childNodes.length+1}t.node=e,t.offset=n})),e}},{key:"rangeToNative",value:function(t){var e=this,n=t.collapsed?[t.index]:[t.index,t.index+t.length],i=[],o=this.scroll.length();return n.forEach((function(t,n){t=Math.min(o-1,t);var a=void 0,s=e.scroll.leaf(t),l=r(s,2),c=l[0],u=l[1],d=c.position(u,0!==n),p=r(d,2);a=p[0],u=p[1],i.push(a,u)})),i.length<2&&(i=i.concat(i)),i}},{key:"scrollIntoView",value:function(t){var e=this.lastRange;if(null!=e){var n=this.getBounds(e.index,e.length);if(null!=n){var i=this.scroll.length()-1,o=this.scroll.line(Math.min(e.index,i)),a=r(o,1),s=a[0],l=s;if(e.length>0){var c=this.scroll.line(Math.min(e.index+e.length,i)),u=r(c,1);l=u[0]}if(null!=s&&null!=l){var d=t.getBoundingClientRect();n.topd.bottom&&(t.scrollTop+=n.bottom-d.bottom)}}}}},{key:"setNativeRange",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e,i=arguments.length>4&&void 0!==arguments[4]&&arguments[4];if(_.info("setNativeRange",t,e,n,r),null==t||null!=this.root.parentNode&&null!=t.parentNode&&null!=n.parentNode){var o=document.getSelection();if(null!=o)if(null!=t){this.hasFocus()||this.root.focus();var a=(this.getNativeRange()||{}).native;if(null==a||i||t!==a.startContainer||e!==a.startOffset||n!==a.endContainer||r!==a.endOffset){"BR"==t.tagName&&(e=[].indexOf.call(t.parentNode.childNodes,t),t=t.parentNode),"BR"==n.tagName&&(r=[].indexOf.call(n.parentNode.childNodes,n),n=n.parentNode);var s=document.createRange();s.setStart(t,e),s.setEnd(n,r),o.removeAllRanges(),o.addRange(s)}}else o.removeAllRanges(),this.root.blur(),document.body.focus()}}},{key:"setRange",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:p.default.sources.API;if("string"===typeof e&&(n=e,e=!1),_.info("setRange",t),null!=t){var r=this.rangeToNative(t);this.setNativeRange.apply(this,m(r).concat([e]))}else this.setNativeRange(null);this.update(n)}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:p.default.sources.USER,e=this.lastRange,n=this.getRange(),i=r(n,2),o=i[0],a=i[1];if(this.lastRange=o,null!=this.lastRange&&(this.savedRange=this.lastRange),!(0,u.default)(e,this.lastRange)){var s;!this.composing&&null!=a&&a.native.collapsed&&a.start.node!==this.cursor.textNode&&this.cursor.restore();var c,d=[p.default.events.SELECTION_CHANGE,(0,l.default)(this.lastRange),(0,l.default)(e),t];if((s=this.emitter).emit.apply(s,[p.default.events.EDITOR_CHANGE].concat(d)),t!==p.default.sources.SILENT)(c=this.emitter).emit.apply(c,d)}}}]),t}();function w(t,e){try{e.parentNode}catch(n){return!1}return e instanceof Text&&(e=e.parentNode),t.contains(e)}e.Range=b,e.default=y},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0&&(n+=1),[this.parent.domNode,n]},e.prototype.value=function(){var t;return t={},t[this.statics.blotName]=this.statics.value(this.domNode)||!0,t},e.scope=o.Scope.INLINE_BLOT,e}(i.default);e.default=a},function(t,e,n){var r=n(11),i=n(3),o={attributes:{compose:function(t,e,n){"object"!==typeof t&&(t={}),"object"!==typeof e&&(e={});var r=i(!0,{},e);for(var o in n||(r=Object.keys(r).reduce((function(t,e){return null!=r[e]&&(t[e]=r[e]),t}),{})),t)void 0!==t[o]&&void 0===e[o]&&(r[o]=t[o]);return Object.keys(r).length>0?r:void 0},diff:function(t,e){"object"!==typeof t&&(t={}),"object"!==typeof e&&(e={});var n=Object.keys(t).concat(Object.keys(e)).reduce((function(n,i){return r(t[i],e[i])||(n[i]=void 0===e[i]?null:e[i]),n}),{});return Object.keys(n).length>0?n:void 0},transform:function(t,e,n){if("object"!==typeof t)return e;if("object"===typeof e){if(!n)return e;var r=Object.keys(e).reduce((function(n,r){return void 0===t[r]&&(n[r]=e[r]),n}),{});return Object.keys(r).length>0?r:void 0}}},iterator:function(t){return new a(t)},length:function(t){return"number"===typeof t["delete"]?t["delete"]:"number"===typeof t.retain?t.retain:"string"===typeof t.insert?t.insert.length:1}};function a(t){this.ops=t,this.index=0,this.offset=0}a.prototype.hasNext=function(){return this.peekLength()<1/0},a.prototype.next=function(t){t||(t=1/0);var e=this.ops[this.index];if(e){var n=this.offset,r=o.length(e);if(t>=r-n?(t=r-n,this.index+=1,this.offset=0):this.offset+=t,"number"===typeof e["delete"])return{delete:t};var i={};return e.attributes&&(i.attributes=e.attributes),"number"===typeof e.retain?i.retain=t:"string"===typeof e.insert?i.insert=e.insert.substr(n,t):i.insert=e.insert,i}return{retain:1/0}},a.prototype.peek=function(){return this.ops[this.index]},a.prototype.peekLength=function(){return this.ops[this.index]?o.length(this.ops[this.index])-this.offset:1/0},a.prototype.peekType=function(){return this.ops[this.index]?"number"===typeof this.ops[this.index]["delete"]?"delete":"number"===typeof this.ops[this.index].retain?"retain":"insert":"retain"},a.prototype.rest=function(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(this.index);var t=this.offset,e=this.index,n=this.next(),r=this.ops.slice(this.index);return this.offset=t,this.index=e,[n].concat(r)}return[]},t.exports=o},function(t,e){var n=function(){"use strict";function t(t,e){return null!=e&&t instanceof e}var e,n,r;try{e=Map}catch(u){e=function(){}}try{n=Set}catch(u){n=function(){}}try{r=Promise}catch(u){r=function(){}}function i(o,a,s,l,u){"object"===typeof a&&(s=a.depth,l=a.prototype,u=a.includeNonEnumerable,a=a.circular);var d=[],p=[],f="undefined"!=typeof Buffer;function h(o,s){if(null===o)return null;if(0===s)return o;var v,m;if("object"!=typeof o)return o;if(t(o,e))v=new e;else if(t(o,n))v=new n;else if(t(o,r))v=new r((function(t,e){o.then((function(e){t(h(e,s-1))}),(function(t){e(h(t,s-1))}))}));else if(i.__isArray(o))v=[];else if(i.__isRegExp(o))v=new RegExp(o.source,c(o)),o.lastIndex&&(v.lastIndex=o.lastIndex);else if(i.__isDate(o))v=new Date(o.getTime());else{if(f&&Buffer.isBuffer(o))return v=Buffer.allocUnsafe?Buffer.allocUnsafe(o.length):new Buffer(o.length),o.copy(v),v;t(o,Error)?v=Object.create(o):"undefined"==typeof l?(m=Object.getPrototypeOf(o),v=Object.create(m)):(v=Object.create(l),m=l)}if(a){var g=d.indexOf(o);if(-1!=g)return p[g];d.push(o),p.push(v)}for(var _ in t(o,e)&&o.forEach((function(t,e){var n=h(e,s-1),r=h(t,s-1);v.set(n,r)})),t(o,n)&&o.forEach((function(t){var e=h(t,s-1);v.add(e)})),o){var b;m&&(b=Object.getOwnPropertyDescriptor(m,_)),b&&null==b.set||(v[_]=h(o[_],s-1))}if(Object.getOwnPropertySymbols){var y=Object.getOwnPropertySymbols(o);for(_=0;_0){if(s instanceof u.BlockEmbed||p instanceof u.BlockEmbed)return void this.optimize();if(s instanceof v.default){var h=s.newlineIndex(s.length(),!0);if(h>-1&&(s=s.split(h+1),s===p))return void this.optimize()}else if(p instanceof v.default){var m=p.newlineIndex(0);m>-1&&p.split(m+1)}var g=p.children.head instanceof f.default?null:p.children.head;s.moveChildren(p,g),s.remove()}this.optimize()}},{key:"enable",value:function(){var t=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];this.domNode.setAttribute("contenteditable",t)}},{key:"formatAt",value:function(t,n,r,i){(null==this.whitelist||this.whitelist[r])&&(o(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"formatAt",this).call(this,t,n,r,i),this.optimize())}},{key:"insertAt",value:function(t,n,r){if(null==r||null==this.whitelist||this.whitelist[n]){if(t>=this.length())if(null==r||null==s.default.query(n,s.default.Scope.BLOCK)){var i=s.default.create(this.statics.defaultChild);this.appendChild(i),null==r&&n.endsWith("\n")&&(n=n.slice(0,-1)),i.insertAt(0,n,r)}else{var a=s.default.create(n,r);this.appendChild(a)}else o(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertAt",this).call(this,t,n,r);this.optimize()}}},{key:"insertBefore",value:function(t,n){if(t.statics.scope===s.default.Scope.INLINE_BLOT){var r=s.default.create(this.statics.defaultChild);r.appendChild(t),t=r}o(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertBefore",this).call(this,t,n)}},{key:"leaf",value:function(t){return this.path(t).pop()||[null,-1]}},{key:"line",value:function(t){return t===this.length()?this.line(t-1):this.descendant(k,t)}},{key:"lines",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Number.MAX_VALUE,n=function t(e,n,r){var i=[],o=r;return e.children.forEachAt(n,r,(function(e,n,r){k(e)?i.push(e):e instanceof s.default.Container&&(i=i.concat(t(e,n,o))),o-=r})),i};return n(this,t,e)}},{key:"optimize",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!0!==this.batch&&(o(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t,n),t.length>0&&this.emitter.emit(c.default.events.SCROLL_OPTIMIZE,t,n))}},{key:"path",value:function(t){return o(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"path",this).call(this,t).slice(1)}},{key:"update",value:function(t){if(!0!==this.batch){var n=c.default.sources.USER;"string"===typeof t&&(n=t),Array.isArray(t)||(t=this.observer.takeRecords()),t.length>0&&this.emitter.emit(c.default.events.SCROLL_BEFORE_UPDATE,n,t),o(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"update",this).call(this,t.concat([])),t.length>0&&this.emitter.emit(c.default.events.SCROLL_UPDATE,n,t)}}}]),e}(s.default.Scroll);x.blotName="scroll",x.className="ql-editor",x.tagName="DIV",x.defaultChild="block",x.allowedChildren=[d.default,u.BlockEmbed,g.default],e.default=x},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.SHORTKEY=e.default=void 0;var r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(n.push(a.value),e&&n.length===e)break}catch(l){i=!0,o=l}finally{try{!r&&s["return"]&&s["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),o=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=z(t);if(null==r||null==r.key)return T.warn("Attempted to add invalid keyboard binding",r);"function"===typeof e&&(e={handler:e}),"function"===typeof n&&(n={handler:n}),r=(0,d.default)(r,e,n),this.bindings[r.key]=this.bindings[r.key]||[],this.bindings[r.key].push(r)}},{key:"listen",value:function(){var t=this;this.quill.root.addEventListener("keydown",(function(n){if(!n.defaultPrevented){var o=n.which||n.keyCode,a=(t.bindings[o]||[]).filter((function(t){return e.match(n,t)}));if(0!==a.length){var s=t.quill.getSelection();if(null!=s&&t.quill.hasFocus()){var l=t.quill.getLine(s.index),u=i(l,2),d=u[0],p=u[1],f=t.quill.getLeaf(s.index),h=i(f,2),v=h[0],m=h[1],_=0===s.length?[v,m]:t.quill.getLeaf(s.index+s.length),b=i(_,2),y=b[0],w=b[1],k=v instanceof g.default.Text?v.value().slice(0,m):"",x=y instanceof g.default.Text?y.value().slice(w):"",O={collapsed:0===s.length,empty:0===s.length&&d.length()<=1,format:t.quill.getFormat(s),offset:p,prefix:k,suffix:x},E=a.some((function(e){if(null!=e.collapsed&&e.collapsed!==O.collapsed)return!1;if(null!=e.empty&&e.empty!==O.empty)return!1;if(null!=e.offset&&e.offset!==O.offset)return!1;if(Array.isArray(e.format)){if(e.format.every((function(t){return null==O.format[t]})))return!1}else if("object"===r(e.format)&&!Object.keys(e.format).every((function(t){return!0===e.format[t]?null!=O.format[t]:!1===e.format[t]?null==O.format[t]:(0,c.default)(e.format[t],O.format[t])})))return!1;return!(null!=e.prefix&&!e.prefix.test(O.prefix))&&(!(null!=e.suffix&&!e.suffix.test(O.suffix))&&!0!==e.handler.call(t,s,O))}));E&&n.preventDefault()}}}}))}}]),e}(x.default);function P(t,e){var n,r=t===M.keys.LEFT?"prefix":"suffix";return n={key:t,shiftKey:e,altKey:null},E(n,r,/^$/),E(n,"handler",(function(n){var r=n.index;t===M.keys.RIGHT&&(r+=n.length+1);var o=this.quill.getLeaf(r),a=i(o,1),s=a[0];return!(s instanceof g.default.Embed)||(t===M.keys.LEFT?e?this.quill.setSelection(n.index-1,n.length+1,b.default.sources.USER):this.quill.setSelection(n.index-1,b.default.sources.USER):e?this.quill.setSelection(n.index,n.length+1,b.default.sources.USER):this.quill.setSelection(n.index+n.length+1,b.default.sources.USER),!1)})),n}function L(t,e){if(!(0===t.index||this.quill.getLength()<=1)){var n=this.quill.getLine(t.index),r=i(n,1),o=r[0],a={};if(0===e.offset){var s=this.quill.getLine(t.index-1),l=i(s,1),c=l[0];if(null!=c&&c.length()>1){var u=o.formats(),d=this.quill.getFormat(t.index-1,1);a=v.default.attributes.diff(u,d)||{}}}var p=/[\uD800-\uDBFF][\uDC00-\uDFFF]$/.test(e.prefix)?2:1;this.quill.deleteText(t.index-p,p,b.default.sources.USER),Object.keys(a).length>0&&this.quill.formatLine(t.index-p,p,a,b.default.sources.USER),this.quill.focus()}}function j(t,e){var n=/^[\uD800-\uDBFF][\uDC00-\uDFFF]/.test(e.suffix)?2:1;if(!(t.index>=this.quill.getLength()-n)){var r={},o=0,a=this.quill.getLine(t.index),s=i(a,1),l=s[0];if(e.offset>=l.length()-1){var c=this.quill.getLine(t.index+1),u=i(c,1),d=u[0];if(d){var p=l.formats(),f=this.quill.getFormat(t.index,1);r=v.default.attributes.diff(p,f)||{},o=d.length()}}this.quill.deleteText(t.index,n,b.default.sources.USER),Object.keys(r).length>0&&this.quill.formatLine(t.index+o-1,n,r,b.default.sources.USER)}}function $(t){var e=this.quill.getLines(t),n={};if(e.length>1){var r=e[0].formats(),i=e[e.length-1].formats();n=v.default.attributes.diff(i,r)||{}}this.quill.deleteText(t,b.default.sources.USER),Object.keys(n).length>0&&this.quill.formatLine(t.index,1,n,b.default.sources.USER),this.quill.setSelection(t.index,b.default.sources.SILENT),this.quill.focus()}function R(t,e){var n=this;t.length>0&&this.quill.scroll.deleteAt(t.index,t.length);var r=Object.keys(e.format).reduce((function(t,n){return g.default.query(n,g.default.Scope.BLOCK)&&!Array.isArray(e.format[n])&&(t[n]=e.format[n]),t}),{});this.quill.insertText(t.index,"\n",r,b.default.sources.USER),this.quill.setSelection(t.index+1,b.default.sources.SILENT),this.quill.focus(),Object.keys(e.format).forEach((function(t){null==r[t]&&(Array.isArray(e.format[t])||"link"!==t&&n.quill.format(t,e.format[t],b.default.sources.USER))}))}function N(t){return{key:M.keys.TAB,shiftKey:!t,format:{"code-block":!0},handler:function(e){var n=g.default.query("code-block"),r=e.index,o=e.length,a=this.quill.scroll.descendant(n,r),s=i(a,2),l=s[0],c=s[1];if(null!=l){var u=this.quill.getIndex(l),d=l.newlineIndex(c,!0)+1,p=l.newlineIndex(u+c+o),f=l.domNode.textContent.slice(d,p).split("\n");c=0,f.forEach((function(e,i){t?(l.insertAt(d+c,n.TAB),c+=n.TAB.length,0===i?r+=n.TAB.length:o+=n.TAB.length):e.startsWith(n.TAB)&&(l.deleteAt(d+c,n.TAB.length),c-=n.TAB.length,0===i?r-=n.TAB.length:o-=n.TAB.length),c+=e.length+1})),this.quill.update(b.default.sources.USER),this.quill.setSelection(r,o,b.default.sources.SILENT)}}}}function I(t){return{key:t[0].toUpperCase(),shortKey:!0,handler:function(e,n){this.quill.format(t,!n.format[t],b.default.sources.USER)}}}function z(t){if("string"===typeof t||"number"===typeof t)return z({key:t});if("object"===("undefined"===typeof t?"undefined":r(t))&&(t=(0,s.default)(t,!1)),"string"===typeof t.key)if(null!=M.keys[t.key.toUpperCase()])t.key=M.keys[t.key.toUpperCase()];else{if(1!==t.key.length)return null;t.key=t.key.toUpperCase().charCodeAt(0)}return t.shortKey&&(t[q]=t.shortKey,delete t.shortKey),t}M.keys={BACKSPACE:8,TAB:9,ENTER:13,ESCAPE:27,LEFT:37,UP:38,RIGHT:39,DOWN:40,DELETE:46},M.DEFAULTS={bindings:{bold:I("bold"),italic:I("italic"),underline:I("underline"),indent:{key:M.keys.TAB,format:["blockquote","indent","list"],handler:function(t,e){if(e.collapsed&&0!==e.offset)return!0;this.quill.format("indent","+1",b.default.sources.USER)}},outdent:{key:M.keys.TAB,shiftKey:!0,format:["blockquote","indent","list"],handler:function(t,e){if(e.collapsed&&0!==e.offset)return!0;this.quill.format("indent","-1",b.default.sources.USER)}},"outdent backspace":{key:M.keys.BACKSPACE,collapsed:!0,shiftKey:null,metaKey:null,ctrlKey:null,altKey:null,format:["indent","list"],offset:0,handler:function(t,e){null!=e.format.indent?this.quill.format("indent","-1",b.default.sources.USER):null!=e.format.list&&this.quill.format("list",!1,b.default.sources.USER)}},"indent code-block":N(!0),"outdent code-block":N(!1),"remove tab":{key:M.keys.TAB,shiftKey:!0,collapsed:!0,prefix:/\t$/,handler:function(t){this.quill.deleteText(t.index-1,1,b.default.sources.USER)}},tab:{key:M.keys.TAB,handler:function(t){this.quill.history.cutoff();var e=(new f.default).retain(t.index).delete(t.length).insert("\t");this.quill.updateContents(e,b.default.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(t.index+1,b.default.sources.SILENT)}},"list empty enter":{key:M.keys.ENTER,collapsed:!0,format:["list"],empty:!0,handler:function(t,e){this.quill.format("list",!1,b.default.sources.USER),e.format.indent&&this.quill.format("indent",!1,b.default.sources.USER)}},"checklist enter":{key:M.keys.ENTER,collapsed:!0,format:{list:"checked"},handler:function(t){var e=this.quill.getLine(t.index),n=i(e,2),r=n[0],o=n[1],a=(0,d.default)({},r.formats(),{list:"checked"}),s=(new f.default).retain(t.index).insert("\n",a).retain(r.length()-o-1).retain(1,{list:"unchecked"});this.quill.updateContents(s,b.default.sources.USER),this.quill.setSelection(t.index+1,b.default.sources.SILENT),this.quill.scrollIntoView()}},"header enter":{key:M.keys.ENTER,collapsed:!0,format:["header"],suffix:/^$/,handler:function(t,e){var n=this.quill.getLine(t.index),r=i(n,2),o=r[0],a=r[1],s=(new f.default).retain(t.index).insert("\n",e.format).retain(o.length()-a-1).retain(1,{header:null});this.quill.updateContents(s,b.default.sources.USER),this.quill.setSelection(t.index+1,b.default.sources.SILENT),this.quill.scrollIntoView()}},"list autofill":{key:" ",collapsed:!0,format:{list:!1},prefix:/^\s*?(\d+\.|-|\*|\[ ?\]|\[x\])$/,handler:function(t,e){var n=e.prefix.length,r=this.quill.getLine(t.index),o=i(r,2),a=o[0],s=o[1];if(s>n)return!0;var l=void 0;switch(e.prefix.trim()){case"[]":case"[ ]":l="unchecked";break;case"[x]":l="checked";break;case"-":case"*":l="bullet";break;default:l="ordered"}this.quill.insertText(t.index," ",b.default.sources.USER),this.quill.history.cutoff();var c=(new f.default).retain(t.index-s).delete(n+1).retain(a.length()-2-s).retain(1,{list:l});this.quill.updateContents(c,b.default.sources.USER),this.quill.history.cutoff(),this.quill.setSelection(t.index-n,b.default.sources.SILENT)}},"code exit":{key:M.keys.ENTER,collapsed:!0,format:["code-block"],prefix:/\n\n$/,suffix:/^\s+$/,handler:function(t){var e=this.quill.getLine(t.index),n=i(e,2),r=n[0],o=n[1],a=(new f.default).retain(t.index+r.length()-o-2).retain(1,{"code-block":null}).delete(1);this.quill.updateContents(a,b.default.sources.USER)}},"embed left":P(M.keys.LEFT,!1),"embed left shift":P(M.keys.LEFT,!0),"embed right":P(M.keys.RIGHT,!1),"embed right shift":P(M.keys.RIGHT,!0)}},e.default=M,e.SHORTKEY=q},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(n.push(a.value),e&&n.length===e)break}catch(l){i=!0,o=l}finally{try{!r&&s["return"]&&s["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function t(e,n,r){null===e&&(e=Function.prototype);var i=Object.getOwnPropertyDescriptor(e,n);if(void 0===i){var o=Object.getPrototypeOf(e);return null===o?void 0:t(o,n,r)}if("value"in i)return i.value;var a=i.get;return void 0!==a?a.call(r):void 0},o=function(){function t(t,e){for(var n=0;n-1}d.blotName="link",d.tagName="A",d.SANITIZED_URL="about:blank",d.PROTOCOL_WHITELIST=["http","https","mailto","tel"],e.default=d,e.sanitize=p},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"===typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i=function(){function t(t,e){for(var n=0;n1&&void 0!==arguments[1]&&arguments[1],n=this.container.querySelector(".ql-selected");if(t!==n&&(null!=n&&n.classList.remove("ql-selected"),null!=t&&(t.classList.add("ql-selected"),this.select.selectedIndex=[].indexOf.call(t.parentNode.children,t),t.hasAttribute("data-value")?this.label.setAttribute("data-value",t.getAttribute("data-value")):this.label.removeAttribute("data-value"),t.hasAttribute("data-label")?this.label.setAttribute("data-label",t.getAttribute("data-label")):this.label.removeAttribute("data-label"),e))){if("function"===typeof Event)this.select.dispatchEvent(new Event("change"));else if("object"===("undefined"===typeof Event?"undefined":r(Event))){var i=document.createEvent("Event");i.initEvent("change",!0,!0),this.select.dispatchEvent(i)}this.close()}}},{key:"update",value:function(){var t=void 0;if(this.select.selectedIndex>-1){var e=this.container.querySelector(".ql-picker-options").children[this.select.selectedIndex];t=this.select.options[this.select.selectedIndex],this.selectItem(e)}else this.selectItem(null);var n=null!=t&&t!==this.select.querySelector("option[selected]");this.label.classList.toggle("ql-active",n)}}]),t}();e.default=f},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(0),i=T(r),o=n(5),a=T(o),s=n(4),l=T(s),c=n(16),u=T(c),d=n(25),p=T(d),f=n(24),h=T(f),v=n(35),m=T(v),g=n(6),_=T(g),b=n(22),y=T(b),w=n(7),k=T(w),x=n(55),O=T(x),E=n(42),C=T(E),S=n(23),A=T(S);function T(t){return t&&t.__esModule?t:{default:t}}a.default.register({"blots/block":l.default,"blots/block/embed":s.BlockEmbed,"blots/break":u.default,"blots/container":p.default,"blots/cursor":h.default,"blots/embed":m.default,"blots/inline":_.default,"blots/scroll":y.default,"blots/text":k.default,"modules/clipboard":O.default,"modules/history":C.default,"modules/keyboard":A.default}),i.default.register(l.default,u.default,h.default,_.default,y.default,k.default),e.default=a.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(1),i=function(){function t(t){this.domNode=t,this.domNode[r.DATA_KEY]={blot:this}}return Object.defineProperty(t.prototype,"statics",{get:function(){return this.constructor},enumerable:!0,configurable:!0}),t.create=function(t){if(null==this.tagName)throw new r.ParchmentError("Blot definition missing tagName");var e;return Array.isArray(this.tagName)?("string"===typeof t&&(t=t.toUpperCase(),parseInt(t).toString()===t&&(t=parseInt(t))),e="number"===typeof t?document.createElement(this.tagName[t-1]):this.tagName.indexOf(t)>-1?document.createElement(t):document.createElement(this.tagName[0])):e=document.createElement(this.tagName),this.className&&e.classList.add(this.className),e},t.prototype.attach=function(){null!=this.parent&&(this.scroll=this.parent.scroll)},t.prototype.clone=function(){var t=this.domNode.cloneNode(!1);return r.create(t)},t.prototype.detach=function(){null!=this.parent&&this.parent.removeChild(this),delete this.domNode[r.DATA_KEY]},t.prototype.deleteAt=function(t,e){var n=this.isolate(t,e);n.remove()},t.prototype.formatAt=function(t,e,n,i){var o=this.isolate(t,e);if(null!=r.query(n,r.Scope.BLOT)&&i)o.wrap(n,i);else if(null!=r.query(n,r.Scope.ATTRIBUTE)){var a=r.create(this.statics.scope);o.wrap(a),a.format(n,i)}},t.prototype.insertAt=function(t,e,n){var i=null==n?r.create("text",e):r.create(e,n),o=this.split(t);this.parent.insertBefore(i,o)},t.prototype.insertInto=function(t,e){void 0===e&&(e=null),null!=this.parent&&this.parent.children.remove(this);var n=null;t.children.insertBefore(this,e),null!=e&&(n=e.domNode),this.domNode.parentNode==t.domNode&&this.domNode.nextSibling==n||t.domNode.insertBefore(this.domNode,n),this.parent=t,this.attach()},t.prototype.isolate=function(t,e){var n=this.split(t);return n.split(e),n},t.prototype.length=function(){return 1},t.prototype.offset=function(t){return void 0===t&&(t=this.parent),null==this.parent||this==t?0:this.parent.children.offset(this)+this.parent.offset(t)},t.prototype.optimize=function(t){null!=this.domNode[r.DATA_KEY]&&delete this.domNode[r.DATA_KEY].mutations},t.prototype.remove=function(){null!=this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),this.detach()},t.prototype.replace=function(t){null!=t.parent&&(t.parent.insertBefore(this,t.next),t.remove())},t.prototype.replaceWith=function(t,e){var n="string"===typeof t?r.create(t,e):t;return n.replace(this),n},t.prototype.split=function(t,e){return 0===t?this:this.next},t.prototype.update=function(t,e){},t.prototype.wrap=function(t,e){var n="string"===typeof t?r.create(t,e):t;return null!=this.parent&&this.parent.insertBefore(n,this.next),n.appendChild(this),n},t.blotName="abstract",t}();e.default=i},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(12),i=n(32),o=n(33),a=n(1),s=function(){function t(t){this.attributes={},this.domNode=t,this.build()}return t.prototype.attribute=function(t,e){e?t.add(this.domNode,e)&&(null!=t.value(this.domNode)?this.attributes[t.attrName]=t:delete this.attributes[t.attrName]):(t.remove(this.domNode),delete this.attributes[t.attrName])},t.prototype.build=function(){var t=this;this.attributes={};var e=r.default.keys(this.domNode),n=i.default.keys(this.domNode),s=o.default.keys(this.domNode);e.concat(n).concat(s).forEach((function(e){var n=a.query(e,a.Scope.ATTRIBUTE);n instanceof r.default&&(t.attributes[n.attrName]=n)}))},t.prototype.copy=function(t){var e=this;Object.keys(this.attributes).forEach((function(n){var r=e.attributes[n].value(e.domNode);t.format(n,r)}))},t.prototype.move=function(t){var e=this;this.copy(t),Object.keys(this.attributes).forEach((function(t){e.attributes[t].remove(e.domNode)})),this.attributes={}},t.prototype.values=function(){var t=this;return Object.keys(this.attributes).reduce((function(e,n){return e[n]=t.attributes[n].value(t.domNode),e}),{})},t}();e.default=s},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(12);function o(t,e){var n=t.getAttribute("class")||"";return n.split(/\s+/).filter((function(t){return 0===t.indexOf(e+"-")}))}var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.keys=function(t){return(t.getAttribute("class")||"").split(/\s+/).map((function(t){return t.split("-").slice(0,-1).join("-")}))},e.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(this.remove(t),t.classList.add(this.keyName+"-"+e),!0)},e.prototype.remove=function(t){var e=o(t,this.keyName);e.forEach((function(e){t.classList.remove(e)})),0===t.classList.length&&t.removeAttribute("class")},e.prototype.value=function(t){var e=o(t,this.keyName)[0]||"",n=e.slice(this.keyName.length+1);return this.canAdd(t,n)?n:""},e}(i.default);e.default=a},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(12);function o(t){var e=t.split("-"),n=e.slice(1).map((function(t){return t[0].toUpperCase()+t.slice(1)})).join("");return e[0]+n}var a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.keys=function(t){return(t.getAttribute("style")||"").split(";").map((function(t){var e=t.split(":");return e[0].trim()}))},e.prototype.add=function(t,e){return!!this.canAdd(t,e)&&(t.style[o(this.keyName)]=e,!0)},e.prototype.remove=function(t){t.style[o(this.keyName)]="",t.getAttribute("style")||t.removeAttribute("style")},e.prototype.value=function(t){var e=t.style[o(this.keyName)];return this.canAdd(t,e)?e:""},e}(i.default);e.default=a},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;nr&&this.stack.undo.length>0){var i=this.stack.undo.pop();n=n.compose(i.undo),t=i.redo.compose(t)}else this.lastRecorded=r;this.stack.undo.push({redo:t,undo:n}),this.stack.undo.length>this.options.maxStack&&this.stack.undo.shift()}}},{key:"redo",value:function(){this.change("redo","undo")}},{key:"transform",value:function(t){this.stack.undo.forEach((function(e){e.undo=t.transform(e.undo,!0),e.redo=t.transform(e.redo,!0)})),this.stack.redo.forEach((function(e){e.undo=t.transform(e.undo,!0),e.redo=t.transform(e.redo,!0)}))}},{key:"undo",value:function(){this.change("undo","redo")}}]),e}(c.default);function v(t){var e=t.ops[t.ops.length-1];return null!=e&&(null!=e.insert?"string"===typeof e.insert&&e.insert.endsWith("\n"):null!=e.attributes&&Object.keys(e.attributes).some((function(t){return null!=o.default.query(t,o.default.Scope.BLOCK)})))}function m(t){var e=t.reduce((function(t,e){return t+=e.delete||0,t}),0),n=t.length()-e;return v(t)&&(n-=1),n}h.DEFAULTS={delay:1e3,maxStack:100,userOnly:!1},e.default=h,e.getLastChangeIndex=m},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BaseTooltip=void 0;var r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:"link",e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.root.classList.remove("ql-hidden"),this.root.classList.add("ql-editing"),null!=e?this.textbox.value=e:t!==this.root.getAttribute("data-mode")&&(this.textbox.value=""),this.position(this.quill.getBounds(this.quill.selection.savedRange)),this.textbox.select(),this.textbox.setAttribute("placeholder",this.textbox.getAttribute("data-"+t)||""),this.root.setAttribute("data-mode",t)}},{key:"restoreFocus",value:function(){var t=this.quill.scrollingContainer.scrollTop;this.quill.focus(),this.quill.scrollingContainer.scrollTop=t}},{key:"save",value:function(){var t=this.textbox.value;switch(this.root.getAttribute("data-mode")){case"link":var e=this.quill.root.scrollTop;this.linkRange?(this.quill.formatText(this.linkRange,"link",t,u.default.sources.USER),delete this.linkRange):(this.restoreFocus(),this.quill.format("link",t,u.default.sources.USER)),this.quill.root.scrollTop=e;break;case"video":t=j(t);case"formula":if(!t)break;var n=this.quill.getSelection(!0);if(null!=n){var r=n.index+n.length;this.quill.insertEmbed(r,this.root.getAttribute("data-mode"),t,u.default.sources.USER),"formula"===this.root.getAttribute("data-mode")&&this.quill.insertText(r+1," ",u.default.sources.USER),this.quill.setSelection(r+2,u.default.sources.USER)}break;default:}this.textbox.value="",this.hide()}}]),e}(k.default);function j(t){var e=t.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtube\.com\/watch.*v=([a-zA-Z0-9_-]+)/)||t.match(/^(?:(https?):\/\/)?(?:(?:www|m)\.)?youtu\.be\/([a-zA-Z0-9_-]+)/);return e?(e[1]||"https")+"://www.youtube.com/embed/"+e[2]+"?showinfo=0":(e=t.match(/^(?:(https?):\/\/)?(?:www\.)?vimeo\.com\/(\d+)/))?(e[1]||"https")+"://player.vimeo.com/video/"+e[2]+"/":t}function $(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];e.forEach((function(e){var r=document.createElement("option");e===n?r.setAttribute("selected","selected"):r.setAttribute("value",e),t.appendChild(r)}))}e.BaseTooltip=L,e.default=P},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(){this.head=this.tail=null,this.length=0}return t.prototype.append=function(){for(var t=[],e=0;e1&&this.append.apply(this,t.slice(1))},t.prototype.contains=function(t){var e,n=this.iterator();while(e=n())if(e===t)return!0;return!1},t.prototype.insertBefore=function(t,e){t&&(t.next=e,null!=e?(t.prev=e.prev,null!=e.prev&&(e.prev.next=t),e.prev=t,e===this.head&&(this.head=t)):null!=this.tail?(this.tail.next=t,t.prev=this.tail,this.tail=t):(t.prev=null,this.head=this.tail=t),this.length+=1)},t.prototype.offset=function(t){var e=0,n=this.head;while(null!=n){if(n===t)return e;e+=n.length(),n=n.next}return-1},t.prototype.remove=function(t){this.contains(t)&&(null!=t.prev&&(t.prev.next=t.next),null!=t.next&&(t.next.prev=t.prev),t===this.head&&(this.head=t.next),t===this.tail&&(this.tail=t.prev),this.length-=1)},t.prototype.iterator=function(t){return void 0===t&&(t=this.head),function(){var e=t;return null!=t&&(t=t.next),e}},t.prototype.find=function(t,e){void 0===e&&(e=!1);var n,r=this.iterator();while(n=r()){var i=n.length();if(ts?n(r,t-s,Math.min(e,s+c-t)):n(r,0,Math.min(c,t+e-s)),s+=c}}},t.prototype.map=function(t){return this.reduce((function(e,n){return e.push(t(n)),e}),[])},t.prototype.reduce=function(t,e){var n,r=this.iterator();while(n=r())e=t(e,n);return e},t}();e.default=r},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(17),o=n(1),a={attributes:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0},s=100,l=function(t){function e(e){var n=t.call(this,e)||this;return n.scroll=n,n.observer=new MutationObserver((function(t){n.update(t)})),n.observer.observe(n.domNode,a),n.attach(),n}return r(e,t),e.prototype.detach=function(){t.prototype.detach.call(this),this.observer.disconnect()},e.prototype.deleteAt=function(e,n){this.update(),0===e&&n===this.length()?this.children.forEach((function(t){t.remove()})):t.prototype.deleteAt.call(this,e,n)},e.prototype.formatAt=function(e,n,r,i){this.update(),t.prototype.formatAt.call(this,e,n,r,i)},e.prototype.insertAt=function(e,n,r){this.update(),t.prototype.insertAt.call(this,e,n,r)},e.prototype.optimize=function(e,n){var r=this;void 0===e&&(e=[]),void 0===n&&(n={}),t.prototype.optimize.call(this,n);var a=[].slice.call(this.observer.takeRecords());while(a.length>0)e.push(a.pop());for(var l=function(t,e){void 0===e&&(e=!0),null!=t&&t!==r&&null!=t.domNode.parentNode&&(null==t.domNode[o.DATA_KEY].mutations&&(t.domNode[o.DATA_KEY].mutations=[]),e&&l(t.parent))},c=function(t){null!=t.domNode[o.DATA_KEY]&&null!=t.domNode[o.DATA_KEY].mutations&&(t instanceof i.default&&t.children.forEach(c),t.optimize(n))},u=e,d=0;u.length>0;d+=1){if(d>=s)throw new Error("[Parchment] Maximum optimize iterations reached");u.forEach((function(t){var e=o.find(t.target,!0);null!=e&&(e.domNode===t.target&&("childList"===t.type?(l(o.find(t.previousSibling,!1)),[].forEach.call(t.addedNodes,(function(t){var e=o.find(t,!1);l(e,!1),e instanceof i.default&&e.children.forEach((function(t){l(t,!1)}))}))):"attributes"===t.type&&l(e.prev)),l(e))})),this.children.forEach(c),u=[].slice.call(this.observer.takeRecords()),a=u.slice();while(a.length>0)e.push(a.pop())}},e.prototype.update=function(e,n){var r=this;void 0===n&&(n={}),e=e||this.observer.takeRecords(),e.map((function(t){var e=o.find(t.target,!0);return null==e?null:null==e.domNode[o.DATA_KEY].mutations?(e.domNode[o.DATA_KEY].mutations=[t],e):(e.domNode[o.DATA_KEY].mutations.push(t),null)})).forEach((function(t){null!=t&&t!==r&&null!=t.domNode[o.DATA_KEY]&&t.update(t.domNode[o.DATA_KEY].mutations||[],n)})),null!=this.domNode[o.DATA_KEY].mutations&&t.prototype.update.call(this,this.domNode[o.DATA_KEY].mutations,n),this.optimize(e,n)},e.blotName="scroll",e.defaultChild="block",e.scope=o.Scope.BLOCK_BLOT,e.tagName="DIV",e}(i.default);e.default=l},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(18),o=n(1);function a(t,e){if(Object.keys(t).length!==Object.keys(e).length)return!1;for(var n in t)if(t[n]!==e[n])return!1;return!0}var s=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.formats=function(n){if(n.tagName!==e.tagName)return t.formats.call(this,n)},e.prototype.format=function(n,r){var o=this;n!==this.statics.blotName||r?t.prototype.format.call(this,n,r):(this.children.forEach((function(t){t instanceof i.default||(t=t.wrap(e.blotName,!0)),o.attributes.copy(t)})),this.unwrap())},e.prototype.formatAt=function(e,n,r,i){if(null!=this.formats()[r]||o.query(r,o.Scope.ATTRIBUTE)){var a=this.isolate(e,n);a.format(r,i)}else t.prototype.formatAt.call(this,e,n,r,i)},e.prototype.optimize=function(n){t.prototype.optimize.call(this,n);var r=this.formats();if(0===Object.keys(r).length)return this.unwrap();var i=this.next;i instanceof e&&i.prev===this&&a(r,i.formats())&&(i.moveChildren(this),i.remove())},e.blotName="inline",e.scope=o.Scope.INLINE_BLOT,e.tagName="SPAN",e}(i.default);e.default=s},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(18),o=n(1),a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.formats=function(n){var r=o.query(e.blotName).tagName;if(n.tagName!==r)return t.formats.call(this,n)},e.prototype.format=function(n,r){null!=o.query(n,o.Scope.BLOCK)&&(n!==this.statics.blotName||r?t.prototype.format.call(this,n,r):this.replaceWith(e.blotName))},e.prototype.formatAt=function(e,n,r,i){null!=o.query(r,o.Scope.BLOCK)?this.format(r,i):t.prototype.formatAt.call(this,e,n,r,i)},e.prototype.insertAt=function(e,n,r){if(null==r||null!=o.query(n,o.Scope.INLINE))t.prototype.insertAt.call(this,e,n,r);else{var i=this.split(e),a=o.create(n,r);i.parent.insertBefore(a,i)}},e.prototype.update=function(e,n){navigator.userAgent.match(/Trident/)?this.build():t.prototype.update.call(this,e,n)},e.blotName="block",e.scope=o.Scope.BLOCK_BLOT,e.tagName="P",e}(i.default);e.default=a},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(19),o=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return r(e,t),e.formats=function(t){},e.prototype.format=function(e,n){t.prototype.formatAt.call(this,0,this.length(),e,n)},e.prototype.formatAt=function(e,n,r,i){0===e&&n===this.length()?this.format(r,i):t.prototype.formatAt.call(this,e,n,r,i)},e.prototype.formats=function(){return this.statics.formats(this.domNode)},e}(i.default);e.default=o},function(t,e,n){"use strict";var r=this&&this.__extends||function(){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])};return function(e,n){function r(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();Object.defineProperty(e,"__esModule",{value:!0});var i=n(19),o=n(1),a=function(t){function e(e){var n=t.call(this,e)||this;return n.text=n.statics.value(n.domNode),n}return r(e,t),e.create=function(t){return document.createTextNode(t)},e.value=function(t){var e=t.data;return e["normalize"]&&(e=e["normalize"]()),e},e.prototype.deleteAt=function(t,e){this.domNode.data=this.text=this.text.slice(0,t)+this.text.slice(t+e)},e.prototype.index=function(t,e){return this.domNode===t?e:-1},e.prototype.insertAt=function(e,n,r){null==r?(this.text=this.text.slice(0,e)+n+this.text.slice(e),this.domNode.data=this.text):t.prototype.insertAt.call(this,e,n,r)},e.prototype.length=function(){return this.text.length},e.prototype.optimize=function(n){t.prototype.optimize.call(this,n),this.text=this.statics.value(this.domNode),0===this.text.length?this.remove():this.next instanceof e&&this.next.prev===this&&(this.insertAt(this.length(),this.next.value()),this.next.remove())},e.prototype.position=function(t,e){return void 0===e&&(e=!1),[this.domNode,t]},e.prototype.split=function(t,e){if(void 0===e&&(e=!1),!e){if(0===t)return this;if(t===this.length())return this.next}var n=o.create(this.domNode.splitText(t));return this.parent.insertBefore(n,this.next),this.text=this.statics.value(this.domNode),n},e.prototype.update=function(t,e){var n=this;t.some((function(t){return"characterData"===t.type&&t.target===n.domNode}))&&(this.text=this.statics.value(this.domNode))},e.prototype.value=function(){return this.text},e.blotName="text",e.scope=o.Scope.INLINE_BLOT,e}(i.default);e.default=a},function(t,e,n){"use strict";var r=document.createElement("div");if(r.classList.toggle("test-class",!1),r.classList.contains("test-class")){var i=DOMTokenList.prototype.toggle;DOMTokenList.prototype.toggle=function(t,e){return arguments.length>1&&!this.contains(t)===!e?e:i.call(this,t)}}String.prototype.startsWith||(String.prototype.startsWith=function(t,e){return e=e||0,this.substr(e,t.length)===t}),String.prototype.endsWith||(String.prototype.endsWith=function(t,e){var n=this.toString();("number"!==typeof e||!isFinite(e)||Math.floor(e)!==e||e>n.length)&&(e=n.length),e-=t.length;var r=n.indexOf(t,e);return-1!==r&&r===e}),Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null===this)throw new TypeError("Array.prototype.find called on null or undefined");if("function"!==typeof t)throw new TypeError("predicate must be a function");for(var e,n=Object(this),r=n.length>>>0,i=arguments[1],o=0;oe.length?t:e,c=t.length>e.length?e:t,u=l.indexOf(c);if(-1!=u)return a=[[r,l.substring(0,u)],[i,c],[r,l.substring(u+c.length)]],t.length>e.length&&(a[0][0]=a[2][0]=n),a;if(1==c.length)return[[n,t],[r,e]];var p=d(t,e);if(p){var f=p[0],h=p[1],v=p[2],m=p[3],g=p[4],_=o(f,v),b=o(h,m);return _.concat([[i,g]],b)}return s(t,e)}function s(t,e){for(var i=t.length,o=e.length,a=Math.ceil((i+o)/2),s=a,c=2*a,u=new Array(c),d=new Array(c),p=0;pi)m+=2;else if(k>o)v+=2;else if(h){var x=s+f-y;if(x>=0&&x=O)return l(t,e,S,k)}}}for(var E=-b+g;E<=b-_;E+=2){x=s+E;O=E==-b||E!=b&&d[x-1]i)_+=2;else if(C>o)g+=2;else if(!h){w=s+f-E;if(w>=0&&w=O)return l(t,e,S,k)}}}}return[[n,t],[r,e]]}function l(t,e,n,r){var i=t.substring(0,n),a=e.substring(0,r),s=t.substring(n),l=e.substring(r),c=o(i,a),u=o(s,l);return c.concat(u)}function c(t,e){if(!t||!e||t.charAt(0)!=e.charAt(0))return 0;var n=0,r=Math.min(t.length,e.length),i=r,o=0;while(ne.length?t:e,r=t.length>e.length?e:t;if(n.length<4||2*r.length=t.length?[r,i,o,a,d]:null}var o,a,s,l,d,p=i(n,r,Math.ceil(n.length/4)),f=i(n,r,Math.ceil(n.length/2));if(!p&&!f)return null;o=f?p&&p[4].length>f[4].length?p:f:p,t.length>e.length?(a=o[0],s=o[1],l=o[2],d=o[3]):(l=o[0],d=o[1],a=o[2],s=o[3]);var h=o[4];return[a,s,l,d,h]}function p(t){t.push([i,""]);var e,o=0,a=0,s=0,l="",d="";while(o1?(0!==a&&0!==s&&(e=c(d,l),0!==e&&(o-a-s>0&&t[o-a-s-1][0]==i?t[o-a-s-1][1]+=d.substring(0,e):(t.splice(0,0,[i,d.substring(0,e)]),o++),d=d.substring(e),l=l.substring(e)),e=u(d,l),0!==e&&(t[o][1]=d.substring(d.length-e)+t[o][1],d=d.substring(0,d.length-e),l=l.substring(0,l.length-e))),0===a?t.splice(o-s,a+s,[r,d]):0===s?t.splice(o-a,a+s,[n,l]):t.splice(o-a-s,a+s,[n,l],[r,d]),o=o-a-s+(a?1:0)+(s?1:0)+1):0!==o&&t[o-1][0]==i?(t[o-1][1]+=t[o][1],t.splice(o,1)):o++,s=0,a=0,l="",d="";break}""===t[t.length-1][1]&&t.pop();var f=!1;o=1;while(o0&&r.splice(o+2,0,[s[0],l]),g(r,o,3)}return t}function m(t){for(var e=!1,o=function(t){return t.charCodeAt(0)>=56320&&t.charCodeAt(0)<=57343},a=function(t){return t.charCodeAt(t.length-1)>=55296&&t.charCodeAt(t.length-1)<=56319},s=2;s0&&l.push(t[s]);return l}function g(t,e,n){for(var r=e+n-1;r>=0&&r>=e-1;r--)if(r+1\r?\n +\<"),this.convert();var e=this.quill.getFormat(this.quill.selection.savedRange.index);if(e[w.default.blotName]){var n=this.container.innerText;return this.container.innerHTML="",(new c.default).insert(n,S({},w.default.blotName,e[w.default.blotName]))}var r=this.prepareMatching(),o=i(r,2),a=o[0],s=o[1],l=F(this.container,a,s);return z(l,"\n")&&null==l.ops[l.ops.length-1].attributes&&(l=l.compose((new c.default).retain(l.length()-1).delete(1))),M.log("convert",this.container.innerHTML,l),this.container.innerHTML="",l}},{key:"dangerouslyPasteHTML",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:f.default.sources.API;if("string"===typeof t)this.quill.setContents(this.convert(t),e),this.quill.setSelection(0,f.default.sources.SILENT);else{var r=this.convert(e);this.quill.updateContents((new c.default).retain(t).concat(r),n),this.quill.setSelection(t+r.length(),f.default.sources.SILENT)}}},{key:"onPaste",value:function(t){var e=this;if(!t.defaultPrevented&&this.quill.isEnabled()){var n=this.quill.getSelection(),r=(new c.default).retain(n.index),i=this.quill.scrollingContainer.scrollTop;this.container.focus(),this.quill.selection.update(f.default.sources.SILENT),setTimeout((function(){r=r.concat(e.convert()).delete(n.length),e.quill.updateContents(r,f.default.sources.USER),e.quill.setSelection(r.length()-n.length,f.default.sources.SILENT),e.quill.scrollingContainer.scrollTop=i,e.quill.focus()}),1)}}},{key:"prepareMatching",value:function(){var t=this,e=[],n=[];return this.matchers.forEach((function(r){var o=i(r,2),a=o[0],s=o[1];switch(a){case Node.TEXT_NODE:n.push(s);break;case Node.ELEMENT_NODE:e.push(s);break;default:[].forEach.call(t.container.querySelectorAll(a),(function(t){t[P]=t[P]||[],t[P].push(s)}));break}})),[e,n]}}]),e}(g.default);function N(t,e,n){return"object"===("undefined"===typeof e?"undefined":r(e))?Object.keys(e).reduce((function(t,n){return N(t,n,e[n])}),t):t.reduce((function(t,r){return r.attributes&&r.attributes[e]?t.push(r):t.insert(r.insert,(0,s.default)({},S({},e,n),r.attributes))}),new c.default)}function I(t){if(t.nodeType!==Node.ELEMENT_NODE)return{};var e="__ql-computed-style";return t[e]||(t[e]=window.getComputedStyle(t))}function z(t,e){for(var n="",r=t.ops.length-1;r>=0&&n.length-1}function F(t,e,n){return t.nodeType===t.TEXT_NODE?n.reduce((function(e,n){return n(t,e)}),new c.default):t.nodeType===t.ELEMENT_NODE?[].reduce.call(t.childNodes||[],(function(r,i){var o=F(i,e,n);return i.nodeType===t.ELEMENT_NODE&&(o=e.reduce((function(t,e){return e(i,t)}),o),o=(i[P]||[]).reduce((function(t,e){return e(i,t)}),o)),r.concat(o)}),new c.default):new c.default}function B(t,e,n){return N(n,t,!0)}function H(t,e){var n=d.default.Attributor.Attribute.keys(t),r=d.default.Attributor.Class.keys(t),i=d.default.Attributor.Style.keys(t),o={};return n.concat(r).concat(i).forEach((function(e){var n=d.default.query(e,d.default.Scope.ATTRIBUTE);null!=n&&(o[n.attrName]=n.value(t),o[n.attrName])||(n=j[e],null==n||n.attrName!==e&&n.keyName!==e||(o[n.attrName]=n.value(t)||void 0),n=$[e],null==n||n.attrName!==e&&n.keyName!==e||(n=$[e],o[n.attrName]=n.value(t)||void 0))})),Object.keys(o).length>0&&(e=N(e,o)),e}function U(t,e){var n=d.default.query(t);if(null==n)return e;if(n.prototype instanceof d.default.Embed){var r={},i=n.value(t);null!=i&&(r[n.blotName]=i,e=(new c.default).insert(r,n.formats(t)))}else"function"===typeof n.formats&&(e=N(e,n.blotName,n.formats(t)));return e}function V(t,e){return z(e,"\n")||e.insert("\n"),e}function W(){return new c.default}function Y(t,e){var n=d.default.query(t);if(null==n||"list-item"!==n.blotName||!z(e,"\n"))return e;var r=-1,i=t.parentNode;while(!i.classList.contains("ql-clipboard"))"list"===(d.default.query(i)||{}).blotName&&(r+=1),i=i.parentNode;return r<=0?e:e.compose((new c.default).retain(e.length()-1).retain(1,{indent:r}))}function G(t,e){return z(e,"\n")||(D(t)||e.length()>0&&t.nextSibling&&D(t.nextSibling))&&e.insert("\n"),e}function K(t,e){if(D(t)&&null!=t.nextElementSibling&&!z(e,"\n\n")){var n=t.offsetHeight+parseFloat(I(t).marginTop)+parseFloat(I(t).marginBottom);t.nextElementSibling.offsetTop>t.offsetTop+1.5*n&&e.insert("\n")}return e}function J(t,e){var n={},r=t.style||{};return r.fontStyle&&"italic"===I(t).fontStyle&&(n.italic=!0),r.fontWeight&&(I(t).fontWeight.startsWith("bold")||parseInt(I(t).fontWeight)>=700)&&(n.bold=!0),Object.keys(n).length>0&&(e=N(e,n)),parseFloat(r.textIndent||0)>0&&(e=(new c.default).insert("\t").concat(e)),e}function Z(t,e){var n=t.data;if("O:P"===t.parentNode.tagName)return e.insert(n.trim());if(0===n.trim().length&&t.parentNode.classList.contains("ql-clipboard"))return e;if(!I(t.parentNode).whiteSpace.startsWith("pre")){var r=function(t,e){return e=e.replace(/[^\u00a0]/g,""),e.length<1&&t?" ":e};n=n.replace(/\r\n/g," ").replace(/\n/g," "),n=n.replace(/\s\s+/g,r.bind(r,!0)),(null==t.previousSibling&&D(t.parentNode)||null!=t.previousSibling&&D(t.previousSibling))&&(n=n.replace(/^\s+/,r.bind(r,!1))),(null==t.nextSibling&&D(t.parentNode)||null!=t.nextSibling&&D(t.nextSibling))&&(n=n.replace(/\s+$/,r.bind(r,!1)))}return e.insert(n)}R.DEFAULTS={matchers:[],matchVisual:!0},e.default=R,e.matchAttributor=H,e.matchBlot=U,e.matchNewline=G,e.matchSpacing=K,e.matchText=Z},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n '},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;nr.right&&(o=r.right-i.right,this.root.style.left=e+o+"px"),i.leftr.bottom){var a=i.bottom-i.top,s=t.bottom-t.top+a;this.root.style.top=n-s+"px",this.root.classList.add("ql-flip")}return o}},{key:"show",value:function(){this.root.classList.remove("ql-editing"),this.root.classList.remove("ql-hidden")}}]),t}();e.default=o},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done);r=!0)if(n.push(a.value),e&&n.length===e)break}catch(l){i=!0,o=l}finally{try{!r&&s["return"]&&s["return"]()}finally{if(i)throw o}}return n}return function(e,n){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,n);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=function t(e,n,r){null===e&&(e=Function.prototype);var i=Object.getOwnPropertyDescriptor(e,n);if(void 0===i){var o=Object.getPrototypeOf(e);return null===o?void 0:t(o,n,r)}if("value"in i)return i.value;var a=i.get;return void 0!==a?a.call(r):void 0},o=function(){function t(t,e){for(var n=0;n','','',''].join(""),e.default=k},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(29),i=nt(r),o=n(36),a=n(38),s=n(64),l=n(65),c=nt(l),u=n(66),d=nt(u),p=n(67),f=nt(p),h=n(37),v=n(26),m=n(39),g=n(40),_=n(56),b=nt(_),y=n(68),w=nt(y),k=n(27),x=nt(k),O=n(69),E=nt(O),C=n(70),S=nt(C),A=n(71),T=nt(A),q=n(72),M=nt(q),P=n(73),L=nt(P),j=n(13),$=nt(j),R=n(74),N=nt(R),I=n(75),z=nt(I),D=n(57),F=nt(D),B=n(41),H=nt(B),U=n(28),V=nt(U),W=n(59),Y=nt(W),G=n(60),K=nt(G),J=n(61),Z=nt(J),X=n(108),Q=nt(X),tt=n(62),et=nt(tt);function nt(t){return t&&t.__esModule?t:{default:t}}i.default.register({"attributors/attribute/direction":a.DirectionAttribute,"attributors/class/align":o.AlignClass,"attributors/class/background":h.BackgroundClass,"attributors/class/color":v.ColorClass,"attributors/class/direction":a.DirectionClass,"attributors/class/font":m.FontClass,"attributors/class/size":g.SizeClass,"attributors/style/align":o.AlignStyle,"attributors/style/background":h.BackgroundStyle,"attributors/style/color":v.ColorStyle,"attributors/style/direction":a.DirectionStyle,"attributors/style/font":m.FontStyle,"attributors/style/size":g.SizeStyle},!0),i.default.register({"formats/align":o.AlignClass,"formats/direction":a.DirectionClass,"formats/indent":s.IndentClass,"formats/background":h.BackgroundStyle,"formats/color":v.ColorStyle,"formats/font":m.FontClass,"formats/size":g.SizeClass,"formats/blockquote":c.default,"formats/code-block":$.default,"formats/header":d.default,"formats/list":f.default,"formats/bold":b.default,"formats/code":j.Code,"formats/italic":w.default,"formats/link":x.default,"formats/script":E.default,"formats/strike":S.default,"formats/underline":T.default,"formats/image":M.default,"formats/video":L.default,"formats/list/item":p.ListItem,"modules/formula":N.default,"modules/syntax":z.default,"modules/toolbar":F.default,"themes/bubble":Q.default,"themes/snow":et.default,"ui/icons":H.default,"ui/picker":V.default,"ui/icon-picker":K.default,"ui/color-picker":Y.default,"ui/tooltip":Z.default},!0),e.default=i.default},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.IndentClass=void 0;var r=function(){function t(t,e){for(var n=0;n0&&this.children.tail.format(t,e)}},{key:"formats",value:function(){return p({},this.statics.blotName,this.statics.formats(this.domNode))}},{key:"insertBefore",value:function(t,n){if(t instanceof m)i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"insertBefore",this).call(this,t,n);else{var r=null==n?this.length():n.offset(this),o=this.split(r);o.parent.insertBefore(t,o)}}},{key:"optimize",value:function(t){i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"optimize",this).call(this,t);var n=this.next;null!=n&&n.prev===this&&n.statics.blotName===this.statics.blotName&&n.domNode.tagName===this.domNode.tagName&&n.domNode.getAttribute("data-checked")===this.domNode.getAttribute("data-checked")&&(n.moveChildren(this),n.remove())}},{key:"replace",value:function(t){if(t.statics.blotName!==this.statics.blotName){var n=a.default.create(this.statics.defaultChild);t.moveChildren(n),this.appendChild(n)}i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"replace",this).call(this,t)}}]),e}(u.default);g.blotName="list",g.scope=a.default.Scope.BLOCK_BLOT,g.tagName=["OL","UL"],g.defaultChild="list-item",g.allowedChildren=[m],e.ListItem=m,e.default=g},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(56),i=o(r);function o(t){return t&&t.__esModule?t:{default:t}}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!==typeof e&&"function"!==typeof e?t:e}function l(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var c=function(t){function e(){return a(this,e),s(this,(e.__proto__||Object.getPrototypeOf(e)).apply(this,arguments))}return l(e,t),e}(i.default);c.blotName="italic",c.tagName=["EM","I"],e.default=c},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}],[{key:"create",value:function(t){var n=i(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return"string"===typeof t&&n.setAttribute("src",this.sanitize(t)),n}},{key:"formats",value:function(t){return p.reduce((function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e}),{})}},{key:"match",value:function(t){return/\.(jpe?g|gif|png)$/.test(t)||/^data:image\/.+;base64/.test(t)}},{key:"sanitize",value:function(t){return(0,s.sanitize)(t,["http","https","data"])?t:"//:0"}},{key:"value",value:function(t){return t.getAttribute("src")}}]),e}(a.default.Embed);f.blotName="image",f.tagName="IMG",e.default=f},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n-1?n?this.domNode.setAttribute(t,n):this.domNode.removeAttribute(t):i(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"format",this).call(this,t,n)}}],[{key:"create",value:function(t){var n=i(e.__proto__||Object.getPrototypeOf(e),"create",this).call(this,t);return n.setAttribute("frameborder","0"),n.setAttribute("allowfullscreen",!0),n.setAttribute("src",this.sanitize(t)),n}},{key:"formats",value:function(t){return p.reduce((function(e,n){return t.hasAttribute(n)&&(e[n]=t.getAttribute(n)),e}),{})}},{key:"sanitize",value:function(t){return s.default.sanitize(t)}},{key:"value",value:function(t){return t.getAttribute("src")}}]),e}(o.BlockEmbed);f.blotName="video",f.className="ql-video",f.tagName="IFRAME",e.default=f},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.FormulaBlot=void 0;var r=function(){function t(t,e){for(var n=0;n0||null==this.cachedText)&&(this.domNode.innerHTML=t(e),this.domNode.normalize(),this.attach()),this.cachedText=e)}}]),e}(p.default);g.className="ql-syntax";var _=new a.default.Attributor.Class("token","hljs",{scope:a.default.Scope.INLINE}),b=function(t){function e(t,n){h(this,e);var r=v(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,t,n));if("function"!==typeof r.options.highlight)throw new Error("Syntax module requires highlight.js. Please include the library on the page before Quill.");var i=null;return r.quill.on(l.default.events.SCROLL_OPTIMIZE,(function(){clearTimeout(i),i=setTimeout((function(){r.highlight(),i=null}),r.options.interval)})),r.highlight(),r}return m(e,t),r(e,null,[{key:"register",value:function(){l.default.register(_,!0),l.default.register(g,!0)}}]),r(e,[{key:"highlight",value:function(){var t=this;if(!this.quill.selection.composing){this.quill.update(l.default.sources.USER);var e=this.quill.getSelection();this.quill.scroll.descendants(g).forEach((function(e){e.highlight(t.options.highlight)})),this.quill.update(l.default.sources.SILENT),null!=e&&this.quill.setSelection(e,l.default.sources.SILENT)}}}]),e}(u.default);b.DEFAULTS={highlight:function(){return null==window.hljs?null:function(t){var e=window.hljs.highlightAuto(t);return e.value}}(),interval:1e3},e.CodeBlock=g,e.CodeToken=_,e.default=b},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e){t.exports=' '},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.BubbleTooltip=void 0;var r=function t(e,n,r){null===e&&(e=Function.prototype);var i=Object.getOwnPropertyDescriptor(e,n);if(void 0===i){var o=Object.getPrototypeOf(e);return null===o?void 0:t(o,n,r)}if("value"in i)return i.value;var a=i.get;return void 0!==a?a.call(r):void 0},i=function(){function t(t,e){for(var n=0;n0&&i===l.default.sources.USER){r.show(),r.root.style.left="0px",r.root.style.width="",r.root.style.width=r.root.offsetWidth+"px";var o=r.quill.getLines(e.index,e.length);if(1===o.length)r.position(r.quill.getBounds(e));else{var a=o[o.length-1],s=r.quill.getIndex(a),c=Math.min(a.length()-1,e.index+e.length-s),u=r.quill.getBounds(new d.Range(s,c));r.position(u)}}else document.activeElement!==r.textbox&&r.quill.hasFocus()&&r.hide()})),r}return g(e,t),i(e,[{key:"listen",value:function(){var t=this;r(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"listen",this).call(this),this.root.querySelector(".ql-close").addEventListener("click",(function(){t.root.classList.remove("ql-editing")})),this.quill.on(l.default.events.SCROLL_OPTIMIZE,(function(){setTimeout((function(){if(!t.root.classList.contains("ql-hidden")){var e=t.quill.getSelection();null!=e&&t.position(t.quill.getBounds(e))}}),1)}))}},{key:"cancel",value:function(){this.show()}},{key:"position",value:function(t){var n=r(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"position",this).call(this,t),i=this.root.querySelector(".ql-tooltip-arrow");if(i.style.marginLeft="",0===n)return n;i.style.marginLeft=-1*n-i.offsetWidth/2+"px"}}]),e}(c.BaseTooltip);y.TEMPLATE=['','
','','',"
"].join(""),e.BubbleTooltip=y,e.default=b},function(t,e,n){t.exports=n(63)}])["default"]}))},22281:function(t,e){var n,r,i;(function(o,a){r=[],n=a,i="function"===typeof n?n.apply(e,r):n,void 0===i||(t.exports=i)})(0,(function(){if("WebSocket"in window)return t.prototype.onopen=function(t){},t.prototype.onclose=function(t){},t.prototype.onconnecting=function(t){},t.prototype.onmessage=function(t){},t.prototype.onerror=function(t){},t.debugAll=!1,t.CONNECTING=WebSocket.CONNECTING,t.OPEN=WebSocket.OPEN,t.CLOSING=WebSocket.CLOSING,t.CLOSED=WebSocket.CLOSED,t;function t(e,n,r){var i={debug:!1,automaticOpen:!0,reconnectInterval:1e3,maxReconnectInterval:3e4,reconnectDecay:1.5,timeoutInterval:2e3,maxReconnectAttempts:null};for(var o in r||(r={}),i)"undefined"!==typeof r[o]?this[o]=r[o]:this[o]=i[o];this.url=e,this.reconnectAttempts=0,this.readyState=WebSocket.CONNECTING,this.protocol=null;var a,s=this,l=!1,c=!1,u=document.createElement("div");function d(t,e){var n=document.createEvent("CustomEvent");return n.initCustomEvent(t,!1,!1,e),n}u.addEventListener("open",(function(t){s.onopen(t)})),u.addEventListener("close",(function(t){s.onclose(t)})),u.addEventListener("connecting",(function(t){s.onconnecting(t)})),u.addEventListener("message",(function(t){s.onmessage(t)})),u.addEventListener("error",(function(t){s.onerror(t)})),this.addEventListener=u.addEventListener.bind(u),this.removeEventListener=u.removeEventListener.bind(u),this.dispatchEvent=u.dispatchEvent.bind(u),this.open=function(e){if(a=new WebSocket(s.url,n||[]),e){if(this.maxReconnectAttempts&&this.reconnectAttempts>this.maxReconnectAttempts)return}else u.dispatchEvent(d("connecting")),this.reconnectAttempts=0;(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","attempt-connect",s.url);var r=a,i=setTimeout((function(){(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","connection-timeout",s.url),c=!0,r.close(),c=!1}),s.timeoutInterval);a.onopen=function(n){clearTimeout(i),(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","onopen",s.url),s.protocol=a.protocol,s.readyState=WebSocket.OPEN,s.reconnectAttempts=0;var r=d("open");r.isReconnect=e,e=!1,u.dispatchEvent(r)},a.onclose=function(n){if(clearTimeout(i),a=null,l)s.readyState=WebSocket.CLOSED,u.dispatchEvent(d("close"));else{s.readyState=WebSocket.CONNECTING;var r=d("connecting");r.code=n.code,r.reason=n.reason,r.wasClean=n.wasClean,u.dispatchEvent(r),e||c||((s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","onclose",s.url),u.dispatchEvent(d("close")));var i=s.reconnectInterval*Math.pow(s.reconnectDecay,s.reconnectAttempts);setTimeout((function(){s.reconnectAttempts++,s.open(!0)}),i>s.maxReconnectInterval?s.maxReconnectInterval:i)}},a.onmessage=function(e){(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","onmessage",s.url,e.data);var n=d("message");n.data=e.data,u.dispatchEvent(n)},a.onerror=function(e){(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","onerror",s.url,e),u.dispatchEvent(d("error"))}},1==this.automaticOpen&&this.open(!1),this.send=function(e){if(a)return(s.debug||t.debugAll)&&console.debug("ReconnectingWebSocket","send",s.url,e),a.send(e);throw"INVALID_STATE_ERR : Pausing to reconnect websocket"},this.close=function(t,e){"undefined"==typeof t&&(t=1e3),l=!0,a&&a.close(t,e)},this.refresh=function(){a&&a.close()}}}))},4674:function(t,e,n){t.exports=n(30692)},30692:function(t,e,n){var r=n(67279);t.exports={Delta:r,type:{name:"rich-text",uri:"http://sharejs.org/types/rich-text/v1",create:function(t){return new r(t)},apply:function(t,e){return t=new r(t),e=new r(e),t.compose(e)},compose:function(t,e){return t=new r(t),e=new r(e),t.compose(e)},diff:function(t,e){return t=new r(t),e=new r(e),t.diff(e)},transform:function(t,e,n){return t=new r(t),e=new r(e),e.transform(t,"left"===n)},transformCursor:function(t,e,n){return e.transformPosition(t,!n)},normalize:function(t){return t},serialize:function(t){return t.ops},deserialize:function(t){return new r(t)},transformPresence:function(t,e,n){if(!t)return null;const i=new r(e),o=this.transformCursor(t.index,i,n),a=this.transformCursor(t.index+t.length,i,n);return Object.assign({},t,{index:o,length:a-o})}}}},74475:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var i,o=r(n(76092)),a=r(n(84231));(function(t){function e(t,e,n){void 0===t&&(t={}),void 0===e&&(e={}),"object"!==typeof t&&(t={}),"object"!==typeof e&&(e={});var r=o.default(e);for(var i in n||(r=Object.keys(r).reduce((function(t,e){return null!=r[e]&&(t[e]=r[e]),t}),{})),t)void 0!==t[i]&&void 0===e[i]&&(r[i]=t[i]);return Object.keys(r).length>0?r:void 0}function n(t,e){void 0===t&&(t={}),void 0===e&&(e={}),"object"!==typeof t&&(t={}),"object"!==typeof e&&(e={});var n=Object.keys(t).concat(Object.keys(e)).reduce((function(n,r){return a.default(t[r],e[r])||(n[r]=void 0===e[r]?null:e[r]),n}),{});return Object.keys(n).length>0?n:void 0}function r(t,e){void 0===t&&(t={}),void 0===e&&(e={}),t=t||{};var n=Object.keys(e).reduce((function(n,r){return e[r]!==t[r]&&void 0!==t[r]&&(n[r]=e[r]),n}),{});return Object.keys(t).reduce((function(n,r){return t[r]!==e[r]&&void 0===e[r]&&(n[r]=null),n}),n)}function i(t,e,n){if(void 0===n&&(n=!1),"object"!==typeof t)return e;if("object"===typeof e){if(!n)return e;var r=Object.keys(e).reduce((function(n,r){return void 0===t[r]&&(n[r]=e[r]),n}),{});return Object.keys(r).length>0?r:void 0}}t.compose=e,t.diff=n,t.invert=r,t.transform=i})(i||(i={})),e["default"]=i},67279:function(t,e,n){"use strict";n(44114),n(13609),n(16280);var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}},i=r(n(52315)),o=r(n(76092)),a=r(n(84231)),s=r(n(74475)),l=r(n(62730)),c=String.fromCharCode(0),u=function(){function t(t){Array.isArray(t)?this.ops=t:null!=t&&Array.isArray(t.ops)?this.ops=t.ops:this.ops=[]}return t.prototype.insert=function(t,e){var n={};return"string"===typeof t&&0===t.length?this:(n.insert=t,null!=e&&"object"===typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n))},t.prototype.delete=function(t){return t<=0?this:this.push({delete:t})},t.prototype.retain=function(t,e){if(t<=0)return this;var n={retain:t};return null!=e&&"object"===typeof e&&Object.keys(e).length>0&&(n.attributes=e),this.push(n)},t.prototype.push=function(t){var e=this.ops.length,n=this.ops[e-1];if(t=o.default(t),"object"===typeof n){if("number"===typeof t.delete&&"number"===typeof n.delete)return this.ops[e-1]={delete:n.delete+t.delete},this;if("number"===typeof n.delete&&null!=t.insert&&(e-=1,n=this.ops[e-1],"object"!==typeof n))return this.ops.unshift(t),this;if(a.default(t.attributes,n.attributes)){if("string"===typeof t.insert&&"string"===typeof n.insert)return this.ops[e-1]={insert:n.insert+t.insert},"object"===typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this;if("number"===typeof t.retain&&"number"===typeof n.retain)return this.ops[e-1]={retain:n.retain+t.retain},"object"===typeof t.attributes&&(this.ops[e-1].attributes=t.attributes),this}}return e===this.ops.length?this.ops.push(t):this.ops.splice(e,0,t),this},t.prototype.chop=function(){var t=this.ops[this.ops.length-1];return t&&t.retain&&!t.attributes&&this.ops.pop(),this},t.prototype.filter=function(t){return this.ops.filter(t)},t.prototype.forEach=function(t){this.ops.forEach(t)},t.prototype.map=function(t){return this.ops.map(t)},t.prototype.partition=function(t){var e=[],n=[];return this.forEach((function(r){var i=t(r)?e:n;i.push(r)})),[e,n]},t.prototype.reduce=function(t,e){return this.ops.reduce(t,e)},t.prototype.changeLength=function(){return this.reduce((function(t,e){return e.insert?t+l.default.length(e):e.delete?t-e.delete:t}),0)},t.prototype.length=function(){return this.reduce((function(t,e){return t+l.default.length(e)}),0)},t.prototype.slice=function(e,n){void 0===e&&(e=0),void 0===n&&(n=1/0);var r=[],i=l.default.iterator(this.ops),o=0;while(o0&&r.next(o.retain-c)}var u=new t(i);while(n.hasNext()||r.hasNext())if("insert"===r.peekType())u.push(r.next());else if("delete"===n.peekType())u.push(n.next());else{var d=Math.min(n.peekLength(),r.peekLength()),p=n.next(d),f=r.next(d);if("number"===typeof f.retain){var h={};"number"===typeof p.retain?h.retain=d:h.insert=p.insert;var v=s.default.compose(p.attributes,f.attributes,"number"===typeof p.retain);if(v&&(h.attributes=v),u.push(h),!r.hasNext()&&a.default(u.ops[u.ops.length-1],h)){var m=new t(n.rest());return u.concat(m).chop()}}else"number"===typeof f.delete&&"number"===typeof p.retain&&u.push(f)}return u.chop()},t.prototype.concat=function(e){var n=new t(this.ops.slice());return e.ops.length>0&&(n.push(e.ops[0]),n.ops=n.ops.concat(e.ops.slice(1))),n},t.prototype.diff=function(e,n){if(this.ops===e.ops)return new t;var r=[this,e].map((function(t){return t.map((function(n){if(null!=n.insert)return"string"===typeof n.insert?n.insert:c;var r=t===e?"on":"with";throw new Error("diff() called "+r+" non-document")})).join("")})),o=new t,u=i.default(r[0],r[1],n),d=l.default.iterator(this.ops),p=l.default.iterator(e.ops);return u.forEach((function(t){var e=t[1].length;while(e>0){var n=0;switch(t[0]){case i.default.INSERT:n=Math.min(p.peekLength(),e),o.push(p.next(n));break;case i.default.DELETE:n=Math.min(e,d.peekLength()),d.next(n),o.delete(n);break;case i.default.EQUAL:n=Math.min(d.peekLength(),p.peekLength(),e);var r=d.next(n),l=p.next(n);a.default(r.insert,l.insert)?o.retain(n,s.default.diff(r.attributes,l.attributes)):o.push(l).delete(n);break}e-=n}})),o.chop()},t.prototype.eachLine=function(e,n){void 0===n&&(n="\n");var r=l.default.iterator(this.ops),i=new t,o=0;while(r.hasNext()){if("insert"!==r.peekType())return;var a=r.peek(),s=l.default.length(a)-r.peekLength(),c="string"===typeof a.insert?a.insert.indexOf(n,s)-s:-1;if(c<0)i.push(r.next());else if(c>0)i.push(r.next(c));else{if(!1===e(i,r.next(1).attributes||{},o))return;o+=1,i=new t}}i.length()>0&&e(i,{},o)},t.prototype.invert=function(e){var n=new t;return this.reduce((function(t,r){if(r.insert)n.delete(l.default.length(r));else{if(r.retain&&null==r.attributes)return n.retain(r.retain),t+r.retain;if(r.delete||r.retain&&r.attributes){var i=r.delete||r.retain,o=e.slice(t,t+i);return o.forEach((function(t){r.delete?n.push(t):r.retain&&r.attributes&&n.retain(l.default.length(t),s.default.invert(r.attributes,t.attributes))})),t+i}}return t}),0),n.chop()},t.prototype.transform=function(e,n){if(void 0===n&&(n=!1),n=!!n,"number"===typeof e)return this.transformPosition(e,n);var r=e,i=l.default.iterator(this.ops),o=l.default.iterator(r.ops),a=new t;while(i.hasNext()||o.hasNext())if("insert"!==i.peekType()||!n&&"insert"===o.peekType())if("insert"===o.peekType())a.push(o.next());else{var c=Math.min(i.peekLength(),o.peekLength()),u=i.next(c),d=o.next(c);if(u.delete)continue;d.delete?a.push(d):a.retain(c,s.default.transform(u.attributes,d.attributes,n))}else a.retain(l.default.length(i.next()));return a.chop()},t.prototype.transformPosition=function(t,e){void 0===e&&(e=!1),e=!!e;var n=l.default.iterator(this.ops),r=0;while(n.hasNext()&&r<=t){var i=n.peekLength(),o=n.peekType();n.next(),"delete"!==o?("insert"===o&&(r=r-n?(t=r-n,this.index+=1,this.offset=0):this.offset+=t,"number"===typeof e.delete)return{delete:t};var o={};return e.attributes&&(o.attributes=e.attributes),"number"===typeof e.retain?o.retain=t:"string"===typeof e.insert?o.insert=e.insert.substr(n,t):o.insert=e.insert,o}return{retain:1/0}},t.prototype.peek=function(){return this.ops[this.index]},t.prototype.peekLength=function(){return this.ops[this.index]?i.default.length(this.ops[this.index])-this.offset:1/0},t.prototype.peekType=function(){return this.ops[this.index]?"number"===typeof this.ops[this.index].delete?"delete":"number"===typeof this.ops[this.index].retain?"retain":"insert":"retain"},t.prototype.rest=function(){if(this.hasNext()){if(0===this.offset)return this.ops.slice(this.index);var t=this.offset,e=this.index,n=this.next(),r=this.ops.slice(this.index);return this.offset=t,this.index=e,[n].concat(r)}return[]},t}();e["default"]=o},62730:function(t,e,n){"use strict";var r=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(e,"__esModule",{value:!0});var i,o=r(n(69771));(function(t){function e(t){return new o.default(t)}function n(t){return"number"===typeof t.delete?t.delete:"number"===typeof t.retain?t.retain:"string"===typeof t.insert?t.insert.length:1}t.iterator=e,t.length=n})(i||(i={})),e["default"]=i},88345:function(t,e,n){n(16280),n(44114);var r=n(7419),i=n(28961),o=n(95030),a=n(78839),s=n(53417),l=n(81501),c=n(11607),u=n(82507),d=n(75332).k,p=n(76936),f=n(34049),h=n(86002),v=n(32956),m=u.CODES;function g(t){return 0===t.readyState||1===t.readyState?"connecting":"disconnected"}function _(t){c.EventEmitter.call(this),this.collections={},this.nextQueryId=1,this.nextSnapshotRequestId=1,this.queries={},this._presences={},this._docPresenceEmitter=new v,this._snapshotRequests={},this.seq=1,this._presenceSeq=1,this.id=null,this.agent=null,this.debug=!1,this.state=g(t),this.bindToSocket(t)}function b(t,e){var n=new Error(t.message);return n.code=t.code,e&&(n.data=e),n}function y(t){return t.hasPending()}function w(t){return t.hasWritePending()}t.exports=_,c.mixin(_),_.prototype.bindToSocket=function(t){this.socket&&(this.socket.close(),this.socket.onmessage=null,this.socket.onopen=null,this.socket.onerror=null,this.socket.onclose=null),this.socket=t;var e=g(t);this._setState(e),this.canSend=!1;var n=this;t.onmessage=function(t){try{var e="string"===typeof t.data?JSON.parse(t.data):t.data}catch(i){return void h.warn("Failed to parse message",t)}n.debug&&h.info("RECV",JSON.stringify(e));var r={data:e};if(n.emit("receive",r),r.data)try{n.handleMessage(r.data)}catch(i){f.nextTick((function(){n.emit("error",i)}))}},1===t.readyState&&n._initializeHandshake(),t.onopen=function(){n._setState("connecting"),n._initializeHandshake()},t.onerror=function(t){n.emit("connection error",t)},t.onclose=function(t){"closed"===t||"Closed"===t?n._setState("closed",t):"stopped"===t||"Stopped by server"===t?n._setState("stopped",t):n._setState("disconnected",t)}},_.prototype.handleMessage=function(t){var e=null;switch(t.error&&(e=b(t.error,t),delete t.error),t.a){case d.initLegacy:return this._handleLegacyInit(t);case d.handshake:return this._handleHandshake(e,t);case d.queryFetch:var n=this.queries[t.id];return void(n&&n._handleFetch(e,t.data,t.extra));case d.querySubscribe:n=this.queries[t.id];return void(n&&n._handleSubscribe(e,t.data,t.extra));case d.queryUnsubscribe:return;case d.queryUpdate:n=this.queries[t.id];if(!n)return;return e?n._handleError(e):(t.diff&&n._handleDiff(t.diff),void(t.hasOwnProperty("extra")&&n._handleExtra(t.extra)));case d.bulkFetch:return this._handleBulkMessage(e,t,"_handleFetch");case d.bulkSubscribe:case d.bulkUnsubscribe:return this._handleBulkMessage(e,t,"_handleSubscribe");case d.snapshotFetch:case d.snapshotFetchByTimestamp:return this._handleSnapshotFetch(e,t);case d.fetch:var r=this.getExisting(t.c,t.d);return void(r&&r._handleFetch(e,t.data));case d.subscribe:case d.unsubscribe:r=this.getExisting(t.c,t.d);return void(r&&r._handleSubscribe(e,t.data));case d.op:r=this.getExisting(t.c,t.d);return void(r&&r._handleOp(e,t));case d.presence:return this._handlePresence(e,t);case d.presenceSubscribe:return this._handlePresenceSubscribe(e,t);case d.presenceUnsubscribe:return this._handlePresenceUnsubscribe(e,t);case d.presenceRequest:return this._handlePresenceRequest(e,t);case d.pingPong:return this._handlePingPong(e);default:h.warn("Ignoring unrecognized message",t)}},_.prototype._handleBulkMessage=function(t,e,n){if(e.data)for(var r in e.data){var i=e.data[r],o=this.getExisting(e.c,r);o&&(t?o[n](t):i.error?o[n](b(i.error)):o[n](null,i))}else if(Array.isArray(e.b))for(var a=0;athis.version?this.fetch(e):e&&e()}if(this.version>t.v)return e&&e();this.version=t.v;var r=void 0===t.type?a.defaultType:t.type;this._setType(r),this._setData(this.type&&this.type.deserialize?this.type.deserialize(t.data):t.data),this.emit("load"),e&&e()},p.prototype.whenNothingPending=function(t){var e=this;s.nextTick((function(){e.hasPending()?e.once("nothing pending",t):t()}))},p.prototype.hasPending=function(){return!!(this.inflightOp||this.pendingOps.length||this.inflightFetch.length||this.inflightSubscribe||this.pendingFetch.length||this.pendingSubscribe.length)},p.prototype.hasWritePending=function(){return!(!this.inflightOp&&!this.pendingOps.length)},p.prototype._emitNothingPending=function(){this.hasWritePending()||(this.emit("no write pending"),this.hasPending()||this.emit("nothing pending"))},p.prototype._emitResponseError=function(t,e){return t&&t.code===d.ERR_SNAPSHOT_READ_SILENT_REJECTION?(this.wantSubscribe=!1,e&&e(),void this._emitNothingPending()):e?(e(t),void this._emitNothingPending()):(this._emitNothingPending(),void this.emit("error",t))},p.prototype._handleFetch=function(t,e){var n=this.pendingFetch;this.pendingFetch=[];var r=this.inflightFetch.shift();if(r&&n.push(r),n.length&&(r=function(t){s.callEach(n,t)}),t)return this._emitResponseError(t,r);this.ingestSnapshot(e,r),this._emitNothingPending()},p.prototype._handleSubscribe=function(t,e){var n=this.inflightSubscribe;this.inflightSubscribe=null;var r,i=this.pendingFetch;if(this.pendingFetch=[],n.callback&&i.push(n.callback),i.length&&(r=function(t){s.callEach(i,t)}),t)return this._emitResponseError(t,r);this.subscribed=n.wantSubscribe,this.subscribed?this.ingestSnapshot(e,r):r&&r(),this._emitNothingPending(),this._flushSubscribe()},p.prototype._handleOp=function(t,e){if(t)return this.inflightOp?(t.code===d.ERR_OP_SUBMIT_REJECTED&&(t=null),this._rollback(t)):this.emit("error",t);if(this.inflightOp&&e.src===this.inflightOp.src&&e.seq===this.inflightOp.seq)this._opAcknowledged(e);else if(null==this.version||e.v>this.version)this.fetch();else if(!(e.v1){this.applyStack||(this.applyStack=[]);for(var n=this.applyStack.length,r=0;r=s.MAX_SAFE_INTEGER)return this.emit("error",new o(d.ERR_CONNECTION_SEQ_INTEGER_OVERFLOW,"Connection seq has exceeded the max safe integer, maybe from being open for too long"));e.seq=this.connection.seq++}this.connection.sendOp(this,e),null==e.src&&(e.src=t)}},p.prototype._submit=function(t,e,n){if(e||(e=!0),"op"in t){if(!this.type){var r=new o(d.ERR_DOC_DOES_NOT_EXIST,"Cannot submit op. Document has not been created. "+this.collection+"."+this.id);return n?n(r):this.emit("error",r)}this.type.normalize&&(t.op=this.type.normalize(t.op))}try{this._pushOp(t,e,n),this._otApply(t,e)}catch(a){return this._hardRollback(a)}var i=this;s.nextTick((function(){i.flush()}))},p.prototype._pushOp=function(t,e,n){if(t.source=e,this.applyStack)this.applyStack.push(t);else{var r=this._tryCompose(t);if(r)return void r.callbacks.push(n)}t.type=this.type,t.callbacks=[n],this.pendingOps.push(t)},p.prototype._popApplyStack=function(t){if(t>0)this.applyStack.length=t;else{var e=this.applyStack[0];if(this.applyStack=null,e){var n=this.pendingOps.indexOf(e);if(-1!==n){var r=this.pendingOps.splice(n);for(n=0;n=r))try{i.p=n._transformPresence(i.p,t,e),n._docDataVersionByPresenceVersion[i.pv]=r}catch(s){var a=n._getCallback(i.pv);n._callbackOrEmit(s,a)}}));try{this.value=this._transformPresence(this.value,t,e)}catch(i){this.emit("error",i)}},s.prototype._handleCreateOrDel=function(){this._pendingMessages.forEach((function(t){t.p=null})),this.value=null},s.prototype._handleLoad=function(){this.value=null,this._pendingMessages=[],this._docDataVersionByPresenceVersion={}},s.prototype._message=function(){var t=r.prototype._message.call(this);return t.c=this.collection,t.d=this.id,t.v=null,t.t=null,t},s.prototype._transformPresence=function(t,e,n){var r=this._doc.type;if(!o.supportsPresence(r))throw new i(a.ERR_TYPE_DOES_NOT_SUPPORT_PRESENCE,"Type does not support presence: "+r.name);return r.transformPresence(t,e,n)}},38316:function(t,e,n){n(16280),n(44114);var r=n(11607),i=n(75332).k,o=n(34049);function a(t,e){if(r.EventEmitter.call(this),!e||"string"!==typeof e)throw new Error("LocalPresence presenceId must be a string");this.presence=t,this.presenceId=e,this.connection=t.connection,this.presenceVersion=0,this.value=null,this._pendingMessages=[],this._callbacksByPresenceVersion={}}t.exports=a,r.mixin(a),a.prototype.submit=function(t,e){this.value=t,this.send(e)},a.prototype.send=function(t){var e=this._message();this._pendingMessages.push(e),this._callbacksByPresenceVersion[e.pv]=t,this._sendPending()},a.prototype.destroy=function(t){var e=this;this.submit(null,(function(n){if(n)return e._callbackOrEmit(n,t);delete e.presence.localPresences[e.presenceId],t&&t()}))},a.prototype._sendPending=function(){if(this.connection.canSend){var t=this;this._pendingMessages.forEach((function(e){t.connection.send(e)})),this._pendingMessages=[]}},a.prototype._ack=function(t,e){var n=this._getCallback(e);this._callbackOrEmit(t,n)},a.prototype._message=function(){return{a:i.presence,ch:this.presence.channel,id:this.presenceId,p:this.value,pv:this.presenceVersion++}},a.prototype._getCallback=function(t){var e=this._callbacksByPresenceVersion[t];return delete this._callbacksByPresenceVersion[t],e},a.prototype._callbackOrEmit=function(t,e){if(e)return o.nextTick(e,t);t&&this.emit("error",t)}},95030:function(t,e,n){n(16280),n(44114);var r=n(11607),i=n(38316),o=n(78223),a=n(34049),s=n(51657),l=n(8561),c=n(75332).k;function u(t,e){if(r.EventEmitter.call(this),!e||"string"!==typeof e)throw new Error("Presence channel must be provided");this.connection=t,this.channel=e,this.wantSubscribe=!1,this.subscribed=!1,this.remotePresences={},this.localPresences={},this._remotePresenceInstances={},this._subscriptionCallbacksBySeq={},this._wantsDestroy=!1}t.exports=u,r.mixin(u),u.prototype.subscribe=function(t){this._sendSubscriptionAction(!0,t)},u.prototype.unsubscribe=function(t){this._sendSubscriptionAction(!1,t)},u.prototype.create=function(t){if(this._wantsDestroy)throw new Error("Presence is being destroyed");t=t||l();var e=this._createLocalPresence(t);return this.localPresences[t]=e,e},u.prototype.destroy=function(t){this._wantsDestroy=!0;var e=this,n=Object.keys(e.localPresences);this.unsubscribe((function(r){if(r)return e._callbackOrEmit(r,t);var i=Object.keys(e._remotePresenceInstances);s.parallel([function(t){s.each(n,(function(t,n){e.localPresences[t].destroy(n)}),t)},function(t){if(!e._wantsDestroy)return t();s.each(i,(function(t,n){e._remotePresenceInstances[t].destroy(n)}),t)}],(function(n){e._wantsDestroy&&delete e.connection._presences[e.channel],e._callbackOrEmit(n,t)}))}))},u.prototype._sendSubscriptionAction=function(t,e){this.wantSubscribe=!!t;var n=this.wantSubscribe?c.presenceSubscribe:c.presenceUnsubscribe,r=this.connection._presenceSeq++;this._subscriptionCallbacksBySeq[r]=e,this.connection.canSend&&this.connection._sendPresenceAction(n,r,this)},u.prototype._handleSubscribe=function(t,e){this.wantSubscribe&&(this.subscribed=!0);var n=this._subscriptionCallback(e);this._callbackOrEmit(t,n)},u.prototype._handleUnsubscribe=function(t,e){this.subscribed=!1;var n=this._subscriptionCallback(e);this._callbackOrEmit(t,n)},u.prototype._receiveUpdate=function(t,e){var n=a.dig(this.localPresences,e.id);if(n)return n._ack(t,e.pv);if(t)return this.emit("error",t);var r=this,i=a.digOrCreate(this._remotePresenceInstances,e.id,(function(){return r._createRemotePresence(e.id)}));i.receiveUpdate(e)},u.prototype._updateRemotePresence=function(t){this.remotePresences[t.presenceId]=t.value,null===t.value&&this._removeRemotePresence(t.presenceId),this.emit("receive",t.presenceId,t.value)},u.prototype._broadcastAllLocalPresence=function(t){if(t)return this.emit("error",t);for(var e in this.localPresences){var n=this.localPresences[e];null!==n.value&&n.send()}},u.prototype._removeRemotePresence=function(t){this._remotePresenceInstances[t].destroy(),delete this._remotePresenceInstances[t],delete this.remotePresences[t]},u.prototype._onConnectionStateChanged=function(){if(this.connection.canSend)for(var t in this._resubscribe(),this.localPresences)this.localPresences[t]._sendPending()},u.prototype._resubscribe=function(){var t=[];for(var e in this._subscriptionCallbacksBySeq){var n=this._subscriptionCallback(e);t.push(n)}if(!this.wantSubscribe)return this._callEachOrEmit(t);var r=this;this.subscribe((function(e){r._callEachOrEmit(t,e)}))},u.prototype._subscriptionCallback=function(t){var e=this._subscriptionCallbacksBySeq[t];return delete this._subscriptionCallbacksBySeq[t],e},u.prototype._callbackOrEmit=function(t,e){if(e)return a.nextTick(e,t);t&&this.emit("error",t)},u.prototype._createLocalPresence=function(t){return new i(this,t)},u.prototype._createRemotePresence=function(t){return new o(this,t)},u.prototype._callEachOrEmit=function(t,e){var n=a.callEach(t,e);!n&&e&&this.emit("error",e)}},97994:function(t,e,n){var r=n(78223),i=n(13882);function o(t,e){r.call(this,t,e),this.collection=this.presence.collection,this.id=this.presence.id,this.src=null,this.presenceVersion=null,this._doc=this.connection.get(this.collection,this.id),this._emitter=this.connection._docPresenceEmitter,this._pending=null,this._opCache=null,this._pendingSetPending=!1,this._opHandler=this._handleOp.bind(this),this._createDelHandler=this._handleCreateDel.bind(this),this._loadHandler=this._handleLoad.bind(this),this._registerWithDoc()}t.exports=o,o.prototype=Object.create(r.prototype),o.prototype.receiveUpdate=function(t){this._pending&&t.pvt._doc.version?t._doc.fetch():void(t._catchUpStalePresence()&&(t.value=t._pending.p,t.presenceVersion=t._pending.pv,t._pending=null,t.presence._updateRemotePresence(t)))}))}},o.prototype._handleOp=function(t,e,n){var r=n===this.src;this._transformAgainstOp(t,r),this._cacheOp(t,r),this._setPendingPresence()},r.prototype._handleCreateDel=function(){this._cacheOp(null),this._setPendingPresence()},r.prototype._handleLoad=function(){this.value=null,this._pending=null,this._opCache=null,this.presence._updateRemotePresence(this)},o.prototype._transformAgainstOp=function(t,e){if(this.value){try{this.value=this._doc.type.transformPresence(this.value,t,e)}catch(n){return this.presence.emit("error",n)}this.presence._updateRemotePresence(this)}},o.prototype._catchUpStalePresence=function(){if(this._pending.v>=this._doc.version)return!0;if(!this._opCache)return this._startCachingOps(),this._doc.fetch(),this.presence.subscribe(),!1;while(this._opCache[this._pending.v]){var t=this._opCache[this._pending.v],e=t.op,n=t.isOwnOp;null===e?(this._pending.p=null,this._pending.v++):i.transformPresence(this._pending,e,n)}var r=this._pending.v>=this._doc.version;return r&&this._stopCachingOps(),r},o.prototype._startCachingOps=function(){this._opCache=[]},o.prototype._stopCachingOps=function(){this._opCache=null},o.prototype._cacheOp=function(t,e){this._opCache&&(t=t?{op:t}:null,this._opCache[this._doc.version-1]={op:t,isOwnOp:e})}},78223:function(t,e,n){var r=n(34049);function i(t,e){this.presence=t,this.presenceId=e,this.connection=this.presence.connection,this.value=null,this.presenceVersion=0}t.exports=i,i.prototype.receiveUpdate=function(t){t.pv1&&(i=o.clone(i));for(var a=0;a=0},e.isValidTimestamp=function(t){return e.isValidVersion(t)},e.MAX_SAFE_INTEGER=9007199254740991,e.dig=function(){for(var t=arguments[0],e=1;e=0;r--){var o=n[r],a=(i=arguments[r+1],o[i]);r!==n.length-1&&e.hasKeys(a)||delete o[i]}},e.supportsPresence=function(t){return t&&"function"===typeof t.transformPresence},e.callEach=function(t,e){var n=!1;return t.forEach((function(t){t&&(t(e),n=!0)})),n},e.truthy=function(t){return!!t},e.nextTick=function(t){if("undefined"!==typeof process&&process.nextTick)return process.nextTick.apply(null,arguments);for(var e=[],n=1;n0&&void 0!==arguments[0]?arguments[0]:this.active.collection;return this.refs[t].sort((function(t,e){return t.node.sortableInfo.index-e.node.sortableInfo.index}))}}]),t}();function s(t,e,n){var r=t.slice(0);if(n>=r.length){var i=n-r.length;while(1+i--)r.push(void 0)}return r.splice(n,0,r.splice(e,1)[0]),r}var l={start:["touchstart","mousedown"],move:["touchmove","mousemove"],end:["touchend","touchcancel","mouseup"]},c=function(){if("undefined"===typeof window||"undefined"===typeof document)return"";var t=window.getComputedStyle(document.documentElement,"")||["-moz-hidden-iframe"],e=(Array.prototype.slice.call(t).join("").match(/-(moz|webkit|ms)-/)||""===t.OLink&&["","o"])[1];switch(e){case"ms":return"ms";default:return e&&e.length?e[0].toUpperCase()+e.substr(1):""}}();function u(t,e){while(t){if(e(t))return t;t=t.parentNode}}function d(t,e,n){return ne?e:n}function p(t){return"px"===t.substr(-2)?parseFloat(t):0}function f(t){var e=window.getComputedStyle(t);return{top:p(e.marginTop),right:p(e.marginRight),bottom:p(e.marginBottom),left:p(e.marginLeft)}}var h={data:function(){return{sorting:!1,sortingIndex:null,manager:new a,events:{start:this.handleStart,move:this.handleMove,end:this.handleEnd}}},props:{value:{type:Array,required:!0},axis:{type:String,default:"y"},distance:{type:Number,default:0},pressDelay:{type:Number,default:0},pressThreshold:{type:Number,default:5},useDragHandle:{type:Boolean,default:!1},useWindowAsScrollContainer:{type:Boolean,default:!1},hideSortableGhost:{type:Boolean,default:!0},lockToContainerEdges:{type:Boolean,default:!1},lockOffset:{type:[String,Number,Array],default:"50%"},transitionDuration:{type:Number,default:300},appendTo:{type:String,default:"body"},draggedSettlingDuration:{type:Number,default:null},lockAxis:String,helperClass:String,contentWindow:Object,shouldCancelStart:{type:Function,default:function(t){var e=["input","textarea","select","option","button"];return-1!==e.indexOf(t.target.tagName.toLowerCase())}},getHelperDimensions:{type:Function,default:function(t){var e=t.node;return{width:e.offsetWidth,height:e.offsetHeight}}}},provide:function(){return{manager:this.manager}},mounted:function(){var t=this;this.container=this.$el,this.document=this.container.ownerDocument||document,this._window=this.contentWindow||window,this.scrollContainer=this.useWindowAsScrollContainer?this.document.body:this.container;var e=function(e){t.events.hasOwnProperty(e)&&l[e].forEach((function(n){return t.container.addEventListener(n,t.events[e],{passive:!0})}))};for(var n in this.events)e(n)},beforeDestroy:function(){var t=this,e=function(e){t.events.hasOwnProperty(e)&&l[e].forEach((function(n){return t.container.removeEventListener(n,t.events[e])}))};for(var n in this.events)e(n)},methods:{handleStart:function(t){var e=this,n=this.$props,r=n.distance,i=n.shouldCancelStart;if(2===t.button||i(t))return!1;this._touched=!0,this._pos=this.getOffset(t);var o=u(t.target,(function(t){return null!=t.sortableInfo}));if(o&&o.sortableInfo&&this.nodeIsChild(o)&&!this.sorting){var a=this.$props.useDragHandle,s=o.sortableInfo,l=s.index,c=s.collection;if(a&&!u(t.target,(function(t){return null!=t.sortableHandle})))return;this.manager.active={index:l,collection:c},"a"===t.target.tagName.toLowerCase()&&t.preventDefault(),r||(0===this.$props.pressDelay?this.handlePress(t):this.pressTimer=setTimeout((function(){return e.handlePress(t)}),this.$props.pressDelay))}},nodeIsChild:function(t){return t.sortableInfo.manager===this.manager},handleMove:function(t){var e=this.$props,n=e.distance,r=e.pressThreshold;if(!this.sorting&&this._touched){var i=this.getOffset(t);this._delta={x:this._pos.x-i.x,y:this._pos.y-i.y};var o=Math.abs(this._delta.x)+Math.abs(this._delta.y);n||r&&!(r&&o>=r)?n&&o>=n&&this.manager.isActive()&&this.handlePress(t):(clearTimeout(this.cancelTimer),this.cancelTimer=setTimeout(this.cancel,0))}},handleEnd:function(){var t=this.$props.distance;this._touched=!1,t||this.cancel()},cancel:function(){this.sorting||(clearTimeout(this.pressTimer),this.manager.active=null)},handlePress:function(t){var e=this;t.stopPropagation();var n=this.manager.getActive();if(n){var r=this.$props,i=r.axis,a=r.getHelperDimensions,s=r.helperClass,c=r.hideSortableGhost,u=r.useWindowAsScrollContainer,d=r.appendTo,p=n.node,h=n.collection,v=p.sortableInfo.index,m=f(p),g=this.container.getBoundingClientRect(),_=a({index:v,node:p,collection:h});this.node=p,this.margin=m,this.width=_.width,this.height=_.height,this.marginOffset={x:this.margin.left+this.margin.right,y:Math.max(this.margin.top,this.margin.bottom)},this.boundingClientRect=p.getBoundingClientRect(),this.containerBoundingRect=g,this.index=v,this.newIndex=v,this._axis={x:i.indexOf("x")>=0,y:i.indexOf("y")>=0},this.offsetEdge=this.getEdgeOffset(p),this.initialOffset=this.getOffset(t),this.initialScroll={top:this.scrollContainer.scrollTop,left:this.scrollContainer.scrollLeft},this.initialWindowScroll={top:window.pageYOffset,left:window.pageXOffset};var b,y=p.querySelectorAll("input, textarea, select"),w=p.cloneNode(!0),k=[].concat(o(w.querySelectorAll("input, textarea, select")));if(k.forEach((function(t,e){"file"!==t.type&&y[e]&&(t.value=y[e].value)})),this.helper=this.document.querySelector(d).appendChild(w),this.helper.style.position="fixed",this.helper.style.top=this.boundingClientRect.top-m.top+"px",this.helper.style.left=this.boundingClientRect.left-m.left+"px",this.helper.style.width=this.width+"px",this.helper.style.height=this.height+"px",this.helper.style.boxSizing="border-box",this.helper.style.pointerEvents="none",c&&(this.sortableGhost=p,p.style.visibility="hidden",p.style.opacity=0),this.translate={},this.minTranslate={},this.maxTranslate={},this._axis.x&&(this.minTranslate.x=(u?0:g.left)-this.boundingClientRect.left-this.width/2,this.maxTranslate.x=(u?this._window.innerWidth:g.left+g.width)-this.boundingClientRect.left-this.width/2),this._axis.y&&(this.minTranslate.y=(u?0:g.top)-this.boundingClientRect.top-this.height/2,this.maxTranslate.y=(u?this._window.innerHeight:g.top+g.height)-this.boundingClientRect.top-this.height/2),s)(b=this.helper.classList).add.apply(b,o(s.split(" ")));this.listenerNode=t.touches?p:this._window,l.move.forEach((function(t){return e.listenerNode.addEventListener(t,e.handleSortMove,!1)})),l.end.forEach((function(t){return e.listenerNode.addEventListener(t,e.handleSortEnd,!1)})),this.sorting=!0,this.sortingIndex=v,this.$emit("sort-start",{event:t,node:p,index:v,collection:h})}},handleSortMove:function(t){t.preventDefault(),this.updatePosition(t),this.animateNodes(),this.autoscroll(),this.$emit("sort-move",{event:t})},handleSortEnd:function(t){var e=this,n=this.manager.active.collection;this.listenerNode&&(l.move.forEach((function(t){return e.listenerNode.removeEventListener(t,e.handleSortMove)})),l.end.forEach((function(t){return e.listenerNode.removeEventListener(t,e.handleSortEnd)})));var r=this.manager.refs[n],i=function(){e.helper.parentNode.removeChild(e.helper),e.hideSortableGhost&&e.sortableGhost&&(e.sortableGhost.style.visibility="",e.sortableGhost.style.opacity="");for(var i=0,o=r.length;i0?o+=i.offsetLeft+i.offsetWidth-(r.offsetLeft+r.offsetWidth):o+=i.offsetLeft-r.offsetLeft;var a=-n.top;this.translate&&this.translate.y>0?a+=i.offsetTop+i.offsetHeight-(r.offsetTop+r.offsetHeight):a+=i.offsetTop-r.offsetTop;var s=null!==this.$props.draggedSettlingDuration?this.$props.draggedSettlingDuration:this.$props.transitionDuration;return this.helper.style[c+"Transform"]="translate3d("+o+"px,"+a+"px, 0)",this.helper.style[c+"TransitionDuration"]=s+"ms",new Promise((function(t){var n=function(n){n&&"transform"!==n.propertyName||(clearTimeout(r),e.helper.style[c+"Transform"]="",e.helper.style[c+"TransitionDuration"]="",t())},r=setTimeout(n,s+10);e.helper.addEventListener("transitionend",n,!1)}))},getEdgeOffset:function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{top:0,left:0};if(t){var n={top:e.top+t.offsetTop,left:e.left+t.offsetLeft};return t.parentNode!==this.container?this.getEdgeOffset(t.parentNode,n):n}},getOffset:function(t){var e=t.touches?t.touches[0]:t,n=e.pageX,r=e.pageY;return{x:n,y:r}},getLockPixelOffsets:function(){var t=this.$props.lockOffset;if(Array.isArray(this.lockOffset)||(t=[t,t]),2!==t.length)throw new Error("lockOffset prop of SortableContainer should be a single value or an array of exactly two values. Given "+t);var e=t,n=i(e,2),r=n[0],o=n[1];return[this.getLockPixelOffset(r),this.getLockPixelOffset(o)]},getLockPixelOffset:function(t){var e=t,n=t,r="px";if("string"===typeof t){var i=/^[+-]?\d*(?:\.\d*)?(px|%)$/.exec(t);if(null===i)throw new Error('lockOffset value should be a number or a string of a number followed by "px" or "%". Given '+t);e=n=parseFloat(t),r=i[1]}if(!isFinite(e)||!isFinite(n))throw new Error("lockOffset value should be a finite. Given "+t);return"%"===r&&(e=e*this.width/100,n=n*this.height/100),{x:e,y:n}},updatePosition:function(t){var e=this.$props,n=e.lockAxis,r=e.lockToContainerEdges,o=this.getOffset(t),a={x:o.x-this.initialOffset.x,y:o.y-this.initialOffset.y};if(a.y-=window.pageYOffset-this.initialWindowScroll.top,a.x-=window.pageXOffset-this.initialWindowScroll.left,this.translate=a,r){var s=this.getLockPixelOffsets(),l=i(s,2),u=l[0],p=l[1],f={x:this.width/2-u.x,y:this.height/2-u.y},h={x:this.width/2-p.x,y:this.height/2-p.y};a.x=d(this.minTranslate.x+f.x,this.maxTranslate.x-h.x,a.x),a.y=d(this.minTranslate.y+f.y,this.maxTranslate.y-h.y,a.y)}"x"===n?a.y=0:"y"===n&&(a.x=0),this.helper.style[c+"Transform"]="translate3d("+a.x+"px,"+a.y+"px, 0)"},animateNodes:function(){var t=this.$props,e=t.transitionDuration,n=t.hideSortableGhost,r=this.manager.getOrderedRefs(),i={left:this.scrollContainer.scrollLeft-this.initialScroll.left,top:this.scrollContainer.scrollTop-this.initialScroll.top},o={left:this.offsetEdge.left+this.translate.x+i.left,top:this.offsetEdge.top+this.translate.y+i.top},a={top:window.pageYOffset-this.initialWindowScroll.top,left:window.pageXOffset-this.initialWindowScroll.left};this.newIndex=null;for(var s=0,l=r.length;sp?p/2:this.width/2,height:this.height>f?f/2:this.height/2},v={x:0,y:0},m=r[s].edgeOffset;m||(r[s].edgeOffset=m=this.getEdgeOffset(u));var g=s0&&r[s-1];g&&!g.edgeOffset&&(g.edgeOffset=this.getEdgeOffset(g.node)),d!==this.index?(e&&(u.style[c+"TransitionDuration"]=e+"ms"),this._axis.x?this._axis.y?dthis.containerBoundingRect.width-h.width&&(v.x=g.edgeOffset.left-m.left,v.y=g.edgeOffset.top-m.top),null===this.newIndex&&(this.newIndex=d)):d>this.index&&(o.left+a.left+h.width>=m.left&&o.top+a.top+h.height>=m.top||o.top+a.top+h.height>=m.top+f)&&(v.x=-(this.width+this.marginOffset.x),m.left+v.xthis.index&&o.left+a.left+h.width>=m.left?(v.x=-(this.width+this.marginOffset.x),this.newIndex=d):dthis.index&&o.top+a.top+h.height>=m.top?(v.y=-(this.height+this.marginOffset.y),this.newIndex=d):d=this.maxTranslate.y-this.height/2?(n.y=1,r.y=i.y*Math.abs((this.maxTranslate.y-this.height/2-e.y)/this.height)):e.x>=this.maxTranslate.x-this.width/2?(n.x=1,r.x=i.x*Math.abs((this.maxTranslate.x-this.width/2-e.x)/this.width)):e.y<=this.minTranslate.y+this.height/2?(n.y=-1,r.y=i.y*Math.abs((e.y-this.height/2-this.minTranslate.y)/this.height)):e.x<=this.minTranslate.x+this.width/2&&(n.x=-1,r.x=i.x*Math.abs((e.x-this.width/2-this.minTranslate.x)/this.width)),this.autoscrollInterval&&(clearInterval(this.autoscrollInterval),this.autoscrollInterval=null,this.isAutoScrolling=!1),0===n.x&&0===n.y||(this.autoscrollInterval=setInterval((function(){t.isAutoScrolling=!0;var e={left:1*r.x*n.x,top:1*r.y*n.y};t.scrollContainer.scrollTop+=e.top,t.scrollContainer.scrollLeft+=e.left,t.translate.x+=e.left,t.translate.y+=e.top,t.animateNodes()}),5))}}},v={bind:function(t){t.sortableHandle=!0}};function m(t,e){return{name:t,mixins:[e],props:{tag:{type:String,default:"div"}},render:function(t){return t(this.tag,this.$slots.default)}}}var g=m("slick-list",h),_=m("slick-item",e);t.ElementMixin=e,t.ContainerMixin=h,t.HandleDirective=v,t.SlickList=g,t.SlickItem=_,t.arrayMove=s,Object.defineProperty(t,"__esModule",{value:!0})}))},59192:function(t,e,n){"use strict";n.r(e),n.d(e,{EffectScope:function(){return qn},computed:function(){return be},customRef:function(){return ue},default:function(){return ao},defineAsyncComponent:function(){return Nr},defineComponent:function(){return ti},del:function(){return Ut},effectScope:function(){return Mn},getCurrentInstance:function(){return bt},getCurrentScope:function(){return Ln},h:function(){return yr},inject:function(){return br},isProxy:function(){return Xt},isReactive:function(){return Kt},isReadonly:function(){return Zt},isRef:function(){return ne},isShallow:function(){return Jt},markRaw:function(){return te},mergeDefaults:function(){return hn},nextTick:function(){return jr},onActivated:function(){return Wr},onBeforeMount:function(){return Dr},onBeforeUnmount:function(){return Ur},onBeforeUpdate:function(){return Br},onDeactivated:function(){return Yr},onErrorCaptured:function(){return Xr},onMounted:function(){return Fr},onRenderTracked:function(){return Kr},onRenderTriggered:function(){return Jr},onScopeDispose:function(){return jn},onServerPrefetch:function(){return Gr},onUnmounted:function(){return Vr},onUpdated:function(){return Hr},provide:function(){return gr},proxyRefs:function(){return le},reactive:function(){return Wt},readonly:function(){return ve},ref:function(){return re},set:function(){return Ht},shallowReactive:function(){return Yt},shallowReadonly:function(){return _e},shallowRef:function(){return ie},toRaw:function(){return Qt},toRef:function(){return pe},toRefs:function(){return de},triggerRef:function(){return ae},unref:function(){return se},useAttrs:function(){return dn},useCssModule:function(){return $r},useCssVars:function(){return Rr},useListeners:function(){return pn},useSlots:function(){return un},version:function(){return Qr},watch:function(){return vr},watchEffect:function(){return dr},watchPostEffect:function(){return pr},watchSyncEffect:function(){return fr}});n(16280),n(44114),n(59848),n(13609),n(74423);var r=Object.freeze({}),i=Array.isArray;function o(t){return void 0===t||null===t}function a(t){return void 0!==t&&null!==t}function s(t){return!0===t}function l(t){return!1===t}function c(t){return"string"===typeof t||"number"===typeof t||"symbol"===typeof t||"boolean"===typeof t}function u(t){return"function"===typeof t}function d(t){return null!==t&&"object"===typeof t}var p=Object.prototype.toString;function f(t){return"[object Object]"===p.call(t)}function h(t){return"[object RegExp]"===p.call(t)}function v(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function m(t){return a(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function g(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===p?JSON.stringify(t,_,2):String(t)}function _(t,e){return e&&e.__v_isRef?e.value:e}function b(t){var e=parseFloat(t);return isNaN(e)?t:e}function y(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(r,1)}}var O=Object.prototype.hasOwnProperty;function E(t,e){return O.call(t,e)}function C(t){var e=Object.create(null);return function(n){var r=e[n];return r||(e[n]=t(n))}}var S=/-(\w)/g,A=C((function(t){return t.replace(S,(function(t,e){return e?e.toUpperCase():""}))})),T=C((function(t){return t.charAt(0).toUpperCase()+t.slice(1)})),q=/\B([A-Z])/g,M=C((function(t){return t.replace(q,"-$1").toLowerCase()}));function P(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function L(t,e){return t.bind(e)}var j=Function.prototype.bind?L:P;function $(t,e){e=e||0;var n=t.length-e,r=new Array(n);while(n--)r[n]=t[n+e];return r}function R(t,e){for(var n in e)t[n]=e[n];return t}function N(t){for(var e={},n=0;n0,at=rt&&rt.indexOf("edge/")>0;rt&&rt.indexOf("android");var st=rt&&/iphone|ipad|ipod|ios/.test(rt);rt&&/chrome\/\d+/.test(rt),rt&&/phantomjs/.test(rt);var lt,ct=rt&&rt.match(/firefox\/(\d+)/),ut={}.watch,dt=!1;if(nt)try{var pt={};Object.defineProperty(pt,"passive",{get:function(){dt=!0}}),window.addEventListener("test-passive",null,pt)}catch(jd){}var ft=function(){return void 0===lt&&(lt=!nt&&"undefined"!==typeof n.g&&(n.g["process"]&&"server"===n.g["process"].env.VUE_ENV)),lt},ht=nt&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function vt(t){return"function"===typeof t&&/native code/.test(t.toString())}var mt,gt="undefined"!==typeof Symbol&&vt(Symbol)&&"undefined"!==typeof Reflect&&vt(Reflect.ownKeys);mt="undefined"!==typeof Set&&vt(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var _t=null;function bt(){return _t&&{proxy:_t}}function yt(t){void 0===t&&(t=null),t||_t&&_t._scope.off(),_t=t,t&&t._scope.on()}var wt=function(){function t(t,e,n,r,i,o,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=i,this.ns=void 0,this.context=o,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1}return Object.defineProperty(t.prototype,"child",{get:function(){return this.componentInstance},enumerable:!1,configurable:!0}),t}(),kt=function(t){void 0===t&&(t="");var e=new wt;return e.text=t,e.isComment=!0,e};function xt(t){return new wt(void 0,void 0,void 0,String(t))}function Ot(t){var e=new wt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}"function"===typeof SuppressedError&&SuppressedError;var Et=0,Ct=[],St=function(){for(var t=0;t0&&(r=Te(r,"".concat(e||"","_").concat(n)),Ae(r[0])&&Ae(u)&&(d[l]=xt(u.text+r[0].text),r.shift()),d.push.apply(d,r)):c(r)?Ae(u)?d[l]=xt(u.text+r):""!==r&&d.push(xt(r)):Ae(r)&&Ae(u)?d[l]=xt(u.text+r.text):(s(t._isVList)&&a(r.tag)&&o(r.key)&&a(e)&&(r.key="__vlist".concat(e,"_").concat(n,"__")),d.push(r)));return d}var qe=1,Me=2;function Pe(t,e,n,r,o,a){return(i(n)||c(n))&&(o=r,r=n,n=void 0),s(a)&&(o=Me),Le(t,e,n,r,o)}function Le(t,e,n,r,o){if(a(n)&&a(n.__ob__))return kt();if(a(n)&&a(n.is)&&(e=n.is),!e)return kt();var s,l;if(i(r)&&u(r[0])&&(n=n||{},n.scopedSlots={default:r[0]},r.length=0),o===Me?r=Se(r):o===qe&&(r=Ce(r)),"string"===typeof e){var c=void 0;l=t.$vnode&&t.$vnode.ns||K.getTagNamespace(e),s=K.isReservedTag(e)?new wt(K.parsePlatformTagName(e),n,r,void 0,void 0,t):n&&n.pre||!a(c=Qi(t.$options,"components",e))?new wt(e,n,r,void 0,void 0,t):Ri(c,n,t,r,e)}else s=Ri(e,n,t,r);return i(s)?s:a(s)?(a(l)&&je(s,l),a(n)&&$e(n),s):kt()}function je(t,e,n){if(t.ns=e,"foreignObject"===t.tag&&(e=void 0,n=!0),a(t.children))for(var r=0,i=t.children.length;r0,s=e?!!e.$stable:!a,l=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(s&&i&&i!==r&&l===i.$key&&!a&&!i.$hasNormal)return i;for(var c in o={},e)e[c]&&"$"!==c[0]&&(o[c]=en(t,n,c,e[c]))}else o={};for(var u in n)u in o||(o[u]=nn(n,u));return e&&Object.isExtensible(e)&&(e._normalized=o),X(o,"$stable",s),X(o,"$key",l),X(o,"$hasNormal",a),o}function en(t,e,n,r){var o=function(){var e=_t;yt(t);var n=arguments.length?r.apply(null,arguments):r({});n=n&&"object"===typeof n&&!i(n)?[n]:Se(n);var o=n&&n[0];return yt(e),n&&(!o||1===n.length&&o.isComment&&!Qe(o))?void 0:n};return r.proxy&&Object.defineProperty(e,n,{get:o,enumerable:!0,configurable:!0}),o}function nn(t,e){return function(){return t[e]}}function rn(t){var e=t.$options,n=e.setup;if(n){var r=t._setupContext=on(t);yt(t),qt();var i=kr(n,null,[t._props||Yt({}),r],t,"setup");if(Mt(),yt(),u(i))e.render=i;else if(d(i))if(t._setupState=i,i.__sfc){var o=t._setupProxy={};for(var a in i)"__sfc"!==a&&ce(o,i,a)}else for(var a in i)Z(a)||ce(t,i,a);else 0}}function on(t){return{get attrs(){if(!t._attrsProxy){var e=t._attrsProxy={};X(e,"_v_attr_proxy",!0),an(e,t.$attrs,r,t,"$attrs")}return t._attrsProxy},get listeners(){if(!t._listenersProxy){var e=t._listenersProxy={};an(e,t.$listeners,r,t,"$listeners")}return t._listenersProxy},get slots(){return ln(t)},emit:j(t.$emit,t),expose:function(e){e&&Object.keys(e).forEach((function(n){return ce(t,e,n)}))}}}function an(t,e,n,r,i){var o=!1;for(var a in e)a in t?e[a]!==n[a]&&(o=!0):(o=!0,sn(t,a,r,i));for(var a in t)a in e||(o=!0,delete t[a]);return o}function sn(t,e,n,r){Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){return n[r][e]}})}function ln(t){return t._slotsProxy||cn(t._slotsProxy={},t.$scopedSlots),t._slotsProxy}function cn(t,e){for(var n in e)t[n]=e[n];for(var n in t)n in e||delete t[n]}function un(){return fn().slots}function dn(){return fn().attrs}function pn(){return fn().listeners}function fn(){var t=_t;return t._setupContext||(t._setupContext=on(t))}function hn(t,e){var n=i(t)?t.reduce((function(t,e){return t[e]={},t}),{}):t;for(var r in e){var o=n[r];o?i(o)||u(o)?n[r]={type:o,default:e[r]}:o.default=e[r]:null===o&&(n[r]={default:e[r]})}return n}function vn(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,i=n&&n.context;t.$slots=Ze(e._renderChildren,i),t.$scopedSlots=n?tn(t.$parent,n.data.scopedSlots,t.$slots):r,t._c=function(e,n,r,i){return Pe(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Pe(t,e,n,r,i,!0)};var o=n&&n.data;Bt(t,"$attrs",o&&o.attrs||r,null,!0),Bt(t,"$listeners",e._parentListeners||r,null,!0)}var mn,gn,_n=null;function bn(t){Je(t.prototype),t.prototype.$nextTick=function(t){return jr(t,this)},t.prototype._render=function(){var t=this,e=t.$options,n=e.render,r=e._parentVnode;r&&t._isMounted&&(t.$scopedSlots=tn(t.$parent,r.data.scopedSlots,t.$slots,t.$scopedSlots),t._slotsProxy&&cn(t._slotsProxy,t.$scopedSlots)),t.$vnode=r;var o,a=_t,s=_n;try{yt(t),_n=t,o=n.call(t._renderProxy,t.$createElement)}catch(jd){wr(jd,t,"render"),o=t._vnode}finally{_n=s,yt(a)}return i(o)&&1===o.length&&(o=o[0]),o instanceof wt||(o=kt()),o.parent=r,o}}function yn(t,e){return(t.__esModule||gt&&"Module"===t[Symbol.toStringTag])&&(t=t.default),d(t)?e.extend(t):t}function wn(t,e,n,r,i){var o=kt();return o.asyncFactory=t,o.asyncMeta={data:e,context:n,children:r,tag:i},o}function kn(t,e){if(s(t.error)&&a(t.errorComp))return t.errorComp;if(a(t.resolved))return t.resolved;var n=_n;if(n&&a(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n),s(t.loading)&&a(t.loadingComp))return t.loadingComp;if(n&&!a(t.owners)){var r=t.owners=[n],i=!0,l=null,c=null;n.$on("hook:destroyed",(function(){return x(r,n)}));var u=function(t){for(var e=0,n=r.length;e1?$(n):n;for(var r=$(arguments,1),i='event handler for "'.concat(t,'"'),o=0,a=n.length;odocument.createEvent("Event").timeStamp&&(Qn=function(){return tr.now()})}var er=function(t,e){if(t.post){if(!e.post)return 1}else if(e.post)return-1;return t.id-e.id};function nr(){var t,e;for(Xn=Qn(),Kn=!0,Vn.sort(er),Jn=0;JnJn&&Vn[n].id>t.id)n--;Vn.splice(n+1,0,t)}else Vn.push(t);Gn||(Gn=!0,jr(nr))}}var sr="watcher",lr="".concat(sr," callback"),cr="".concat(sr," getter"),ur="".concat(sr," cleanup");function dr(t,e){return mr(t,null,e)}function pr(t,e){return mr(t,null,{flush:"post"})}function fr(t,e){return mr(t,null,{flush:"sync"})}var hr={};function vr(t,e,n){return mr(t,e,n)}function mr(t,e,n){var o=void 0===n?r:n,a=o.immediate,s=o.deep,l=o.flush,c=void 0===l?"pre":l;o.onTrack,o.onTrigger;var d,p,f=_t,h=function(t,e,n){void 0===n&&(n=null);var r=kr(t,null,n,f,e);return s&&r&&r.__ob__&&r.__ob__.dep.depend(),r},v=!1,m=!1;if(ne(t)?(d=function(){return t.value},v=Jt(t)):Kt(t)?(d=function(){return t.__ob__.dep.depend(),t},s=!0):i(t)?(m=!0,v=t.some((function(t){return Kt(t)||Jt(t)})),d=function(){return t.map((function(t){return ne(t)?t.value:Kt(t)?(t.__ob__.dep.depend(),ni(t)):u(t)?h(t,cr):void 0}))}):d=u(t)?e?function(){return h(t,cr)}:function(){if(!f||!f._isDestroyed)return p&&p(),h(t,sr,[_])}:I,e&&s){var g=d;d=function(){return ni(g())}}var _=function(t){p=b.onStop=function(){h(t,ur)}};if(ft())return _=I,e?a&&h(e,lr,[d(),m?[]:void 0,_]):d(),I;var b=new oi(_t,d,I,{lazy:!0});b.noRecurse=!e;var y=m?[]:hr;return b.run=function(){if(b.active)if(e){var t=b.get();(s||v||(m?t.some((function(t,e){return V(t,y[e])})):V(t,y)))&&(p&&p(),h(e,lr,[t,y===hr?void 0:y,_]),y=t)}else b.get()},"sync"===c?b.update=b.run:"post"===c?(b.post=!0,b.update=function(){return ar(b)}):b.update=function(){if(f&&f===_t&&!f._isMounted){var t=f._preWatchers||(f._preWatchers=[]);t.indexOf(b)<0&&t.push(b)}else ar(b)},e?a?b.run():y=b.get():"post"===c&&f?f.$once("hook:mounted",(function(){return b.get()})):b.get(),function(){b.teardown()}}function gr(t,e){_t&&(_r(_t)[t]=e)}function _r(t){var e=t._provided,n=t.$parent&&t.$parent._provided;return n===e?t._provided=Object.create(n):e}function br(t,e,n){void 0===n&&(n=!1);var r=_t;if(r){var i=r.$parent&&r.$parent._provided;if(i&&t in i)return i[t];if(arguments.length>1)return n&&u(e)?e.call(r):e}else 0}function yr(t,e,n){return Pe(_t,t,e,n,2,!0)}function wr(t,e,n){qt();try{if(e){var r=e;while(r=r.$parent){var i=r.$options.errorCaptured;if(i)for(var o=0;o-1)if(o&&!E(i,"default"))a=!1;else if(""===a||a===M(t)){var l=oo(String,i.type);(l<0||s-1)return this;var n=$(arguments,1);return n.unshift(this),u(t.install)?t.install.apply(t,n):u(t)&&t.apply(null,n),e.push(t),this}}function lo(t){t.mixin=function(t){return this.options=Xi(this.options,t),this}}function co(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,i=t._Ctor||(t._Ctor={});if(i[r])return i[r];var o=Li(t)||Li(n.options);var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=Xi(n.options,t),a["super"]=n,a.options.props&&uo(a),a.options.computed&&po(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,Y.forEach((function(t){a[t]=n[t]})),o&&(a.options.components[o]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=R({},a.options),i[r]=a,a}}function uo(t){var e=t.options.props;for(var n in e)si(t.prototype,"_props",n)}function po(t){var e=t.options.computed;for(var n in e)hi(t.prototype,n,e[n])}function fo(t){Y.forEach((function(e){t[e]=function(t,n){return n?("component"===e&&f(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&u(n)&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}}))}function ho(t){return t&&(Li(t.Ctor.options)||t.tag)}function vo(t,e){return i(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!h(t)&&t.test(e)}function mo(t,e){var n=t.cache,r=t.keys,i=t._vnode,o=t.$vnode;for(var a in n){var s=n[a];if(s){var l=s.name;l&&!e(l)&&go(n,a,r,i)}}o.componentOptions.children=void 0}function go(t,e,n,r){var i=t[e];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),t[e]=null,x(n,e)}Ei(ao),yi(ao),Tn(ao),In(ao),bn(ao);var _o=[String,RegExp,Array],bo={name:"keep-alive",abstract:!0,props:{include:_o,exclude:_o,max:[String,Number]},methods:{cacheVNode:function(){var t=this,e=t.cache,n=t.keys,r=t.vnodeToCache,i=t.keyToCache;if(r){var o=r.tag,a=r.componentInstance,s=r.componentOptions;e[i]={name:ho(s),tag:o,componentInstance:a},n.push(i),this.max&&n.length>parseInt(this.max)&&go(e,n[0],n,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)go(this.cache,t,this.keys)},mounted:function(){var t=this;this.cacheVNode(),this.$watch("include",(function(e){mo(t,(function(t){return vo(e,t)}))})),this.$watch("exclude",(function(e){mo(t,(function(t){return!vo(e,t)}))}))},updated:function(){this.cacheVNode()},render:function(){var t=this.$slots.default,e=xn(t),n=e&&e.componentOptions;if(n){var r=ho(n),i=this,o=i.include,a=i.exclude;if(o&&(!r||!vo(o,r))||a&&r&&vo(a,r))return e;var s=this,l=s.cache,c=s.keys,u=null==e.key?n.Ctor.cid+(n.tag?"::".concat(n.tag):""):e.key;l[u]?(e.componentInstance=l[u].componentInstance,x(c,u),c.push(u)):(this.vnodeToCache=e,this.keyToCache=u),e.data.keepAlive=!0}return e||t&&t[0]}},yo={KeepAlive:bo};function wo(t){var e={get:function(){return K}};Object.defineProperty(t,"config",e),t.util={warn:Fi,extend:R,mergeOptions:Xi,defineReactive:Bt},t.set=Ht,t.delete=Ut,t.nextTick=jr,t.observable=function(t){return Ft(t),t},t.options=Object.create(null),Y.forEach((function(e){t.options[e+"s"]=Object.create(null)})),t.options._base=t,R(t.options.components,yo),so(t),lo(t),co(t),fo(t)}wo(ao),Object.defineProperty(ao.prototype,"$isServer",{get:ft}),Object.defineProperty(ao.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(ao,"FunctionalRenderContext",{value:Ti}),ao.version=Qr;var ko=y("style,class"),xo=y("input,textarea,option,select,progress"),Oo=function(t,e,n){return"value"===n&&xo(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Eo=y("contenteditable,draggable,spellcheck"),Co=y("events,caret,typing,plaintext-only"),So=function(t,e){return Po(e)||"false"===e?"false":"contenteditable"===t&&Co(e)?e:"true"},Ao=y("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible"),To="http://www.w3.org/1999/xlink",qo=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Mo=function(t){return qo(t)?t.slice(6,t.length):""},Po=function(t){return null==t||!1===t};function Lo(t){var e=t.data,n=t,r=t;while(a(r.componentInstance))r=r.componentInstance._vnode,r&&r.data&&(e=jo(r.data,e));while(a(n=n.parent))n&&n.data&&(e=jo(e,n.data));return $o(e.staticClass,e.class)}function jo(t,e){return{staticClass:Ro(t.staticClass,e.staticClass),class:a(t.class)?[t.class,e.class]:e.class}}function $o(t,e){return a(t)||a(e)?Ro(t,No(e)):""}function Ro(t,e){return t?e?t+" "+e:t:e||""}function No(t){return Array.isArray(t)?Io(t):d(t)?zo(t):"string"===typeof t?t:""}function Io(t){for(var e,n="",r=0,i=t.length;r-1?Wo[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Wo[t]=/HTMLUnknownElement/.test(e.toString())}var Go=y("text,number,password,search,email,tel,url");function Ko(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function Jo(t,e){var n=document.createElement(t);return"select"!==t||e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n}function Zo(t,e){return document.createElementNS(Do[t],e)}function Xo(t){return document.createTextNode(t)}function Qo(t){return document.createComment(t)}function ta(t,e,n){t.insertBefore(e,n)}function ea(t,e){t.removeChild(e)}function na(t,e){t.appendChild(e)}function ra(t){return t.parentNode}function ia(t){return t.nextSibling}function oa(t){return t.tagName}function aa(t,e){t.textContent=e}function sa(t,e){t.setAttribute(e,"")}var la=Object.freeze({__proto__:null,createElement:Jo,createElementNS:Zo,createTextNode:Xo,createComment:Qo,insertBefore:ta,removeChild:ea,appendChild:na,parentNode:ra,nextSibling:ia,tagName:oa,setTextContent:aa,setStyleScope:sa}),ca={create:function(t,e){ua(e)},update:function(t,e){t.data.ref!==e.data.ref&&(ua(t,!0),ua(e))},destroy:function(t){ua(t,!0)}};function ua(t,e){var n=t.data.ref;if(a(n)){var r=t.context,o=t.componentInstance||t.elm,s=e?null:o,l=e?void 0:o;if(u(n))kr(n,r,[s],r,"template ref function");else{var c=t.data.refInFor,d="string"===typeof n||"number"===typeof n,p=ne(n),f=r.$refs;if(d||p)if(c){var h=d?f[n]:n.value;e?i(h)&&x(h,o):i(h)?h.includes(o)||h.push(o):d?(f[n]=[o],da(r,n,f[n])):n.value=[o]}else if(d){if(e&&f[n]!==o)return;f[n]=l,da(r,n,s)}else if(p){if(e&&n.value!==o)return;n.value=s}else 0}}}function da(t,e,n){var r=t._setupState;r&&E(r,e)&&(ne(r[e])?r[e].value=n:r[e]=n)}var pa=new wt("",{},[]),fa=["create","activate","update","remove","destroy"];function ha(t,e){return t.key===e.key&&t.asyncFactory===e.asyncFactory&&(t.tag===e.tag&&t.isComment===e.isComment&&a(t.data)===a(e.data)&&va(t,e)||s(t.isAsyncPlaceholder)&&o(e.asyncFactory.error))}function va(t,e){if("input"!==t.tag)return!0;var n,r=a(n=t.data)&&a(n=n.attrs)&&n.type,i=a(n=e.data)&&a(n=n.attrs)&&n.type;return r===i||Go(r)&&Go(i)}function ma(t,e,n){var r,i,o={};for(r=e;r<=n;++r)i=t[r].key,a(i)&&(o[i]=r);return o}function ga(t){var e,n,r={},l=t.modules,u=t.nodeOps;for(e=0;ev?(d=o(n[_+1])?null:n[_+1].elm,O(t,d,n,f,_,r)):f>_&&C(e,p,v)}function T(t,e,n,r){for(var i=n;i-1?Aa(t,e,n):Ao(e)?Po(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Eo(e)?t.setAttribute(e,So(e,n)):qo(e)?Po(n)?t.removeAttributeNS(To,Mo(e)):t.setAttributeNS(To,e,n):Aa(t,e,n)}function Aa(t,e,n){if(Po(n))t.removeAttribute(e);else{if(it&&!ot&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Ta={create:Ca,update:Ca};function qa(t,e){var n=e.elm,r=e.data,i=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(i)||o(i.staticClass)&&o(i.class)))){var s=Lo(e),l=n._transitionClasses;a(l)&&(s=Ro(s,No(l))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var Ma,Pa,La,ja,$a,Ra,Na={create:qa,update:qa},Ia=/[\w).+\-_$\]]/;function za(t){var e,n,r,i,o,a=!1,s=!1,l=!1,c=!1,u=0,d=0,p=0,f=0;for(r=0;r=0;h--)if(v=t.charAt(h)," "!==v)break;v&&Ia.test(v)||(c=!0)}}else void 0===i?(f=r+1,i=t.slice(0,r).trim()):m();function m(){(o||(o=[])).push(t.slice(f,r).trim()),f=r+1}if(void 0===i?i=t.slice(0,r).trim():0!==f&&m(),o)for(r=0;r-1?{exp:t.slice(0,ja),key:'"'+t.slice(ja+1)+'"'}:{exp:t,key:null};Pa=t,ja=$a=Ra=0;while(!is())La=rs(),os(La)?ss(La):91===La&&as(La);return{exp:t.slice(0,$a),key:t.slice($a+1,Ra)}}function rs(){return Pa.charCodeAt(++ja)}function is(){return ja>=Ma}function os(t){return 34===t||39===t}function as(t){var e=1;$a=ja;while(!is())if(t=rs(),os(t))ss(t);else if(91===t&&e++,93===t&&e--,0===e){Ra=ja;break}}function ss(t){var e=t;while(!is())if(t=rs(),t===e)break}var ls,cs="__r",us="__c";function ds(t,e,n){n;var r=e.value,i=e.modifiers,o=t.tag,a=t.attrsMap.type;if(t.component)return ts(t,r,i),!1;if("select"===o)hs(t,r,i);else if("input"===o&&"checkbox"===a)ps(t,r,i);else if("input"===o&&"radio"===a)fs(t,r,i);else if("input"===o||"textarea"===o)vs(t,r,i);else{if(!K.isReservedTag(o))return ts(t,r,i),!1}return!0}function ps(t,e,n){var r=n&&n.number,i=Ja(t,"value")||"null",o=Ja(t,"true-value")||"true",a=Ja(t,"false-value")||"false";Ha(t,"checked","Array.isArray(".concat(e,")")+"?_i(".concat(e,",").concat(i,")>-1")+("true"===o?":(".concat(e,")"):":_q(".concat(e,",").concat(o,")"))),Ga(t,"change","var $$a=".concat(e,",")+"$$el=$event.target,"+"$$c=$$el.checked?(".concat(o,"):(").concat(a,");")+"if(Array.isArray($$a)){"+"var $$v=".concat(r?"_n("+i+")":i,",")+"$$i=_i($$a,$$v);"+"if($$el.checked){$$i<0&&(".concat(es(e,"$$a.concat([$$v])"),")}")+"else{$$i>-1&&(".concat(es(e,"$$a.slice(0,$$i).concat($$a.slice($$i+1))"),")}")+"}else{".concat(es(e,"$$c"),"}"),null,!0)}function fs(t,e,n){var r=n&&n.number,i=Ja(t,"value")||"null";i=r?"_n(".concat(i,")"):i,Ha(t,"checked","_q(".concat(e,",").concat(i,")")),Ga(t,"change",es(e,i),null,!0)}function hs(t,e,n){var r=n&&n.number,i='Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = "_value" in o ? o._value : o.value;'+"return ".concat(r?"_n(val)":"val","})"),o="$event.target.multiple ? $$selectedVal : $$selectedVal[0]",a="var $$selectedVal = ".concat(i,";");a="".concat(a," ").concat(es(e,o)),Ga(t,"change",a,null,!0)}function vs(t,e,n){var r=t.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,l=!o&&"range"!==r,c=o?"change":"range"===r?cs:"input",u="$event.target.value";s&&(u="$event.target.value.trim()"),a&&(u="_n(".concat(u,")"));var d=es(e,u);l&&(d="if($event.target.composing)return;".concat(d)),Ha(t,"value","(".concat(e,")")),Ga(t,c,d,null,!0),(s||a)&&Ga(t,"blur","$forceUpdate()")}function ms(t){if(a(t[cs])){var e=it?"change":"input";t[e]=[].concat(t[cs],t[e]||[]),delete t[cs]}a(t[us])&&(t.change=[].concat(t[us],t.change||[]),delete t[us])}function gs(t,e,n){var r=ls;return function i(){var o=e.apply(null,arguments);null!==o&&ys(t,i,n,r)}}var _s=Cr&&!(ct&&Number(ct[1])<=53);function bs(t,e,n,r){if(_s){var i=Xn,o=e;e=o._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=i||t.timeStamp<=0||t.target.ownerDocument!==document)return o.apply(this,arguments)}}ls.addEventListener(t,e,dt?{capture:n,passive:r}:n)}function ys(t,e,n,r){(r||ls).removeEventListener(t,e._wrapper||e,n)}function ws(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};ls=e.elm||t.elm,ms(n),ke(n,r,bs,ys,gs,e.context),ls=void 0}}var ks,xs={create:ws,update:ws,destroy:function(t){return ws(t,pa)}};function Os(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,i=e.elm,l=t.data.domProps||{},c=e.data.domProps||{};for(n in(a(c.__ob__)||s(c._v_attr_proxy))&&(c=e.data.domProps=R({},c)),l)n in c||(i[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===l[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){i._value=r;var u=o(r)?"":String(r);Es(i,u)&&(i.value=u)}else if("innerHTML"===n&&Bo(i.tagName)&&o(i.innerHTML)){ks=ks||document.createElement("div"),ks.innerHTML="".concat(r,"");var d=ks.firstChild;while(i.firstChild)i.removeChild(i.firstChild);while(d.firstChild)i.appendChild(d.firstChild)}else if(r!==l[n])try{i[n]=r}catch(jd){}}}}function Es(t,e){return!t.composing&&("OPTION"===t.tagName||Cs(t,e)||Ss(t,e))}function Cs(t,e){var n=!0;try{n=document.activeElement!==t}catch(jd){}return n&&t.value!==e}function Ss(t,e){var n=t.value,r=t._vModifiers;if(a(r)){if(r.number)return b(n)!==b(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}var As={create:Os,update:Os},Ts=C((function(t){var e={},n=/;(?![^(]*\))/g,r=/:(.+)/;return t.split(n).forEach((function(t){if(t){var n=t.split(r);n.length>1&&(e[n[0].trim()]=n[1].trim())}})),e}));function qs(t){var e=Ms(t.style);return t.staticStyle?R(t.staticStyle,e):e}function Ms(t){return Array.isArray(t)?N(t):"string"===typeof t?Ts(t):t}function Ps(t,e){var n,r={};if(e){var i=t;while(i.componentInstance)i=i.componentInstance._vnode,i&&i.data&&(n=qs(i.data))&&R(r,n)}(n=qs(t.data))&&R(r,n);var o=t;while(o=o.parent)o.data&&(n=qs(o.data))&&R(r,n);return r}var Ls,js=/^--/,$s=/\s*!important$/,Rs=function(t,e,n){if(js.test(e))t.style.setProperty(e,n);else if($s.test(n))t.style.setProperty(M(e),n.replace($s,""),"important");else{var r=Is(e);if(Array.isArray(n))for(var i=0,o=n.length;i-1?e.split(Fs).forEach((function(e){return t.classList.add(e)})):t.classList.add(e);else{var n=" ".concat(t.getAttribute("class")||""," ");n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Hs(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Fs).forEach((function(e){return t.classList.remove(e)})):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" ".concat(t.getAttribute("class")||""," "),r=" "+e+" ";while(n.indexOf(r)>=0)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Us(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&R(e,Vs(t.name||"v")),R(e,t),e}return"string"===typeof t?Vs(t):void 0}}var Vs=C((function(t){return{enterClass:"".concat(t,"-enter"),enterToClass:"".concat(t,"-enter-to"),enterActiveClass:"".concat(t,"-enter-active"),leaveClass:"".concat(t,"-leave"),leaveToClass:"".concat(t,"-leave-to"),leaveActiveClass:"".concat(t,"-leave-active")}})),Ws=nt&&!ot,Ys="transition",Gs="animation",Ks="transition",Js="transitionend",Zs="animation",Xs="animationend";Ws&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ks="WebkitTransition",Js="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Zs="WebkitAnimation",Xs="webkitAnimationEnd"));var Qs=nt?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function tl(t){Qs((function(){Qs(t)}))}function el(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Bs(t,e))}function nl(t,e){t._transitionClasses&&x(t._transitionClasses,e),Hs(t,e)}function rl(t,e,n){var r=ol(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===Ys?Js:Xs,l=0,c=function(){t.removeEventListener(s,u),n()},u=function(e){e.target===t&&++l>=a&&c()};setTimeout((function(){l0&&(n=Ys,u=a,d=o.length):e===Gs?c>0&&(n=Gs,u=c,d=l.length):(u=Math.max(a,c),n=u>0?a>c?Ys:Gs:null,d=n?n===Ys?o.length:l.length:0);var p=n===Ys&&il.test(r[Ks+"Property"]);return{type:n,timeout:u,propCount:d,hasTransform:p}}function al(t,e){while(t.length1}function pl(t,e){!0!==e.data.show&&ll(e)}var fl=nt?{create:pl,activate:pl,remove:function(t,e){!0!==t.data.show?cl(t,e):e()}}:{},hl=[Ta,Na,xs,As,Ds,fl],vl=hl.concat(Ea),ml=ga({nodeOps:la,modules:vl});ot&&document.addEventListener("selectionchange",(function(){var t=document.activeElement;t&&t.vmodel&&Ol(t,"input")}));var gl={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?xe(n,"postpatch",(function(){gl.componentUpdated(t,e,n)})):_l(t,e,n.context),t._vOptions=[].map.call(t.options,wl)):("textarea"===n.tag||Go(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",kl),t.addEventListener("compositionend",xl),t.addEventListener("change",xl),ot&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){_l(t,e,n.context);var r=t._vOptions,i=t._vOptions=[].map.call(t.options,wl);if(i.some((function(t,e){return!B(t,r[e])}))){var o=t.multiple?e.value.some((function(t){return yl(t,i)})):e.value!==e.oldValue&&yl(e.value,i);o&&Ol(t,"change")}}}};function _l(t,e,n){bl(t,e,n),(it||at)&&setTimeout((function(){bl(t,e,n)}),0)}function bl(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,l=t.options.length;s-1,a.selected!==o&&(a.selected=o);else if(B(wl(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function yl(t,e){return e.every((function(e){return!B(e,t)}))}function wl(t){return"_value"in t?t._value:t.value}function kl(t){t.target.composing=!0}function xl(t){t.target.composing&&(t.target.composing=!1,Ol(t.target,"input"))}function Ol(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function El(t){return!t.componentInstance||t.data&&t.data.transition?t:El(t.componentInstance._vnode)}var Cl={bind:function(t,e,n){var r=e.value;n=El(n);var i=n.data&&n.data.transition,o=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&i?(n.data.show=!0,ll(n,(function(){t.style.display=o}))):t.style.display=r?o:"none"},update:function(t,e,n){var r=e.value,i=e.oldValue;if(!r!==!i){n=El(n);var o=n.data&&n.data.transition;o?(n.data.show=!0,r?ll(n,(function(){t.style.display=t.__vOriginalDisplay})):cl(n,(function(){t.style.display="none"}))):t.style.display=r?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,r,i){i||(t.style.display=t.__vOriginalDisplay)}},Sl={model:gl,show:Cl},Al={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function Tl(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?Tl(xn(e.children)):t}function ql(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var i=n._parentListeners;for(var r in i)e[A(r)]=i[r];return e}function Ml(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function Pl(t){while(t=t.parent)if(t.data.transition)return!0}function Ll(t,e){return e.key===t.key&&e.tag===t.tag}var jl=function(t){return t.tag||Qe(t)},$l=function(t){return"show"===t.name},Rl={name:"transition",props:Al,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(jl),n.length)){0;var r=this.mode;0;var i=n[0];if(Pl(this.$vnode))return i;var o=Tl(i);if(!o)return i;if(this._leaving)return Ml(t,i);var a="__transition-".concat(this._uid,"-");o.key=null==o.key?o.isComment?a+"comment":a+o.tag:c(o.key)?0===String(o.key).indexOf(a)?o.key:a+o.key:o.key;var s=(o.data||(o.data={})).transition=ql(this),l=this._vnode,u=Tl(l);if(o.data.directives&&o.data.directives.some($l)&&(o.data.show=!0),u&&u.data&&!Ll(o,u)&&!Qe(u)&&(!u.componentInstance||!u.componentInstance._vnode.isComment)){var d=u.data.transition=R({},s);if("out-in"===r)return this._leaving=!0,xe(d,"afterLeave",(function(){e._leaving=!1,e.$forceUpdate()})),Ml(t,i);if("in-out"===r){if(Qe(o))return l;var p,f=function(){p()};xe(s,"afterEnter",f),xe(s,"enterCancelled",f),xe(d,"delayLeave",(function(t){p=t}))}}return i}}},Nl=R({tag:String,moveClass:String},Al);delete Nl.mode;var Il={props:Nl,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var i=Rn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,i(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=ql(this),s=0;sl&&(s.push(o=t.slice(l,i)),a.push(JSON.stringify(o)));var c=za(r[1].trim());a.push("_s(".concat(c,")")),s.push({"@binding":c}),l=i+r[0].length}return l\/=]+)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,oc=/^\s*((?:v-[\w-]+:|@|:|#)\[[^=]+?\][^\s"'<>\/=]*)(?:\s*(=)\s*(?:"([^"]*)"+|'([^']*)'+|([^\s"'=<>`]+)))?/,ac="[a-zA-Z_][\\-\\.0-9_a-zA-Z".concat(J.source,"]*"),sc="((?:".concat(ac,"\\:)?").concat(ac,")"),lc=new RegExp("^<".concat(sc)),cc=/^\s*(\/?)>/,uc=new RegExp("^<\\/".concat(sc,"[^>]*>")),dc=/^]+>/i,pc=/^",""":'"',"&":"&"," ":"\n"," ":"\t","'":"'"},gc=/&(?:lt|gt|quot|amp|#39);/g,_c=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,bc=y("pre,textarea",!0),yc=function(t,e){return t&&bc(t)&&"\n"===e[0]};function wc(t,e){var n=e?_c:gc;return t.replace(n,(function(t){return mc[t]}))}function kc(t,e){var n,r,i=[],o=e.expectHTML,a=e.isUnaryTag||z,s=e.canBeLeftOpenTag||z,l=0,c=function(){if(n=t,r&&hc(r)){var i=0,o=r.toLowerCase(),a=vc[o]||(vc[o]=new RegExp("([\\s\\S]*?)(]*>)","i"));y=t.replace(a,(function(t,n,r){return i=r.length,hc(o)||"noscript"===o||(n=n.replace(//g,"$1").replace(//g,"$1")),yc(o,n)&&(n=n.slice(1)),e.chars&&e.chars(n),""}));l+=t.length-y.length,t=y,h(o,l-i,l)}else{var s=t.indexOf("<");if(0===s){if(pc.test(t)){var c=t.indexOf("--\x3e");if(c>=0)return e.shouldKeepComment&&e.comment&&e.comment(t.substring(4,c),l,l+c+3),d(c+3),"continue"}if(fc.test(t)){var u=t.indexOf("]>");if(u>=0)return d(u+2),"continue"}var v=t.match(dc);if(v)return d(v[0].length),"continue";var m=t.match(uc);if(m){var g=l;return d(m[0].length),h(m[1],g,l),"continue"}var _=p();if(_)return f(_),yc(_.tagName,t)&&d(1),"continue"}var b=void 0,y=void 0,w=void 0;if(s>=0){y=t.slice(s);while(!uc.test(y)&&!lc.test(y)&&!pc.test(y)&&!fc.test(y)){if(w=y.indexOf("<",1),w<0)break;s+=w,y=t.slice(s)}b=t.substring(0,s)}s<0&&(b=t),b&&d(b.length),e.chars&&b&&e.chars(b,l-b.length,l)}if(t===n)return e.chars&&e.chars(t),"break"};while(t){var u=c();if("break"===u)break}function d(e){l+=e,t=t.substring(e)}function p(){var e=t.match(lc);if(e){var n={tagName:e[1],attrs:[],start:l};d(e[0].length);var r=void 0,i=void 0;while(!(r=t.match(cc))&&(i=t.match(oc)||t.match(ic)))i.start=l,d(i[0].length),i.end=l,n.attrs.push(i);if(r)return n.unarySlash=r[1],d(r[0].length),n.end=l,n}}function f(t){var n=t.tagName,l=t.unarySlash;o&&("p"===r&&rc(n)&&h(r),s(n)&&r===n&&h(n));for(var c=a(n)||!!l,u=t.attrs.length,d=new Array(u),p=0;p=0;a--)if(i[a].lowerCasedTag===s)break}else a=0;if(a>=0){for(var c=i.length-1;c>=a;c--)e.end&&e.end(i[c].tag,n,o);i.length=a,r=a&&i[a-1].tag}else"br"===s?e.start&&e.start(t,[],!0,n,o):"p"===s&&(e.start&&e.start(t,[],!1,n,o),e.end&&e.end(t,n,o))}h()}var xc,Oc,Ec,Cc,Sc,Ac,Tc,qc,Mc=/^@|^v-on:/,Pc=/^v-|^@|^:|^#/,Lc=/([\s\S]*?)\s+(?:in|of)\s+([\s\S]*)/,jc=/,([^,\}\]]*)(?:,([^,\}\]]*))?$/,$c=/^\(|\)$/g,Rc=/^\[.*\]$/,Nc=/:(.*)$/,Ic=/^:|^\.|^v-bind:/,zc=/\.[^.\]]+(?=[^\]]*$)/g,Dc=/^v-slot(:|$)|^#/,Fc=/[\r\n]/,Bc=/[ \f\t\r\n]+/g,Hc=C(tc.decode),Uc="_empty_";function Vc(t,e,n){return{type:1,tag:t,attrsList:e,attrsMap:pu(e),rawAttrsMap:{},parent:n,children:[]}}function Wc(t,e){xc=e.warn||Fa,Ac=e.isPreTag||z,Tc=e.mustUseProp||z,qc=e.getTagNamespace||z;var n=e.isReservedTag||z;(function(t){return!(!(t.component||t.attrsMap[":is"]||t.attrsMap["v-bind:is"])&&(t.attrsMap.is?n(t.attrsMap.is):n(t.tag)))}),Ec=Ba(e.modules,"transformNode"),Cc=Ba(e.modules,"preTransformNode"),Sc=Ba(e.modules,"postTransformNode"),Oc=e.delimiters;var r,i,o=[],a=!1!==e.preserveWhitespace,s=e.whitespace,l=!1,c=!1;function u(t){if(d(t),l||t.processed||(t=Kc(t,e)),o.length||t===r||r.if&&(t.elseif||t.else)&&ru(r,{exp:t.elseif,block:t}),i&&!t.forbidden)if(t.elseif||t.else)eu(t,i);else{if(t.slotScope){var n=t.slotTarget||'"default"';(i.scopedSlots||(i.scopedSlots={}))[n]=t}i.children.push(t),t.parent=i}t.children=t.children.filter((function(t){return!t.slotScope})),d(t),t.pre&&(l=!1),Ac(t.tag)&&(c=!1);for(var a=0;a|^function(?:\s+[\w$]+)?\s*\(/,Ru=/\([^)]*?\);*$/,Nu=/^[A-Za-z_$][\w$]*(?:\.[A-Za-z_$][\w$]*|\['[^']*?']|\["[^"]*?"]|\[\d+]|\[[A-Za-z_$][\w$]*])*$/,Iu={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},zu={esc:["Esc","Escape"],tab:"Tab",enter:"Enter",space:[" ","Spacebar"],up:["Up","ArrowUp"],left:["Left","ArrowLeft"],right:["Right","ArrowRight"],down:["Down","ArrowDown"],delete:["Backspace","Delete","Del"]},Du=function(t){return"if(".concat(t,")return null;")},Fu={stop:"$event.stopPropagation();",prevent:"$event.preventDefault();",self:Du("$event.target !== $event.currentTarget"),ctrl:Du("!$event.ctrlKey"),shift:Du("!$event.shiftKey"),alt:Du("!$event.altKey"),meta:Du("!$event.metaKey"),left:Du("'button' in $event && $event.button !== 0"),middle:Du("'button' in $event && $event.button !== 1"),right:Du("'button' in $event && $event.button !== 2")};function Bu(t,e){var n=e?"nativeOn:":"on:",r="",i="";for(var o in t){var a=Hu(t[o]);t[o]&&t[o].dynamic?i+="".concat(o,",").concat(a,","):r+='"'.concat(o,'":').concat(a,",")}return r="{".concat(r.slice(0,-1),"}"),i?n+"_d(".concat(r,",[").concat(i.slice(0,-1),"])"):n+r}function Hu(t){if(!t)return"function(){}";if(Array.isArray(t))return"[".concat(t.map((function(t){return Hu(t)})).join(","),"]");var e=Nu.test(t.value),n=$u.test(t.value),r=Nu.test(t.value.replace(Ru,""));if(t.modifiers){var i="",o="",a=[],s=function(e){if(Fu[e])o+=Fu[e],Iu[e]&&a.push(e);else if("exact"===e){var n=t.modifiers;o+=Du(["ctrl","shift","alt","meta"].filter((function(t){return!n[t]})).map((function(t){return"$event.".concat(t,"Key")})).join("||"))}else a.push(e)};for(var l in t.modifiers)s(l);a.length&&(i+=Uu(a)),o&&(i+=o);var c=e?"return ".concat(t.value,".apply(null, arguments)"):n?"return (".concat(t.value,").apply(null, arguments)"):r?"return ".concat(t.value):t.value;return"function($event){".concat(i).concat(c,"}")}return e||n?t.value:"function($event){".concat(r?"return ".concat(t.value):t.value,"}")}function Uu(t){return"if(!$event.type.indexOf('key')&&"+"".concat(t.map(Vu).join("&&"),")return null;")}function Vu(t){var e=parseInt(t,10);if(e)return"$event.keyCode!==".concat(e);var n=Iu[t],r=zu[t];return"_k($event.keyCode,"+"".concat(JSON.stringify(t),",")+"".concat(JSON.stringify(n),",")+"$event.key,"+"".concat(JSON.stringify(r))+")"}function Wu(t,e){t.wrapListeners=function(t){return"_g(".concat(t,",").concat(e.value,")")}}function Yu(t,e){t.wrapData=function(n){return"_b(".concat(n,",'").concat(t.tag,"',").concat(e.value,",").concat(e.modifiers&&e.modifiers.prop?"true":"false").concat(e.modifiers&&e.modifiers.sync?",true":"",")")}}var Gu={on:Wu,bind:Yu,cloak:I},Ku=function(){function t(t){this.options=t,this.warn=t.warn||Fa,this.transforms=Ba(t.modules,"transformCode"),this.dataGenFns=Ba(t.modules,"genData"),this.directives=R(R({},Gu),t.directives);var e=t.isReservedTag||z;this.maybeComponent=function(t){return!!t.component||!e(t.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1}return t}();function Ju(t,e){var n=new Ku(e),r=t?"script"===t.tag?"null":Zu(t,n):'_c("div")';return{render:"with(this){return ".concat(r,"}"),staticRenderFns:n.staticRenderFns}}function Zu(t,e){if(t.parent&&(t.pre=t.pre||t.parent.pre),t.staticRoot&&!t.staticProcessed)return Qu(t,e);if(t.once&&!t.onceProcessed)return td(t,e);if(t.for&&!t.forProcessed)return rd(t,e);if(t.if&&!t.ifProcessed)return ed(t,e);if("template"!==t.tag||t.slotTarget||e.pre){if("slot"===t.tag)return gd(t,e);var n=void 0;if(t.component)n=_d(t.component,t,e);else{var r=void 0,i=e.maybeComponent(t);(!t.plain||t.pre&&i)&&(r=id(t,e));var o=void 0,a=e.options.bindings;i&&a&&!1!==a.__isScriptSetup&&(o=Xu(a,t.tag)),o||(o="'".concat(t.tag,"'"));var s=t.inlineTemplate?null:dd(t,e,!0);n="_c(".concat(o).concat(r?",".concat(r):"").concat(s?",".concat(s):"",")")}for(var l=0;l>>0}function cd(t){return 1===t.type&&("slot"===t.tag||t.children.some(cd))}function ud(t,e){var n=t.attrsMap["slot-scope"];if(t.if&&!t.ifProcessed&&!n)return ed(t,e,ud,"null");if(t.for&&!t.forProcessed)return rd(t,e,ud);var r=t.slotScope===Uc?"":String(t.slotScope),i="function(".concat(r,"){")+"return ".concat("template"===t.tag?t.if&&n?"(".concat(t.if,")?").concat(dd(t,e)||"undefined",":undefined"):dd(t,e)||"undefined":Zu(t,e),"}"),o=r?"":",proxy:true";return"{key:".concat(t.slotTarget||'"default"',",fn:").concat(i).concat(o,"}")}function dd(t,e,n,r,i){var o=t.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&"template"!==a.tag&&"slot"!==a.tag){var s=n?e.maybeComponent(a)?",1":",0":"";return"".concat((r||Zu)(a,e)).concat(s)}var l=n?pd(o,e.maybeComponent):0,c=i||hd;return"[".concat(o.map((function(t){return c(t,e)})).join(","),"]").concat(l?",".concat(l):"")}}function pd(t,e){for(var n=0,r=0;r':'
',Od.innerHTML.indexOf(" ")>0}var Td=!!nt&&Ad(!1),qd=!!nt&&Ad(!0),Md=C((function(t){var e=Ko(t);return e&&e.innerHTML})),Pd=ao.prototype.$mount;function Ld(t){if(t.outerHTML)return t.outerHTML;var e=document.createElement("div");return e.appendChild(t.cloneNode(!0)),e.innerHTML}ao.prototype.$mount=function(t,e){if(t=t&&Ko(t),t===document.body||t===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if("string"===typeof r)"#"===r.charAt(0)&&(r=Md(r));else{if(!r.nodeType)return this;r=r.innerHTML}else t&&(r=Ld(t));if(r){0;var i=Sd(r,{outputSourceRange:!1,shouldDecodeNewlines:Td,shouldDecodeNewlinesForHref:qd,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return Pd.call(this,t,e)},ao.compile=Sd},27493:function(t,e,n){"use strict";n.r(e),n.d(e,{changeLocale:function(){return qt},findMissingTranslations:function(){return Mt},i18n:function(){return Pt}});n(74423);var r=n(59192),i=(n(44114),n(16280),["compactDisplay","currency","currencyDisplay","currencySign","localeMatcher","notation","numberingSystem","signDisplay","style","unit","unitDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"]),o=["dateStyle","timeStyle","calendar","localeMatcher","hour12","hourCycle","timeZone","formatMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function a(t,e){"undefined"!==typeof console&&(console.warn("[vue-i18n] "+t),e&&console.warn(e.stack))}function s(t,e){"undefined"!==typeof console&&(console.error("[vue-i18n] "+t),e&&console.error(e.stack))}var l=Array.isArray;function c(t){return null!==t&&"object"===typeof t}function u(t){return"boolean"===typeof t}function d(t){return"string"===typeof t}var p=Object.prototype.toString,f="[object Object]";function h(t){return p.call(t)===f}function v(t){return null===t||void 0===t}function m(t){return"function"===typeof t}function g(){var t=[],e=arguments.length;while(e--)t[e]=arguments[e];var n=null,r=null;return 1===t.length?c(t[0])||l(t[0])?r=t[0]:"string"===typeof t[0]&&(n=t[0]):2===t.length&&("string"===typeof t[0]&&(n=t[0]),(c(t[1])||l(t[1]))&&(r=t[1])),{locale:n,params:r}}function _(t){return JSON.parse(JSON.stringify(t))}function b(t,e){if(t.delete(e))return t}function y(t){var e=[];return t.forEach((function(t){return e.push(t)})),e}function w(t,e){return!!~t.indexOf(e)}var k=Object.prototype.hasOwnProperty;function x(t,e){return k.call(t,e)}function O(t){for(var e=arguments,n=Object(t),r=1;r/g,">").replace(/"/g,""").replace(/'/g,"'")}function S(t){return null!=t&&Object.keys(t).forEach((function(e){"string"==typeof t[e]&&(t[e]=C(t[e]))})),t}function A(t){t.prototype.hasOwnProperty("$i18n")||Object.defineProperty(t.prototype,"$i18n",{get:function(){return this._i18n}}),t.prototype.$t=function(t){var e=[],n=arguments.length-1;while(n-- >0)e[n]=arguments[n+1];var r=this.$i18n;return r._t.apply(r,[t,r.locale,r._getMessages(),this].concat(e))},t.prototype.$tc=function(t,e){var n=[],r=arguments.length-2;while(r-- >0)n[r]=arguments[r+2];var i=this.$i18n;return i._tc.apply(i,[t,i.locale,i._getMessages(),this,e].concat(n))},t.prototype.$te=function(t,e){var n=this.$i18n;return n._te(t,n.locale,n._getMessages(),e)},t.prototype.$d=function(t){var e,n=[],r=arguments.length-1;while(r-- >0)n[r]=arguments[r+1];return(e=this.$i18n).d.apply(e,[t].concat(n))},t.prototype.$n=function(t){var e,n=[],r=arguments.length-1;while(r-- >0)n[r]=arguments[r+1];return(e=this.$i18n).n.apply(e,[t].concat(n))}}function T(t){function e(){this!==this.$root&&this.$options.__INTLIFY_META__&&this.$el&&this.$el.setAttribute("data-intlify",this.$options.__INTLIFY_META__)}return void 0===t&&(t=!1),t?{mounted:e}:{beforeCreate:function(){var t=this.$options;if(t.i18n=t.i18n||(t.__i18nBridge||t.__i18n?{}:null),t.i18n)if(t.i18n instanceof St){if(t.__i18nBridge||t.__i18n)try{var e=t.i18n&&t.i18n.messages?t.i18n.messages:{},n=t.__i18nBridge||t.__i18n;n.forEach((function(t){e=O(e,JSON.parse(t))})),Object.keys(e).forEach((function(n){t.i18n.mergeLocaleMessage(n,e[n])}))}catch(l){0}this._i18n=t.i18n,this._i18nWatcher=this._i18n.watchI18nData()}else if(h(t.i18n)){var r=this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof St?this.$root.$i18n:null;if(r&&(t.i18n.root=this.$root,t.i18n.formatter=r.formatter,t.i18n.fallbackLocale=r.fallbackLocale,t.i18n.formatFallbackMessages=r.formatFallbackMessages,t.i18n.silentTranslationWarn=r.silentTranslationWarn,t.i18n.silentFallbackWarn=r.silentFallbackWarn,t.i18n.pluralizationRules=r.pluralizationRules,t.i18n.preserveDirectiveContent=r.preserveDirectiveContent),t.__i18nBridge||t.__i18n)try{var i=t.i18n&&t.i18n.messages?t.i18n.messages:{},o=t.__i18nBridge||t.__i18n;o.forEach((function(t){i=O(i,JSON.parse(t))})),t.i18n.messages=i}catch(l){0}var a=t.i18n,s=a.sharedMessages;s&&h(s)&&(t.i18n.messages=O(t.i18n.messages,s)),this._i18n=new St(t.i18n),this._i18nWatcher=this._i18n.watchI18nData(),(void 0===t.i18n.sync||t.i18n.sync)&&(this._localeWatcher=this.$i18n.watchLocale()),r&&r.onComponentInstanceCreated(this._i18n)}else 0;else this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof St?this._i18n=this.$root.$i18n:t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof St&&(this._i18n=t.parent.$i18n)},beforeMount:function(){var t=this.$options;t.i18n=t.i18n||(t.__i18nBridge||t.__i18n?{}:null),t.i18n?(t.i18n instanceof St||h(t.i18n))&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0):(this.$root&&this.$root.$i18n&&this.$root.$i18n instanceof St||t.parent&&t.parent.$i18n&&t.parent.$i18n instanceof St)&&(this._i18n.subscribeDataChanging(this),this._subscribing=!0)},mounted:e,beforeDestroy:function(){if(this._i18n){var t=this;this.$nextTick((function(){t._subscribing&&(t._i18n.unsubscribeDataChanging(t),delete t._subscribing),t._i18nWatcher&&(t._i18nWatcher(),t._i18n.destroyVM(),delete t._i18nWatcher),t._localeWatcher&&(t._localeWatcher(),delete t._localeWatcher)}))}}}}var q={name:"i18n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},path:{type:String,required:!0},locale:{type:String},places:{type:[Array,Object]}},render:function(t,e){var n=e.data,r=e.parent,i=e.props,o=e.slots,a=r.$i18n;if(a){var s=i.path,l=i.locale,c=i.places,u=o(),d=a.i(s,l,M(u)||c?P(u.default,c):u),p=i.tag&&!0!==i.tag||!1===i.tag?i.tag:"span";return p?t(p,n,d):d}}};function M(t){var e;for(e in t)if("default"!==e)return!1;return Boolean(e)}function P(t,e){var n=e?L(e):{};if(!t)return n;t=t.filter((function(t){return t.tag||""!==t.text.trim()}));var r=t.every(R);return t.reduce(r?j:$,n)}function L(t){return Array.isArray(t)?t.reduce($,{}):Object.assign({},t)}function j(t,e){return e.data&&e.data.attrs&&e.data.attrs.place&&(t[e.data.attrs.place]=e),t}function $(t,e,n){return t[n]=e,t}function R(t){return Boolean(t.data&&t.data.attrs&&t.data.attrs.place)}var N,I={name:"i18n-n",functional:!0,props:{tag:{type:[String,Boolean,Object],default:"span"},value:{type:Number,required:!0},format:{type:[String,Object]},locale:{type:String}},render:function(t,e){var n=e.props,r=e.parent,o=e.data,a=r.$i18n;if(!a)return null;var s=null,l=null;d(n.format)?s=n.format:c(n.format)&&(n.format.key&&(s=n.format.key),l=Object.keys(n.format).reduce((function(t,e){var r;return w(i,e)?Object.assign({},t,(r={},r[e]=n.format[e],r)):t}),null));var u=n.locale||a.locale,p=a._ntp(n.value,u,s,l),f=p.map((function(t,e){var n,r=o.scopedSlots&&o.scopedSlots[t.type];return r?r((n={},n[t.type]=t.value,n.index=e,n.parts=p,n)):t.value})),h=n.tag&&!0!==n.tag||!1===n.tag?n.tag:"span";return h?t(h,{attrs:o.attrs,class:o["class"],staticClass:o.staticClass},f):f}};function z(t,e,n){B(t,n)&&U(t,e,n)}function D(t,e,n,r){if(B(t,n)){var i=n.context.$i18n;H(t,n)&&E(e.value,e.oldValue)&&E(t._localeMessage,i.getLocaleMessage(i.locale))||U(t,e,n)}}function F(t,e,n,r){var i=n.context;if(i){var o=n.context.$i18n||{};e.modifiers.preserve||o.preserveDirectiveContent||(t.textContent=""),t._vt=void 0,delete t["_vt"],t._locale=void 0,delete t["_locale"],t._localeMessage=void 0,delete t["_localeMessage"]}else a("Vue instance does not exists in VNode context")}function B(t,e){var n=e.context;return n?!!n.$i18n||(a("VueI18n instance does not exists in Vue instance"),!1):(a("Vue instance does not exists in VNode context"),!1)}function H(t,e){var n=e.context;return t._locale===n.$i18n.locale}function U(t,e,n){var r,i,o=e.value,s=V(o),l=s.path,c=s.locale,u=s.args,d=s.choice;if(l||c||u)if(l){var p=n.context;t._vt=t.textContent=null!=d?(r=p.$i18n).tc.apply(r,[l,d].concat(W(c,u))):(i=p.$i18n).t.apply(i,[l].concat(W(c,u))),t._locale=p.$i18n.locale,t._localeMessage=p.$i18n.getLocaleMessage(p.$i18n.locale)}else a("`path` is required in v-t directive");else a("value type not supported")}function V(t){var e,n,r,i;return d(t)?e=t:h(t)&&(e=t.path,n=t.locale,r=t.args,i=t.choice),{path:e,locale:n,args:r,choice:i}}function W(t,e){var n=[];return t&&n.push(t),e&&(Array.isArray(e)||h(e))&&n.push(e),n}function Y(t,e){void 0===e&&(e={bridge:!1}),Y.installed=!0,N=t;N.version&&Number(N.version.split(".")[0]);A(N),N.mixin(T(e.bridge)),N.directive("t",{bind:z,update:D,unbind:F}),N.component(q.name,q),N.component(I.name,I);var n=N.config.optionMergeStrategies;n.i18n=function(t,e){return void 0===e?t:e}}var G=function(){this._caches=Object.create(null)};G.prototype.interpolate=function(t,e){if(!e)return[t];var n=this._caches[t];return n||(n=Z(t),this._caches[t]=n),X(n,e)};var K=/^(?:\d)+/,J=/^(?:\w)+/;function Z(t){var e=[],n=0,r="";while(n0)d--,u=st,p[Q]();else{if(d=0,void 0===n)return!1;if(n=gt(n),!1===n)return!1;p[tt]()}};while(null!==u)if(c++,e=t[c],"\\"!==e||!f()){if(i=mt(e),s=pt[u],o=s[i]||s["else"]||dt,o===dt)return;if(u=o[0],a=p[o[1]],a&&(r=o[2],r=void 0===r?e:r,!1===a()))return;if(u===ut)return l}}var bt=function(){this._cache=Object.create(null)};bt.prototype.parsePath=function(t){var e=this._cache[t];return e||(e=_t(t),e&&(this._cache[t]=e)),e||[]},bt.prototype.getPathValue=function(t,e){if(!c(t))return null;var n=this.parsePath(e);if(0===n.length)return null;var r=n.length,i=t,o=0;while(o/,kt=/(?:@(?:\.[a-zA-Z]+)?:(?:[\w\-_|./]+|\([\w\-_:|./]+\)))/g,xt=/^@(?:\.([a-zA-Z]+))?:/,Ot=/[()]/g,Et={upper:function(t){return t.toLocaleUpperCase()},lower:function(t){return t.toLocaleLowerCase()},capitalize:function(t){return""+t.charAt(0).toLocaleUpperCase()+t.substr(1)}},Ct=new G,St=function(t){var e=this;void 0===t&&(t={}),!N&&"undefined"!==typeof window&&window.Vue&&Y(window.Vue);var n=t.locale||"en-US",r=!1!==t.fallbackLocale&&(t.fallbackLocale||"en-US"),i=t.messages||{},o=t.dateTimeFormats||t.datetimeFormats||{},a=t.numberFormats||{};this._vm=null,this._formatter=t.formatter||Ct,this._modifiers=t.modifiers||{},this._missing=t.missing||null,this._root=t.root||null,this._sync=void 0===t.sync||!!t.sync,this._fallbackRoot=void 0===t.fallbackRoot||!!t.fallbackRoot,this._fallbackRootWithEmptyString=void 0===t.fallbackRootWithEmptyString||!!t.fallbackRootWithEmptyString,this._formatFallbackMessages=void 0!==t.formatFallbackMessages&&!!t.formatFallbackMessages,this._silentTranslationWarn=void 0!==t.silentTranslationWarn&&t.silentTranslationWarn,this._silentFallbackWarn=void 0!==t.silentFallbackWarn&&!!t.silentFallbackWarn,this._dateTimeFormatters={},this._numberFormatters={},this._path=new bt,this._dataListeners=new Set,this._componentInstanceCreatedListener=t.componentInstanceCreatedListener||null,this._preserveDirectiveContent=void 0!==t.preserveDirectiveContent&&!!t.preserveDirectiveContent,this.pluralizationRules=t.pluralizationRules||{},this._warnHtmlInMessage=t.warnHtmlInMessage||"off",this._postTranslation=t.postTranslation||null,this._escapeParameterHtml=t.escapeParameterHtml||!1,"__VUE_I18N_BRIDGE__"in t&&(this.__VUE_I18N_BRIDGE__=t.__VUE_I18N_BRIDGE__),this.getChoiceIndex=function(t,n){var r=Object.getPrototypeOf(e);if(r&&r.getChoiceIndex){var i=r.getChoiceIndex;return i.call(e,t,n)}var o=function(t,e){return t=Math.abs(t),2===e?t?t>1?1:0:1:t?Math.min(t,2):0};return e.locale in e.pluralizationRules?e.pluralizationRules[e.locale].apply(e,[t,n]):o(t,n)},this._exist=function(t,n){return!(!t||!n)&&(!v(e._path.getPathValue(t,n))||!!t[n])},"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||Object.keys(i).forEach((function(t){e._checkLocaleMessage(t,e._warnHtmlInMessage,i[t])})),this._initVM({locale:n,fallbackLocale:r,messages:i,dateTimeFormats:o,numberFormats:a})},At={vm:{configurable:!0},messages:{configurable:!0},dateTimeFormats:{configurable:!0},numberFormats:{configurable:!0},availableLocales:{configurable:!0},locale:{configurable:!0},fallbackLocale:{configurable:!0},formatFallbackMessages:{configurable:!0},missing:{configurable:!0},formatter:{configurable:!0},silentTranslationWarn:{configurable:!0},silentFallbackWarn:{configurable:!0},preserveDirectiveContent:{configurable:!0},warnHtmlInMessage:{configurable:!0},postTranslation:{configurable:!0},sync:{configurable:!0}};St.prototype._checkLocaleMessage=function(t,e,n){var r=[],i=function(t,e,n,r){if(h(n))Object.keys(n).forEach((function(o){var a=n[o];h(a)?(r.push(o),r.push("."),i(t,e,a,r),r.pop(),r.pop()):(r.push(o),i(t,e,a,r),r.pop())}));else if(l(n))n.forEach((function(n,o){h(n)?(r.push("["+o+"]"),r.push("."),i(t,e,n,r),r.pop(),r.pop()):(r.push("["+o+"]"),i(t,e,n,r),r.pop())}));else if(d(n)){var o=wt.test(n);if(o){var c="Detected HTML in message '"+n+"' of keypath '"+r.join("")+"' at '"+e+"'. Consider component interpolation with '' to avoid XSS. See https://bit.ly/2ZqJzkp";"warn"===t?a(c):"error"===t&&s(c)}}};i(e,t,n,r)},St.prototype._initVM=function(t){var e=N.config.silent;N.config.silent=!0,this._vm=new N({data:t,__VUE18N__INSTANCE__:!0}),N.config.silent=e},St.prototype.destroyVM=function(){this._vm.$destroy()},St.prototype.subscribeDataChanging=function(t){this._dataListeners.add(t)},St.prototype.unsubscribeDataChanging=function(t){b(this._dataListeners,t)},St.prototype.watchI18nData=function(){var t=this;return this._vm.$watch("$data",(function(){var e=y(t._dataListeners),n=e.length;while(n--)N.nextTick((function(){e[n]&&e[n].$forceUpdate()}))}),{deep:!0})},St.prototype.watchLocale=function(t){if(t){if(!this.__VUE_I18N_BRIDGE__)return null;var e=this,n=this._vm;return this.vm.$watch("locale",(function(r){n.$set(n,"locale",r),e.__VUE_I18N_BRIDGE__&&t&&(t.locale.value=r),n.$forceUpdate()}),{immediate:!0})}if(!this._sync||!this._root)return null;var r=this._vm;return this._root.$i18n.vm.$watch("locale",(function(t){r.$set(r,"locale",t),r.$forceUpdate()}),{immediate:!0})},St.prototype.onComponentInstanceCreated=function(t){this._componentInstanceCreatedListener&&this._componentInstanceCreatedListener(t,this)},At.vm.get=function(){return this._vm},At.messages.get=function(){return _(this._getMessages())},At.dateTimeFormats.get=function(){return _(this._getDateTimeFormats())},At.numberFormats.get=function(){return _(this._getNumberFormats())},At.availableLocales.get=function(){return Object.keys(this.messages).sort()},At.locale.get=function(){return this._vm.locale},At.locale.set=function(t){this._vm.$set(this._vm,"locale",t)},At.fallbackLocale.get=function(){return this._vm.fallbackLocale},At.fallbackLocale.set=function(t){this._localeChainCache={},this._vm.$set(this._vm,"fallbackLocale",t)},At.formatFallbackMessages.get=function(){return this._formatFallbackMessages},At.formatFallbackMessages.set=function(t){this._formatFallbackMessages=t},At.missing.get=function(){return this._missing},At.missing.set=function(t){this._missing=t},At.formatter.get=function(){return this._formatter},At.formatter.set=function(t){this._formatter=t},At.silentTranslationWarn.get=function(){return this._silentTranslationWarn},At.silentTranslationWarn.set=function(t){this._silentTranslationWarn=t},At.silentFallbackWarn.get=function(){return this._silentFallbackWarn},At.silentFallbackWarn.set=function(t){this._silentFallbackWarn=t},At.preserveDirectiveContent.get=function(){return this._preserveDirectiveContent},At.preserveDirectiveContent.set=function(t){this._preserveDirectiveContent=t},At.warnHtmlInMessage.get=function(){return this._warnHtmlInMessage},At.warnHtmlInMessage.set=function(t){var e=this,n=this._warnHtmlInMessage;if(this._warnHtmlInMessage=t,n!==t&&("warn"===t||"error"===t)){var r=this._getMessages();Object.keys(r).forEach((function(t){e._checkLocaleMessage(t,e._warnHtmlInMessage,r[t])}))}},At.postTranslation.get=function(){return this._postTranslation},At.postTranslation.set=function(t){this._postTranslation=t},At.sync.get=function(){return this._sync},At.sync.set=function(t){this._sync=t},St.prototype._getMessages=function(){return this._vm.messages},St.prototype._getDateTimeFormats=function(){return this._vm.dateTimeFormats},St.prototype._getNumberFormats=function(){return this._vm.numberFormats},St.prototype._warnDefault=function(t,e,n,r,i,o){if(!v(n))return n;if(this._missing){var a=this._missing.apply(null,[t,e,r,i]);if(d(a))return a}else 0;if(this._formatFallbackMessages){var s=g.apply(void 0,i);return this._render(e,o,s.params,e)}return e},St.prototype._isFallbackRoot=function(t){return(this._fallbackRootWithEmptyString?!t:v(t))&&!v(this._root)&&this._fallbackRoot},St.prototype._isSilentFallbackWarn=function(t){return this._silentFallbackWarn instanceof RegExp?this._silentFallbackWarn.test(t):this._silentFallbackWarn},St.prototype._isSilentFallback=function(t,e){return this._isSilentFallbackWarn(e)&&(this._isFallbackRoot()||t!==this.fallbackLocale)},St.prototype._isSilentTranslationWarn=function(t){return this._silentTranslationWarn instanceof RegExp?this._silentTranslationWarn.test(t):this._silentTranslationWarn},St.prototype._interpolate=function(t,e,n,r,i,o,a){if(!e)return null;var s,c=this._path.getPathValue(e,n);if(l(c)||h(c))return c;if(v(c)){if(!h(e))return null;if(s=e[n],!d(s)&&!m(s))return null}else{if(!d(c)&&!m(c))return null;s=c}return d(s)&&(s.indexOf("@:")>=0||s.indexOf("@.")>=0)&&(s=this._link(t,e,s,r,"raw",o,a)),this._render(s,i,o,n)},St.prototype._link=function(t,e,n,r,i,o,a){var s=n,c=s.match(kt);for(var u in c)if(c.hasOwnProperty(u)){var d=c[u],p=d.match(xt),f=p[0],h=p[1],v=d.replace(f,"").replace(Ot,"");if(w(a,v))return s;a.push(v);var m=this._interpolate(t,e,v,r,"raw"===i?"string":i,"raw"===i?void 0:o,a);if(this._isFallbackRoot(m)){if(!this._root)throw Error("unexpected error");var g=this._root.$i18n;m=g._translate(g._getMessages(),g.locale,g.fallbackLocale,v,r,i,o)}m=this._warnDefault(t,v,m,r,l(o)?o:[o],i),this._modifiers.hasOwnProperty(h)?m=this._modifiers[h](m):Et.hasOwnProperty(h)&&(m=Et[h](m)),a.pop(),s=m?s.replace(d,m):s}return s},St.prototype._createMessageContext=function(t,e,n,r){var i=this,o=l(t)?t:[],a=c(t)?t:{},s=function(t){return o[t]},u=function(t){return a[t]},d=this._getMessages(),p=this.locale;return{list:s,named:u,values:t,formatter:e,path:n,messages:d,locale:p,linked:function(t){return i._interpolate(p,d[p]||{},t,null,r,void 0,[t])}}},St.prototype._render=function(t,e,n,r){if(m(t))return t(this._createMessageContext(n,this._formatter||Ct,r,e));var i=this._formatter.interpolate(t,n,r);return i||(i=Ct.interpolate(t,n,r)),"string"!==e||d(i)?i:i.join("")},St.prototype._appendItemToChain=function(t,e,n){var r=!1;return w(t,e)||(r=!0,e&&(r="!"!==e[e.length-1],e=e.replace(/!/g,""),t.push(e),n&&n[e]&&(r=n[e]))),r},St.prototype._appendLocaleToChain=function(t,e,n){var r,i=e.split("-");do{var o=i.join("-");r=this._appendItemToChain(t,o,n),i.splice(-1,1)}while(i.length&&!0===r);return r},St.prototype._appendBlockToChain=function(t,e,n){for(var r=!0,i=0;i0)o[a]=arguments[a+4];if(!t)return"";var s=g.apply(void 0,o);this._escapeParameterHtml&&(s.params=S(s.params));var l=s.locale||e,c=this._translate(n,l,this.fallbackLocale,t,r,"string",s.params);if(this._isFallbackRoot(c)){if(!this._root)throw Error("unexpected error");return(i=this._root).$t.apply(i,[t].concat(o))}return c=this._warnDefault(l,t,c,r,o,"string"),this._postTranslation&&null!==c&&void 0!==c&&(c=this._postTranslation(c,t)),c},St.prototype.t=function(t){var e,n=[],r=arguments.length-1;while(r-- >0)n[r]=arguments[r+1];return(e=this)._t.apply(e,[t,this.locale,this._getMessages(),null].concat(n))},St.prototype._i=function(t,e,n,r,i){var o=this._translate(n,e,this.fallbackLocale,t,r,"raw",i);if(this._isFallbackRoot(o)){if(!this._root)throw Error("unexpected error");return this._root.$i18n.i(t,e,i)}return this._warnDefault(e,t,o,r,[i],"raw")},St.prototype.i=function(t,e,n){return t?(d(e)||(e=this.locale),this._i(t,e,this._getMessages(),null,n)):""},St.prototype._tc=function(t,e,n,r,i){var o,a=[],s=arguments.length-5;while(s-- >0)a[s]=arguments[s+5];if(!t)return"";void 0===i&&(i=1);var l={count:i,n:i},c=g.apply(void 0,a);return c.params=Object.assign(l,c.params),a=null===c.locale?[c.params]:[c.locale,c.params],this.fetchChoice((o=this)._t.apply(o,[t,e,n,r].concat(a)),i)},St.prototype.fetchChoice=function(t,e){if(!t||!d(t))return null;var n=t.split("|");return e=this.getChoiceIndex(e,n.length),n[e]?n[e].trim():t},St.prototype.tc=function(t,e){var n,r=[],i=arguments.length-2;while(i-- >0)r[i]=arguments[i+2];return(n=this)._tc.apply(n,[t,this.locale,this._getMessages(),null,e].concat(r))},St.prototype._te=function(t,e,n){var r=[],i=arguments.length-3;while(i-- >0)r[i]=arguments[i+3];var o=g.apply(void 0,r).locale||e;return this._exist(n[o],t)},St.prototype.te=function(t,e){return this._te(t,this.locale,this._getMessages(),e)},St.prototype.getLocaleMessage=function(t){return _(this._vm.messages[t]||{})},St.prototype.setLocaleMessage=function(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,e)},St.prototype.mergeLocaleMessage=function(t,e){"warn"!==this._warnHtmlInMessage&&"error"!==this._warnHtmlInMessage||this._checkLocaleMessage(t,this._warnHtmlInMessage,e),this._vm.$set(this._vm.messages,t,O("undefined"!==typeof this._vm.messages[t]&&Object.keys(this._vm.messages[t]).length?Object.assign({},this._vm.messages[t]):{},e))},St.prototype.getDateTimeFormat=function(t){return _(this._vm.dateTimeFormats[t]||{})},St.prototype.setDateTimeFormat=function(t,e){this._vm.$set(this._vm.dateTimeFormats,t,e),this._clearDateTimeFormat(t,e)},St.prototype.mergeDateTimeFormat=function(t,e){this._vm.$set(this._vm.dateTimeFormats,t,O(this._vm.dateTimeFormats[t]||{},e)),this._clearDateTimeFormat(t,e)},St.prototype._clearDateTimeFormat=function(t,e){for(var n in e){var r=t+"__"+n;this._dateTimeFormatters.hasOwnProperty(r)&&delete this._dateTimeFormatters[r]}},St.prototype._localizeDateTime=function(t,e,n,r,i,o){for(var a=e,s=r[a],l=this._getLocaleChain(e,n),c=0;c0)e[n]=arguments[n+1];var r=this.locale,i=null,a=null;return 1===e.length?(d(e[0])?i=e[0]:c(e[0])&&(e[0].locale&&(r=e[0].locale),e[0].key&&(i=e[0].key)),a=Object.keys(e[0]).reduce((function(t,n){var r;return w(o,n)?Object.assign({},t,(r={},r[n]=e[0][n],r)):t}),null)):2===e.length&&(d(e[0])&&(i=e[0]),d(e[1])&&(r=e[1])),this._d(t,r,i,a)},St.prototype.getNumberFormat=function(t){return _(this._vm.numberFormats[t]||{})},St.prototype.setNumberFormat=function(t,e){this._vm.$set(this._vm.numberFormats,t,e),this._clearNumberFormat(t,e)},St.prototype.mergeNumberFormat=function(t,e){this._vm.$set(this._vm.numberFormats,t,O(this._vm.numberFormats[t]||{},e)),this._clearNumberFormat(t,e)},St.prototype._clearNumberFormat=function(t,e){for(var n in e){var r=t+"__"+n;this._numberFormatters.hasOwnProperty(r)&&delete this._numberFormatters[r]}},St.prototype._getNumberFormatter=function(t,e,n,r,i,o){for(var a=e,s=r[a],l=this._getLocaleChain(e,n),c=0;c0)e[n]=arguments[n+1];var r=this.locale,o=null,a=null;return 1===e.length?d(e[0])?o=e[0]:c(e[0])&&(e[0].locale&&(r=e[0].locale),e[0].key&&(o=e[0].key),a=Object.keys(e[0]).reduce((function(t,n){var r;return w(i,n)?Object.assign({},t,(r={},r[n]=e[0][n],r)):t}),null)):2===e.length&&(d(e[0])&&(o=e[0]),d(e[1])&&(r=e[1])),this._n(t,r,o,a)},St.prototype._ntp=function(t,e,n,r){if(!St.availabilities.numberFormat)return[];if(!n){var i=r?new Intl.NumberFormat(e,r):new Intl.NumberFormat(e);return i.formatToParts(t)}var o=this._getNumberFormatter(t,e,this.fallbackLocale,this._getNumberFormats(),n,r),a=o&&o.formatToParts(t);if(this._isFallbackRoot(a)){if(!this._root)throw Error("unexpected error");return this._root.$i18n._ntp(t,e,n,r)}return a||[]},Object.defineProperties(St.prototype,At),Object.defineProperty(St,"availabilities",{get:function(){if(!yt){var t="undefined"!==typeof Intl;yt={dateTimeFormat:t&&"undefined"!==typeof Intl.DateTimeFormat,numberFormat:t&&"undefined"!==typeof Intl.NumberFormat}}return yt}}),St.install=Y,St.version="8.28.2";var Tt=St;let qt,Mt;const Pt=()=>{r["default"].use(Tt);let t={available:["fr","en","de","nl","oc"],default:"en",current:"",init:function(){let t=localStorage.getItem("language");if(void 0!==t&&this.available.includes(t)&&(this.current=t),""===this.current){let t=this.available.find((t=>window.navigator.language.includes(t)));this.current=t||this.default}}};t.init();const e=new Tt({locale:t.current,fallbackLocale:"en",silentFallbackWarn:!0});return qt=async t=>{const r=await n(50971)(`./${t}.js`);e.locale=t,document.querySelector("html").setAttribute("lang",t),e.setLocaleMessage(t,r.default),localStorage.setItem("language",t)},qt(t.current),Mt=async()=>{let e={};for(const o of t.available)try{const t=await n(50971)(`./${o}.js`);e[o]=t.default}catch(i){}const r=Object.entries(e).reduce(((t,[e,n])=>{const r=Object.entries(n);return r.map((([n,r])=>{t[n]||(t[n]={}),t[n][e]=r})),t}),{});return r},e}},10516:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=n(4417),l=n.n(s),c=new URL(n(19947),n.b),u=new URL(n(69164),n.b),d=a()(i()),p=l()(c),f=l()(u);d.push([t.id,'.u-label{display:block;color:var(--label-color);margin-bottom:calc(var(--spacing)/4)}.u-label,.u-meta{font-size:var(--sl-font-size-small)}.u-meta{text-transform:uppercase;font-family:var(--sl-font-mono);letter-spacing:.02em}:focus-visible{outline-color:var(--active-color)}a:focus-visible{outline-width:2px}.u-sectionLabel{display:block;width:100%;font-size:var(--sl-font-size-medium);font-weight:700;letter-spacing:.04em;text-align:center;background:var(--c-bleumarine);padding:calc(var(--spacing)/4) calc(var(--spacing)/2);color:#fff;border-radius:4px;margin-bottom:calc(var(--spacing)/1)}.u-instructions{font-style:italic;color:var(--label-color)}.u-wips{position:relative;margin:calc(var(--spacing)/2) 0}.u-wips:before{content:"en chantier :)";font-family:Fira Code;background:var(--c-orange);padding:calc(var(--spacing)/8) calc(var(--spacing)/4);font-size:var(--sl-font-size-small);border-radius:6px;transform:rotate(-6deg);position:relative;display:inline-block}.u-padding-small{padding:calc(var(--spacing)/2)}.u-card--header{font-weight:600}.u-card2{border-bottom:2px solid var(--c-gris);transition:all .25s cubic-bezier(.19,1,.22,1);box-shadow:0 0 0 1px rgba(20,21,26,.05),0 .3px .4px rgba(20,21,26,.02),0 .9px 1.5px rgba(20,21,26,.045),0 3.5px 6px rgba(20,21,26,.09)}.u-card2:focus-visible,.u-card2:hover{box-shadow:0 0 0 1px rgba(20,21,26,.05),0 .9px 1.25px rgba(20,21,26,.025),0 3px 5px rgba(20,21,26,.05),0 12px 20px rgba(20,21,26,.09)}.u-errorMsg{color:var(--c-rouge);font-style:italic}.t-500{font-weight:500}.b-icon{display:inline-block;min-width:1em;min-height:1em;max-width:none;overflow:visible}.u-buttonLink{font-weight:400;background:transparent;line-height:1;padding:0;color:currentColor;text-decoration:underline;text-decoration-thickness:auto;text-underline-offset:.1em;cursor:pointer;display:inline-flex;align-items:center;flex-flow:row nowrap;white-space:nowrap;gap:calc(var(--spacing)/4);font-size:var(--sl-font-size-small);text-decoration-thickness:.07em}.u-buttonLink[disabled]{cursor:not-allowed;text-decoration:none}.u-buttonLink.is--active{color:var(--c-bleuvert)}.u-buttonLink.has--whitebg{background:#fff}.u-buttonLink.u-buttonLink_white{color:#fff}.u-buttonLink.u-buttonLink_red{color:var(--c-rouge)}.u-buttonLink:focus,.u-buttonLink:hover{text-decoration:none}.u-buttonLink:focus-visible{background-color:var(--active-color)}.u-buttonLink svg{pointer-events:none}.u-unset,button{-webkit-appearance:unset;-moz-appearance:unset;appearance:unset}.u-button{display:inline-flex;gap:calc(var(--spacing)/4);align-items:center;justify-content:center;text-transform:uppercase;font-weight:500;letter-spacing:.02em;font-size:var(--input-font-size-small);text-decoration:none;color:inherit;padding:calc(var(--spacing)/2) calc(var(--spacing)/1);border-radius:var(--input-border-radius);transition:all .2s cubic-bezier(.19,1,.22,1)}.u-button .b-icon.bi{width:1.35em;height:1.35em}.u-button .inlineSVG,.u-button svg{flex:0 0 auto;fill:currentColor;width:1.5rem;height:1.5rem}.u-button[disabled]{cursor:not-allowed;filter:grayscale(50%);color:var(--c-gris_fonce)}.u-button.is--active:not([disabled]),.u-button:active:not([disabled]),.u-button:focus-visible:not([disabled]),.u-button:hover:not([disabled]){outline:0;background:var(--active-color)}.u-button_icon{padding:calc(var(--spacing)/2);background:transparent;border-radius:50%;font-size:var(--sl-font-size-medium);color:inherit}.u-button_icon>svg{display:block}.u-button_icon.is--active:not([disabled]),.u-button_icon:active:not([disabled]),.u-button_icon:focus-visible:not([disabled]),.u-button_icon:hover:not([disabled]){color:var(--active-color);background:#fff}.u-button_icon.u-button_small{padding:calc(var(--spacing)/4)}.u-button_inline{display:flex;flex-flow:row nowrap;align-items:center;justify-content:center}.u-button_floating{box-shadow:0 5px 24px currentColor}.u-button_wide{min-width:3.5em}.u-button_transparent{background-color:transparent}.u-button_transparent[disabled]{color:var(--c-gris_fonce)}.u-button_transparent[disabled].is--active,.u-button_transparent[disabled]:focus-visible,.u-button_transparent[disabled]:hover{background-color:rgba(0,0,0,.1)}.u-button_black{background-color:var(--c-noir);color:#fff}.u-button_black.is--active:not([disabled]),.u-button_black:focus-visible:not([disabled]),.u-button_black:hover:not([disabled]){background-color:var(--c-gris_fonce)}.u-button_white{background-color:#fff;color:var(--c-noir)}.u-button_white.is--active:not([disabled]),.u-button_white:focus-visible:not([disabled]),.u-button_white:hover:not([disabled]){background-color:var(--c-gris)}.u-button_red{background-color:var(--c-rouge);color:#fff}.u-button_red.u-button_floating{box-shadow:0 5px 24px var(--c-rouge)}.u-button_red.is--active:not([disabled]),.u-button_red:focus-visible:not([disabled]),.u-button_red:hover:not([disabled]){background-color:var(--c-rouge_fonce)}.u-button_bleuvert{background-color:var(--c-bleuvert);color:#fff}.u-button_bleuvert.is--active:not([disabled]),.u-button_bleuvert:focus-visible:not([disabled]),.u-button_bleuvert:hover:not([disabled]){background-color:var(--c-bleuvert_fonce)}.u-button_bleuvert_fonce{background-color:var(--c-bleuvert_fonce);color:#fff}.u-button_bleuvert_fonce.is--active:not([disabled]),.u-button_bleuvert_fonce:focus-visible:not([disabled]),.u-button_bleuvert_fonce:hover:not([disabled]){background-color:var(--c-bleuvert)}.u-button_orange{background-color:var(--c-orange);color:#fff}.u-button_orange.is--active:not([disabled]),.u-button_orange:focus-visible:not([disabled]),.u-button_orange:hover:not([disabled]){background-color:var(--c-orange_fonce)}.u-button_bleumarine{background-color:var(--c-bleumarine);color:#fff}.u-button_bleumarine.is--active:not([disabled]),.u-button_bleumarine:focus-visible:not([disabled]),.u-button_bleumarine:hover:not([disabled]){background-color:var(--c-bleumarine_fonce)}.u-button_small{font-size:var(--input-font-size-small);padding:calc(var(--spacing)/4) calc(var(--spacing)/2)}.u-button_small b-icon{font-size:80%}.u-button_verysmall{font-size:var(--input-font-size-x-small);padding:calc(var(--spacing)/8) calc(var(--spacing)/4)}.u-button_big{font-size:var(--input-font-size-big);min-height:2.9em}.u-colorOrange{color:var(--c-orange)}input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{all:unset;box-sizing:border-box}.u-input,[contenteditable=true],input[type=color],input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{display:block;width:100%;padding:calc(var(--spacing)/2);border-radius:var(--input-border-radius);background-color:var(--c-gris);color:inherit;line-height:var(--input-height);line-height:inherit;vertical-align:middle;padding:calc(var(--spacing)*.25) calc(var(--spacing)*.5);margin:0;border-bottom:2px solid #ced7da;transition:all .05s}.u-input:hover,[contenteditable=true]:hover,input[type=color]:hover,input[type=date]:hover,input[type=datetime-local]:hover,input[type=email]:hover,input[type=month]:hover,input[type=number]:hover,input[type=password]:hover,input[type=search]:hover,input[type=tel]:hover,input[type=text]:hover,input[type=time]:hover,input[type=url]:hover,input[type=week]:hover,select:hover,textarea:hover{outline:0;border-color:var(--input-border-color)}.u-input:focus-visible,[contenteditable=true]:focus-visible,input[type=color]:focus-visible,input[type=date]:focus-visible,input[type=datetime-local]:focus-visible,input[type=email]:focus-visible,input[type=month]:focus-visible,input[type=number]:focus-visible,input[type=password]:focus-visible,input[type=search]:focus-visible,input[type=tel]:focus-visible,input[type=text]:focus-visible,input[type=time]:focus-visible,input[type=url]:focus-visible,input[type=week]:focus-visible,select:focus-visible,textarea:focus-visible{outline:0;border-color:var(--input-border-color-focus)}.u-input.bg-blanc,[contenteditable=true].bg-blanc,input[type=color].bg-blanc,input[type=date].bg-blanc,input[type=datetime-local].bg-blanc,input[type=email].bg-blanc,input[type=month].bg-blanc,input[type=number].bg-blanc,input[type=password].bg-blanc,input[type=search].bg-blanc,input[type=tel].bg-blanc,input[type=text].bg-blanc,input[type=time].bg-blanc,input[type=url].bg-blanc,input[type=week].bg-blanc,select.bg-blanc,textarea.bg-blanc{background-color:#fff}.u-input[required],[contenteditable=true][required],input[type=color][required],input[type=date][required],input[type=datetime-local][required],input[type=email][required],input[type=month][required],input[type=number][required],input[type=password][required],input[type=search][required],input[type=tel][required],input[type=text][required],input[type=time][required],input[type=url][required],input[type=week][required],select[required],textarea[required]{background-size:16px 16px;background-position:100% 0;background-repeat:no-repeat;background-image:radial-gradient(var(--c-rouge) 18%,transparent 25%);transition:background-size .2s}.u-inputGroup{width:100%;display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/4)}.u-suffix{font-family:Fira Code;padding:calc(var(--spacing)/4);font-size:var(--sl-font-size-x-small)}[contenteditable=true],textarea{height:auto;padding:calc(var(--spacing)/2) calc(var(--spacing)/2)}input[size=small]{font-size:var(--input-font-size-small);height:var(--input-height-small)}audio,img,svg,video{display:block;max-width:100%;height:auto;-moz-user-select:none;-webkit-user-select:none;user-select:none}select{position:relative;background-image:url('+p+");background-position:right .4rem center;background-repeat:no-repeat;background-size:.75rem;padding:calc(var(--spacing)/2);padding-right:calc(var(--spacing)*.5 + 1rem);min-width:0;line-height:1.5;border-radius:var(--input-border-radius)}select:disabled{background-image:url("+f+')}select[size=small]{height:var(--input-height-small);font-size:var(--sl-font-size-small);padding-top:calc(var(--spacing)/8);padding-bottom:calc(var(--spacing)/8);line-height:1.5}select.is--active{font-weight:500}input[type=file]{width:.1px;height:.1px;opacity:0;overflow:hidden;position:absolute;z-index:-1}input[type=file]+label{display:inline-flex;flex-direction:row nowrap;align-items:center;justify-content:center;text-align:center;cursor:pointer;overflow:hidden;word-break:break-word;padding:calc(var(--spacing)/2) calc(var(--spacing)/1);border-radius:var(--input-border-radius);margin-bottom:0;transition:color .4s cubic-bezier(.19,1,.22,1)}input[type=file] :focus+label,input[type=file].has-focus+label{outline:1px dotted var(--c-rouge);outline:5px auto -webkit-focus-ring-color}input[type=file]+label *{display:block}input[type=file]+label svg{width:1.5rem;height:1.5rem;flex-shrink:0;fill:currentColor;margin-right:calc(var(--spacing)/1)}input[type=file].inputfile-2+label{background-color:var(--c-rouge);color:#fff;border:0 solid currentColor;white-space:nowrap}input[type=file].inputfile-2+label:hover{background-color:var(--c-rouge_fonce)}.fieldCaption{font-weight:500;font-family:var(--sl-font-mono)}.fieldCaption,.u-defaultValue{font-size:var(--sl-font-size-x-small)}.u-defaultValue{margin:calc(var(--spacing)/8);text-align:right}.u-colorBlack{color:var(--c-noir)}.u-colorWhite{color:#fff}.u-colorRed{color:var(--c-rouge)}.u-colorBleuvert{color:var(--c-bleuvert)}.u-fontCode{font-family:Fira Code}.u-divCentered{position:absolute;display:flex;justify-content:center;align-items:center;width:100%;height:100%}.u-switch{--switch-font-size:var(--input-font-size);--switch-bg-color:var(--c-rouge_clair);--switch-bg-color-checked:var(--c-rouge);--switch-border-radius:var(--switch-size);--switch-size:2rem;--switch-size-small:1rem;--switch-size-big:3rem;--switch-thumb-bg-color:#fff;--switch-thumb-border-radius:50%;--switch-thumb-spacing:2px;--switch-speed:0.2s;font-size:var(--switch-font-size)}.u-switch input{display:none!important}.u-switch input+label{position:relative;min-width:calc(var(--switch-size)*2);height:var(--switch-size);line-height:var(--switch-size);display:inline-block;cursor:pointer;outline:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;vertical-align:middle;padding-left:calc(var(--switch-size)*2 + .5rem)}.u-switch input+label:after,.u-switch input+label:before{content:"";position:absolute;top:0;left:0;height:var(--switch-size);width:calc(var(--switch-size)*2);bottom:0;display:block}.u-switch input+label:before{right:0;background-color:var(--switch-bg-color);border-radius:var(--switch-border-radius);transition:background-color var(--switch-speed)}.u-switch input+label:after{top:var(--switch-thumb-spacing);left:var(--switch-thumb-spacing);width:calc(var(--switch-size) - var(--switch-thumb-spacing)*2);height:calc(var(--switch-size) - var(--switch-thumb-spacing)*2);border-radius:var(--switch-thumb-border-radius);background-color:var(--switch-thumb-bg-color);transition:margin var(--switch-speed)}.u-switch input:checked+label:before{background-color:var(--switch-bg-color-checked)}.u-switch input:checked+label:after{margin-left:var(--switch-size)}.u-switch input:disabled+label{opacity:.5;cursor:not-allowed}.u-switch+.u-switch{margin-left:1rem}.u-switch-xs{--switch-size:0.9rem}.u-switch_twoway{display:flex;align-items:center}.u-switch_twoway label{margin-bottom:0;line-height:var(--switch-size);height:var(--switch-size);padding-top:1px}.u-switch_twoway label:first-child{margin-right:.5rem}.u-padding_verysmall{padding:calc(var(--spacing)/4)}.u-sameRow{flex-flow:row nowrap;gap:calc(var(--spacing)/2)}.u-loader,.u-sameRow{display:flex;justify-content:center;align-items:center}.u-loader{position:absolute;top:0;left:0;right:0;bottom:0;background-color:hsla(0,0%,100%,.6)}.u-loader ._spinner{width:2rem;height:2rem;border:4px solid var(--c-gris);border-top-color:var(--c-bleuvert);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.u-mediaOptions{display:flex;flex-flow:row wrap;border:2px solid var(--c-gris);padding:calc(var(--spacing)/2);gap:calc(var(--spacing)/4) calc(var(--spacing)/2);max-width:50ch}.u-spacingBottom{margin-bottom:calc(var(--spacing))}fieldset{border:2px solid var(--c-gris);margin:0}fieldset legend{color:var(--c-noir);background:#fff;border-radius:4px;text-align:center;padding:0 calc(var(--spacing)/2)}fieldset legend.u-label{margin-bottom:0}.u-textEllipsis{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.u-textEllipsis_3{-webkit-line-clamp:3}.u-textEllipsis_1{-webkit-line-clamp:1}input[type=checkbox]{--form-background:#fff;--form-control-color:var(--active-color);--form-control-disabled:var(--c-gris);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--form-background);margin:0;font:inherit;color:currentColor;width:1.15em;height:1.15em;border:2px solid currentColor;border-radius:var(--switch-thumb-border-radius);transform:translateY(-.075em);display:grid;place-content:center}input[type=checkbox]:before{content:"";width:.65em;height:.65em;-webkit-clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0,43% 62%);transform:scale(0);transform-origin:bottom left;transition:transform .12s cubic-bezier(.19,1,.22,1);box-shadow:inset 1em 1em var(--form-control-color);background-color:CanvasText}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:focus-visible{outline:max(2px,.15em) solid currentColor;outline-offset:max(2px,.15em)}input[type=checkbox]:hover{color:var(--form-control-color)}input[type=checkbox]:disabled{--form-control-color:var(--form-control-disabled);color:var(--form-control-disabled);cursor:not-allowed}.u-addBtn{padding:calc(var(--spacing)/4);border-radius:2em;color:var(--c-noir)}.u-addBtn b-icon{font-size:1.4em}.u-listOfAvatars{display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/4);padding:calc(var(--spacing)/4) 0}.u-nut{display:inline-flex;line-height:1;align-items:center;justify-content:center;min-width:18px;min-height:18px;height:auto;aspect-ratio:1;border-radius:50%;font-family:Fira Code;padding:calc(var(--spacing)/8);margin:calc(var(--spacing)/4);font-weight:500;font-size:var(--sl-font-size-small)}.u-nut[data-isfilled]{background:var(--c-bleumarine);color:#fff}.u-disabled{cursor:not-allowed;filter:grayscale(100%);opacity:.8}.u-linkList{display:flex;flex-flow:row nowrap;gap:calc(var(--spacing)/2);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-weight:inherit;background:transparent;width:100%;text-decoration:underline;text-underline-offset:.2em;cursor:pointer;padding:calc(var(--spacing)/4) calc(var(--spacing)/2)}.u-linkList span{max-width:34ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.u-linkList:focus-visible,.u-linkList:hover{text-decoration:none}.u-linkList.is--active{font-weight:600;text-decoration:none}.u-linkList.is--redorderable{text-decoration:none}.u-dropzone{display:flex;flex-flow:row wrap;justify-content:center;align-items:center;gap:calc(var(--spacing)/4);width:100%;background-color:#fff;color:var(--c-noir);padding:calc(var(--spacing)/2);border:3px dotted #fff;border-radius:10px;border-color:var(--dropzone-color2);background-color:var(--dropzone-color1);transition:all .15s cubic-bezier(.19,1,.22,1)}.u-dropzone.is--active{border-color:var(--dropzone-color1)!important;animation:flashbackground 1s ease-in infinite alternate}@keyframes flashbackground{0%{background-color:var(--dropzone-color2)}to{background-color:var(--dropzone-color1)}}.u-dropzone.is--dragover,.u-dropzone:focus,.u-dropzone:hover{border-color:transparent!important;background-color:var(--dropzone-color2)!important}.u-displayAsPublic,.u-dropzone>*{pointer-events:none}.u-displayAsPublic{position:absolute;height:100%;width:100%;z-index:1000;display:flex;justify-content:flex-end;align-items:flex-start}.u-displayAsPublic ._sticky{position:sticky;top:0;left:0}.u-displayAsPublic ._content{pointer-events:auto;background:var(--c-bleuvert);border:2px solid var(--c-bleuvert_fonce);color:#fff}.u-displayAsPublic ._content>*{padding:calc(var(--spacing)/8) calc(var(--spacing)/4)}.u-displayAsPublic ._content .u-label{color:#fff}:root{--spacing:1rem;--c-bleumarine:#2743aa;--c-bleumarine_clair:#b0bded;--c-bleumarine_fonce:#0a122e;--c-bleuvert:#52c5b9;--c-bleuvert_clair:#b6e7e2;--c-bleuvert_fonce:#349d92;--c-orange:#ffbe33;--c-orange_clair:#ffd892;--c-orange_fonce:#e69d00;--c-rouge:#fc4b60;--c-rouge_clair:#ff808c;--c-rouge_fonce:#cc334a;--c-bleu:#2c75c3;--c-bleu_clair:#9fc3e9;--c-noir:#262626;--c-gris:#ebeef0;--c-gris_clair:#f6f8f8;--c-gris_fonce:#637b83;--c-vert:#3ddb7a;--c-vert_fonce:#20ac56;--dropzone-color1:transparent;--dropzone-color2:var(--c-orange);--c-bodybg:#fff;--c-bodybg:#f5f4f0;--body-bg-pattern-color:#f7f6f3;--plyr-color-main:var(--c-bleumarine);--panel-color:#fefefe;--panel-borders:1px solid var(--panel-color);--panel-shadows:rgba(0,0,0,.05) 0px 0px 16px -1px,rgba(0,0,0,.05) 0px 0px 16px -8px,rgba(0,0,0,.12) 0px 0px 16px -12px,rgba(0,0,0,.08) 0px 0px 2px 0px;--panel-radius:6px;--scrollbar-height:1px;--scrollbar-padding:3px;--scrollbar-border:2px;--scrollbar-color:2px;--c-barbgcolor:hsla(0,0%,100%,0);--c-thumbcolor:#000;--label-color:var(--c-gris_fonce);--border-radius:6px;--input-font-family:inherit;--input-font-size:1rem;--input-font-size-x-small:0.6rem;--input-font-size-small:0.8rem;--input-font-size-big:1.2rem;--input-font-weight:inherit;--input-height:2.5em;--input-height-large:3em;--input-height-small:1.5rem;--input-color:var(--body-color);--input-border-color:var(--c-gris_fonce);--input-border-color-focus:var(--active-color);--input-border-width:3px;--input-border-radius:3px;--input-bg-color:var(--color-white);--input-box-shadow:inset 0 1px 0 rgba(0,0,0,.05);--input-readonly-bg-color:var(--component-bg-color);--input-range-track-color:var(--component-bg-color);--input-range-track-box-shadow:inset 0 1px 0 rgba(0,0,0,.05);--input-range-thumb-color:var(--color-primary);--input-range-thumb-height:2rem;--input-invalid-color:var(--state-danger);--input-invalid-border-color:var(--state-danger);--input-valid-color:var(--state-success);--input-valid-border-color:var(--state-success);--color-capture:var(--c-rouge);--color-collect:var(--c-orange);--color-make:var(--c-bleumarine);--color-publish:var(--c-bleuvert);--active-color:var(--c-bleuvert);--sl-font-mono:"Fira Mono";--padding:var(--spacing);--sl-color-success-50:#a1e8e1;--sl-color-success-100:#8de2da;--sl-color-success-200:#78ddd3;--sl-color-success-300:#64d8cd;--sl-color-success-400:#50d3c6;--sl-color-success-500:#3bcebf;--sl-color-success-600:#30c0b1;--sl-color-success-700:#2bab9f;--sl-color-success-800:#26978c;--sl-color-success-900:#218379;--sl-color-warning-50:#fde0b4;--sl-color-warning-100:#fdd69b;--sl-color-warning-200:#fccb82;--sl-color-warning-300:#fcc169;--sl-color-warning-400:#fbb750;--sl-color-warning-500:#fbad37;--sl-color-warning-600:#faa21e;--sl-color-warning-700:#fa9805;--sl-color-warning-800:#e18905;--sl-color-warning-900:#c87a04;--sl-color-info-50:#dfdfdf;--sl-color-info-100:#dedede;--sl-color-info-200:#ddd;--sl-color-info-300:#dbdbdb;--sl-color-info-400:#dadada;--sl-color-info-500:#d9d9d9;--sl-color-info-600:#d7d7d7;--sl-color-info-700:#d6d6d6;--sl-color-info-800:#d5d5d5;--sl-color-info-900:#d4d4d4;--sl-font-size-normal:1rem;--sl-font-size-large:1.5rem;--sl-font-size-x-large:1.66rem;--sl-font-size-xx-large:2.8rem;--sl-font-size-small:0.875rem;--sl-font-size-x-small:0.75rem;--font-verysmall:var(--sl-font-size-x-small);--max-column-width:90%;accent-color:var(--c-orange)}*{box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body,html{background:linear-gradient(180deg,#fff,var(--c-bodybg));scroll-behavior:smooth}::-moz-selection{background:rgba(129,233,222,.5)}::selection{background:rgba(129,233,222,.5)}html{height:100%;font-family:Fira Sans,sans-serif;font-style:normal;font-weight:400;font-size:90%;line-height:1.41;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--c-noir)}body{min-height:100%}a{color:var(--c-bleumarine);text-underline-offset:.1em}a:focus-visible,a:hover{text-decoration:none}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font-family:inherit}#app{min-height:100%}hr{border-top:1px solid var(--c-gris);border-bottom:0 solid #000;margin:calc(var(--spacing)/2) 0}.authorLabel{flex-basis:auto;display:flex;align-items:center;min-height:0;border-radius:4px;background-color:#e5e5e5;color:#666;padding:calc(var(--spacing)/4) calc(var(--spacing)/2)}body{margin:0}b,h1,strong{font-weight:700}h1{margin:0;font-size:var(--sl-font-size-xx-large);line-height:1}h2{font-size:var(--sl-font-size-x-large);font-weight:600}h2,h3{margin:0;line-height:1.2}h3{font-size:var(--sl-font-size-large);font-weight:500}h4{font-size:var(--sl-font-size-normal);line-height:1.2;font-weight:400}h4,p{margin:0}.card-header ul{margin:0;padding:0 calc(var(--spacing)/2)}ol,ul{padding:0;margin:0}._boldBtn{font-weight:700;font-variant:small-caps}small{font-size:var(--sl-font-size-small)}smaller{font-size:var(--sl-font-size-x-small)}img{max-width:100%;height:auto}',""]),e["default"]=d},91067:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'.alertify-logs{z-index:100000}.alertify-logs,.alertify-logs>*{pointer-events:none!important}.splitpanes__pane{position:relative;height:auto;transition:none!important}.splitpanes .splitpanes__splitter{position:relative;background-color:transparent;z-index:100;border:0;pointer-events:none}.splitpanes--vertical>.splitpanes__splitter{width:2px;margin-left:-1px;border-right:2px solid var(--c-noir)}.splitpanes--horizontal>.splitpanes__splitter{margin-top:-1px;height:2px;border-bottom:2px solid var(--c-noir)}.splitpanes__splitter:before{content:"";position:absolute;width:40px;height:40px;left:calc(50% - 20px);top:calc(50% - 20px);transition:opacity .4s;opacity:1;z-index:10;pointer-events:auto;cursor:pointer;cursor:-moz-grab}.splitpanes--dragging .splitpanes__splitter{border-style:dashed}.splitpanes--dragging .splitpanes__splitter:before{cursor:-moz-grabbing}.splitpanes__splitter:after{content:"";position:absolute;top:auto;bottom:auto;top:calc(50% - 10px);pointer-events:none;transform:rotate(45deg);width:2px;height:20px;transition:transform .4s;background-color:var(--c-noir);opacity:1;z-index:11}.splitpanes__splitter:hover{border-style:dashed}.splitpanes__splitter:hover:after{opacity:1;transform:rotate(90deg)}.splitpanes--horizontal>.splitpanes__splitter:after{transform:rotate(135deg);left:50%}.splitpanes--horizontal>.splitpanes__splitter:hover:after{transform:rotate(180deg)}.fade-enter-active,.fade-leave-active{opacity:1;transition:opacity .25s cubic-bezier(.19,1,.22,1)}.fade-enter,.fade-leave-to{opacity:0;transition:opacity .25s cubic-bezier(.19,1,.22,1)}.fade_fast-enter-active,.fade_fast-leave-active{opacity:1;transition:opacity .125s cubic-bezier(.19,1,.22,1)}.fade_fast-enter,.fade_fast-leave-to{opacity:0;transition:opacity .125s cubic-bezier(.19,1,.22,1)}.fade_superfast-enter-active,.fade_superfast-leave-active{opacity:1;transition:opacity 55ms cubic-bezier(.19,1,.22,1)}.fade_superfast-enter,.fade_superfast-leave-to{opacity:0;transition:opacity 55ms cubic-bezier(.19,1,.22,1)}.pagechange-enter-active,.pagechange-leave-active{transform:translateY(0);opacity:1;transition:all .15s cubic-bezier(.19,1,.22,1)}.pagechange-enter,.pagechange-leave-to{transform:translateY(5px);opacity:0;transition:all .15s cubic-bezier(.19,1,.22,1)}.slideup-enter-active,.slideup-leave-active{transform:translateY(0);transition:all .5s cubic-bezier(.19,1,.22,1)}.slideup-enter,.slideup-leave-to{transform:translateY(100%);transition:all .5s cubic-bezier(.19,1,.22,1)}.slideupFade-enter-active,.slideupFade-leave-active{transform:translateY(0);opacity:1;transition:all .5s cubic-bezier(.19,1,.22,1)}.slideupFade-enter,.slideupFade-leave-to{transform:translateY(100%);opacity:0;transition:all .5s cubic-bezier(.19,1,.22,1)}.slidedown-enter-active,.slidedown-leave-active{transform:translateY(0);transition:all .5s cubic-bezier(.19,1,.22,1)}.slidedown-enter,.slidedown-leave-to{transform:translateY(-100%);transition:all .5s cubic-bezier(.19,1,.22,1)}.dropzone-enter-active,.dropzone-leave-active{opacity:1;transition:all .2s cubic-bezier(.19,1,.22,1)}.dropzone-enter,.dropzone-leave-to{opacity:0;transition:all .2s cubic-bezier(.19,1,.22,1)}.StoryModules-enter-active,.StoryModules-leave-active,.StoryModules-move{transition:.3s cubic-bezier(.19,1,.22,1)!important;transition-property:opacity,transform;transform-origin:center top}.StoryModules-enter,.StoryModules-leave-to{opacity:0}.StoryModules-enter-to{opacity:1}.StoryModules-leave-active{position:absolute!important}.scaleInFade-enter-active,.scaleInFade-leave-active{opacity:1;transform:scale(1);transform-origin:center center;transition:all .15s cubic-bezier(.19,1,.22,1)}.scaleInFade-enter,.scaleInFade-leave-to{transform:scale(.95);opacity:0}.scaleOutFade-enter-active,.scaleOutFade-leave-active{opacity:1;transform:scale(1);transform-origin:center center;transition:all .15s cubic-bezier(.19,1,.22,1)}.scaleOutFade-enter,.scaleOutFade-leave-to{transform:scale(1.05);opacity:0}.toggleLock-enter-active,.toggleLock-leave-active{opacity:1;transform:scale(1);transform-origin:center center;transition:all .15s cubic-bezier(.19,1,.22,1)}.toggleLock-enter,.toggleLock-leave-to{transform:scale(.5);opacity:0}.popUp_slow-enter-active,.popUp_slow-leave-active{opacity:1;transform:scale(1);transform-origin:center center;transition:all .55s cubic-bezier(.19,1,.22,1)}.popUp_slow-enter,.popUp_slow-leave-to{transform:scale(0);opacity:0}.scaleInFade_fast-enter-active,.scaleInFade_fast-leave-active{opacity:1;transform:scale(1);transform-origin:center center;transition:all .05s cubic-bezier(.19,1,.22,1)}.scaleInFade_fast-enter,.scaleInFade_fast-leave-to{transform:scale(.95);opacity:0}.onionSkin-enter-active,.onionSkin-leave-active{opacity:1;transition:all .02s linear}.onionSkin-enter,.onionSkin-leave-to{opacity:0}.listComplete-move{position:relative;transition:transform .6s cubic-bezier(.19,1,.22,1),opacity .4s cubic-bezier(.19,1,.22,1)!important}.listComplete-leave-active{position:absolute!important;z-index:0!important}.listComplete-enter,.listComplete-leave-to{opacity:0}.mediaModal-enter-active,.mediaModal-leave-active{opacity:1;transition:all .08s cubic-bezier(.19,1,.22,1)}.mediaModal-enter{transform:scale(.97);opacity:0}.mediaModal-leave-to{opacity:0}.justCaptured-enter-active{transition:transform .35s cubic-bezier(.19,1,.22,1)}.justCaptured-enter{transform:scale(1.03)}.justCaptured-leave-active{transition:opacity .15s cubic-bezier(.19,1,.22,1)}.justCaptured-leave-to{opacity:0}',""]),e["default"]=s},44531:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"",""]),e["default"]=s},47482:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._authorCard[data-v-5f1283cc]{border-radius:3px}._authorCard[data-isself][data-v-5f1283cc]:not([data-context=full]){border:1px solid var(--c-bleumarine);background-color:var(--c-bleumarine_clair)}._authorCard[data-v-5f1283cc]:not([data-context=full]){background:#fff}._authorCard ._topbar[data-v-5f1283cc]{display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/2);padding:calc(var(--spacing)/2)}._authorCard ._topbar>*[data-v-5f1283cc]{flex:1 1 auto}._authorCard ._topbar>._cover[data-v-5f1283cc]{flex:0 0 100px;aspect-ratio:1/1}._authorCard[data-context=full] ._topbar[data-v-5f1283cc]{flex-flow:column nowrap;align-items:stretch}._authorCard[data-context=full] ._topbar ._cover[data-v-5f1283cc]{flex:0 0 auto}._linkTo[data-v-5f1283cc]{text-decoration:none;color:inherit}._cover[data-v-5f1283cc]{position:relative;overflow:hidden}._text[data-v-5f1283cc] a{color:currentColor}",""]),e["default"]=s},12740:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._createAuthor[data-v-a7bcd10e]{position:relative;min-height:50px}",""]),e["default"]=s},25050:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._authorSuggestion[data-v-bcd1ba80]{cursor:pointer}._noAuthorNotice[data-v-bcd1ba80]{padding:calc(var(--spacing)/4) 0}",""]),e["default"]=s},13737:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"",""]),e["default"]=s},22310:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._adminsAndContributorsField>._lists[data-v-6e5bd027]{position:relative;display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/2)}._adminsAndContributorsField>._lists>*[data-v-6e5bd027]{flex:1 1 200px}.u-listOfAvatars[data-v-6e5bd027]{flex-flow:row nowrap;padding:0;gap:0;overflow:auto}.u-listOfAvatars[data-v-6e5bd027]::-webkit-scrollbar{height:18px;width:18px;background-color:transparent}.u-listOfAvatars[data-v-6e5bd027]::-webkit-scrollbar-thumb,.u-listOfAvatars[data-v-6e5bd027]::-webkit-scrollbar-track{border:6px solid hsla(0,0%,100%,0);border-radius:24px;background-clip:padding-box;-webkit-transition:all .4s;transition:all .4s}.u-listOfAvatars[data-v-6e5bd027]::-webkit-scrollbar-track{background-color:transparent}.u-listOfAvatars[data-v-6e5bd027]::-webkit-scrollbar-thumb{background-color:var(--c-noir)}.u-listOfAvatars[data-v-6e5bd027]::-webkit-scrollbar-thumb:hover{background-color:var(--c-gris);border:6px solid hsla(0,0%,100%,0)}._floatingTopRight[data-v-6e5bd027]{position:absolute!important;top:0;right:0}",""]),e["default"]=s},50152:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._listOfAuthors[data-v-242527fe]{padding-left:calc(var(--spacing)/2);margin:calc(var(--spacing)/2) 0;border-left:2px solid var(--c-gris)}._authors[data-v-242527fe]{display:flex;flex-flow:row wrap;align-items:center;gap:calc(var(--spacing)/4)}._footer[data-v-242527fe]{margin-top:calc(var(--spacing)/4)}",""]),e["default"]=s},42524:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._author[data-v-6307ca70]{display:flex;flex-flow:row nowrap;align-items:center;border-radius:4px;text-decoration:none;color:var(--c-noir);padding:calc(var(--spacing)/4) calc(var(--spacing)/2);gap:calc(var(--spacing)/2);background:transparent;text-align:left}._author[data-v-6307ca70]:where(button,a){border:1px solid var(--c-gris)}._author[data-v-6307ca70]:where(button):focus-visible,._author[data-v-6307ca70]:where(button):hover{background-color:var(--c-gris_clair)}._author[data-v-6307ca70]:where(a){color:var(--c-bleumarine);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}._author[data-v-6307ca70]:where(a):focus-visible,._author[data-v-6307ca70]:where(a):hover{text-decoration:none}._author[data-isself][data-v-6307ca70]:not([data-imageonly]){border-color:var(--c-bleumarine);background-color:var(--c-bleumarine_clair)}._author[data-imageonly][data-v-6307ca70]{padding:0;box-shadow:none;border:none}._author[data-imageonly][data-v-6307ca70]:where(a):focus-visible,._author[data-imageonly][data-v-6307ca70]:where(a):hover{opacity:.8}._author ._cover[data-v-6307ca70]{position:relative;overflow:hidden;width:30px;height:30px}._author[data-imageonly] ._cover[data-v-6307ca70]{border-radius:50%}._author[data-imageonly][data-isself] ._cover[data-v-6307ca70]{border:2px solid var(--c-bleumarine)}._author ._infos[data-v-6307ca70]{line-height:1.2;flex:1}._author ._infos ._name[data-v-6307ca70]{font-size:var(--sl-font-size-normal);font-weight:500;display:flex;flex-flow:row nowrap;gap:calc(var(--spacing)/4)}._author ._infos ._path[data-v-6307ca70]{font-size:var(--sl-font-size-small);font-weight:400}a[data-v-6307ca70]{color:inherit}a ._path[data-v-6307ca70]{color:var(--label-color)}",""]),e["default"]=s},4256:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._coverField[data-v-0d289530]{position:absolute;inset:0;overflow:visible;--color1:var(--c-gris);--color2:#fff}._picker[data-v-0d289530]{position:relative;margin:calc(var(--spacing)/4) auto;display:flex;justify-content:center;flex-flow:column nowrap;place-items:center;width:100%;gap:calc(var(--spacing)/2)}._editingPane[data-v-0d289530]{position:absolute;right:0;bottom:0;margin:calc(var(--spacing)/1)}[data-isround][data-v-0d289530]{border-radius:50%;overflow:hidden}._hasImage img[data-v-0d289530]{-o-object-fit:cover;object-fit:cover}._hasImage img[data-v-0d289530],._noImage[data-v-0d289530]{position:absolute;width:100%;height:100%}._noImage[data-v-0d289530]{z-index:0;display:flex;align-items:center;justify-content:center;background:var(--color1);container-type:inline-size}._noImage[data-placeholder=pattern][data-v-0d289530]{background:radial-gradient(circle,transparent 20%,var(--color1) 20%,var(--color1) 80%,transparent 80%,transparent),radial-gradient(circle,transparent 20%,var(--color1) 20%,var(--color1) 80%,transparent 80%,transparent) 15px 15px,linear-gradient(var(--color2) 1.2px,transparent 1.2px) 0 -.6px,linear-gradient(90deg,var(--color2) 1.2px,var(--color1) 1.2px) -.6px 0;background-size:30px 30px,30px 30px,15px 15px,15px 15px}._noImage ._noImage--letter[data-v-0d289530]{font-weight:200;font-size:1.5em;color:var(--c-bleumarine);-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:55cqw}._fsButton[data-v-0d289530]{position:absolute;left:0;bottom:0;margin:calc(var(--spacing)/1)}",""]),e["default"]=s},43156:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._labelLine[data-v-0b7a95ee]{display:flex;align-items:center;font-size:var(--sl-font-size-small)}._labelLine .u-label[data-v-0b7a95ee]{margin-bottom:0}._icon[data-v-0b7a95ee]{font-size:var(--sl-font-size-x-small);padding:0;padding-left:calc(var(--spacing)/4)}._instr[data-v-0b7a95ee]{margin-bottom:calc(var(--spacing)/2)}",""]),e["default"]=s},52683:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._metaField{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:baseline;gap:calc(var(--spacing)/16)}",""]),e["default"]=s},61139:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"",""]),e["default"]=s},3338:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._cont[data-v-6aaba201]{position:relative}",""]),e["default"]=s},42092:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._metaField{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:baseline;gap:calc(var(--spacing)/16)}",""]),e["default"]=s},44268:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._list[data-v-58ff3ef8]{display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/4)}",""]),e["default"]=s},22610:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._favSwitch[data-v-0319d4ce]{color:var(--c-rouge)}",""]),e["default"]=s},61438:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._fileList[data-v-70f168ba]{margin:0;flex-flow:column nowrap}._fileList[data-v-70f168ba],._fileList>._file[data-v-70f168ba]{padding:0;display:flex;gap:calc(var(--spacing)/4)}._fileList>._file[data-v-70f168ba]{min-height:2em;flex-flow:row nowrap;justify-content:center;word-break:break-word;align-items:stretch;border-radius:4px;overflow:hidden;justify-content:space-between}._fileList>._file[data-v-70f168ba]:focus-visible,._fileList>._file[data-v-70f168ba]:hover{background:var(--c-gris)}._fileList>._file ._link[data-v-70f168ba]{flex:1 1 auto;overflow:hidden;font-variant:none;font-weight:400;letter-spacing:0;font-size:var(--sl-font-size-x-small);text-decoration:none;display:flex;flex-flow:row nowrap}._fileList>._file ._link ._preview[data-v-70f168ba]{font-size:100%;flex:0 0 auto;width:35px;height:35px;overflow:hidden;background-color:var(--c-gris)}._fileList>._file ._link ._preview[data-v-70f168ba] ._mediaContent--image{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;max-width:none}._fileList>._file ._link ._link--filename[data-v-70f168ba]{flex:1 1 auto;white-space:break-spaces}._addBtn[data-v-70f168ba]{text-align:center;padding:calc(var(--spacing)/4)}",""]),e["default"]=s},6834:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._fullscreenView[data-v-4372ff91]{position:relative;background:var(--c-noir);width:100%;height:100%}._fsImg[data-v-4372ff91]{position:absolute;top:0;left:0;width:100%;height:100%}._fsImg[data-v-4372ff91] canvas,._fsImg[data-v-4372ff91] img{width:100%;height:100%;-o-object-fit:scale-down;object-fit:scale-down}._fsButton[data-v-4372ff91]{position:absolute;left:0;bottom:0;margin:calc(var(--spacing)/1)}",""]),e["default"]=s},95232:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._imageselect[data-v-44f04830]{display:flex;flex-flow:column nowrap;flex:1 1 auto;width:100%;gap:calc(var(--spacing)/4)}._imageselect--image[data-v-44f04830]{width:200px}._imageselect--image img[data-format=circle][data-v-44f04830],._imageselect--image img[data-format=square][data-v-44f04830]{width:100%;aspect-ratio:1;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}._imageselect--image img[data-format=circle][data-v-44f04830]{border-radius:50%;overflow:hidden}._imageselect--upload[data-v-44f04830] label{width:100%}._imageselect--fromLib>button[data-v-44f04830],._imageselect--takePhoto>button[data-v-44f04830]{width:100%}._close_button[data-v-44f04830]{position:absolute;top:0;left:0;z-index:1000}._close_button img[data-v-44f04830]{width:auto}",""]),e["default"]=s},97010:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._fileName[data-v-67c4cc56]{padding:calc(var(--spacing)/4);display:flex;gap:calc(var(--spacing)/8)}._mediaContent[data-v-67c4cc56]{position:relative}._mediaContent[data-novisual][data-v-67c4cc56]{display:flex;justify-content:center;align-items:center;text-align:center}._mediaContent[data-v-67c4cc56] .plyr{display:flex;justify-content:center;min-width:100px;width:100%;--plyr-audio-controls-background:var(--c-noir);--plyr-audio-control-color:#fff}._mediaContent[data-v-67c4cc56] .plyr__control--overlaid{z-index:10}._mediaContent[data-v-67c4cc56] .plyr__controls{border-radius:4px}._mediaContent[data-v-67c4cc56] ._editBtn{background:hsla(0,0%,100%,.4)!important;-webkit-backdrop-filter:blur(5px)!important;backdrop-filter:blur(5px)!important}._mediaContent--iframe[data-v-67c4cc56]{position:relative;height:100%;width:100%}._mediaContent--iframe ._mediaContent--iframe--preview[data-v-67c4cc56]{position:relative;width:100%;height:100%;aspect-ratio:16/9}._mediaContent--iframe ._mediaContent--iframe--preview ._playButton[data-v-67c4cc56]{display:block}@media print{._mediaContent--iframe ._mediaContent--iframe--preview ._playButton[data-v-67c4cc56]{display:none}}._mediaContent--iframe ._mediaContent--iframe--content[data-v-67c4cc56]{position:relative;resize:vertical;display:flex;height:100%;aspect-ratio:16/9;color:#000}._mediaContent--iframe ._mediaContent--iframe--content>*[data-v-67c4cc56]{flex:1}._mediaContent--iframe ._mediaContent--iframe--content ._errMessage[data-v-67c4cc56]{position:absolute;width:100%;height:100%;display:flex;flex-flow:column nowrap;align-items:center;font-family:var(--sl-font-mono);justify-content:center;padding:calc(var(--spacing)*2)}._mediaContent--iframe ._iframeStylePreview[data-v-67c4cc56],._mediaContent--iframe ._mediaContent--iframe--content[data-v-67c4cc56]{width:100%;height:100%;border-radius:4px;overflow:hidden;border:2px solid var(--c-gris);background-color:#fff;background-color:var(--c-gris);-o-object-fit:contain;object-fit:contain}._mediaContent--iframe iframe[data-v-67c4cc56]{background:#fff;z-index:0;width:100%;height:100%}._fsButton[data-v-67c4cc56]{position:absolute;bottom:0;left:0;margin:calc(var(--spacing)/1)}@media print{._fsButton[data-v-67c4cc56]{display:none}}._threeDPreview[data-v-67c4cc56]{width:100%;height:100%}._zoomed[data-v-67c4cc56] .vh--image.vh--abs{max-width:none}._zoomed[data-v-67c4cc56] .vh--outer{height:200px}._zoomed[data-v-67c4cc56] .vh--holder{height:100%}._zoomed[data-v-67c4cc56] .height,._zoomed[data-v-67c4cc56] .vh--holder picture{height:100%}._mediaContent--collabEditor[data-v-67c4cc56]{width:100%}",""]),e["default"]=s},91275:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._btnRow[data-v-0afecfa4]{display:flex;flex-flow:row wrap;justify-content:center;gap:calc(var(--spacing)/2)}._mediaPreview[data-type=image][data-v-0afecfa4],._mediaPreview[data-type=video][data-v-0afecfa4]{aspect-ratio:1/1}._mediaPreview[data-v-0afecfa4] ._mediaContent{height:100%}._mediaPreview[data-v-0afecfa4] ._mediaContent--image{position:absolute;width:100%;height:100%;-o-object-fit:scale-down;object-fit:scale-down;max-width:none;background-color:var(--c-gris);border-radius:2px}._cont[data-v-0afecfa4]{position:relative}._comp[data-v-0afecfa4]{display:flex;flex-flow:row wrap;align-items:center;gap:calc(var(--spacing)/1)}._convertBtns[data-v-0afecfa4]{text-align:center}._loader[data-v-0afecfa4]{z-index:150}",""]),e["default"]=s},35122:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._pickMediaFromProject[data-v-222c973e]{position:relative;display:block;width:100%;overflow:auto;background:#fff}._pickMediaFromProject ._mediaLib[data-v-222c973e]{height:60vh}._projectLib[data-v-222c973e]{position:relative}",""]),e["default"]=s},48196:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'._pickNativePath[data-v-0121d111]{width:100%}._pickNativePath ._content[data-v-0121d111]{white-space:break-spaces;margin-right:calc(var(--spacing)/2)}._footer[data-v-0121d111]{display:flex;justify-content:center;align-items:center;flex-flow:row wrap;font-size:1rem;font-weight:400;margin:0;padding:calc(var(--spacing)/4) 0;gap:calc(var(--spacing)/4)}._container[data-v-0121d111]{margin:0}._cont[data-v-0121d111]{display:inline-grid;align-items:stretch}._cont textarea[data-v-0121d111],._cont[data-v-0121d111]:after{grid-area:2/1;width:auto;min-width:1em;font:inherit;margin:0;resize:none;padding:.25em}._cont[data-v-0121d111]:after{content:attr(data-value) " ";visibility:hidden;white-space:break-spaces}._sameLine[data-v-0121d111]{display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/4)}',""]),e["default"]=s},99400:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._footer[data-v-d973d53a]{margin-top:calc(var(--spacing)/4)}._scb[data-v-d973d53a]{width:100%;text-align:center;justify-content:center}._option_preview[data-v-d973d53a]{display:inline-block;vertical-align:middle;height:1em;aspect-ratio:1;-o-object-fit:cover;object-fit:cover}",""]),e["default"]=s},34020:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._metaField{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:baseline;gap:calc(var(--spacing)/16)}",""]),e["default"]=s},78454:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._cancelBtn[data-v-635c1158]{padding:calc(var(--spacing)/2)}._saveCancelBtns[data-v-635c1158]{display:flex;gap:calc(var(--spacing)/4)}",""]),e["default"]=s},74139:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._footer[data-v-baca76a8]{margin-top:calc(var(--spacing)/4)}",""]),e["default"]=s},59933:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._footer[data-v-1bf0a1c1]{margin-top:calc(var(--spacing)/4)}",""]),e["default"]=s},29777:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._metaField{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:baseline;gap:calc(var(--spacing)/16)}",""]),e["default"]=s},67634:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=n(4417),l=n.n(s),c=new URL(n(19947),n.b),u=new URL(n(66921),n.b),d=a()(i()),p=l()(c),f=l()(u);d.push([t.id,"._statusTag[data-v-d2d26b06]{display:flex;flex-flow:row nowrap;align-items:center;font-variant:small-caps;text-transform:uppercase;font-weight:500;padding:0;background:transparent;--bg-color:transparent;--c-color:#000;--select-caret:url("+p+")}._statusTag[data-status=finished][data-v-d2d26b06],._statusTag[data-status=private][data-v-d2d26b06]{--c-color:#fff;--bg-color:var(--c-noir);--select-caret:url("+f+")}._statusTag[data-status=finished][data-v-d2d26b06]{--bg-color:var(--c-bleuvert)}._statusTag ._tag[data-v-d2d26b06],._statusTag select[data-v-d2d26b06]{background-color:var(--bg-color);color:var(--c-color)}._statusTag:where(button) ._tag[data-v-d2d26b06]:focus-visible,._statusTag:where(button) ._tag[data-v-d2d26b06]:hover{opacity:.8}._statusTag ._tag[data-v-d2d26b06]{display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/4);height:var(--input-height-small);padding:calc(var(--spacing)/4);border-radius:var(--input-border-radius);font-size:var(--sl-font-size-small)}._statusTag select[data-v-d2d26b06]{max-width:15ch;background-image:var(--select-caret)}",""]),e["default"]=d},68178:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._tagsField[data-v-4f25219b]{width:100%}._tl[data-v-4f25219b]{display:flex;flex-flow:row wrap}._footer[data-v-4f25219b]{display:flex;flex-flow:column nowrap;justify-content:flex-start;align-items:flex-start;font-size:1rem;font-weight:400;margin:0;gap:calc(var(--spacing)/4)}._addNewTagForm[data-v-4f25219b],._footer[data-v-4f25219b]{padding:calc(var(--spacing)/4) 0}._newTagPane[data-v-4f25219b]{width:100%;margin-top:calc(var(--spacing)/4)}._scb[data-v-4f25219b]{width:100%;text-align:center;justify-content:center}._submitBtn[data-v-4f25219b]{padding:calc(var(--spacing)/8)}._sameRowBtnInput[data-v-4f25219b]{display:flex;justify-content:space-between;gap:calc(var(--spacing)/4)}._sameRowBtnInput>._input[data-v-4f25219b]{width:100%}",""]),e["default"]=s},23297:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'._titleField ._content[data-v-e01002c6]{display:inline-block;margin-right:calc(var(--spacing)/2)}._titleField ._content span[data-v-e01002c6]{white-space:break-spaces}._titleField:hover>._label[data-v-e01002c6]{color:var(--c-bleuvert)}._footer[data-v-e01002c6]{display:flex;justify-content:flex-start;flex-flow:row wrap;font-size:1rem;font-weight:400;margin:0;padding:calc(var(--spacing)/4) 0;gap:calc(var(--spacing)/4)}._container[data-v-e01002c6]{margin:0;width:100%}._cont[data-v-e01002c6]{display:inline-grid;align-items:stretch}._cont textarea[data-v-e01002c6],._cont[data-v-e01002c6]:after{grid-area:2/1;width:auto;min-width:1em;font:inherit;margin:0;resize:none;padding:.25em}._cont[data-v-e01002c6]:after{content:attr(data-value) " ";visibility:hidden;white-space:break-spaces}._edit[data-v-e01002c6]{margin-top:-4px}',""]),e["default"]=s},79740:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._sameLine[data-v-9b1bbfb4]{display:flex;justify-content:flex-start;align-items:center}._footer[data-v-9b1bbfb4]{margin-top:calc(var(--spacing)/4)}",""]),e["default"]=s},65379:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'._uploadFiles{gap:calc(var(--spacing)/2);display:flex;flex-flow:row wrap}._uploadFile{position:relative;display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;font-size:75%;height:60px;background-color:#fff;color:var(--c-noir);border-radius:4px;overflow:hidden}._uploadFile ._uploadFile--progressBar{content:"";position:absolute;width:100%;height:100%;transform:scaleX(var(--progress-percent));transform-origin:left center;transition:all .1s;background-color:var(--active-color)}._uploadFile>*{flex:1 1 auto;position:relative;z-index:1}._uploadFile.is--failed:before{background-color:var(--color-noir)}._uploadFile ._uploadFile--image{display:block;flex:0 0 60px;width:60px;height:60px;-o-object-fit:cover;object-fit:cover;padding:4px;-o-object-position:center;object-position:center;background-color:hsla(0,0%,86%,.4)}._uploadFile ._uploadFile--filename{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-size:75%;color:var(--color-noir);padding:calc(var(--spacing)/4)}._uploadFile ._uploadFile--action,._uploadFile ._uploadFile--size{flex:0 0 70px}._uploadFile ._uploadFile--action button{background-color:transparent;color:inherit}',""]),e["default"]=s},4620:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'._collaborativeEditor[data-v-77f558a6]{position:relative;font-size:100%}._collaborativeEditor[data-v-77f558a6]:not(.is--editable){border:none}._collaborativeEditor[data-v-77f558a6]:not(.is--editable) .ql-toolbar{display:none}._collaborativeEditor[data-v-77f558a6] .ql-container{font-size:inherit;font-family:inherit;font-weight:400;background-color:transparent;border:0}._collaborativeEditor[data-v-77f558a6] .ql-editor{counter-reset:listCounter;height:auto;overflow:visible;color:inherit;background-color:transparent;padding:0;padding-bottom:.4em}._collaborativeEditor[data-v-77f558a6] .ql-editor>*{padding:0;margin:0}._collaborativeEditor[data-v-77f558a6] .ql-editor>img{max-width:30ch}._collaborativeEditor[data-v-77f558a6] .ql-editor blockquote{padding:calc(var(--spacing)*1) calc(var(--spacing)*2);border-radius:5px;border:none;border-left:2px solid var(--c-gris);background-color:var(--c-gris_clair)}._collaborativeEditor[data-v-77f558a6] .ql-editor pre.ql-syntax{font-family:Fira Mono;padding:calc(var(--spacing)/4) calc(var(--spacing)/2)}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard{transform-origin:center top;border-radius:0;outline:none}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard[data-ratio="1/4"] .ql-mediacard-container{width:25%}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard[data-ratio="2/4"] .ql-mediacard-container{width:50%}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard[data-ratio="3/4"] .ql-mediacard-container{width:75%}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard .ql-mediacard--background{content:"";pointer-events:none;opacity:0;z-index:0}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard img{display:block}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard video{display:block}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard video:focus{outline:0}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard figcaption{text-align:center;font-size:75%;color:#444;margin:0 auto;padding:.4em 0;max-width:33ch;line-height:2}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard figcaption input{text-align:center;background-color:#d9d9d9;border:0;border-radius:4px}._collaborativeEditor[data-v-77f558a6] .ql-editor .ql-mediacard figcaption input:focus{background-color:#eee}._collaborativeEditor[data-v-77f558a6] .ql-editor>*{position:relative}._collaborativeEditor[data-v-77f558a6] .ql-editor>:before{cursor:pointer;position:absolute;right:100%;text-align:right;height:100%;font-size:.6rem;text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;line-height:3;width:calc(var(--spacing)*2);max-width:100px;line-height:2.5;color:transparent;color:#292e33;transition:all .25s cubic-bezier(.19,1,.22,1)}._collaborativeEditor[data-v-77f558a6] .ql-editor>.is--selected:before{background-color:var(--active-color)}._collaborativeEditor[data-v-77f558a6] .ql-editor>:after{content:"";display:block;width:100%;height:0;margin:0;background-color:var(--active-color);transition:all .25s cubic-bezier(.19,1,.22,1)}._collaborativeEditor[data-v-77f558a6] .ql-editor>.is--dragover:after{margin:4px 0;height:4px}._collaborativeEditor[data-v-77f558a6] .ql-container.ql-disabled .ql-editor{padding-bottom:0}._collaborativeEditor[data-v-77f558a6] .ql-container.ql-disabled .ql-editor>*{cursor:inherit}._collaborativeEditor[data-v-77f558a6]:not(.is--editing_is_enabled) .ql-toolbar{padding:0;margin:0}._collaborativeEditor[data-v-77f558a6]:not(.is--editing_is_enabled) .ql-formats{display:none}._floatingEditBtn[data-v-77f558a6]{position:sticky;z-index:101;top:calc(var(--spacing)/4);height:0;text-align:right;margin-right:calc(var(--spacing)/4)}._floatingEditBtn>*[data-v-77f558a6]{position:absolute;top:0;right:0}',""]),e["default"]=s},4858:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'.ql-toolbar.ql-toolbar{--toolbar-bg:var(--editor-bg);--editor-bg:#eee;--button-size:32px;--border-size:4px;--quill-buttons-size:20px;--quill-options-size:34px;position:sticky;top:0;z-index:2;padding:calc(var(--spacing)/4);margin-bottom:.3em;border-radius:14px;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center;font-size:inherit;font-family:inherit;font-weight:400;background-color:var(--toolbar-bg);color:#333!important;border:none}._collaborativeEditor.is--mobileView .ql-toolbar.ql-toolbar{--button-size:28px}.ql-toolbar.ql-toolbar:after{display:none}.ql-toolbar.ql-toolbar button,.ql-toolbar.ql-toolbar svg{display:inherit;color:currentColor}.ql-toolbar.ql-toolbar ._archivesBtn,.ql-toolbar.ql-toolbar ._savedStatus,.ql-toolbar.ql-toolbar ._savingStatus,.ql-toolbar.ql-toolbar button{min-width:var(--button-size);width:auto;height:var(--button-size);padding:6px}.ql-toolbar.ql-toolbar ._archivesBtn,.ql-toolbar.ql-toolbar ._savedStatus,.ql-toolbar.ql-toolbar ._savingStatus{min-width:9.5rem}.ql-toolbar.ql-toolbar ._savedStatus{background-color:var(--c-vert)}.ql-toolbar.ql-toolbar .ql-fill,.ql-toolbar.ql-toolbar .ql-stroke.ql-fill{fill:currentColor}.ql-toolbar.ql-toolbar .ql-stroke{stroke:currentColor}.ql-toolbar.ql-toolbar .ql-color-picker .ql-picker-options{width:var(--quill-options-size)}.ql-toolbar.ql-toolbar .ql-picker{color:currentColor}.ql-toolbar.ql-toolbar .ql-picker.ql-lineheight{width:78px}.ql-toolbar.ql-toolbar .ql-picker.ql-lineheight .ql-picker-item:before,.ql-toolbar.ql-toolbar .ql-picker.ql-lineheight .ql-picker-label:before{content:"Normal (1.42)"!important}.ql-toolbar.ql-toolbar .ql-picker.ql-lineheight .ql-picker-item[data-value]:before,.ql-toolbar.ql-toolbar .ql-picker.ql-lineheight .ql-picker-label[data-value]:before{content:attr(data-value)!important}.ql-toolbar.ql-toolbar .ql-picker.ql-font{width:140px}.ql-toolbar.ql-toolbar .ql-color-picker,.ql-toolbar.ql-toolbar .ql-icon-picker{width:var(--quill-options-size)}.ql-toolbar.ql-toolbar .ql-formats{margin:0;display:flex;flex-flow:row nowrap;border:2px solid var(--toolbar-bg);border-radius:12px;background:#fff}.ql-toolbar.ql-toolbar .ql-formats button,.ql-toolbar.ql-toolbar .ql-formats>:not(.ql-size):not(.ql-lineheight):not(.ql-header):not(.ql-font) .ql-picker-label{display:flex;align-items:center;justify-content:center}.ql-toolbar.ql-toolbar .ql-formats button svg,.ql-toolbar.ql-toolbar .ql-formats>:not(.ql-size):not(.ql-lineheight):not(.ql-header):not(.ql-font) .ql-picker-label svg{width:var(--quill-buttons-size);height:var(--quill-buttons-size);flex:0 0 auto}.ql-toolbar.ql-toolbar .ql-formats .ql-font,.ql-toolbar.ql-toolbar .ql-formats .ql-header{background:var(--editor-bg);background:transparent}.ql-toolbar.ql-toolbar .ql-formats .ql-picker{height:var(--button-size)}.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-size{width:115px}.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-size .ql-picker-item:before,.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-size .ql-picker-label:before{content:"Par défaut"!important}.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-size .ql-picker-item[data-value]:before,.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-size .ql-picker-label[data-value]:before{content:attr(data-value)!important}.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-lineheight{width:115px}.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-lineheight .ql-picker-item:before,.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-lineheight .ql-picker-label:before{content:"Normal (1.42)"!important}.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-lineheight .ql-picker-item[data-value]:before,.ql-toolbar.ql-toolbar .ql-formats .ql-picker.ql-lineheight .ql-picker-label[data-value]:before{content:attr(data-value)!important}.ql-toolbar.ql-toolbar .ql-formats .ql-picker-label{text-align:left;padding:4px}.ql-toolbar.ql-toolbar .ql-picker.ql-header{width:115px!important}.ql-toolbar.ql-toolbar .ql-picker.ql-font{width:160px!important}html .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-item:before,html .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-label:before{content:"Regular text"}html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-item:before,html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-label:before{content:"Texte courant"}html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Titre 1";font-weight:700}html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Titre 2";font-weight:700}html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Titre 3";font-weight:700}html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,html[lang=fr] .ql-toolbar.ql-toolbar .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Titre 4";font-weight:700}.ql-toolbar.ql-toolbar .ql-picker.ql-size .ql-picker-label[data-value]:before{font-size:100%!important}.ql-tooltip.ql-tooltip{z-index:10;line-height:26px;margin-right:8px}.ql-tooltip.ql-tooltip[data-mode=link]:before{content:"Lien :"}.ql-tooltip.ql-tooltip.ql-hidden{display:none}.ql-tooltip.ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"OK";padding-right:0}.ql-tooltip.ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Modifier";margin-left:16px;padding-right:8px}._TEbtnContainer{justify-content:center}._TEbtnContainer,._TEbtnContainer>*{display:flex;flex-flow:row wrap;align-items:center}._TEbtnContainer>*{border:2px solid var(--toolbar-bg);border-radius:12px;overflow:hidden;background:#fff;justify-content:space-between}._TEbtnContainer>* ._editBtn{background-color:var(--c-bleuvert)!important;border-radius:0!important}',""]),e["default"]=s},97835:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'._modal[data-v-571acb21]{max-width:600px}._topbar[data-v-571acb21]{display:flex;justify-content:space-between;align-items:center;margin:calc(var(--spacing)/1) 0;gap:calc(var(--spacing)/1)}._archiveText[data-v-571acb21]{background:var(--c-gris);padding:calc(var(--spacing)/2);width:100%}._archiveText[data-v-571acb21]>*{padding:0;margin:0}._archiveText[data-v-571acb21]>img{max-width:30ch}._archiveText[data-v-571acb21] blockquote{padding:calc(var(--spacing)*1) calc(var(--spacing)*2);border-radius:5px;border:none;border-left:2px solid var(--c-gris);background-color:var(--c-gris_clair)}._archiveText[data-v-571acb21] pre.ql-syntax{font-family:Fira Mono;padding:calc(var(--spacing)/4) calc(var(--spacing)/2)}._archiveText[data-v-571acb21] .ql-mediacard{transform-origin:center top;border-radius:0;outline:none}._archiveText[data-v-571acb21] .ql-mediacard[data-ratio="1/4"] .ql-mediacard-container{width:25%}._archiveText[data-v-571acb21] .ql-mediacard[data-ratio="2/4"] .ql-mediacard-container{width:50%}._archiveText[data-v-571acb21] .ql-mediacard[data-ratio="3/4"] .ql-mediacard-container{width:75%}._archiveText[data-v-571acb21] .ql-mediacard .ql-mediacard--background{content:"";pointer-events:none;opacity:0;z-index:0}._archiveText[data-v-571acb21] .ql-mediacard img{display:block}._archiveText[data-v-571acb21] .ql-mediacard video{display:block}._archiveText[data-v-571acb21] .ql-mediacard video:focus{outline:0}._archiveText[data-v-571acb21] .ql-mediacard figcaption{text-align:center;font-size:75%;color:#444;margin:0 auto;padding:.4em 0;max-width:33ch;line-height:2}._archiveText[data-v-571acb21] .ql-mediacard figcaption input{text-align:center;background-color:#d9d9d9;border:0;border-radius:4px}._archiveText[data-v-571acb21] .ql-mediacard figcaption input:focus{background-color:#eee}',""]),e["default"]=s},17410:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._searchField[data-v-baba8124]{margin-bottom:calc(var(--spacing)/4)}._maxlength[data-v-baba8124]{flex:0 0 auto;padding:calc(var(--spacing)/4) 0}._list[data-v-baba8124]{display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/4)}",""]),e["default"]=s},83402:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'._defaultColors[data-v-7223d79a]{display:flex;flex-flow:row wrap;justify-content:flex-start}._defaultColors--item[data-v-7223d79a]{cursor:pointer;padding:calc(var(--spacing)/2)}._colorPatch[data-v-7223d79a]{display:block;width:2rem;height:2rem;padding:.3rem;cursor:pointer}._colorPatch[data-v-7223d79a]:before{content:"";display:block;border-radius:50%;width:100%;height:100%;outline:2px solid var(--c-gris);border:1px solid #fff;background-color:var(--patch-color)}._colorPatch[data-v-7223d79a]:focus-visible:before,._colorPatch[data-v-7223d79a]:hover:before{outline-color:var(--active-color)}._colorPatch.is--active[data-v-7223d79a]{pointer-events:none}._colorPatch.is--active[data-v-7223d79a]:before{outline-color:var(--c-noir)}._inputField[data-v-7223d79a]{position:relative}._inputField input[data-v-7223d79a]{width:1px;height:1px;opacity:0;padding:0;display:inline-block}._inputField.has--novalue[data-v-7223d79a]:after{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(90deg,hsla(0,0%,100%,.75),hsla(0,0%,100%,.75)),linear-gradient(90deg,#000 50%,#fff 0),linear-gradient(180deg,#000 50%,#fff 0);background-blend-mode:normal,difference,normal;background-size:2em 2em}._customCol[data-v-7223d79a]{display:flex;margin-bottom:calc(var(--spacing)/4)}',""]),e["default"]=s},43590:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._input[data-v-27cbc02b]{flex:1 0 30px}._submitBtn[data-v-27cbc02b]{padding:calc(var(--spacing)/8)}",""]),e["default"]=s},43309:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._positionPicker[data-v-462e3b26]{position:relative}._editBtn[data-v-462e3b26]{position:absolute;top:0;right:0}._footer[data-v-462e3b26]{margin-top:calc(var(--spacing)/4)}",""]),e["default"]=s},19451:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._radioCheckboxInput[data-v-56eec5c5]{display:flex;flex-flow:column nowrap;gap:calc(var(--spacing)/8)}._radioCheckboxInput label[data-v-56eec5c5]{display:flex;flex-flow:row nowrap;align-content:center;align-items:center;background:#fff;gap:calc(var(--spacing)/2)}._radioCheckboxInput label ._option_preview[data-v-56eec5c5]{display:inline-block;vertical-align:middle;height:1em;aspect-ratio:1;-o-object-fit:cover;object-fit:cover}._radioCheckboxInput.is--editable label[data-v-56eec5c5]{background:var(--c-gris_clair);padding:calc(var(--spacing)/4) calc(var(--spacing)/2);cursor:pointer}._radioCheckboxInput.is--editable label[data-v-56eec5c5]:hover{background:var(--c-gris)}._radioCheckboxInput input[data-v-56eec5c5]{margin:0}",""]),e["default"]=s},24970:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._inputRange[data-v-7acec450]{flex:1 1 60px;min-width:60px;margin:0}._numberField[data-v-7acec450]{flex:2 0 0px}[data-v-7acec450] ._numberInput.is--beingEdited{flex:6 0 0}",""]),e["default"]=s},86281:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._searchInput[data-v-4fb02e7c]{width:55ch}",""]),e["default"]=s},88036:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._notices[data-v-560af44a]{flex:0 0 auto;padding:0;display:flex;justify-content:space-between}._revealBtn[data-v-560af44a]{padding:0;text-transform:lowercase}",""]),e["default"]=s},35028:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._inputLabel[data-v-331cc75e]{display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/4)}._maxlength[data-v-331cc75e]{flex:0 0 auto;padding:calc(var(--spacing)/4) 0}.u-label[data-v-331cc75e]{margin-bottom:0}",""]),e["default"]=s},54094:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._inputLabel[data-v-0044a89e]{display:flex;flex-flow:row nowrap;align-items:center}._maxlength[data-v-0044a89e]{flex:0 0 auto;padding:calc(var(--spacing)/4) 0}.u-label[data-v-0044a89e]{margin-bottom:0}._inputCb[data-v-0044a89e]{margin:calc(var(--spacing)/4)}._toggled[data-v-0044a89e]{margin-top:calc(var(--spacing)/2*-1);padding-top:calc(var(--spacing)/2)}._toggled.can--toggle[data-v-0044a89e]{border-left:3px solid var(--c-orange);padding-left:calc(var(--spacing)/2);margin-left:calc(var(--spacing)/3)}",""]),e["default"]=s},98205:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._langSelect[data-v-6868a4ea]{max-width:35ch}._allMissingTranslations[data-v-6868a4ea]{border:2px solid var(--c-gris);background:var(--c-gris_clair);padding:calc(var(--spacing)/4) calc(var(--spacing)/2);margin:calc(var(--spacing)/2) auto}._allMissingTranslations>*[data-v-6868a4ea]{margin-bottom:calc(var(--spacing)/1)}._translated[data-v-6868a4ea]{max-height:40vh;border:1px solid #000;padding:calc(var(--spacing)/4);background:var(--c-gris_clair);border-radius:4px;margin:calc(var(--spacing)/2) 0}._translated>pre[data-v-6868a4ea]{margin:0;padding:calc(var(--spacing)/1)}",""]),e["default"]=s},64473:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._baseModal[data-v-5319964e]{position:fixed;inset:0;z-index:10000;display:flex;justify-content:center;align-items:center;border:none;padding:0;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:hsla(0,0%,91%,.7)}._baseModal ._baseModal--content[data-v-5319964e]{position:relative;background:var(--panel-color);box-shadow:0 1px 4px rgba(0,0,0,.1);border-radius:4px;margin:0 auto;width:100%;max-width:480px;max-height:100vh}._baseModal[data-size=full] ._baseModal--content[data-v-5319964e]{max-width:none;max-height:none;border:none;--modal-margin:var(--spacing) * 4;width:calc(100% - var(--modal-margin));height:calc(100% - var(--modal-margin));margin:calc(var(--modal-margin)/2)}._baseModal[data-size=large] ._baseModal--content[data-v-5319964e]{max-width:680px}._baseModal[data-size=x-large] ._baseModal--content[data-v-5319964e]{max-width:980px}._closeBtn[data-v-5319964e]{padding:calc(var(--spacing)/3)}header[data-v-5319964e]{display:flex;flex-flow:row nowrap;justify-content:space-between;padding:calc(var(--spacing)*1)}header h2[data-v-5319964e]{font-weight:600;font-size:var(--sl-font-size-x-large);margin:0}._baseModal--content[data-v-5319964e]{display:flex;flex-flow:column nowrap}._baseModal--content footer[data-v-5319964e],._baseModal--content>header[data-v-5319964e]{flex:0 0 auto}._baseModal--content ._content[data-v-5319964e]{flex:1 1 auto}._content[data-v-5319964e]{overflow:auto;padding:0 calc(var(--spacing)*1) 0}._content[data-v-5319964e]>:first-child{margin-top:0}._baseModal[data-size=full] ._content[data-v-5319964e]{padding:0}._content.has_nofooter[data-v-5319964e]{padding-bottom:calc(var(--spacing)*1)}._footer[data-v-5319964e]{display:flex;justify-content:center;padding:calc(var(--spacing)*1)}@keyframes reveal-5319964e{0%{opacity:0;transform:translateY(30px)}}",""]),e["default"]=s},17729:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._creditsModal[data-v-cd16b2fc] li{margin-left:1.5em}",""]),e["default"]=s},12777:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._reconnectingMsg[data-v-785786c3]{position:relative}",""]),e["default"]=s},20322:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._importZone[data-v-0f319e06]{--dropzone-color1:transparent;--dropzone-color2:var(--c-rouge);color:var(--c-noir)}",""]),e["default"]=s},81178:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._hr[data-v-3d83bc35]{margin:calc(var(--spacing)/1) auto}._txt[data-v-3d83bc35]{display:flex;flex-flow:column nowrap;gap:calc(var(--spacing)/1)}",""]),e["default"]=s},8807:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._taskTracker[data-v-adb40426]{position:fixed;bottom:0;right:0;z-index:100000;max-width:400px;width:100%;max-height:200px;overflow:auto;background:#fff;border-top-left-radius:4px;border-top-right-radius:4px;margin:calc(var(--spacing)*3);margin-bottom:0}._task[data-v-adb40426],._taskTracker[data-v-adb40426]{padding:calc(var(--spacing)/2)}._task[data-v-adb40426]{display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center;background:var(--c-gris);border-left:2px solid var(--c-gris_fonce);margin:calc(var(--spacing)/2) 0;color:var(--c-noir)}",""]),e["default"]=s},33040:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._animatedCounter[data-v-b5e8d96e]{display:flex;gap:calc(var(--spacing)/2);align-items:center;background:#fff;padding:calc(var(--spacing)/4) calc(var(--spacing)/2);border-radius:5px;border:1px solid var(--c-gris)}._animatedCounter-spinner[data-v-b5e8d96e]{position:relative}",""]),e["default"]=s},57877:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'._detailsPane[data-v-6cb911ea]{background:#fff;border-bottom:none;border-radius:8px;overflow:hidden}._detailsPane.is--unclosable summary[data-v-6cb911ea]{pointer-events:none}._detailsPane ._icon[data-v-6cb911ea]{font-size:150%;width:auto;height:auto;margin:calc(var(--spacing)/4);padding:calc(var(--spacing)/2);border-radius:50%;color:var(--c-noir);line-height:0}._detailsPane ._name[data-v-6cb911ea]{flex:1 1 auto}._detailsPane ._openIcon[data-v-6cb911ea]{margin:calc(var(--spacing)/4);padding:calc(var(--spacing)/2)}._detailsPane ._openIcon svg[data-v-6cb911ea]{display:block}._detailsPane summary[data-v-6cb911ea]{position:sticky;top:0;z-index:1;display:flex;flex-flow:row nowrap;align-items:center;border-radius:2px;padding:calc(var(--spacing)/4);cursor:pointer;background:#fff;border-radius:4px;line-height:1.21}._detailsPane summary[data-v-6cb911ea]::marker{display:none;content:""}._detailsPane[open] summary[data-v-6cb911ea]{border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom:none}._detailsPane[open] ._content[data-v-6cb911ea]{padding:calc(var(--spacing)/2);border-top:none;border-radius:4px;border-top-left-radius:0;border-top-right-radius:0}',""]),e["default"]=s},57835:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._dragFile[data-v-01ada5dd]{cursor:grab}._dragFile[data-v-01ada5dd]:focus,._dragFile[data-v-01ada5dd]:hover{cursor:-moz-grabbing;cursor:dragging}",""]),e["default"]=s},71381:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=n(4417),l=n.n(s),c=new URL(n(19947),n.b),u=a()(i()),d=l()(c);u.push([t.id,"._dropDown[data-v-4cc555db]{position:relative}._dropDown.active[data-v-4cc555db]{background:var(--active-color)}._dropDown.active ._caret[data-v-4cc555db]{transform:rotate(-180deg)}._caret[data-v-4cc555db]{background-image:url("+d+");background-position:50% 55%;background-repeat:no-repeat;background-size:.75rem;transition:all .25s cubic-bezier(.19,1,.22,1)}._dropDown--content[data-v-4cc555db]{position:absolute;z-index:9999;left:0;display:flex;flex-flow:column nowrap;gap:2px;margin-top:2px;padding:2px;background:#fff;border-radius:4px;max-width:40ch;box-shadow:0 0 0 1px rgba(20,21,26,.05),0 .3px .4px rgba(20,21,26,.02),0 .9px 1.5px rgba(20,21,26,.045),0 3.5px 6px rgba(20,21,26,.09)}._dropDown--content[data-v-4cc555db] a,._dropDown--content[data-v-4cc555db] button{padding:calc(var(--spacing)/1.5) calc(var(--spacing)/1.5);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;width:100%;text-align:left;border-radius:2px;transition:all .25s cubic-bezier(.19,1,.22,1)}._dropDown--content[data-v-4cc555db] a:active,._dropDown--content[data-v-4cc555db] a:focus-visible,._dropDown--content[data-v-4cc555db] a:hover,._dropDown--content[data-v-4cc555db] button:active,._dropDown--content[data-v-4cc555db] button:focus-visible,._dropDown--content[data-v-4cc555db] button:hover{background:var(--c-gris)}._dropDown--content_right[data-v-4cc555db]{left:auto;right:0}",""]),e["default"]=u},51144:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._dropZone[data-v-d03651be]{position:absolute;top:0;left:0;right:0;bottom:0;padding:0;display:flex;flex-flow:row wrap;align-content:center;justify-content:center;transition:all .4s cubic-bezier(.19,1,.22,1)}._dzBg[data-v-d03651be]{--dropzone-color1:#fff;--dropzone-color2:var(--c-bleuvert);position:absolute;z-index:0;inset:0;border-radius:4px}._dropNotice[data-v-d03651be]{position:relative;pointer-events:none;white-space:nowrap}",""]),e["default"]=s},10731:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._editBtn[data-v-28985622]{--color1:#fff;--color2:var(--active-color);--color-hover-icon:#fff;position:relative;display:inline-flex;background:var(--color1);color:var(--color2);box-shadow:0 1px 40px rgba(0,0,0,.1);width:24px;height:24px;flex:0 0 24px;border-radius:50%;transition:all .25s cubic-bezier(.19,1,.22,1)}._editBtn[data-v-28985622]:active,._editBtn[data-v-28985622]:focus-visible,._editBtn[data-v-28985622]:hover{z-index:2;transform:scale(1.2)}._editBtn ._icon[data-v-28985622]{position:relative}._editBtn ._label[data-v-28985622]{position:absolute;top:0;height:calc(100% + 2px);background:var(--color2);color:var(--color1);margin:-1px;padding:calc(var(--spacing)/2) calc(var(--spacing)/2);display:flex;align-items:center;border-radius:1rem;white-space:nowrap;max-width:0;overflow:hidden;pointer-events:none;opacity:0;transition:all .25s cubic-bezier(.19,1,.22,1)}._editBtn ._label[data-position=right][data-v-28985622]{left:0;padding-left:100%;transform:translateX(15px)}._editBtn ._label[data-position=left][data-v-28985622]{right:0;padding-right:100%;transform:translateX(-15px)}._editBtn.is--unfolded ._label[data-v-28985622]{pointer-events:auto}._editBtn.is--unfolded[data-v-28985622],._editBtn[data-v-28985622]:active,._editBtn[data-v-28985622]:focus-visible,._editBtn[data-v-28985622]:hover{color:var(--color-hover-icon)}._editBtn.is--unfolded ._label[data-v-28985622],._editBtn:active ._label[data-v-28985622],._editBtn:focus-visible ._label[data-v-28985622],._editBtn:hover ._label[data-v-28985622]{transform:none;color:inherit;opacity:1;max-width:40ch;transition:all .25s cubic-bezier(.19,1,.22,1) 0s}",""]),e["default"]=s},2633:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._importFileZone .u-dropzone[data-v-909e19d4]{cursor:pointer;color:currentColor}._importFileZone .u-instructions[data-v-909e19d4]{color:currentColor}",""]),e["default"]=s},82626:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._radioSwitch[data-v-47ae053a]{display:flex;justify-content:center;--ri5-color-primary-hsl:0,0%,10%;--ri5-color-contrast-high-hsl:230,7%,23%;--ri5-color-contrast-higher-hsl:230,13%,9%;--ri5-color-bg-darker-hsl:255,4%,100%;--ri5-color-white-hsl:0,0%,100%;--radio-switch-width:276px;--radio-switch-height:36px;--radio-switch-padding:0px;--radio-switch-radius:5px;--radio-switch-animation-duration:0.3s}menu[data-v-47ae053a],ul[data-v-47ae053a]{list-style:none;margin:0}.ri5-icon[data-v-47ae053a]{height:var(--ri5-size,1em);width:var(--ri5-size,1em);display:inline-block;color:inherit;fill:currentColor;line-height:1;flex-shrink:0;max-width:none}.ri5-icon--xs[data-v-47ae053a]{--ri5-size:16px}.radio-switch[data-v-47ae053a]{position:relative;display:inline-block;display:inline-flex;padding:var(--radio-switch-padding);border-radius:calc(var(--radio-switch-radius)*1.4);background-color:var(--c-gris);border:1px solid var(--c-gris)}.radio-switch[data-v-47ae053a]:focus-within{outline:2px solid var(--active-color)}.radio-switch__item[data-v-47ae053a]{position:relative;display:inline-block;height:calc(var(--radio-switch-height) - var(--radio-switch-padding)*2);width:calc(var(--radio-switch-width)*.5 - var(--radio-switch-padding));margin:-1px}.radio-switch__label[data-v-47ae053a]{position:relative;z-index:2;display:flex;height:100%;align-items:center;justify-content:center;border-radius:var(--radio-switch-radius);color:var(--c-noir);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-weight:500;transition:all var(--radio-switch-animation-duration)}.radio-switch__input:checked~.radio-switch__label[data-v-47ae053a]{color:hsl(var(--ri5-color-white-hsl))}.radio-switch__input:focus~.radio-switch__label[data-v-47ae053a]{background-color:hsla(var(--ri5-color-primary-hsl),.6)}.radio-switch__input:focus~.radio-switch__label[data-v-47ae053a],.radio-switch__label[data-v-47ae053a] :not(*):focus-within{background-color:transparent}.radio-switch__marker[data-v-47ae053a]{position:absolute;inset:0;background-color:var(--c-noir);border-radius:var(--radio-switch-radius)}.ri5-sr-only[data-v-47ae053a]{position:absolute;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;padding:0;border:0;white-space:nowrap}",""]),e["default"]=s},62811:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._reorderedList{position:relative;display:flex;flex-flow:row wrap;pointer-events:none;margin:0 calc(var(--spacing)/-2)}._reorderedList--item{position:relative;display:inline-flex;flex-flow:row nowrap;align-items:center;pointer-events:auto;background:#fff;border-radius:4px}._reorderedList--item:has(._dragHandle:hover){z-index:1;background:var(--c-gris);box-shadow:var(--panel-shadows)}body>._reorderedList--item{z-index:10000}body>._reorderedList--item ._dragHandle{border-color:var(--c-noir)}._dragHandle{position:absolute;cursor:grab;padding:calc(var(--spacing)/4);background:transparent;width:100%;height:100%;height:2em;border-radius:1em;border:2px solid var(--c-gris)}._dragHandle:focus-visible,._dragHandle:hover{border-color:var(--c-noir)}",""]),e["default"]=s},32712:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._tag[data-v-07136840]{display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/4);border-radius:1em;font-weight:400;font-size:var(--sl-font-size-small);text-transform:none;padding:calc(var(--spacing)/4) calc(var(--spacing)/2);background-color:var(--c-gris_clair)}._tag[data-v-07136840]:not(.is--inactive){cursor:pointer}._tag[data-v-07136840]:not(.is--inactive):focus-visible,._tag[data-v-07136840]:not(.is--inactive):hover{opacity:.8}._tag[data-tagtype=target_audience][data-v-07136840]{background-color:var(--c-gris_fonce);color:#fff}._tag[data-tagtype=disciplines][data-v-07136840],._tag[data-tagtype=level][data-v-07136840]{background-color:var(--c-rouge_clair)}._tag[data-tagtype=keywords][data-v-07136840]{background-color:var(--c-orange_clair)}._tag[data-tagtype=machines][data-v-07136840]{background-color:var(--c-bleuvert_clair)}._tag[data-tagtype=materials][data-v-07136840]{background-color:var(--c-bleumarine_clair)}._tag[data-tagtype=accountgroup][data-v-07136840]{background-color:var(--c-noir);color:#fff}._tag[data-tagtype=status][data-tagvalue=finished][data-v-07136840]{background-color:var(--c-bleuvert)}._tag[data-tagtype=status][data-tagvalue=private][data-v-07136840]{background-color:var(--c-noir);color:#fff}._picto[data-v-07136840]{display:inline-block;width:.9rem;height:.9rem;min-width:0;min-height:0;color:currentColor}",""]),e["default"]=s},70800:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._list[data-v-d3bc052a]{display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/4)}._addBtn[data-v-d3bc052a],._removeBtn[data-v-d3bc052a]{padding:calc(var(--spacing)/4);margin:calc(var(--spacing)/-4);margin-left:0;margin-left:calc(var(--spacing)/4);cursor:pointer}",""]),e["default"]=s},98485:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._mediaModal[data-v-5a5c7aee]{position:absolute;overflow:hidden;inset:0;z-index:10;text-align:left}._mediaModal ._mediaModal--overlay[data-v-5a5c7aee]{background:var(--c-orange);position:absolute;inset:0;opacity:.6;cursor:pointer}._mediaModal[data-v-5a5c7aee] ._mediaContent{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden}._mediaModal[data-v-5a5c7aee] ._mediaContent[data-filetype=audio]{padding:calc(var(--spacing)*3)}._mediaModal[data-v-5a5c7aee] ._mediaContent ._mediaContent--image{position:absolute;width:100%;height:100%;-o-object-fit:contain;object-fit:contain;max-width:none}._navBtn[data-v-5a5c7aee]{pointer-events:auto;position:relative;z-index:100}._meta[data-v-5a5c7aee]{padding:calc(var(--spacing)*1) calc(var(--spacing)/1);background:var(--panel-color);border:var(--panel-borders);box-shadow:var(--panel-shadows)}._selectBtn[data-v-5a5c7aee]{position:sticky;display:flex;place-items:center;justify-content:center;width:100%;gap:calc(var(--spacing)/1);z-index:100;bottom:0;left:0;background:none;padding:calc(var(--spacing)/1);background:hsla(0,0%,100%,.2);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}._mediaModal--content[data-v-5a5c7aee]{position:relative;border-top:1px solid var(--c-gris);width:100%;height:100%;background:#fff}._mediaModal--content>._preview[data-v-5a5c7aee]{position:relative;background:var(--c-gris);overflow:hidden}._mediaModal--content[data-v-5a5c7aee]:not(.is--mobileView){display:flex;flex-flow:row nowrap;overflow:hidden;height:100%}._mediaModal--content:not(.is--mobileView)>._preview[data-v-5a5c7aee]{top:0;flex:10 1 320px}._mediaModal--content:not(.is--mobileView)>._meta[data-v-5a5c7aee]{position:relative;z-index:2;background:#fff;flex:2 0 200px;overflow:auto}._mediaModal--content.is--mobileView[data-v-5a5c7aee]{overflow:auto}._mediaModal--content.is--mobileView>._preview[data-v-5a5c7aee]{height:70vh}._stickyClose--content[data-v-5a5c7aee],._topRightBtn[data-v-5a5c7aee]{position:absolute;top:0;right:0;display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/2);padding:calc(var(--spacing)/2)}._stickyClose[data-v-5a5c7aee]{position:sticky;height:0;z-index:100}._navBtns[data-v-5a5c7aee]{position:absolute;bottom:0;left:0;width:100%;height:100%;padding:calc(var(--spacing)/2);pointer-events:none;display:flex;justify-content:space-between;align-items:center}._originInd[data-v-5a5c7aee]{padding:2px 4px;color:#fff;background:var(--o-color)}._favSwitch[data-v-5a5c7aee]{display:inline-block}._optimizeNotice[data-v-5a5c7aee]{position:absolute;top:0;left:0;width:100%;text-align:center;padding:calc(var(--spacing)*1);margin-top:calc(var(--spacing)*2)}._optimizeNotice>*[data-v-5a5c7aee]{margin:0 auto;padding:calc(var(--spacing)/2);max-width:320px;width:100%;background:var(--c-bleuvert_clair);border-radius:8px;box-shadow:0 1px 40px rgba(0,0,0,.1)}._topbar[data-v-5a5c7aee]{display:flex;flex-flow:row nowrap;align-items:center;justify-content:space-between;gap:calc(var(--spacing)/1)}",""]),e["default"]=s},73504:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'._mediaTile[data-v-d014b2a4]{position:relative;background:hsla(0,0%,100%,.15);overflow:hidden;border-radius:3px;transition:all .2s cubic-bezier(.19,1,.22,1)}._mediaTile.is--own ._index[data-v-d014b2a4]{border:2px solid var(--c-bleumarine)}._mediaTile ._content[data-v-d014b2a4]{aspect-ratio:1/1;overflow:hidden}@supports not (aspect-ratio:1/1){._mediaTile ._content[data-v-d014b2a4]{width:110px;height:110px}}._mediaTile.was--focused[data-v-d014b2a4]{border:2px solid var(--c-noir);padding:2px}._mediaTile.is--dragged[data-v-d014b2a4]{opacity:.9;transform:rotate(5deg) scale(.9)}._mediaTile.is--selected[data-v-d014b2a4]:after{content:"";background:var(--c-bleumarine);position:absolute;inset:0;opacity:.4;pointer-events:none}._mediaTile[data-type=other][data-v-d014b2a4],._mediaTile[data-type=text][data-v-d014b2a4]{display:flex;justify-content:flex-start;align-items:center;text-align:center}._mediaTile[data-v-d014b2a4] ._mediaContent{width:100%}._mediaTile[data-v-d014b2a4] ._mediaContent--image{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;max-width:none}._mediaTile[data-tilemode=table][data-v-d014b2a4] ._mediaContent--image{-o-object-fit:scale-down;object-fit:scale-down}._mediaTile[data-tilemode=tiny][data-v-d014b2a4] ._mediaContent--image{-o-object-fit:cover;object-fit:cover}._mediaTile[data-tilemode=medium][data-v-d014b2a4] ._mediaContent--image{-o-object-fit:scale-down;object-fit:scale-down;border-radius:8px}._mediaTile[data-tilemode=table][data-v-d014b2a4]{display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/4);background:transparent;border-bottom:1px solid #fff}._mediaTile[data-tilemode=table].was--focused[data-v-d014b2a4]{border:none;background-color:var(--active-color)}._mediaTile[data-tilemode=table]>*[data-v-d014b2a4]{flex:0 0 50px;padding:calc(var(--spacing)/4)}._mediaTile[data-tilemode=table]>._content[data-v-d014b2a4]{padding:0}._mediaTile[data-tilemode=table]>._content[data-v-d014b2a4],._mediaTile[data-tilemode=table]>._hasCoordinates[data-v-d014b2a4],._mediaTile[data-tilemode=table]>._index[data-v-d014b2a4]{flex:0 0 30px}._mediaTile[data-tilemode=table]>._alreadySelected[data-v-d014b2a4]{position:relative}._mediaTile[data-tilemode=table]>._selectCb[data-v-d014b2a4]{flex:0;position:relative}._mediaTile[data-tilemode=table]>._caption[data-v-d014b2a4]{flex:1 1 auto}._focusMediaBtn[data-v-d014b2a4]{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;inset:0;width:100%;background:transparent;opacity:.3;transition:all .1s linear}._focusMediaBtn[data-v-d014b2a4]:hover{background:#fff;transition:none}._fileType[data-v-d014b2a4]{background:hsla(0,0%,100%,.5);color:var(--c-noir);border-radius:2px;line-height:1;font-weight:600;padding:calc(var(--spacing)/8);margin:calc(var(--spacing)/8);font-size:var(--input-font-size-small);text-transform:uppercase}._mediaTile:not([data-tilemode=table]) ._fileType[data-v-d014b2a4]{position:absolute;bottom:0;left:0}._mediaTile[data-tilemode=medium] ._fileType[data-v-d014b2a4]{bottom:20px}._alreadySelected[data-v-d014b2a4]{position:absolute;bottom:0;left:0;z-index:1;margin:calc(var(--spacing)/4);pointer-events:none;display:flex;flex-flow:column nowrap;gap:calc(var(--spacing)/4);font-size:var(--sl-font-size-x-small);width:calc(100% - var(--spacing)/2)}._mediaTile[data-tilemode=medium] ._alreadySelected[data-v-d014b2a4]{bottom:2em}._alreadySelected>*[data-v-d014b2a4]{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;gap:calc(var(--spacing)/4);padding:calc(var(--spacing)/8) calc(var(--spacing)/4);border-radius:1em;background:var(--notice-bg)}._index[data-v-d014b2a4]{position:absolute;top:0;left:0;z-index:2;pointer-events:none;font-size:var(--input-font-size-small);font-weight:800;background:var(--o-color,#000);color:#fff;transition:all .45s cubic-bezier(.19,1,.22,1)}._mediaTile[data-tilemode=table] ._index[data-v-d014b2a4]{position:relative;z-index:inherit}._mediaTile[data-tilemode=medium] ._index[data-v-d014b2a4]{font-size:var(--input-font-size)}._mediaTile:focus-visible ._index[data-v-d014b2a4],._mediaTile:hover ._index[data-v-d014b2a4]{transform:scale(1.25)}._hasCoordinates[data-v-d014b2a4]{position:absolute;bottom:0;right:0;margin:0 calc(var(--spacing)/2);color:#fff}._mediaTile[data-tilemode=table] ._hasCoordinates[data-v-d014b2a4]{position:relative}._mediaTile[data-tilemode=medium] ._hasCoordinates[data-v-d014b2a4]{bottom:1.5rem}._favSwitch[data-v-d014b2a4]{position:absolute;top:0;right:0;z-index:1}._favSwitch .u-button_icon[data-v-d014b2a4]{padding:calc(var(--spacing)/3)}._mediaTile[data-tilemode=table] ._favSwitch[data-v-d014b2a4]{position:relative}._dragFileIcon[data-v-d014b2a4]{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;display:flex;place-content:center;place-items:center}._dragFileIcon[data-v-d014b2a4] button{background-color:hsla(0,0%,100%,.5);pointer-events:auto}._caption[data-v-d014b2a4]{width:100%;padding:calc(var(--spacing)/4) calc(var(--spacing)/2);font-size:var(--sl-font-size-x-small);display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;-webkit-line-clamp:1}._selectCb[data-v-d014b2a4]{position:absolute;top:0;right:0;z-index:1;line-height:0;border-radius:50%;font-size:80%;cursor:pointer}._selectCb[data-v-d014b2a4] ._inputLabel{padding:calc(var(--spacing)/2)}._mediaTile[data-tilemode=medium] ._selectCb[data-v-d014b2a4] ._inputLabel{padding:calc(var(--spacing)/1)}',""]),e["default"]=s},59295:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._topbar[data-v-0dc431f4]{position:relative;z-index:5;display:flex;flex-flow:row nowrap;gap:calc(var(--spacing)/2);align-items:center;overflow:hidden;width:100%;margin:0 auto;padding:calc(var(--spacing)/2) calc(var(--spacing)/2);background:#fff;border-bottom:1px solid var(--c-gris);-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .4s cubic-bezier(.19,1,.22,1)}._topbar.is--homepage[data-v-0dc431f4]{box-shadow:none}._topbar>*[data-v-0dc431f4]{flex:1 1 auto}._topbar>._bc[data-v-0dc431f4]{flex:1 0 0;overflow:hidden}._topbar>._topRightButtons[data-v-0dc431f4]{flex:0 0 auto}._topbar>._subscribeBtn[data-v-0dc431f4]{flex:0 0 auto;white-space:nowrap}._subscribeBtn ._authorBtn[data-v-0dc431f4]{position:relative;background:var(--c-bleumarine_clair);padding:calc(var(--spacing)/2);border-radius:4px;font-weight:500;font-size:var(--sl-font-size-normal);color:inherit}._topRightButtons[data-v-0dc431f4]{display:flex;justify-content:flex-end;gap:calc(var(--spacing)/4);padding:0 calc(var(--spacing)/2);font-size:111%}.is--mobileView ._topRightButtons[data-v-0dc431f4]{padding:0}._topRightButtons button[data-v-0dc431f4]{font-size:inherit;height:3rem}.is--mobileView ._topRightButtons button[data-v-0dc431f4]{padding:calc(var(--spacing)/2)}._adminInfo[data-v-0dc431f4]{position:absolute;top:0;left:0;font-weight:400;text-align:center;width:100%;justify-content:center;text-decoration:none;font-size:80%}",""]),e["default"]=s},57839:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._spaceProjectPicker ._row[data-v-2105b2dd]{display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/2)}._spaceProjectPicker ._row>*[data-v-2105b2dd]{flex:1 1 50%}._spaceProjectPicker ._row>._arrowBtn[data-v-2105b2dd]{flex:0 0 auto}._projectLoader[data-v-2105b2dd]{position:relative}",""]),e["default"]=s},19256:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._breadcrumb[data-v-cead2da6]{flex-flow:row nowrap;padding:0 calc(var(--spacing)/2);gap:calc(var(--spacing)/2);line-height:1.1}._breadcrumb[data-v-cead2da6],._breadcrumb>*[data-v-cead2da6]{display:flex;align-items:center}._breadcrumb>*[data-v-cead2da6],._name[data-v-cead2da6]{overflow:hidden}._name[data-v-cead2da6]{text-overflow:ellipsis;white-space:nowrap}._logo[data-v-cead2da6]{flex:0 0 auto}._logo svg[data-v-cead2da6]{width:120px}._logo img[data-v-cead2da6]{width:auto;border-radius:4px}._logo img[data-v-cead2da6],._logo svg[data-v-cead2da6]{height:40px;-o-object-fit:scale-down;object-fit:scale-down;-o-object-position:0 0;object-position:0 0}._logo ._customLogo[data-v-cead2da6]{border-radius:2px;border:2px solid var(--c-gris_clair);transition:.2s cubic-bezier(.19,1,.22,1)}._logo a ._customLogo[data-v-cead2da6] :focus-visible,._logo a ._customLogo[data-v-cead2da6]:hover,._logo a ._dodocLogo[data-v-cead2da6] :focus-visible,._logo a ._dodocLogo[data-v-cead2da6]:hover{opacity:.9;border-color:var(--c-gris)}a._spaceName[data-v-cead2da6]{color:inherit}a._spaceName[data-v-cead2da6]:hover{font-weight:500}.u-label[data-v-cead2da6]{text-decoration:none}._arrowRight[data-v-cead2da6]{flex:0 0 auto}",""]),e["default"]=s},35088:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._dodocLogo[data-v-255ec2f0]{--color1:var(--c-bleuvert);--color2:var(--c-orange)}._dodocLogo circle[data-v-255ec2f0],._dodocLogo ellipse[data-v-255ec2f0],._dodocLogo path[data-v-255ec2f0]{transition:fill 1s cubic-bezier(.19,1,.22,1) .5s}._dodocLogo[data-v-255ec2f0]:hover{--color1:var(--c-orange);--color2:var(--c-bleuvert)}._dodocLogo:hover circle[data-v-255ec2f0],._dodocLogo:hover ellipse[data-v-255ec2f0],._dodocLogo:hover path[data-v-255ec2f0]{transition:fill .15s cubic-bezier(.19,1,.22,1)}",""]),e["default"]=s},3826:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,"._mediaLibrary[data-v-c6cedf02]{position:relative;background:var(--color-collect);height:100%}._scrollBox[data-v-c6cedf02]{height:100%}._mediaLibrary--lib[data-v-c6cedf02],._scrollBox[data-v-c6cedf02]{overflow:auto}._mediaLibrary--lib--label[data-v-c6cedf02]{padding:calc(var(--spacing)/4) calc(var(--spacing)/2) 0;position:sticky;top:0;z-index:10;background:var(--c-orange)}._mediaLibrary--lib--label strong[data-v-c6cedf02]{text-transform:capitalize}._mediaLibrary--lib--label[data-v-c6cedf02] .u-nut{background:var(--c-noir)}._mediaLibrary--lib--grid[data-v-c6cedf02]{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:2px;padding:0 calc(var(--spacing)/2)}._mediaLibrary--lib--grid[data-tilemode=medium][data-v-c6cedf02]{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}._mediaLibrary--lib--grid[data-tilemode=table][data-v-c6cedf02]{display:block}._focusBtns[data-v-c6cedf02]{position:absolute;top:0;right:0}._topSection[data-v-c6cedf02]{justify-content:space-between;gap:calc(var(--spacing)/4) calc(var(--spacing)/2);padding:calc(var(--spacing)/4) calc(var(--spacing)/2);z-index:1;border-bottom:2px solid var(--c-orange_clair)}._topSection[data-v-c6cedf02],._topSection--left[data-v-c6cedf02]{display:flex;flex-flow:row wrap;align-items:center}._topSection--left[data-v-c6cedf02]{justify-content:flex-start;gap:calc(var(--spacing)/1)}._topSection--right[data-v-c6cedf02]{flex:1 1 auto;display:flex;flex-flow:row wrap;align-items:center;justify-content:flex-end;gap:calc(var(--spacing)/4) calc(var(--spacing)/2)}._dayFileSection[data-v-c6cedf02]{margin-bottom:calc(var(--spacing)/4)}._gridSection[data-v-c6cedf02]{padding-bottom:calc(var(--spacing)/2)}._mediaCount[data-v-c6cedf02]{font-weight:600}._selectBtn[data-v-c6cedf02]{position:absolute;bottom:0;left:0;z-index:10;width:100%;display:flex;justify-content:center;gap:calc(var(--spacing)/4);padding:calc(var(--spacing)/1);pointer-events:none}._selectBtn>*[data-v-c6cedf02]{pointer-events:auto}._addBtn[data-v-c6cedf02]{--side-width:24px;display:block;padding:calc(var(--spacing)/4);border-radius:calc(var(--side-width)/2);background:transparent;font-size:1.4em;color:var(--c-noir);display:flex}._addBtn[data-v-c6cedf02]:focus,._addBtn[data-v-c6cedf02]:hover{background:rgba(0,0,0,.1)}._selectMediaAuthor[data-v-c6cedf02],._selectMediaOrigin[data-v-c6cedf02],._selectMediaType[data-v-c6cedf02]{width:21ch}._groupBy[data-v-c6cedf02]{display:flex;flex-flow:row wrap;align-items:center;gap:calc(var(--spacing)/4)}._groupBy>*[data-v-c6cedf02]{display:flex;flex-flow:row nowrap}._groupBy input[data-v-c6cedf02]{accent-color:var(--active-color)}._groupBy label[data-v-c6cedf02]{cursor:pointer}._groupBy label.is--selected[data-v-c6cedf02]{font-weight:600}._importButton[data-v-c6cedf02]{--dropzone-color1:var(--c-orange);--dropzone-color2:var(--c-rouge);color:#fff;width:100%;padding:calc(var(--spacing)/2);padding-bottom:0}._tileMode[data-v-c6cedf02]{display:flex;flex-flow:row nowrap;align-items:center;gap:calc(var(--spacing)/4)}._tileMode button[data-v-c6cedf02]{padding:calc(var(--spacing)/1.5)}._favFilter[data-v-c6cedf02]{color:var(--c-rouge)}",""]),e["default"]=s},62514:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'/*!\n * Quill Editor v1.3.7\n * https://quilljs.com/\n * Copyright (c) 2014, Jason Chen\n * Copyright (c) 2013, salesforce.com\n */.ql-container{box-sizing:border-box;font-family:Helvetica,Arial,sans-serif;font-size:13px;height:100%;margin:0;position:relative}.ql-container.ql-disabled .ql-tooltip{visibility:hidden}.ql-container.ql-disabled .ql-editor ul[data-checked]>li:before{pointer-events:none}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.ql-editor{box-sizing:border-box;line-height:1.42;height:100%;outline:none;overflow-y:auto;padding:12px 15px;-o-tab-size:4;tab-size:4;-moz-tab-size:4;text-align:left;white-space:pre-wrap;word-wrap:break-word}.ql-editor>*{cursor:text}.ql-editor blockquote,.ql-editor h1,.ql-editor h2,.ql-editor h3,.ql-editor h4,.ql-editor h5,.ql-editor h6,.ql-editor ol,.ql-editor p,.ql-editor pre,.ql-editor ul{margin:0;padding:0;counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol,.ql-editor ul{padding-left:1.5em}.ql-editor ol>li,.ql-editor ul>li{list-style-type:none}.ql-editor ul>li:before{content:"\\2022"}.ql-editor ul[data-checked=false],.ql-editor ul[data-checked=true]{pointer-events:none}.ql-editor ul[data-checked=false]>li *,.ql-editor ul[data-checked=true]>li *{pointer-events:all}.ql-editor ul[data-checked=false]>li:before,.ql-editor ul[data-checked=true]>li:before{color:#777;cursor:pointer;pointer-events:all}.ql-editor ul[data-checked=true]>li:before{content:"\\2611"}.ql-editor ul[data-checked=false]>li:before{content:"\\2610"}.ql-editor li:before{display:inline-block;white-space:nowrap;width:1.2em}.ql-editor li:not(.ql-direction-rtl):before{margin-left:-1.5em;margin-right:.3em;text-align:right}.ql-editor li.ql-direction-rtl:before{margin-left:.3em;margin-right:-1.5em}.ql-editor ol li:not(.ql-direction-rtl),.ql-editor ul li:not(.ql-direction-rtl){padding-left:1.5em}.ql-editor ol li.ql-direction-rtl,.ql-editor ul li.ql-direction-rtl{padding-right:1.5em}.ql-editor ol li{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.ql-editor ol li:before{content:counter(list-0,decimal) ". "}.ql-editor ol li.ql-indent-1{counter-increment:list-1}.ql-editor ol li.ql-indent-1:before{content:counter(list-1,lower-alpha) ". "}.ql-editor ol li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-2{counter-increment:list-2}.ql-editor ol li.ql-indent-2:before{content:counter(list-2,lower-roman) ". "}.ql-editor ol li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-3{counter-increment:list-3}.ql-editor ol li.ql-indent-3:before{content:counter(list-3,decimal) ". "}.ql-editor ol li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-4{counter-increment:list-4}.ql-editor ol li.ql-indent-4:before{content:counter(list-4,lower-alpha) ". "}.ql-editor ol li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-5{counter-increment:list-5}.ql-editor ol li.ql-indent-5:before{content:counter(list-5,lower-roman) ". "}.ql-editor ol li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9}.ql-editor ol li.ql-indent-6{counter-increment:list-6}.ql-editor ol li.ql-indent-6:before{content:counter(list-6,decimal) ". "}.ql-editor ol li.ql-indent-6{counter-reset:list-7 list-8 list-9}.ql-editor ol li.ql-indent-7{counter-increment:list-7}.ql-editor ol li.ql-indent-7:before{content:counter(list-7,lower-alpha) ". "}.ql-editor ol li.ql-indent-7{counter-reset:list-8 list-9}.ql-editor ol li.ql-indent-8{counter-increment:list-8}.ql-editor ol li.ql-indent-8:before{content:counter(list-8,lower-roman) ". "}.ql-editor ol li.ql-indent-8{counter-reset:list-9}.ql-editor ol li.ql-indent-9{counter-increment:list-9}.ql-editor ol li.ql-indent-9:before{content:counter(list-9,decimal) ". "}.ql-editor .ql-indent-1:not(.ql-direction-rtl){padding-left:3em}.ql-editor li.ql-indent-1:not(.ql-direction-rtl){padding-left:4.5em}.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:3em}.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right{padding-right:4.5em}.ql-editor .ql-indent-2:not(.ql-direction-rtl){padding-left:6em}.ql-editor li.ql-indent-2:not(.ql-direction-rtl){padding-left:7.5em}.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:6em}.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right{padding-right:7.5em}.ql-editor .ql-indent-3:not(.ql-direction-rtl){padding-left:9em}.ql-editor li.ql-indent-3:not(.ql-direction-rtl){padding-left:10.5em}.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:9em}.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right{padding-right:10.5em}.ql-editor .ql-indent-4:not(.ql-direction-rtl){padding-left:12em}.ql-editor li.ql-indent-4:not(.ql-direction-rtl){padding-left:13.5em}.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:12em}.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right{padding-right:13.5em}.ql-editor .ql-indent-5:not(.ql-direction-rtl){padding-left:15em}.ql-editor li.ql-indent-5:not(.ql-direction-rtl){padding-left:16.5em}.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:15em}.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right{padding-right:16.5em}.ql-editor .ql-indent-6:not(.ql-direction-rtl){padding-left:18em}.ql-editor li.ql-indent-6:not(.ql-direction-rtl){padding-left:19.5em}.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:18em}.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right{padding-right:19.5em}.ql-editor .ql-indent-7:not(.ql-direction-rtl){padding-left:21em}.ql-editor li.ql-indent-7:not(.ql-direction-rtl){padding-left:22.5em}.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:21em}.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right{padding-right:22.5em}.ql-editor .ql-indent-8:not(.ql-direction-rtl){padding-left:24em}.ql-editor li.ql-indent-8:not(.ql-direction-rtl){padding-left:25.5em}.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:24em}.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right{padding-right:25.5em}.ql-editor .ql-indent-9:not(.ql-direction-rtl){padding-left:27em}.ql-editor li.ql-indent-9:not(.ql-direction-rtl){padding-left:28.5em}.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:27em}.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right{padding-right:28.5em}.ql-editor .ql-video{display:block;max-width:100%}.ql-editor .ql-video.ql-align-center{margin:0 auto}.ql-editor .ql-video.ql-align-right{margin:0 0 0 auto}.ql-editor .ql-bg-black{background-color:#000}.ql-editor .ql-bg-red{background-color:#e60000}.ql-editor .ql-bg-orange{background-color:#f90}.ql-editor .ql-bg-yellow{background-color:#ff0}.ql-editor .ql-bg-green{background-color:#008a00}.ql-editor .ql-bg-blue{background-color:#06c}.ql-editor .ql-bg-purple{background-color:#93f}.ql-editor .ql-color-white{color:#fff}.ql-editor .ql-color-red{color:#e60000}.ql-editor .ql-color-orange{color:#f90}.ql-editor .ql-color-yellow{color:#ff0}.ql-editor .ql-color-green{color:#008a00}.ql-editor .ql-color-blue{color:#06c}.ql-editor .ql-color-purple{color:#93f}.ql-editor .ql-font-serif{font-family:Georgia,Times New Roman,serif}.ql-editor .ql-font-monospace{font-family:Monaco,Courier New,monospace}.ql-editor .ql-size-small{font-size:.75em}.ql-editor .ql-size-large{font-size:1.5em}.ql-editor .ql-size-huge{font-size:2.5em}.ql-editor .ql-direction-rtl{direction:rtl;text-align:inherit}.ql-editor .ql-align-center{text-align:center}.ql-editor .ql-align-justify{text-align:justify}.ql-editor .ql-align-right{text-align:right}.ql-editor.ql-blank:before{color:rgba(0,0,0,.6);content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px}.ql-snow .ql-toolbar:after,.ql-snow.ql-toolbar:after{clear:both;content:"";display:table}.ql-snow .ql-toolbar button,.ql-snow.ql-toolbar button{background:none;border:none;cursor:pointer;display:inline-block;float:left;height:24px;padding:3px 5px;width:28px}.ql-snow .ql-toolbar button svg,.ql-snow.ql-toolbar button svg{float:left;height:100%}.ql-snow .ql-toolbar button:active:hover,.ql-snow.ql-toolbar button:active:hover{outline:none}.ql-snow .ql-toolbar input.ql-image[type=file],.ql-snow.ql-toolbar input.ql-image[type=file]{display:none}.ql-snow .ql-toolbar .ql-picker-item.ql-selected,.ql-snow .ql-toolbar .ql-picker-item:hover,.ql-snow .ql-toolbar .ql-picker-label.ql-active,.ql-snow .ql-toolbar .ql-picker-label:hover,.ql-snow .ql-toolbar button.ql-active,.ql-snow .ql-toolbar button:focus,.ql-snow .ql-toolbar button:hover,.ql-snow.ql-toolbar .ql-picker-item.ql-selected,.ql-snow.ql-toolbar .ql-picker-item:hover,.ql-snow.ql-toolbar .ql-picker-label.ql-active,.ql-snow.ql-toolbar .ql-picker-label:hover,.ql-snow.ql-toolbar button.ql-active,.ql-snow.ql-toolbar button:focus,.ql-snow.ql-toolbar button:hover{color:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-fill,.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:focus .ql-fill,.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow .ql-toolbar button:hover .ql-fill,.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-fill,.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:focus .ql-fill,.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover .ql-fill,.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill{fill:#06c}.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow .ql-toolbar button.ql-active .ql-stroke,.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow .ql-toolbar button:focus .ql-stroke,.ql-snow .ql-toolbar button:focus .ql-stroke-miter,.ql-snow .ql-toolbar button:hover .ql-stroke,.ql-snow .ql-toolbar button:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,.ql-snow.ql-toolbar button.ql-active .ql-stroke,.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,.ql-snow.ql-toolbar button:focus .ql-stroke,.ql-snow.ql-toolbar button:focus .ql-stroke-miter,.ql-snow.ql-toolbar button:hover .ql-stroke,.ql-snow.ql-toolbar button:hover .ql-stroke-miter{stroke:#06c}@media (pointer:coarse){.ql-snow .ql-toolbar button:hover:not(.ql-active),.ql-snow.ql-toolbar button:hover:not(.ql-active){color:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,.ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter{stroke:#444}}.ql-snow,.ql-snow *{box-sizing:border-box}.ql-snow .ql-hidden{display:none}.ql-snow .ql-out-bottom,.ql-snow .ql-out-top{visibility:hidden}.ql-snow .ql-tooltip{position:absolute;transform:translateY(10px)}.ql-snow .ql-tooltip a{cursor:pointer;text-decoration:none}.ql-snow .ql-tooltip.ql-flip{transform:translateY(-10px)}.ql-snow .ql-formats{display:inline-block;vertical-align:middle}.ql-snow .ql-formats:after{clear:both;content:"";display:table}.ql-snow .ql-stroke{fill:none;stroke:#444;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.ql-snow .ql-stroke-miter{fill:none;stroke:#444;stroke-miterlimit:10;stroke-width:2}.ql-snow .ql-fill,.ql-snow .ql-stroke.ql-fill{fill:#444}.ql-snow .ql-empty{fill:none}.ql-snow .ql-even{fill-rule:evenodd}.ql-snow .ql-stroke.ql-thin,.ql-snow .ql-thin{stroke-width:1}.ql-snow .ql-transparent{opacity:.4}.ql-snow .ql-direction svg:last-child{display:none}.ql-snow .ql-direction.ql-active svg:last-child{display:inline}.ql-snow .ql-direction.ql-active svg:first-child{display:none}.ql-snow .ql-editor h1{font-size:2em}.ql-snow .ql-editor h2{font-size:1.5em}.ql-snow .ql-editor h3{font-size:1.17em}.ql-snow .ql-editor h4{font-size:1em}.ql-snow .ql-editor h5{font-size:.83em}.ql-snow .ql-editor h6{font-size:.67em}.ql-snow .ql-editor a{text-decoration:underline}.ql-snow .ql-editor blockquote{border-left:4px solid #ccc;margin-bottom:5px;margin-top:5px;padding-left:16px}.ql-snow .ql-editor code,.ql-snow .ql-editor pre{background-color:#f0f0f0;border-radius:3px}.ql-snow .ql-editor pre{white-space:pre-wrap;margin-bottom:5px;margin-top:5px;padding:5px 10px}.ql-snow .ql-editor code{font-size:85%;padding:2px 4px}.ql-snow .ql-editor pre.ql-syntax{background-color:#23241f;color:#f8f8f2;overflow:visible}.ql-snow .ql-editor img{max-width:100%}.ql-snow .ql-picker{color:#444;display:inline-block;float:left;font-size:14px;font-weight:500;height:24px;position:relative;vertical-align:middle}.ql-snow .ql-picker-label{cursor:pointer;display:inline-block;height:100%;padding-left:8px;padding-right:2px;position:relative;width:100%}.ql-snow .ql-picker-label:before{display:inline-block;line-height:22px}.ql-snow .ql-picker-options{background-color:#fff;display:none;min-width:100%;padding:4px 8px;position:absolute;white-space:nowrap}.ql-snow .ql-picker-options .ql-picker-item{cursor:pointer;display:block;padding-bottom:5px;padding-top:5px}.ql-snow .ql-picker.ql-expanded .ql-picker-label{color:#ccc;z-index:2}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill{fill:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke{stroke:#ccc}.ql-snow .ql-picker.ql-expanded .ql-picker-options{display:block;margin-top:-1px;top:100%;z-index:1}.ql-snow .ql-color-picker,.ql-snow .ql-icon-picker{width:28px}.ql-snow .ql-color-picker .ql-picker-label,.ql-snow .ql-icon-picker .ql-picker-label{padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-label svg,.ql-snow .ql-icon-picker .ql-picker-label svg{right:4px}.ql-snow .ql-icon-picker .ql-picker-options{padding:4px 0}.ql-snow .ql-icon-picker .ql-picker-item{height:24px;width:24px;padding:2px 4px}.ql-snow .ql-color-picker .ql-picker-options{padding:3px 5px;width:152px}.ql-snow .ql-color-picker .ql-picker-item{border:1px solid transparent;float:left;height:16px;margin:2px;padding:0;width:16px}.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg{position:absolute;margin-top:-9px;right:0;top:50%;width:18px}.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=""]):before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=""]):before{content:attr(data-label)}.ql-snow .ql-picker.ql-header{width:98px}.ql-snow .ql-picker.ql-header .ql-picker-item:before,.ql-snow .ql-picker.ql-header .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]:before{content:"Heading 1"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]:before{content:"Heading 2"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]:before{content:"Heading 3"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]:before{content:"Heading 4"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]:before{content:"Heading 5"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before,.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]:before{content:"Heading 6"}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]:before{font-size:2em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]:before{font-size:1.5em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]:before{font-size:1.17em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]:before{font-size:1em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]:before{font-size:.83em}.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]:before{font-size:.67em}.ql-snow .ql-picker.ql-font{width:108px}.ql-snow .ql-picker.ql-font .ql-picker-item:before,.ql-snow .ql-picker.ql-font .ql-picker-label:before{content:"Sans Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]:before{content:"Serif"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before,.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]:before{content:"Monospace"}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]:before{font-family:Georgia,Times New Roman,serif}.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]:before{font-family:Monaco,Courier New,monospace}.ql-snow .ql-picker.ql-size{width:98px}.ql-snow .ql-picker.ql-size .ql-picker-item:before,.ql-snow .ql-picker.ql-size .ql-picker-label:before{content:"Normal"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]:before{content:"Small"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]:before{content:"Large"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before,.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]:before{content:"Huge"}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]:before{font-size:10px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]:before{font-size:18px}.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]:before{font-size:32px}.ql-snow .ql-color-picker.ql-background .ql-picker-item{background-color:#fff}.ql-snow .ql-color-picker.ql-color .ql-picker-item{background-color:#000}.ql-toolbar.ql-snow{border:1px solid #ccc;box-sizing:border-box;font-family:Helvetica Neue,Helvetica,Arial,sans-serif;padding:8px}.ql-toolbar.ql-snow .ql-formats{margin-right:15px}.ql-toolbar.ql-snow .ql-picker-label{border:1px solid transparent}.ql-toolbar.ql-snow .ql-picker-options{border:1px solid transparent;box-shadow:0 2px 8px rgba(0,0,0,.2)}.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label,.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options{border-color:#ccc}.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover{border-color:#000}.ql-toolbar.ql-snow+.ql-container.ql-snow{border-top:0}.ql-snow .ql-tooltip{background-color:#fff;border:1px solid #ccc;box-shadow:0 0 5px #ddd;color:#444;padding:5px 12px;white-space:nowrap}.ql-snow .ql-tooltip:before{content:"Visit URL:";line-height:26px;margin-right:8px}.ql-snow .ql-tooltip input[type=text]{display:none;border:1px solid #ccc;font-size:13px;height:26px;margin:0;padding:3px 5px;width:170px}.ql-snow .ql-tooltip a.ql-preview{display:inline-block;max-width:200px;overflow-x:hidden;text-overflow:ellipsis;vertical-align:top}.ql-snow .ql-tooltip a.ql-action:after{border-right:1px solid #ccc;content:"Edit";margin-left:16px;padding-right:8px}.ql-snow .ql-tooltip a.ql-remove:before{content:"Remove";margin-left:8px}.ql-snow .ql-tooltip a{line-height:26px}.ql-snow .ql-tooltip.ql-editing a.ql-preview,.ql-snow .ql-tooltip.ql-editing a.ql-remove{display:none}.ql-snow .ql-tooltip.ql-editing input[type=text]{display:inline-block}.ql-snow .ql-tooltip.ql-editing a.ql-action:after{border-right:0;content:"Save";padding-right:0}.ql-snow .ql-tooltip[data-mode=link]:before{content:"Enter link:"}.ql-snow .ql-tooltip[data-mode=formula]:before{content:"Enter formula:"}.ql-snow .ql-tooltip[data-mode=video]:before{content:"Enter video:"}.ql-snow a{color:#06c}.ql-container.ql-snow{border:1px solid #ccc}',""]),e["default"]=s},61351:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'.splitpanes{display:flex;width:100%;height:100%}.splitpanes--vertical{flex-direction:row}.splitpanes--horizontal{flex-direction:column}.splitpanes--dragging *{-webkit-user-select:none;-moz-user-select:none;user-select:none}.splitpanes__pane{width:100%;height:100%;overflow:hidden}.splitpanes--vertical .splitpanes__pane{transition:width .2s ease-out}.splitpanes--horizontal .splitpanes__pane{transition:height .2s ease-out}.splitpanes--dragging .splitpanes__pane{transition:none}.splitpanes__splitter{touch-action:none}.splitpanes--vertical>.splitpanes__splitter{min-width:1px;cursor:col-resize}.splitpanes--horizontal>.splitpanes__splitter{min-height:1px;cursor:row-resize}.splitpanes.default-theme .splitpanes__pane{background-color:#f2f2f2}.splitpanes.default-theme .splitpanes__splitter{background-color:#fff;box-sizing:border-box;position:relative;flex-shrink:0}.splitpanes.default-theme .splitpanes__splitter:after,.splitpanes.default-theme .splitpanes__splitter:before{content:"";position:absolute;top:50%;left:50%;background-color:#00000026;transition:background-color .3s}.splitpanes.default-theme .splitpanes__splitter:hover:after,.splitpanes.default-theme .splitpanes__splitter:hover:before{background-color:#00000040}.splitpanes.default-theme .splitpanes__splitter:first-child{cursor:auto}.default-theme.splitpanes .splitpanes .splitpanes__splitter{z-index:1}.default-theme .splitpanes--vertical>.splitpanes__splitter,.default-theme.splitpanes--vertical>.splitpanes__splitter{width:7px;border-left:1px solid #eee;margin-left:-1px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{transform:translateY(-50%);width:1px;height:30px}.default-theme .splitpanes--vertical>.splitpanes__splitter:before,.default-theme.splitpanes--vertical>.splitpanes__splitter:before{margin-left:-2px}.default-theme .splitpanes--vertical>.splitpanes__splitter:after,.default-theme.splitpanes--vertical>.splitpanes__splitter:after{margin-left:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter,.default-theme.splitpanes--horizontal>.splitpanes__splitter{height:7px;border-top:1px solid #eee;margin-top:-1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{transform:translate(-50%);width:30px;height:1px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:before,.default-theme.splitpanes--horizontal>.splitpanes__splitter:before{margin-top:-2px}.default-theme .splitpanes--horizontal>.splitpanes__splitter:after,.default-theme.splitpanes--horizontal>.splitpanes__splitter:after{margin-top:1px}',""]),e["default"]=s},68336:function(t,e,n){"use strict";n.r(e);var r=n(31601),i=n.n(r),o=n(76314),a=n.n(o),s=a()(i());s.push([t.id,'@keyframes plyr-progress{to{background-position:25px 0;background-position:var(--plyr-progress-loading-size,25px) 0}}@keyframes plyr-popup{0%{opacity:.5;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes plyr-fade-in{0%{opacity:0}to{opacity:1}}.plyr{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;align-items:center;direction:ltr;display:flex;flex-direction:column;font-family:inherit;font-family:var(--plyr-font-family,inherit);font-variant-numeric:tabular-nums;font-weight:400;font-weight:var(--plyr-font-weight-regular,400);height:100%;line-height:1.7;line-height:var(--plyr-line-height,1.7);max-width:100%;min-width:200px;position:relative;text-shadow:none;transition:box-shadow .3s ease;z-index:0}.plyr audio,.plyr iframe,.plyr video{display:block;height:100%;width:100%}.plyr button{font:inherit;line-height:inherit;width:auto}.plyr:focus{outline:0}.plyr--full-ui{box-sizing:border-box}.plyr--full-ui *,.plyr--full-ui :after,.plyr--full-ui :before{box-sizing:inherit}.plyr--full-ui a,.plyr--full-ui button,.plyr--full-ui input,.plyr--full-ui label{touch-action:manipulation}.plyr__badge{background:#4a5464;background:var(--plyr-badge-background,#4a5464);border-radius:2px;border-radius:var(--plyr-badge-border-radius,2px);color:#fff;color:var(--plyr-badge-text-color,#fff);font-size:9px;font-size:var(--plyr-font-size-badge,9px);line-height:1;padding:3px 4px}.plyr--full-ui ::-webkit-media-text-track-container{display:none}.plyr__captions{animation:plyr-fade-in .3s ease;bottom:0;display:none;font-size:13px;font-size:var(--plyr-font-size-small,13px);left:0;padding:10px;padding:var(--plyr-control-spacing,10px);position:absolute;text-align:center;transition:transform .4s ease-in-out;width:100%}.plyr__captions span:empty{display:none}@media (min-width:480px){.plyr__captions{font-size:15px;font-size:var(--plyr-font-size-base,15px);padding:20px;padding:calc(var(--plyr-control-spacing,10px)*2)}}@media (min-width:768px){.plyr__captions{font-size:18px;font-size:var(--plyr-font-size-large,18px)}}.plyr--captions-active .plyr__captions{display:block}.plyr:not(.plyr--hide-controls) .plyr__controls:not(:empty)~.plyr__captions{transform:translateY(-40px);transform:translateY(calc(var(--plyr-control-spacing,10px)*-4))}.plyr__caption{background:rgba(0,0,0,.8);background:var(--plyr-captions-background,rgba(0,0,0,.8));border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone;color:#fff;color:var(--plyr-captions-text-color,#fff);line-height:185%;padding:.2em .5em;white-space:pre-wrap}.plyr__caption div{display:inline}.plyr__control{background:0 0;border:0;border-radius:3px;border-radius:var(--plyr-control-radius,3px);color:inherit;cursor:pointer;flex-shrink:0;overflow:visible;padding:7px;padding:calc(var(--plyr-control-spacing,10px)*.7);position:relative;transition:all .3s ease}.plyr__control svg{display:block;fill:currentColor;height:18px;height:var(--plyr-control-icon-size,18px);pointer-events:none;width:18px;width:var(--plyr-control-icon-size,18px)}.plyr__control:focus{outline:0}.plyr__control.plyr__tab-focus{outline-color:#00b3ff;outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}a.plyr__control{text-decoration:none}.plyr__control.plyr__control--pressed .icon--not-pressed,.plyr__control.plyr__control--pressed .label--not-pressed,.plyr__control:not(.plyr__control--pressed) .icon--pressed,.plyr__control:not(.plyr__control--pressed) .label--pressed,a.plyr__control:after,a.plyr__control:before{display:none}.plyr--full-ui ::-webkit-media-controls{display:none}.plyr__controls{align-items:center;display:flex;justify-content:flex-end;text-align:center}.plyr__controls .plyr__progress__container{flex:1;min-width:0}.plyr__controls .plyr__controls__item{margin-left:2.5px;margin-left:calc(var(--plyr-control-spacing,10px)/4)}.plyr__controls .plyr__controls__item:first-child{margin-left:0;margin-right:auto}.plyr__controls .plyr__controls__item.plyr__progress__container{padding-left:2.5px;padding-left:calc(var(--plyr-control-spacing,10px)/4)}.plyr__controls .plyr__controls__item.plyr__time{padding:0 5px;padding:0 calc(var(--plyr-control-spacing,10px)/2)}.plyr__controls .plyr__controls__item.plyr__progress__container:first-child,.plyr__controls .plyr__controls__item.plyr__time+.plyr__time,.plyr__controls .plyr__controls__item.plyr__time:first-child{padding-left:0}.plyr [data-plyr=airplay],.plyr [data-plyr=captions],.plyr [data-plyr=fullscreen],.plyr [data-plyr=pip],.plyr__controls:empty{display:none}.plyr--airplay-supported [data-plyr=airplay],.plyr--captions-enabled [data-plyr=captions],.plyr--fullscreen-enabled [data-plyr=fullscreen],.plyr--pip-supported [data-plyr=pip]{display:inline-block}.plyr__menu{display:flex;position:relative}.plyr__menu .plyr__control svg{transition:transform .3s ease}.plyr__menu .plyr__control[aria-expanded=true] svg{transform:rotate(90deg)}.plyr__menu .plyr__control[aria-expanded=true] .plyr__tooltip{display:none}.plyr__menu__container{animation:plyr-popup .2s ease;background:hsla(0,0%,100%,.9);background:var(--plyr-menu-background,hsla(0,0%,100%,.9));border-radius:4px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-menu-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-menu-color,#4a5464);font-size:15px;font-size:var(--plyr-font-size-base,15px);margin-bottom:10px;position:absolute;right:-3px;text-align:left;white-space:nowrap;z-index:3}.plyr__menu__container>div{overflow:hidden;transition:height .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1)}.plyr__menu__container:after{border:4px solid transparent;border:var(--plyr-menu-arrow-size,4px) solid transparent;border-top-color:hsla(0,0%,100%,.9);border-top-color:var(--plyr-menu-background,hsla(0,0%,100%,.9));content:"";height:0;position:absolute;right:14px;right:calc(var(--plyr-control-icon-size,18px)/2 + var(--plyr-control-spacing,10px)*.7 - var(--plyr-menu-arrow-size,4px)/2);top:100%;width:0}.plyr__menu__container [role=menu]{padding:7px;padding:calc(var(--plyr-control-spacing,10px)*.7)}.plyr__menu__container [role=menuitem],.plyr__menu__container [role=menuitemradio]{margin-top:2px}.plyr__menu__container [role=menuitem]:first-child,.plyr__menu__container [role=menuitemradio]:first-child{margin-top:0}.plyr__menu__container .plyr__control{align-items:center;color:#4a5464;color:var(--plyr-menu-color,#4a5464);display:flex;font-size:13px;font-size:var(--plyr-font-size-menu,var(--plyr-font-size-small,13px));padding-bottom:4.66667px;padding-bottom:calc(var(--plyr-control-spacing,10px)*.7/1.5);padding-left:10.5px;padding-left:calc(var(--plyr-control-spacing,10px)*.7*1.5);padding-right:10.5px;padding-right:calc(var(--plyr-control-spacing,10px)*.7*1.5);padding-top:4.66667px;padding-top:calc(var(--plyr-control-spacing,10px)*.7/1.5);-webkit-user-select:none;-moz-user-select:none;user-select:none;width:100%}.plyr__menu__container .plyr__control>span{align-items:inherit;display:flex;width:100%}.plyr__menu__container .plyr__control:after{border:4px solid transparent;border:var(--plyr-menu-item-arrow-size,4px) solid transparent;content:"";position:absolute;top:50%;transform:translateY(-50%)}.plyr__menu__container .plyr__control--forward{padding-right:28px;padding-right:calc(var(--plyr-control-spacing,10px)*.7*4)}.plyr__menu__container .plyr__control--forward:after{border-left-color:#728197;border-left-color:var(--plyr-menu-arrow-color,#728197);right:6.5px;right:calc(var(--plyr-control-spacing,10px)*.7*1.5 - var(--plyr-menu-item-arrow-size,4px))}.plyr__menu__container .plyr__control--forward.plyr__tab-focus:after,.plyr__menu__container .plyr__control--forward:hover:after{border-left-color:currentColor}.plyr__menu__container .plyr__control--back{font-weight:400;font-weight:var(--plyr-font-weight-regular,400);margin:7px;margin:calc(var(--plyr-control-spacing,10px)*.7);margin-bottom:3.5px;margin-bottom:calc(var(--plyr-control-spacing,10px)*.7/2);padding-left:28px;padding-left:calc(var(--plyr-control-spacing,10px)*.7*4);position:relative;width:calc(100% - 14px);width:calc(100% - var(--plyr-control-spacing,10px)*.7*2)}.plyr__menu__container .plyr__control--back:after{border-right-color:#728197;border-right-color:var(--plyr-menu-arrow-color,#728197);left:6.5px;left:calc(var(--plyr-control-spacing,10px)*.7*1.5 - var(--plyr-menu-item-arrow-size,4px))}.plyr__menu__container .plyr__control--back:before{background:#dcdfe5;background:var(--plyr-menu-back-border-color,#dcdfe5);box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 var(--plyr-menu-back-border-shadow-color,#fff);content:"";height:1px;left:0;margin-top:3.5px;margin-top:calc(var(--plyr-control-spacing,10px)*.7/2);overflow:hidden;position:absolute;right:0;top:100%}.plyr__menu__container .plyr__control--back.plyr__tab-focus:after,.plyr__menu__container .plyr__control--back:hover:after{border-right-color:currentColor}.plyr__menu__container .plyr__control[role=menuitemradio]{padding-left:7px;padding-left:calc(var(--plyr-control-spacing,10px)*.7)}.plyr__menu__container .plyr__control[role=menuitemradio]:after,.plyr__menu__container .plyr__control[role=menuitemradio]:before{border-radius:100%}.plyr__menu__container .plyr__control[role=menuitemradio]:before{background:rgba(0,0,0,.1);content:"";display:block;flex-shrink:0;height:16px;margin-right:10px;margin-right:var(--plyr-control-spacing,10px);transition:all .3s ease;width:16px}.plyr__menu__container .plyr__control[role=menuitemradio]:after{background:#fff;border:0;height:6px;left:12px;opacity:0;top:50%;transform:translateY(-50%) scale(0);transition:transform .3s ease,opacity .3s ease;width:6px}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:before{background:#00b3ff;background:var(--plyr-control-toggle-checked-background,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)))}.plyr__menu__container .plyr__control[role=menuitemradio][aria-checked=true]:after{opacity:1;transform:translateY(-50%) scale(1)}.plyr__menu__container .plyr__control[role=menuitemradio].plyr__tab-focus:before,.plyr__menu__container .plyr__control[role=menuitemradio]:hover:before{background:rgba(35,40,47,.1)}.plyr__menu__container .plyr__menu__value{align-items:center;display:flex;margin-left:auto;margin-right:calc(-7px - -2);margin-right:calc(var(--plyr-control-spacing,10px)*.7*-1 - -2);overflow:hidden;padding-left:24.5px;padding-left:calc(var(--plyr-control-spacing,10px)*.7*3.5);pointer-events:none}.plyr--full-ui input[type=range]{-webkit-appearance:none;background:0 0;border:0;border-radius:26px;border-radius:calc(var(--plyr-range-thumb-height,13px)*2);color:#00b3ff;color:var(--plyr-range-fill-background,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));display:block;height:19px;height:calc(var(--plyr-range-thumb-active-shadow-width,3px)*2 + var(--plyr-range-thumb-height,13px));margin:0;padding:0;transition:box-shadow .3s ease;width:100%}.plyr--full-ui input[type=range]::-webkit-slider-runnable-track{background:0 0;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-webkit-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-webkit-user-select:none;user-select:none;background-image:linear-gradient(90deg,currentColor 0,transparent 0);background-image:linear-gradient(to right,currentColor var(--value,0),transparent var(--value,0))}.plyr--full-ui input[type=range]::-webkit-slider-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-webkit-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px);-webkit-appearance:none;margin-top:-4px;margin-top:calc((var(--plyr-range-thumb-height,13px) - var(--plyr-range-track-height,5px))/2*-1)}.plyr--full-ui input[type=range]::-moz-range-track{background:0 0;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-moz-transition:box-shadow .3s ease;transition:box-shadow .3s ease;-moz-user-select:none;user-select:none}.plyr--full-ui input[type=range]::-moz-range-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-moz-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px)}.plyr--full-ui input[type=range]::-moz-range-progress{background:currentColor;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:5px;height:var(--plyr-range-track-height,5px)}.plyr--full-ui input[type=range]::-ms-track{color:transparent}.plyr--full-ui input[type=range]::-ms-fill-upper,.plyr--full-ui input[type=range]::-ms-track{background:0 0;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none}.plyr--full-ui input[type=range]::-ms-fill-lower{background:0 0;border:0;border-radius:2.5px;border-radius:calc(var(--plyr-range-track-height,5px)/2);height:5px;height:var(--plyr-range-track-height,5px);-ms-transition:box-shadow .3s ease;transition:box-shadow .3s ease;user-select:none;background:currentColor}.plyr--full-ui input[type=range]::-ms-thumb{background:#fff;background:var(--plyr-range-thumb-background,#fff);border:0;border-radius:100%;box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2));height:13px;height:var(--plyr-range-thumb-height,13px);position:relative;-ms-transition:all .2s ease;transition:all .2s ease;width:13px;width:var(--plyr-range-thumb-height,13px);margin-top:0}.plyr--full-ui input[type=range]::-ms-tooltip{display:none}.plyr--full-ui input[type=range]:focus{outline:0}.plyr--full-ui input[type=range]::-moz-focus-outer{border:0}.plyr--full-ui input[type=range].plyr__tab-focus::-webkit-slider-runnable-track{outline-color:#00b3ff;outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr--full-ui input[type=range].plyr__tab-focus::-moz-range-track{outline-color:#00b3ff;outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr--full-ui input[type=range].plyr__tab-focus::-ms-track{outline-color:#00b3ff;outline-color:var(--plyr-tab-focus-color,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));outline-offset:2px;outline-style:dotted;outline-width:3px}.plyr__poster{background-color:#000;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;height:100%;left:0;opacity:0;position:absolute;top:0;transition:opacity .2s ease;width:100%;z-index:1}.plyr--stopped.plyr__poster-enabled .plyr__poster{opacity:1}.plyr__time{font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px))}.plyr__time+.plyr__time:before{content:"\\2044";margin-right:10px;margin-right:var(--plyr-control-spacing,10px)}@media (max-width:calc(768px - 1)){.plyr__time+.plyr__time{display:none}}.plyr__tooltip{background:hsla(0,0%,100%,.9);background:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:3px;border-radius:var(--plyr-tooltip-radius,3px);bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));color:#4a5464;color:var(--plyr-tooltip-color,#4a5464);font-size:13px;font-size:var(--plyr-font-size-small,13px);font-weight:400;font-weight:var(--plyr-font-weight-regular,400);left:50%;line-height:1.3;margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing,10px)/2*2);opacity:0;padding:5px 7.5px;padding:calc(var(--plyr-control-spacing,10px)/2) calc(var(--plyr-control-spacing,10px)/2*1.5);pointer-events:none;position:absolute;transform:translate(-50%,10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;white-space:nowrap;z-index:2}.plyr__tooltip:before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid hsla(0,0%,100%,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size,4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr .plyr__control.plyr__tab-focus .plyr__tooltip,.plyr .plyr__control:hover .plyr__tooltip,.plyr__tooltip--visible{opacity:1;transform:translate(-50%) scale(1)}.plyr .plyr__control:hover .plyr__tooltip{z-index:3}.plyr__controls>.plyr__control:first-child .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip{left:0;transform:translateY(10px) scale(.8);transform-origin:0 100%}.plyr__controls>.plyr__control:first-child .plyr__tooltip:before,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip:before{left:16px;left:calc(var(--plyr-control-icon-size,18px)/2 + var(--plyr-control-spacing,10px)*.7)}.plyr__controls>.plyr__control:last-child .plyr__tooltip{left:auto;right:0;transform:translateY(10px) scale(.8);transform-origin:100% 100%}.plyr__controls>.plyr__control:last-child .plyr__tooltip:before{left:auto;right:16px;right:calc(var(--plyr-control-icon-size,18px)/2 + var(--plyr-control-spacing,10px)*.7);transform:translateX(50%)}.plyr__controls>.plyr__control:first-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control .plyr__tooltip--visible,.plyr__controls>.plyr__control:first-child+.plyr__control.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child+.plyr__control:hover .plyr__tooltip,.plyr__controls>.plyr__control:first-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:first-child:hover .plyr__tooltip,.plyr__controls>.plyr__control:last-child .plyr__tooltip--visible,.plyr__controls>.plyr__control:last-child.plyr__tab-focus .plyr__tooltip,.plyr__controls>.plyr__control:last-child:hover .plyr__tooltip{transform:translate(0) scale(1)}.plyr__progress{left:6.5px;left:calc(var(--plyr-range-thumb-height,13px)*.5);margin-right:13px;margin-right:var(--plyr-range-thumb-height,13px);position:relative}.plyr__progress input[type=range],.plyr__progress__buffer{margin-left:-6.5px;margin-left:calc(var(--plyr-range-thumb-height,13px)*-.5);margin-right:-6.5px;margin-right:calc(var(--plyr-range-thumb-height,13px)*-.5);width:calc(100% + 13px);width:calc(100% + var(--plyr-range-thumb-height,13px))}.plyr__progress input[type=range]{position:relative;z-index:2}.plyr__progress .plyr__tooltip{font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px));left:0}.plyr__progress__buffer{-webkit-appearance:none;background:0 0;border:0;border-radius:100px;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin-top:-2.5px;margin-top:calc((var(--plyr-range-track-height,5px)/2)*-1);padding:0;position:absolute;top:50%}.plyr__progress__buffer::-webkit-progress-bar{background:0 0}.plyr__progress__buffer::-webkit-progress-value{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-webkit-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-moz-progress-bar{background:currentColor;border-radius:100px;min-width:5px;min-width:var(--plyr-range-track-height,5px);-moz-transition:width .2s ease;transition:width .2s ease}.plyr__progress__buffer::-ms-fill{border-radius:100px;-ms-transition:width .2s ease;transition:width .2s ease}.plyr--loading .plyr__progress__buffer{animation:plyr-progress 1s linear infinite;background-image:linear-gradient(-45deg,rgba(35,40,47,.6) 25%,transparent 0,transparent 50%,rgba(35,40,47,.6) 0,rgba(35,40,47,.6) 75%,transparent 0,transparent);background-image:linear-gradient(-45deg,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 25%,transparent 25%,transparent 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 50%,var(--plyr-progress-loading-background,rgba(35,40,47,.6)) 75%,transparent 75%,transparent);background-repeat:repeat-x;background-size:25px 25px;background-size:var(--plyr-progress-loading-size,25px) var(--plyr-progress-loading-size,25px);color:transparent}.plyr--video.plyr--loading .plyr__progress__buffer{background-color:hsla(0,0%,100%,.25);background-color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr--audio.plyr--loading .plyr__progress__buffer{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr__volume{align-items:center;display:flex;max-width:110px;min-width:80px;position:relative;width:20%}.plyr__volume input[type=range]{margin-left:5px;margin-left:calc(var(--plyr-control-spacing,10px)/2);margin-right:5px;margin-right:calc(var(--plyr-control-spacing,10px)/2);position:relative;z-index:2}.plyr--is-ios .plyr__volume{min-width:0;width:auto}.plyr--audio{display:block}.plyr--audio .plyr__controls{background:#fff;background:var(--plyr-audio-controls-background,#fff);border-radius:inherit;color:#4a5464;color:var(--plyr-audio-control-color,#4a5464);padding:10px;padding:var(--plyr-control-spacing,10px)}.plyr--audio .plyr__control.plyr__tab-focus,.plyr--audio .plyr__control:hover,.plyr--audio .plyr__control[aria-expanded=true]{background:#00b3ff;background:var(--plyr-audio-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));color:#fff;color:var(--plyr-audio-control-color-hover,#fff)}.plyr--full-ui.plyr--audio input[type=range]::-webkit-slider-runnable-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-moz-range-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]::-ms-track{background-color:rgba(193,200,209,.6);background-color:var(--plyr-audio-range-track-background,var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6)))}.plyr--full-ui.plyr--audio input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--full-ui.plyr--audio input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px rgba(35,40,47,.1);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,rgba(35,40,47,.1))}.plyr--audio .plyr__progress__buffer{color:rgba(193,200,209,.6);color:var(--plyr-audio-progress-buffered-background,rgba(193,200,209,.6))}.plyr--video{background:#000;overflow:hidden}.plyr--video.plyr--menu-open{overflow:visible}.plyr__video-wrapper{background:#000;height:100%;margin:auto;overflow:hidden;position:relative;width:100%}.plyr__video-embed,.plyr__video-wrapper--fixed-ratio{height:0;padding-bottom:56.25%}.plyr__video-embed iframe,.plyr__video-wrapper--fixed-ratio video{border:0;left:0;position:absolute;top:0}.plyr--full-ui .plyr__video-embed>.plyr__video-embed__container{padding-bottom:240%;position:relative;transform:translateY(-38.28125%)}.plyr--video .plyr__controls{background:linear-gradient(transparent,rgba(0,0,0,.75));background:var(--plyr-video-controls-background,linear-gradient(transparent,rgba(0,0,0,.75)));border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;bottom:0;color:#fff;color:var(--plyr-video-control-color,#fff);left:0;padding:5px;padding:calc(var(--plyr-control-spacing,10px)/2);padding-top:20px;padding-top:calc(var(--plyr-control-spacing,10px)*2);position:absolute;right:0;transition:opacity .4s ease-in-out,transform .4s ease-in-out;z-index:3}@media (min-width:480px){.plyr--video .plyr__controls{padding:10px;padding:var(--plyr-control-spacing,10px);padding-top:35px;padding-top:calc(var(--plyr-control-spacing,10px)*3.5)}}.plyr--video.plyr--hide-controls .plyr__controls{opacity:0;pointer-events:none;transform:translateY(100%)}.plyr--video .plyr__control.plyr__tab-focus,.plyr--video .plyr__control:hover,.plyr--video .plyr__control[aria-expanded=true]{background:#00b3ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));color:#fff;color:var(--plyr-video-control-color-hover,#fff)}.plyr__control--overlaid{background:#00b3ff;background:var(--plyr-video-control-background-hover,var(--plyr-color-main,var(--plyr-color-main,#00b3ff)));border:0;border-radius:100%;color:#fff;color:var(--plyr-video-control-color,#fff);display:none;left:50%;opacity:.9;padding:15px;padding:calc(var(--plyr-control-spacing,10px)*1.5);position:absolute;top:50%;transform:translate(-50%,-50%);transition:.3s;z-index:2}.plyr__control--overlaid svg{left:2px;position:relative}.plyr__control--overlaid:focus,.plyr__control--overlaid:hover{opacity:1}.plyr--playing .plyr__control--overlaid{opacity:0;visibility:hidden}.plyr--full-ui.plyr--video .plyr__control--overlaid{display:block}.plyr--full-ui.plyr--video input[type=range]::-webkit-slider-runnable-track{background-color:hsla(0,0%,100%,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-moz-range-track{background-color:hsla(0,0%,100%,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]::-ms-track{background-color:hsla(0,0%,100%,.25);background-color:var(--plyr-video-range-track-background,var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25)))}.plyr--full-ui.plyr--video input[type=range]:active::-webkit-slider-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px hsla(0,0%,100%,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-moz-range-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px hsla(0,0%,100%,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--full-ui.plyr--video input[type=range]:active::-ms-thumb{box-shadow:0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2),0 0 0 3px hsla(0,0%,100%,.5);box-shadow:var(--plyr-range-thumb-shadow,0 1px 1px rgba(35,40,47,.15),0 0 0 1px rgba(35,40,47,.2)),0 0 0 var(--plyr-range-thumb-active-shadow-width,3px) var(--plyr-audio-range-thumb-active-shadow-color,hsla(0,0%,100%,.5))}.plyr--video .plyr__progress__buffer{color:hsla(0,0%,100%,.25);color:var(--plyr-video-progress-buffered-background,hsla(0,0%,100%,.25))}.plyr:fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:fullscreen video{height:100%}.plyr:fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}.plyr:fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-webkit-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-webkit-full-screen video{height:100%}.plyr:-webkit-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-webkit-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-webkit-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-webkit-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-webkit-full-screen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-moz-full-screen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-moz-full-screen video{height:100%}.plyr:-moz-full-screen .plyr__video-wrapper{height:100%;position:static}.plyr:-moz-full-screen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-moz-full-screen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-moz-full-screen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-moz-full-screen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr:-ms-fullscreen{background:#000;border-radius:0!important;height:100%;margin:0;width:100%}.plyr:-ms-fullscreen video{height:100%}.plyr:-ms-fullscreen .plyr__video-wrapper{height:100%;position:static}.plyr:-ms-fullscreen.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen{display:block}.plyr:-ms-fullscreen .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr:-ms-fullscreen.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr:-ms-fullscreen .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr--fullscreen-fallback{background:#000;border-radius:0!important;height:100%;margin:0;width:100%;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:10000000}.plyr--fullscreen-fallback video{height:100%}.plyr--fullscreen-fallback .plyr__video-wrapper{height:100%;position:static}.plyr--fullscreen-fallback.plyr--vimeo .plyr__video-wrapper{height:0;position:relative}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen{display:block}.plyr--fullscreen-fallback .plyr__control .icon--exit-fullscreen+svg{display:none}.plyr--fullscreen-fallback.plyr--hide-controls{cursor:none}@media (min-width:1024px){.plyr--fullscreen-fallback .plyr__captions{font-size:21px;font-size:var(--plyr-font-size-xlarge,21px)}}.plyr__ads{border-radius:inherit;bottom:0;cursor:pointer;left:0;overflow:hidden;position:absolute;right:0;top:0;z-index:-1}.plyr__ads>div,.plyr__ads>div iframe{height:100%;position:absolute;width:100%}.plyr__ads:after{background:#23282f;border-radius:2px;bottom:10px;bottom:var(--plyr-control-spacing,10px);color:#fff;content:attr(data-badge-text);font-size:11px;padding:2px 6px;pointer-events:none;position:absolute;right:10px;right:var(--plyr-control-spacing,10px);z-index:3}.plyr__ads:after:empty{display:none}.plyr__cues{background:currentColor;display:block;height:5px;height:var(--plyr-range-track-height,5px);left:0;margin:-var(--plyr-range-track-height,5px)/2 0 0;opacity:.8;position:absolute;top:50%;width:3px;z-index:3}.plyr__preview-thumb{background-color:hsla(0,0%,100%,.9);background-color:var(--plyr-tooltip-background,hsla(0,0%,100%,.9));border-radius:3px;bottom:100%;box-shadow:0 1px 2px rgba(0,0,0,.15);box-shadow:var(--plyr-tooltip-shadow,0 1px 2px rgba(0,0,0,.15));margin-bottom:10px;margin-bottom:calc(var(--plyr-control-spacing,10px)/2*2);opacity:0;padding:3px;padding:var(--plyr-tooltip-radius,3px);pointer-events:none;position:absolute;transform:translateY(10px) scale(.8);transform-origin:50% 100%;transition:transform .2s ease .1s,opacity .2s ease .1s;z-index:2}.plyr__preview-thumb--is-shown{opacity:1;transform:translate(0) scale(1)}.plyr__preview-thumb:before{border-left:4px solid transparent;border-left:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-right:4px solid transparent;border-right:var(--plyr-tooltip-arrow-size,4px) solid transparent;border-top:4px solid hsla(0,0%,100%,.9);border-top:var(--plyr-tooltip-arrow-size,4px) solid var(--plyr-tooltip-background,hsla(0,0%,100%,.9));bottom:-4px;bottom:calc(var(--plyr-tooltip-arrow-size,4px)*-1);content:"";height:0;left:50%;position:absolute;transform:translateX(-50%);width:0;z-index:2}.plyr__preview-thumb__image-container{background:#c1c8d1;border-radius:2px;border-radius:calc(var(--plyr-tooltip-radius,3px) - 1px);overflow:hidden;position:relative;z-index:0}.plyr__preview-thumb__image-container img{height:100%;left:0;max-height:none;max-width:none;position:absolute;top:0;width:100%}.plyr__preview-thumb__time-container{bottom:6px;left:0;position:absolute;right:0;white-space:nowrap;z-index:3}.plyr__preview-thumb__time-container span{background-color:rgba(0,0,0,.55);border-radius:2px;border-radius:calc(var(--plyr-tooltip-radius,3px) - 1px);color:#fff;font-size:13px;font-size:var(--plyr-font-size-time,var(--plyr-font-size-small,13px));padding:3px 6px}.plyr__preview-scrubbing{bottom:0;filter:blur(1px);height:100%;left:0;margin:auto;opacity:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .3s ease;width:100%;z-index:1}.plyr__preview-scrubbing--is-shown{opacity:1}.plyr__preview-scrubbing img{height:100%;left:0;max-height:none;max-width:none;-o-object-fit:contain;object-fit:contain;position:absolute;top:0;width:100%}.plyr--no-transition{transition:none!important}.plyr__sr-only{clip:rect(1px,1px,1px,1px);overflow:hidden;border:0!important;height:1px!important;padding:0!important;position:absolute!important;width:1px!important}.plyr [hidden]{display:none!important}',""]),e["default"]=s},76314:function(t){"use strict";t.exports=function(t){var e=[];return e.toString=function(){return this.map((function(e){var n="",r="undefined"!==typeof e[5];return e[4]&&(n+="@supports (".concat(e[4],") {")),e[2]&&(n+="@media ".concat(e[2]," {")),r&&(n+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),n+=t(e),r&&(n+="}"),e[2]&&(n+="}"),e[4]&&(n+="}"),n})).join("")},e.i=function(t,n,r,i,o){"string"===typeof t&&(t=[[null,t,void 0]]);var a={};if(r)for(var s=0;s0?" ".concat(u[5]):""," {").concat(u[1],"}")),u[5]=o),n&&(u[2]?(u[1]="@media ".concat(u[2]," {").concat(u[1],"}"),u[2]=n):u[2]=n),i&&(u[4]?(u[1]="@supports (".concat(u[4],") {").concat(u[1],"}"),u[4]=i):u[4]="".concat(i)),e.push(u))}},e}},4417:function(t){"use strict";t.exports=function(t,e){return e||(e={}),t?(t=String(t.__esModule?t.default:t),/^['"].*['"]$/.test(t)&&(t=t.slice(1,-1)),e.hash&&(t+=e.hash),/["'() \t\n]|(%20)/.test(t)||e.needQuotes?'"'.concat(t.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):t):t}},31601:function(t){"use strict";t.exports=function(t){return t[1]}},88572:function(t,e,n){var r=n(10516);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("1e94876c",r,!0,{sourceMap:!1,shadowMode:!1})},90339:function(t,e,n){var r=n(91067);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("4fe7d5ea",r,!0,{sourceMap:!1,shadowMode:!1})},715:function(t,e,n){var r=n(44531);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("853b2f26",r,!0,{sourceMap:!1,shadowMode:!1})},74898:function(t,e,n){var r=n(47482);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("046587fa",r,!0,{sourceMap:!1,shadowMode:!1})},58220:function(t,e,n){var r=n(12740);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("36791866",r,!0,{sourceMap:!1,shadowMode:!1})},69218:function(t,e,n){var r=n(25050);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("1a203058",r,!0,{sourceMap:!1,shadowMode:!1})},45089:function(t,e,n){var r=n(13737);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("1b850b02",r,!0,{sourceMap:!1,shadowMode:!1})},46:function(t,e,n){var r=n(22310);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("585ea3cc",r,!0,{sourceMap:!1,shadowMode:!1})},93856:function(t,e,n){var r=n(50152);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("2ba52f6a",r,!0,{sourceMap:!1,shadowMode:!1})},79060:function(t,e,n){var r=n(42524);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("03e77b38",r,!0,{sourceMap:!1,shadowMode:!1})},27512:function(t,e,n){var r=n(4256);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("7ff80c9c",r,!0,{sourceMap:!1,shadowMode:!1})},71404:function(t,e,n){var r=n(43156);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("956b24d2",r,!0,{sourceMap:!1,shadowMode:!1})},20979:function(t,e,n){var r=n(52683);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("03a06468",r,!0,{sourceMap:!1,shadowMode:!1})},20779:function(t,e,n){var r=n(61139);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("42d7098a",r,!0,{sourceMap:!1,shadowMode:!1})},95058:function(t,e,n){var r=n(3338);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("1a99bb5d",r,!0,{sourceMap:!1,shadowMode:!1})},22612:function(t,e,n){var r=n(42092);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("06592b09",r,!0,{sourceMap:!1,shadowMode:!1})},5252:function(t,e,n){var r=n(44268);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("7e28ec46",r,!0,{sourceMap:!1,shadowMode:!1})},81338:function(t,e,n){var r=n(22610);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("790b24d6",r,!0,{sourceMap:!1,shadowMode:!1})},85366:function(t,e,n){var r=n(61438);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("303a39b6",r,!0,{sourceMap:!1,shadowMode:!1})},66602:function(t,e,n){var r=n(6834);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("b656bcde",r,!0,{sourceMap:!1,shadowMode:!1})},13464:function(t,e,n){var r=n(95232);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("825acd50",r,!0,{sourceMap:!1,shadowMode:!1})},41770:function(t,e,n){var r=n(97010);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("e811411c",r,!0,{sourceMap:!1,shadowMode:!1})},12435:function(t,e,n){var r=n(91275);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("ef64ef86",r,!0,{sourceMap:!1,shadowMode:!1})},15610:function(t,e,n){var r=n(35122);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("5bd0a102",r,!0,{sourceMap:!1,shadowMode:!1})},40604:function(t,e,n){var r=n(48196);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("95e83da8",r,!0,{sourceMap:!1,shadowMode:!1})},2176:function(t,e,n){var r=n(99400);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("6101b9a2",r,!0,{sourceMap:!1,shadowMode:!1})},48860:function(t,e,n){var r=n(34020);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("555317bb",r,!0,{sourceMap:!1,shadowMode:!1})},22046:function(t,e,n){var r=n(78454);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("37bc0bfb",r,!0,{sourceMap:!1,shadowMode:!1})},13331:function(t,e,n){var r=n(74139);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("b6c7d044",r,!0,{sourceMap:!1,shadowMode:!1})},64277:function(t,e,n){var r=n(59933);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("7c529a58",r,!0,{sourceMap:!1,shadowMode:!1})},37465:function(t,e,n){var r=n(29777);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("5533bfa1",r,!0,{sourceMap:!1,shadowMode:!1})},95882:function(t,e,n){var r=n(67634);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("3652d537",r,!0,{sourceMap:!1,shadowMode:!1})},68346:function(t,e,n){var r=n(68178);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("6bd416cc",r,!0,{sourceMap:!1,shadowMode:!1})},98761:function(t,e,n){var r=n(23297);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("ce608b44",r,!0,{sourceMap:!1,shadowMode:!1})},4804:function(t,e,n){var r=n(79740);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("688689de",r,!0,{sourceMap:!1,shadowMode:!1})},63019:function(t,e,n){var r=n(65379);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("192f0d00",r,!0,{sourceMap:!1,shadowMode:!1})},68180:function(t,e,n){var r=n(4620);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("ff6a37a6",r,!0,{sourceMap:!1,shadowMode:!1})},7362:function(t,e,n){var r=n(4858);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("39ab5c92",r,!0,{sourceMap:!1,shadowMode:!1})},17267:function(t,e,n){var r=n(97835);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("78aee61a",r,!0,{sourceMap:!1,shadowMode:!1})},56890:function(t,e,n){var r=n(17410);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("01a9cb70",r,!0,{sourceMap:!1,shadowMode:!1})},80210:function(t,e,n){var r=n(83402);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("22c0e446",r,!0,{sourceMap:!1,shadowMode:!1})},9790:function(t,e,n){var r=n(43590);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("330d39c6",r,!0,{sourceMap:!1,shadowMode:!1})},90725:function(t,e,n){var r=n(43309);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("4c553097",r,!0,{sourceMap:!1,shadowMode:!1})},7971:function(t,e,n){var r=n(19451);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("36c8d6d4",r,!0,{sourceMap:!1,shadowMode:!1})},9762:function(t,e,n){var r=n(24970);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("6e61ee4e",r,!0,{sourceMap:!1,shadowMode:!1})},51953:function(t,e,n){var r=n(86281);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("6ef6584a",r,!0,{sourceMap:!1,shadowMode:!1})},31692:function(t,e,n){var r=n(88036);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("866c849c",r,!0,{sourceMap:!1,shadowMode:!1})},14764:function(t,e,n){var r=n(35028);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("e55830ca",r,!0,{sourceMap:!1,shadowMode:!1})},67814:function(t,e,n){var r=n(54094);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("e3b1045c",r,!0,{sourceMap:!1,shadowMode:!1})},63941:function(t,e,n){var r=n(98205);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("6f32b516",r,!0,{sourceMap:!1,shadowMode:!1})},51521:function(t,e,n){var r=n(64473);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("4f66a966",r,!0,{sourceMap:!1,shadowMode:!1})},46425:function(t,e,n){var r=n(17729);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("46b3ff85",r,!0,{sourceMap:!1,shadowMode:!1})},73793:function(t,e,n){var r=n(12777);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("2d2a0773",r,!0,{sourceMap:!1,shadowMode:!1})},89690:function(t,e,n){var r=n(20322);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("7b2486d0",r,!0,{sourceMap:!1,shadowMode:!1})},49122:function(t,e,n){var r=n(81178);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("48e3f02a",r,!0,{sourceMap:!1,shadowMode:!1})},68159:function(t,e,n){var r=n(8807);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("1483333e",r,!0,{sourceMap:!1,shadowMode:!1})},63720:function(t,e,n){var r=n(33040);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("5569a438",r,!0,{sourceMap:!1,shadowMode:!1})},72669:function(t,e,n){var r=n(57877);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("28518fb8",r,!0,{sourceMap:!1,shadowMode:!1})},1603:function(t,e,n){var r=n(57835);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("f6d6ec88",r,!0,{sourceMap:!1,shadowMode:!1})},18621:function(t,e,n){var r=n(71381);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("d8bbe3fa",r,!0,{sourceMap:!1,shadowMode:!1})},36416:function(t,e,n){var r=n(51144);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("19c39d52",r,!0,{sourceMap:!1,shadowMode:!1})},52131:function(t,e,n){var r=n(10731);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("4a932ea4",r,!0,{sourceMap:!1,shadowMode:!1})},81329:function(t,e,n){var r=n(2633);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("7c77115f",r,!0,{sourceMap:!1,shadowMode:!1})},97642:function(t,e,n){var r=n(82626);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("0fcdb998",r,!0,{sourceMap:!1,shadowMode:!1})},85363:function(t,e,n){var r=n(62811);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("57377ac6",r,!0,{sourceMap:!1,shadowMode:!1})},62480:function(t,e,n){var r=n(32712);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("b3978226",r,!0,{sourceMap:!1,shadowMode:!1})},82312:function(t,e,n){var r=n(70800);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("42a3fb70",r,!0,{sourceMap:!1,shadowMode:!1})},68573:function(t,e,n){var r=n(98485);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("4ca6f836",r,!0,{sourceMap:!1,shadowMode:!1})},99432:function(t,e,n){var r=n(73504);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("0212a0db",r,!0,{sourceMap:!1,shadowMode:!1})},47911:function(t,e,n){var r=n(59295);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("8c3b8dbc",r,!0,{sourceMap:!1,shadowMode:!1})},45703:function(t,e,n){var r=n(57839);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("1ca4b4bd",r,!0,{sourceMap:!1,shadowMode:!1})},54640:function(t,e,n){var r=n(19256);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("386f6faf",r,!0,{sourceMap:!1,shadowMode:!1})},94600:function(t,e,n){var r=n(35088);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("96708b62",r,!0,{sourceMap:!1,shadowMode:!1})},46074:function(t,e,n){var r=n(3826);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("27664896",r,!0,{sourceMap:!1,shadowMode:!1})},58115:function(t,e,n){var r=n(62514);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("34cb8302",r,!0,{sourceMap:!1,shadowMode:!1})},30248:function(t,e,n){var r=n(61351);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("28201e18",r,!0,{sourceMap:!1,shadowMode:!1})},25167:function(t,e,n){var r=n(68336);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var i=n(3825).A;i("b1694c18",r,!0,{sourceMap:!1,shadowMode:!1})},3825:function(t,e,n){"use strict";n.d(e,{A:function(){return h}});n(44114);function r(t,e){for(var n=[],r={},i=0;in.parts.length&&(r.parts.length=n.parts.length)}else{var a=[];for(i=0;iu)if(c=s[u++],c!==c)return!0}else for(;l>u;u++)if((t||u in s)&&s[u]===n)return t||u||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},43839:function(t,e,n){"use strict";var r=n(76080),i=n(47055),o=n(48981),a=n(26198),s=function(t){var e=1===t;return function(n,s,l){var c,u,d=o(n),p=i(d),f=a(p),h=r(s,l);while(f-- >0)if(c=p[f],u=h(c,f,d),u)switch(t){case 0:return c;case 1:return f}return e?-1:void 0}};t.exports={findLast:s(0),findLastIndex:s(1)}},34527:function(t,e,n){"use strict";var r=n(43724),i=n(34376),o=TypeError,a=Object.getOwnPropertyDescriptor,s=r&&!function(){if(void 0!==this)return!0;try{Object.defineProperty([],"length",{writable:!1}).length=1}catch(t){return t instanceof TypeError}}();t.exports=s?function(t,e){if(i(t)&&!a(t,"length").writable)throw new o("Cannot set read only .length");return t.length=e}:function(t,e){return t.length=e}},67680:function(t,e,n){"use strict";var r=n(79504);t.exports=r([].slice)},44576:function(t,e,n){"use strict";var r=n(79504),i=r({}.toString),o=r("".slice);t.exports=function(t){return o(i(t),8,-1)}},36955:function(t,e,n){"use strict";var r=n(92140),i=n(94901),o=n(44576),a=n(78227),s=a("toStringTag"),l=Object,c="Arguments"===o(function(){return arguments}()),u=function(t,e){try{return t[e]}catch(n){}};t.exports=r?o:function(t){var e,n,r;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=u(e=l(t),s))?n:c?o(e):"Object"===(r=o(e))&&i(e.callee)?"Arguments":r}},77740:function(t,e,n){"use strict";var r=n(39297),i=n(35031),o=n(77347),a=n(24913);t.exports=function(t,e,n){for(var s=i(e),l=a.f,c=o.f,u=0;un)throw e("Maximum allowed index exceeded");return t}},55002:function(t){"use strict";t.exports={IndexSizeError:{s:"INDEX_SIZE_ERR",c:1,m:1},DOMStringSizeError:{s:"DOMSTRING_SIZE_ERR",c:2,m:0},HierarchyRequestError:{s:"HIERARCHY_REQUEST_ERR",c:3,m:1},WrongDocumentError:{s:"WRONG_DOCUMENT_ERR",c:4,m:1},InvalidCharacterError:{s:"INVALID_CHARACTER_ERR",c:5,m:1},NoDataAllowedError:{s:"NO_DATA_ALLOWED_ERR",c:6,m:0},NoModificationAllowedError:{s:"NO_MODIFICATION_ALLOWED_ERR",c:7,m:1},NotFoundError:{s:"NOT_FOUND_ERR",c:8,m:1},NotSupportedError:{s:"NOT_SUPPORTED_ERR",c:9,m:1},InUseAttributeError:{s:"INUSE_ATTRIBUTE_ERR",c:10,m:1},InvalidStateError:{s:"INVALID_STATE_ERR",c:11,m:1},SyntaxError:{s:"SYNTAX_ERR",c:12,m:1},InvalidModificationError:{s:"INVALID_MODIFICATION_ERR",c:13,m:1},NamespaceError:{s:"NAMESPACE_ERR",c:14,m:1},InvalidAccessError:{s:"INVALID_ACCESS_ERR",c:15,m:1},ValidationError:{s:"VALIDATION_ERR",c:16,m:0},TypeMismatchError:{s:"TYPE_MISMATCH_ERR",c:17,m:1},SecurityError:{s:"SECURITY_ERR",c:18,m:1},NetworkError:{s:"NETWORK_ERR",c:19,m:1},AbortError:{s:"ABORT_ERR",c:20,m:1},URLMismatchError:{s:"URL_MISMATCH_ERR",c:21,m:1},QuotaExceededError:{s:"QUOTA_EXCEEDED_ERR",c:22,m:1},TimeoutError:{s:"TIMEOUT_ERR",c:23,m:1},InvalidNodeTypeError:{s:"INVALID_NODE_TYPE_ERR",c:24,m:1},DataCloneError:{s:"DATA_CLONE_ERR",c:25,m:1}}},6763:function(t){"use strict";t.exports="function"==typeof Bun&&Bun&&"string"==typeof Bun.version},48119:function(t,e,n){"use strict";var r=n(79392);t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},19088:function(t,e,n){"use strict";var r=n(24475),i=n(44576);t.exports="process"===i(r.process)},79392:function(t){"use strict";t.exports="undefined"!=typeof navigator&&String(navigator.userAgent)||""},77388:function(t,e,n){"use strict";var r,i,o=n(24475),a=n(79392),s=o.process,l=o.Deno,c=s&&s.versions||l&&l.version,u=c&&c.v8;u&&(r=u.split("."),i=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!i&&a&&(r=a.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=a.match(/Chrome\/(\d+)/),r&&(i=+r[1]))),t.exports=i},88727:function(t){"use strict";t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},16193:function(t,e,n){"use strict";var r=n(79504),i=Error,o=r("".replace),a=function(t){return String(new i(t).stack)}("zxcasd"),s=/\n\s*at [^:]*:[^\n]*/,l=s.test(a);t.exports=function(t,e){if(l&&"string"==typeof t&&!i.prepareStackTrace)while(e--)t=o(t,s,"");return t}},80747:function(t,e,n){"use strict";var r=n(66699),i=n(16193),o=n(24659),a=Error.captureStackTrace;t.exports=function(t,e,n,s){o&&(a?a(t,e):r(t,"stack",i(n,s)))}},24659:function(t,e,n){"use strict";var r=n(79039),i=n(6980);t.exports=!r((function(){var t=new Error("a");return!("stack"in t)||(Object.defineProperty(t,"stack",i(1,7)),7!==t.stack)}))},46518:function(t,e,n){"use strict";var r=n(24475),i=n(77347).f,o=n(66699),a=n(36840),s=n(39433),l=n(77740),c=n(92796);t.exports=function(t,e){var n,u,d,p,f,h,v=t.target,m=t.global,g=t.stat;if(u=m?r:g?r[v]||s(v,{}):r[v]&&r[v].prototype,u)for(d in e){if(f=e[d],t.dontCallGetSet?(h=i(u,d),p=h&&h.value):p=u[d],n=c(m?d:v+(g?".":"#")+d,t.forced),!n&&void 0!==p){if(typeof f==typeof p)continue;l(f,p)}(t.sham||p&&p.sham)&&o(f,"sham",!0),a(u,d,f,t)}}},79039:function(t){"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},18745:function(t,e,n){"use strict";var r=n(40616),i=Function.prototype,o=i.apply,a=i.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?a.bind(o):function(){return a.apply(o,arguments)})},76080:function(t,e,n){"use strict";var r=n(27476),i=n(79306),o=n(40616),a=r(r.bind);t.exports=function(t,e){return i(t),void 0===e?t:o?a(t,e):function(){return t.apply(e,arguments)}}},40616:function(t,e,n){"use strict";var r=n(79039);t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},69565:function(t,e,n){"use strict";var r=n(40616),i=Function.prototype.call;t.exports=r?i.bind(i):function(){return i.apply(i,arguments)}},10350:function(t,e,n){"use strict";var r=n(43724),i=n(39297),o=Function.prototype,a=r&&Object.getOwnPropertyDescriptor,s=i(o,"name"),l=s&&"something"===function(){}.name,c=s&&(!r||r&&a(o,"name").configurable);t.exports={EXISTS:s,PROPER:l,CONFIGURABLE:c}},46706:function(t,e,n){"use strict";var r=n(79504),i=n(79306);t.exports=function(t,e,n){try{return r(i(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(o){}}},27476:function(t,e,n){"use strict";var r=n(44576),i=n(79504);t.exports=function(t){if("Function"===r(t))return i(t)}},79504:function(t,e,n){"use strict";var r=n(40616),i=Function.prototype,o=i.call,a=r&&i.bind.bind(o,o);t.exports=r?a:function(t){return function(){return o.apply(t,arguments)}}},97751:function(t,e,n){"use strict";var r=n(24475),i=n(94901),o=function(t){return i(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?o(r[t]):r[t]&&r[t][e]}},55966:function(t,e,n){"use strict";var r=n(79306),i=n(64117);t.exports=function(t,e){var n=t[e];return i(n)?void 0:r(n)}},24475:function(t,e,n){"use strict";var r=function(t){return t&&t.Math===Math&&t};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof n.g&&n.g)||r("object"==typeof this&&this)||function(){return this}()||Function("return this")()},39297:function(t,e,n){"use strict";var r=n(79504),i=n(48981),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return o(i(t),e)}},30421:function(t){"use strict";t.exports={}},20397:function(t,e,n){"use strict";var r=n(97751);t.exports=r("document","documentElement")},35917:function(t,e,n){"use strict";var r=n(43724),i=n(79039),o=n(4055);t.exports=!r&&!i((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},47055:function(t,e,n){"use strict";var r=n(79504),i=n(79039),o=n(44576),a=Object,s=r("".split);t.exports=i((function(){return!a("z").propertyIsEnumerable(0)}))?function(t){return"String"===o(t)?s(t,""):a(t)}:a},23167:function(t,e,n){"use strict";var r=n(94901),i=n(20034),o=n(52967);t.exports=function(t,e,n){var a,s;return o&&r(a=e.constructor)&&a!==n&&i(s=a.prototype)&&s!==n.prototype&&o(t,s),t}},33706:function(t,e,n){"use strict";var r=n(79504),i=n(94901),o=n(77629),a=r(Function.toString);i(o.inspectSource)||(o.inspectSource=function(t){return a(t)}),t.exports=o.inspectSource},77584:function(t,e,n){"use strict";var r=n(20034),i=n(66699);t.exports=function(t,e){r(e)&&"cause"in e&&i(t,"cause",e.cause)}},91181:function(t,e,n){"use strict";var r,i,o,a=n(58622),s=n(24475),l=n(20034),c=n(66699),u=n(39297),d=n(77629),p=n(66119),f=n(30421),h="Object already initialized",v=s.TypeError,m=s.WeakMap,g=function(t){return o(t)?i(t):r(t,{})},_=function(t){return function(e){var n;if(!l(e)||(n=i(e)).type!==t)throw new v("Incompatible receiver, "+t+" required");return n}};if(a||d.state){var b=d.state||(d.state=new m);b.get=b.get,b.has=b.has,b.set=b.set,r=function(t,e){if(b.has(t))throw new v(h);return e.facade=t,b.set(t,e),e},i=function(t){return b.get(t)||{}},o=function(t){return b.has(t)}}else{var y=p("state");f[y]=!0,r=function(t,e){if(u(t,y))throw new v(h);return e.facade=t,c(t,y,e),e},i=function(t){return u(t,y)?t[y]:{}},o=function(t){return u(t,y)}}t.exports={set:r,get:i,has:o,enforce:g,getterFor:_}},34376:function(t,e,n){"use strict";var r=n(44576);t.exports=Array.isArray||function(t){return"Array"===r(t)}},94901:function(t){"use strict";var e="object"==typeof document&&document.all;t.exports="undefined"==typeof e&&void 0!==e?function(t){return"function"==typeof t||t===e}:function(t){return"function"==typeof t}},92796:function(t,e,n){"use strict";var r=n(79039),i=n(94901),o=/#|\.prototype\./,a=function(t,e){var n=l[s(t)];return n===u||n!==c&&(i(e)?r(e):!!e)},s=a.normalize=function(t){return String(t).replace(o,".").toLowerCase()},l=a.data={},c=a.NATIVE="N",u=a.POLYFILL="P";t.exports=a},64117:function(t){"use strict";t.exports=function(t){return null===t||void 0===t}},20034:function(t,e,n){"use strict";var r=n(94901);t.exports=function(t){return"object"==typeof t?null!==t:r(t)}},13925:function(t,e,n){"use strict";var r=n(20034);t.exports=function(t){return r(t)||null===t}},96395:function(t){"use strict";t.exports=!1},10757:function(t,e,n){"use strict";var r=n(97751),i=n(94901),o=n(1625),a=n(7040),s=Object;t.exports=a?function(t){return"symbol"==typeof t}:function(t){var e=r("Symbol");return i(e)&&o(e.prototype,s(t))}},26198:function(t,e,n){"use strict";var r=n(18014);t.exports=function(t){return r(t.length)}},50283:function(t,e,n){"use strict";var r=n(79504),i=n(79039),o=n(94901),a=n(39297),s=n(43724),l=n(10350).CONFIGURABLE,c=n(33706),u=n(91181),d=u.enforce,p=u.get,f=String,h=Object.defineProperty,v=r("".slice),m=r("".replace),g=r([].join),_=s&&!i((function(){return 8!==h((function(){}),"length",{value:8}).length})),b=String(String).split("String"),y=t.exports=function(t,e,n){"Symbol("===v(f(e),0,7)&&(e="["+m(f(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),n&&n.getter&&(e="get "+e),n&&n.setter&&(e="set "+e),(!a(t,"name")||l&&t.name!==e)&&(s?h(t,"name",{value:e,configurable:!0}):t.name=e),_&&n&&a(n,"arity")&&t.length!==n.arity&&h(t,"length",{value:n.arity});try{n&&a(n,"constructor")&&n.constructor?s&&h(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(i){}var r=d(t);return a(r,"source")||(r.source=g(b,"string"==typeof e?e:"")),t};Function.prototype.toString=y((function(){return o(this)&&p(this).source||c(this)}),"toString")},80741:function(t){"use strict";var e=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(t){var r=+t;return(r>0?n:e)(r)}},32603:function(t,e,n){"use strict";var r=n(655);t.exports=function(t,e){return void 0===t?arguments.length<2?"":e:r(t)}},2360:function(t,e,n){"use strict";var r,i=n(28551),o=n(96801),a=n(88727),s=n(30421),l=n(20397),c=n(4055),u=n(66119),d=">",p="<",f="prototype",h="script",v=u("IE_PROTO"),m=function(){},g=function(t){return p+h+d+t+p+"/"+h+d},_=function(t){t.write(g("")),t.close();var e=t.parentWindow.Object;return t=null,e},b=function(){var t,e=c("iframe"),n="java"+h+":";return e.style.display="none",l.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(g("document.F=Object")),t.close(),t.F},y=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}y="undefined"!=typeof document?document.domain&&r?_(r):b():_(r);var t=a.length;while(t--)delete y[f][a[t]];return y()};s[v]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(m[f]=i(t),n=new m,m[f]=null,n[v]=t):n=y(),void 0===e?n:o.f(n,e)}},96801:function(t,e,n){"use strict";var r=n(43724),i=n(48686),o=n(24913),a=n(28551),s=n(25397),l=n(71072);e.f=r&&!i?Object.defineProperties:function(t,e){a(t);var n,r=s(e),i=l(e),c=i.length,u=0;while(c>u)o.f(t,n=i[u++],r[n]);return t}},24913:function(t,e,n){"use strict";var r=n(43724),i=n(35917),o=n(48686),a=n(28551),s=n(56969),l=TypeError,c=Object.defineProperty,u=Object.getOwnPropertyDescriptor,d="enumerable",p="configurable",f="writable";e.f=r?o?function(t,e,n){if(a(t),e=s(e),a(n),"function"===typeof t&&"prototype"===e&&"value"in n&&f in n&&!n[f]){var r=u(t,e);r&&r[f]&&(t[e]=n.value,n={configurable:p in n?n[p]:r[p],enumerable:d in n?n[d]:r[d],writable:!1})}return c(t,e,n)}:c:function(t,e,n){if(a(t),e=s(e),a(n),i)try{return c(t,e,n)}catch(r){}if("get"in n||"set"in n)throw new l("Accessors not supported");return"value"in n&&(t[e]=n.value),t}},77347:function(t,e,n){"use strict";var r=n(43724),i=n(69565),o=n(48773),a=n(6980),s=n(25397),l=n(56969),c=n(39297),u=n(35917),d=Object.getOwnPropertyDescriptor;e.f=r?d:function(t,e){if(t=s(t),e=l(e),u)try{return d(t,e)}catch(n){}if(c(t,e))return a(!i(o.f,t,e),t[e])}},38480:function(t,e,n){"use strict";var r=n(61828),i=n(88727),o=i.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,o)}},33717:function(t,e){"use strict";e.f=Object.getOwnPropertySymbols},42787:function(t,e,n){"use strict";var r=n(39297),i=n(94901),o=n(48981),a=n(66119),s=n(12211),l=a("IE_PROTO"),c=Object,u=c.prototype;t.exports=s?c.getPrototypeOf:function(t){var e=o(t);if(r(e,l))return e[l];var n=e.constructor;return i(n)&&e instanceof n?n.prototype:e instanceof c?u:null}},1625:function(t,e,n){"use strict";var r=n(79504);t.exports=r({}.isPrototypeOf)},61828:function(t,e,n){"use strict";var r=n(79504),i=n(39297),o=n(25397),a=n(19617).indexOf,s=n(30421),l=r([].push);t.exports=function(t,e){var n,r=o(t),c=0,u=[];for(n in r)!i(s,n)&&i(r,n)&&l(u,n);while(e.length>c)i(r,n=e[c++])&&(~a(u,n)||l(u,n));return u}},71072:function(t,e,n){"use strict";var r=n(61828),i=n(88727);t.exports=Object.keys||function(t){return r(t,i)}},48773:function(t,e){"use strict";var n={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,i=r&&!n.call({1:2},1);e.f=i?function(t){var e=r(this,t);return!!e&&e.enumerable}:n},52967:function(t,e,n){"use strict";var r=n(46706),i=n(20034),o=n(67750),a=n(73506);t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=r(Object.prototype,"__proto__","set"),t(n,[]),e=n instanceof Array}catch(s){}return function(n,r){return o(n),a(r),i(n)?(e?t(n,r):n.__proto__=r,n):n}}():void 0)},84270:function(t,e,n){"use strict";var r=n(69565),i=n(94901),o=n(20034),a=TypeError;t.exports=function(t,e){var n,s;if("string"===e&&i(n=t.toString)&&!o(s=r(n,t)))return s;if(i(n=t.valueOf)&&!o(s=r(n,t)))return s;if("string"!==e&&i(n=t.toString)&&!o(s=r(n,t)))return s;throw new a("Can't convert object to primitive value")}},35031:function(t,e,n){"use strict";var r=n(97751),i=n(79504),o=n(38480),a=n(33717),s=n(28551),l=i([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=o.f(s(t)),n=a.f;return n?l(e,n(t)):e}},11056:function(t,e,n){"use strict";var r=n(24913).f;t.exports=function(t,e,n){n in t||r(t,n,{configurable:!0,get:function(){return e[n]},set:function(t){e[n]=t}})}},67979:function(t,e,n){"use strict";var r=n(28551);t.exports=function(){var t=r(this),e="";return t.hasIndices&&(e+="d"),t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.dotAll&&(e+="s"),t.unicode&&(e+="u"),t.unicodeSets&&(e+="v"),t.sticky&&(e+="y"),e}},67750:function(t,e,n){"use strict";var r=n(64117),i=TypeError;t.exports=function(t){if(r(t))throw new i("Can't call method on "+t);return t}},79472:function(t,e,n){"use strict";var r=n(24475),i=n(18745),o=n(94901),a=n(6763),s=n(79392),l=n(67680),c=n(22812),u=r.Function,d=/MSIE .\./.test(s)||a&&function(){var t=r.Bun.version.split(".");return t.length<3||"0"===t[0]&&(t[1]<3||"3"===t[1]&&"0"===t[2])}();t.exports=function(t,e){var n=e?2:1;return d?function(r,a){var s=c(arguments.length,1)>n,d=o(r)?r:u(r),p=s?l(arguments,n):[],f=s?function(){i(d,this,p)}:d;return e?t(f,a):t(f)}:t}},66119:function(t,e,n){"use strict";var r=n(25745),i=n(33392),o=r("keys");t.exports=function(t){return o[t]||(o[t]=i(t))}},77629:function(t,e,n){"use strict";var r=n(96395),i=n(24475),o=n(39433),a="__core-js_shared__",s=t.exports=i[a]||o(a,{});(s.versions||(s.versions=[])).push({version:"3.36.1",mode:r?"pure":"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.36.1/LICENSE",source:"https://github.com/zloirock/core-js"})},25745:function(t,e,n){"use strict";var r=n(77629);t.exports=function(t,e){return r[t]||(r[t]=e||{})}},4495:function(t,e,n){"use strict";var r=n(77388),i=n(79039),o=n(24475),a=o.String;t.exports=!!Object.getOwnPropertySymbols&&!i((function(){var t=Symbol("symbol detection");return!a(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},59225:function(t,e,n){"use strict";var r,i,o,a,s=n(24475),l=n(18745),c=n(76080),u=n(94901),d=n(39297),p=n(79039),f=n(20397),h=n(67680),v=n(4055),m=n(22812),g=n(48119),_=n(19088),b=s.setImmediate,y=s.clearImmediate,w=s.process,k=s.Dispatch,x=s.Function,O=s.MessageChannel,E=s.String,C=0,S={},A="onreadystatechange";p((function(){r=s.location}));var T=function(t){if(d(S,t)){var e=S[t];delete S[t],e()}},q=function(t){return function(){T(t)}},M=function(t){T(t.data)},P=function(t){s.postMessage(E(t),r.protocol+"//"+r.host)};b&&y||(b=function(t){m(arguments.length,1);var e=u(t)?t:x(t),n=h(arguments,1);return S[++C]=function(){l(e,void 0,n)},i(C),C},y=function(t){delete S[t]},_?i=function(t){w.nextTick(q(t))}:k&&k.now?i=function(t){k.now(q(t))}:O&&!g?(o=new O,a=o.port2,o.port1.onmessage=M,i=c(a.postMessage,a)):s.addEventListener&&u(s.postMessage)&&!s.importScripts&&r&&"file:"!==r.protocol&&!p(P)?(i=P,s.addEventListener("message",M,!1)):i=A in v("script")?function(t){f.appendChild(v("script"))[A]=function(){f.removeChild(this),T(t)}}:function(t){setTimeout(q(t),0)}),t.exports={set:b,clear:y}},35610:function(t,e,n){"use strict";var r=n(91291),i=Math.max,o=Math.min;t.exports=function(t,e){var n=r(t);return n<0?i(n+e,0):o(n,e)}},25397:function(t,e,n){"use strict";var r=n(47055),i=n(67750);t.exports=function(t){return r(i(t))}},91291:function(t,e,n){"use strict";var r=n(80741);t.exports=function(t){var e=+t;return e!==e||0===e?0:r(e)}},18014:function(t,e,n){"use strict";var r=n(91291),i=Math.min;t.exports=function(t){var e=r(t);return e>0?i(e,9007199254740991):0}},48981:function(t,e,n){"use strict";var r=n(67750),i=Object;t.exports=function(t){return i(r(t))}},58229:function(t,e,n){"use strict";var r=n(99590),i=RangeError;t.exports=function(t,e){var n=r(t);if(n%e)throw new i("Wrong offset");return n}},99590:function(t,e,n){"use strict";var r=n(91291),i=RangeError;t.exports=function(t){var e=r(t);if(e<0)throw new i("The argument can't be less than 0");return e}},72777:function(t,e,n){"use strict";var r=n(69565),i=n(20034),o=n(10757),a=n(55966),s=n(84270),l=n(78227),c=TypeError,u=l("toPrimitive");t.exports=function(t,e){if(!i(t)||o(t))return t;var n,l=a(t,u);if(l){if(void 0===e&&(e="default"),n=r(l,t,e),!i(n)||o(n))return n;throw new c("Can't convert object to primitive value")}return void 0===e&&(e="number"),s(t,e)}},56969:function(t,e,n){"use strict";var r=n(72777),i=n(10757);t.exports=function(t){var e=r(t,"string");return i(e)?e:e+""}},92140:function(t,e,n){"use strict";var r=n(78227),i=r("toStringTag"),o={};o[i]="z",t.exports="[object z]"===String(o)},655:function(t,e,n){"use strict";var r=n(36955),i=String;t.exports=function(t){if("Symbol"===r(t))throw new TypeError("Cannot convert a Symbol value to a string");return i(t)}},16823:function(t){"use strict";var e=String;t.exports=function(t){try{return e(t)}catch(n){return"Object"}}},33392:function(t,e,n){"use strict";var r=n(79504),i=0,o=Math.random(),a=r(1..toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+a(++i+o,36)}},7040:function(t,e,n){"use strict";var r=n(4495);t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator},48686:function(t,e,n){"use strict";var r=n(43724),i=n(79039);t.exports=r&&i((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))},22812:function(t){"use strict";var e=TypeError;t.exports=function(t,n){if(t_&&p(r,arguments[_]),r}));if(O.prototype=k,"Error"!==y?s?s(O,x):l(O,x,{name:!0}):h&&g in w&&(c(O,w,g),c(O,w,"prepareStackTrace")),l(O,w),!v)try{k.name!==y&&o(k,"name",y),k.constructor=O}catch(E){}return O}}},18107:function(t,e,n){"use strict";var r=n(46518),i=n(48981),o=n(26198),a=n(91291),s=n(6469);r({target:"Array",proto:!0},{at:function(t){var e=i(this),n=o(e),r=a(t),s=r>=0?r:n+r;return s<0||s>=n?void 0:e[s]}}),s("at")},74423:function(t,e,n){"use strict";var r=n(46518),i=n(19617).includes,o=n(79039),a=n(6469),s=o((function(){return!Array(1).includes()}));r({target:"Array",proto:!0,forced:s},{includes:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),a("includes")},44114:function(t,e,n){"use strict";var r=n(46518),i=n(48981),o=n(26198),a=n(34527),s=n(96837),l=n(79039),c=l((function(){return 4294967297!==[].push.call({length:4294967296},1)})),u=function(){try{Object.defineProperty([],"length",{writable:!1}).push()}catch(t){return t instanceof TypeError}},d=c||!u();r({target:"Array",proto:!0,arity:1,forced:d},{push:function(t){var e=i(this),n=o(e),r=arguments.length;s(n+r);for(var l=0;l=0?r:n+r;return i<0||i>=n?void 0:c(e,i)}})},48140:function(t,e,n){"use strict";var r=n(94644),i=n(26198),o=n(91291),a=r.aTypedArray,s=r.exportTypedArrayMethod;s("at",(function(t){var e=a(this),n=i(e),r=o(t),s=r>=0?r:n+r;return s<0||s>=n?void 0:e[s]}))},91134:function(t,e,n){"use strict";var r=n(94644),i=n(43839).findLastIndex,o=r.aTypedArray,a=r.exportTypedArrayMethod;a("findLastIndex",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},21903:function(t,e,n){"use strict";var r=n(94644),i=n(43839).findLast,o=r.aTypedArray,a=r.exportTypedArrayMethod;a("findLast",(function(t){return i(o(this),t,arguments.length>1?arguments[1]:void 0)}))},28845:function(t,e,n){"use strict";var r=n(24475),i=n(69565),o=n(94644),a=n(26198),s=n(58229),l=n(48981),c=n(79039),u=r.RangeError,d=r.Int8Array,p=d&&d.prototype,f=p&&p.set,h=o.aTypedArray,v=o.exportTypedArrayMethod,m=!c((function(){var t=new Uint8ClampedArray(2);return i(f,t,{length:1,0:3},1),3!==t[1]})),g=m&&o.NATIVE_ARRAY_BUFFER_VIEWS&&c((function(){var t=new d(2);return t.set(1),t.set("2",1),0!==t[0]||2!==t[1]}));v("set",(function(t){h(this);var e=s(arguments.length>1?arguments[1]:void 0,1),n=l(t);if(m)return i(f,this,n,e);var r=this.length,o=a(n),c=0;if(o+e>r)throw new u("Wrong length");while(c{if("undefined"===typeof document)return!1;const t=n[0],e={};for(const r of n){const n=r?.[1];if(n in document){for(const[n,i]of r.entries())e[t[n]]=i;return e}}return!1})(),i={change:r.fullscreenchange,error:r.fullscreenerror};let o={request(t=document.documentElement,e){return new Promise(((n,i)=>{const a=()=>{o.off("change",a),n()};o.on("change",a);const s=t[r.requestFullscreen](e);s instanceof Promise&&s.then(a).catch(i)}))},exit(){return new Promise(((t,e)=>{if(!o.isFullscreen)return void t();const n=()=>{o.off("change",n),t()};o.on("change",n);const i=document[r.exitFullscreen]();i instanceof Promise&&i.then(n).catch(e)}))},toggle(t,e){return o.isFullscreen?o.exit():o.request(t,e)},onchange(t){o.on("change",t)},onerror(t){o.on("error",t)},on(t,e){const n=i[t];n&&document.addEventListener(n,e,!1)},off(t,e){const n=i[t];n&&document.removeEventListener(n,e,!1)},raw:r};Object.defineProperties(o,{isFullscreen:{get:()=>Boolean(document[r.fullscreenElement])},element:{enumerable:!0,get:()=>document[r.fullscreenElement]??void 0},isEnabled:{enumerable:!0,get:()=>Boolean(document[r.fullscreenEnabled])}}),r||(o={isEnabled:!1}),e.A=o}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={id:r,loaded:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.loaded=!0,o.exports}n.m=t,function(){n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,{a:e}),e}}(),function(){var t,e=Object.getPrototypeOf?function(t){return Object.getPrototypeOf(t)}:function(t){return t.__proto__};n.t=function(r,i){if(1&i&&(r=this(r)),8&i)return r;if("object"===typeof r&&r){if(4&i&&r.__esModule)return r;if(16&i&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var a={};t=t||[null,e({}),e([]),e(e)];for(var s=2&i&&r;"object"==typeof s&&!~t.indexOf(s);s=e(s))Object.getOwnPropertyNames(s).forEach((function(t){a[t]=function(){return r[t]}}));return a["default"]=function(){return r},n.d(o,a),o}}(),function(){n.d=function(t,e){for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})}}(),function(){n.f={},n.e=function(t){return Promise.all(Object.keys(n.f).reduce((function(e,r){return n.f[r](t,e),e}),[]))}}(),function(){n.u=function(t){return"js/"+({76:"lang-fr-js",182:"AuthorsView",248:"PublicationView",272:"SpaceView",275:"lang-en-js",317:"AuthorView",397:"HomeView",402:"Page",541:"ProjectView"}[t]||t)+".js"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){var t={},e="app:";n.l=function(r,i,o,a){if(t[r])t[r].push(i);else{var s,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;ut.allow_save=e}}),e("div",{staticClass:"u-spacingBottom"}),e("TextInput",{attrs:{content:t.new_author_email,label_str:"email",required:t.$root.app_infos.instance_meta.require_mail_to_signup,input_type:"email",autocomplete:"email",instructions:t.$t("email_instr")},on:{"update:content":function(e){t.new_author_email=e},toggleValidity:e=>t.allow_save=e}}),e("div",{staticClass:"u-spacingBottom"}),e("div",{},[e("DLabel",{attrs:{str:t.$t("pick_portrait")}}),e("ImageSelect",{attrs:{available_options:["import","capture"],preview_format:"circle"},on:{newPreview:e=>{t.new_cover=e}}})],1),e("div",{staticClass:"u-spacingBottom"}),e("TextInput",{attrs:{content:t.new_author_password,label_str:"password",minlength:3,maxlength:20,required:!0,input_type:"password",autocomplete:"new-password"},on:{"update:content":function(e){t.new_author_password=e},toggleValidity:e=>t.allow_save=e}}),e("div",{staticClass:"u-spacingBottom"}),t.$root.app_infos.instance_meta.users_must_accept_terms_to_signup?[e("ToggleInput",{attrs:{content:t.terms_accepted,label:t.$t("i_read_and_accept_terms")},on:{"update:content":function(e){t.terms_accepted=e}}}),e("div",{staticClass:"u-instructions"},[e("router-link",{staticClass:"u-buttonLink",attrs:{to:t.createURLFromPath("pages/terms")}},[t._v(" "+t._s(t.$t("click_here_to_read"))+" ")])],1),e("div",{staticClass:"u-spacingBottom"})]:t._e(),e("button",{staticClass:"u-button u-button_bleuvert",attrs:{slot:"footer",loading:t.is_creating_author,disabled:!0===t.$root.app_infos.instance_meta.users_must_accept_terms_to_signup&&!1===t.terms_accepted,type:"submit"},slot:"footer"},[t._v(" "+t._s(t.$t("create"))+" ")])],2),t.account_created_notice?e("div",[t._v(" "+t._s(t.$t("account_created"))+" ")]):t._e(),t.error_msg?[e("div",{staticClass:"u-errorMsg",domProps:{textContent:t._s(t.error_msg)}})]:t._e()],2):e("form",{staticClass:"input-validation-required",on:{submit:function(e){return e.preventDefault(),t.submitSignupPassword.apply(null,arguments)}}},[e("TextInput",{ref:"passwordField",attrs:{label_str:"signup_password",content:t.submitted_signup_password,required:!0,autocomplete:"off",input_type:"password"},on:{"update:content":function(e){t.submitted_signup_password=e}}}),e("div",[e("small",{staticClass:"u-instructions"},[t._v(" "+t._s(t.$t("signup_password_users_instructions"))+" "),e("br"),e("a",{attrs:{href:"mailto:"+t.$root.app_infos.instance_meta.contactmail,target:"_blank"}},[t._v(" "+t._s(t.$root.app_infos.instance_meta.contactmail)+" ")])])]),e("br"),e("button",{staticClass:"u-button u-button_bleuvert",attrs:{slot:"footer",type:"submit"},slot:"footer"},[t._v(" "+t._s(t.$t("submit"))+" ")])],1)],1)],1)},p=[],f={props:{is_first_user:Boolean},components:{},data(){return{new_author_email:"",new_author_name:"",new_author_password:"",new_author_cover_raw:void 0,is_creating_author:!1,error_msg:"",can_create_author:!1,submitted_signup_password:"",is_submitting_signup_password:!1,account_created_notice:!1,new_cover:void 0,terms_accepted:!1}},created(){this.has_signup_password||(this.can_create_author=!0)},mounted(){},beforeDestroy(){},watch:{connected_as(){this.connected_as&&this.$emit("close")}},computed:{signup_password(){return this.$root.app_infos.instance_meta.signup_password_hashed},has_signup_password(){return!!this.signup_password}},methods:{async createAuthor(){this.is_creating_author=!0;try{const t=await this.$api.createFolder({path:"authors",additional_meta:{email:this.new_author_email,name:this.new_author_name,requested_slug:this.new_author_name,$status:"public",$password:this.new_author_password}});this.$alertify.delay(4e3).success(this.$t("account_created")),this.new_author_name="",this.connected_as?(this.account_created_notice=!0,setTimeout((()=>{this.account_created_notice=!1}),3e3)):await this.$api.loginToFolder({path:"authors/"+t,password:this.new_author_password});const e=`authors/${t}`;this.new_cover&&await this.$api.updateCover({path:e,new_cover_data:this.new_cover})}catch(t){"unique_field_taken"===t.code&&(this.$alertify.delay(4e3).error(this.$t("name_taken")+" : "+t.err_infos),this.$refs.titleInput.$el.querySelector("input").select()),this.is_creating_space=!1}this.is_creating_author=!1},async submitSignupPassword(){this.is_submitting_signup_password=!0,await new Promise((t=>setTimeout(t,500)));const t=this.hashCode(this.submitted_signup_password);t===this.signup_password?this.can_create_author=!0:this.$alertify.delay(4e3).error("wrong_signup_password"),this.is_submitting_signup_password=!1},hashCode(t){return""+t.split("").reduce((function(t,e){return t=(t<<5)-t+e.charCodeAt(0),0|t}),0)}}},h=f,v=(n(58220),n(81656)),m=(0,v.A)(h,d,p,!1,null,"a7bcd10e",null),g=m.exports,_=n(77724),b=function(){var t=this,e=t._self._c;return e("div",[t.connected_as?t._e():e("form",{on:{submit:function(e){return e.preventDefault(),t.login.apply(null,arguments)}}},[e("fieldset",[e("legend",{staticClass:"u-label"},[t._v(t._s(t.$t("your_account")))]),e("transition",{attrs:{name:"pagechange",mode:"out-in"}},[t.author_to_login_to?e("div",{key:"login"},[e("div",{staticClass:"u-spacingBottom _loginToAuthor"},[e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:function(e){t.author_to_login_to=void 0}}},[e("b-icon",{attrs:{icon:"arrow-left-short"}}),t._v(" "+t._s(t.$t("back"))+" ")],1),e("transition",{attrs:{name:"fade",mode:"out-in"}},[e("AuthorTag",{key:t.author_to_login_to.$path,attrs:{path:t.author_to_login_to.$path}})],1),e("input",{staticStyle:{display:"none"},attrs:{id:"name_or_pseudonym",type:"text"},domProps:{value:t.author_to_login_to.name}})],1),e("div",{staticClass:"u-spacingBottom"},[e("TextInput",{ref:"passwordField",attrs:{label_str:"password",content:t.input_password,required:!0,autofocus:!0,input_type:"password",autocomplete:"current-password"},on:{"update:content":function(e){t.input_password=e},toggleValidity:e=>t.allow_save=e,onEnter:t.login}})],1),e("div",{staticClass:"u-spacingBottom"},[e("button",{staticClass:"u-buttonLink",class:{"is--active":t.show_recover_instr},attrs:{type:"button"},on:{click:function(e){t.show_recover_instr=!t.show_recover_instr}}},[t._v(" "+t._s(t.$t("recover_password"))+" ")])]),e("div",{staticClass:"u-spacingBottom"},[t.show_recover_instr?e("div",{staticClass:"u-instructions"},[t._v(" "+t._s(t.$t("please_contact_to_recover"))+" "),e("br"),e("a",{attrs:{href:"mailto:"+t.$root.app_infos.instance_meta.contactmail,target:"_blank"}},[t._v(" "+t._s(t.$root.app_infos.instance_meta.contactmail)+" ")])]):t._e()]),e("button",{staticClass:"u-button u-button_bleuvert",attrs:{type:"submit"}},[t._v(" "+t._s(t.$t("login"))+" ")])]):e("div",{key:"search"},[e("transition",{attrs:{name:"pagechange",mode:"out-in"}},[t.author_suggestions?0===t.author_suggestions.length?e("div",{key:"no_author",staticClass:"u-instructions u-spacingBottom _noAuthorNotice"},[e("b-icon",{attrs:{icon:"exclamation-triangle-fill"}}),t._v(" "+t._s(t.$t("login_no_account_matches"))+" ")],1):t.author_suggestions.length>0?e("div",{key:"list",staticClass:"u-spacingBottom u-listOfAvatars"},t._l(t.author_suggestions,(function(n){return e("AuthorTag",{key:n,attrs:{path:n,mode:"select"},on:{click:function(e){return t.checkAuthor(n)}}})})),1):t._e():e("div",{key:"none"})]),e("TextInput",{ref:"nameField",attrs:{content:t.search_author_name,label_str:"name_or_pseudonym",required:!0,autofocus:!0,input_type:"text",autocomplete:"username"},on:{"update:content":function(e){t.search_author_name=e},toggleValidity:e=>t.allow_save=e,onEnter:t.setFirstSuggestion}})],1)])],1),"pending"===t.connection_status?e("LoaderSpinner"):"success"===t.connection_status?e("div",{},[t._v(" "+t._s(t.$t("logged_in"))+" ")]):t._e()],1)])},y=[],w=(n(18107),n(67357),{props:{authors:Array},components:{},data(){return{search_author_name:"",author_to_login_to:void 0,input_password:"",show_recover_instr:!1,connection_status:void 0}},created(){},mounted(){this.$eventHub.$on("login.suggest",this.checkAuthor)},beforeDestroy(){this.$eventHub.$off("login.suggest",this.checkAuthor)},watch:{connected_as(){}},computed:{author_suggestions(){if(0===this.search_author_name.length||0===this.authors.length)return!1;const t=this.authors.filter((t=>this.twoStringsSearch(t.name,this.search_author_name)));return t.map((t=>t.$path)).slice(0,5)}},methods:{setFirstSuggestion(){this.author_suggestions.length>0&&this.checkAuthor(this.author_suggestions.at(0))},async login(){this.connection_status="pending";const t=this.author_to_login_to;if(!t)return this.$refs.nameField.$el.querySelector("input").select(),void this.$alertify.delay(4e3).error(this.$t("account_doesnt_exist"));const e=t.$path;this.$api.loginToFolder({path:e,password:this.input_password}).then((()=>{this.connection_status="success",window.location.reload()})).catch((t=>{this.connection_status="failed","submitted_password_is_wrong"===t.code&&(this.$refs.passwordField.$el.querySelector("input").select(),this.$alertify.delay(4e4).error(this.$t("submitted_password_is_wrong")))}))},checkAuthor(t){const e=this.authors.find((e=>e.$path===t));this.search_author_name="",this.author_to_login_to=e}}}),k=w,x=(n(69218),(0,v.A)(k,b,y,!1,null,"bcd1ba80",null)),O=x.exports,E={props:{is_closable:{type:Boolean,default:!0}},components:{CreateAuthor:g,AuthorCard:_.A,LoginAs:O},data(){return{current_mode:"login",show_authors_list:!1,authors:[],path:"authors"}},created(){},async mounted(){this.authors=await this.$api.getFolders({path:this.path}),this.$api.join({room:this.path}),0===this.authors.length&&(this.current_mode="create")},beforeDestroy(){this.$api.leave({room:this.path})},watch:{$route(){}},computed:{sorted_authors(){return this.authors.slice().sort(((t,e)=>t.name.localeCompare(e.name)))}},methods:{suggestLogin(t){this.$eventHub.$emit("login.suggest",t)},async logout(){try{this.reponse=await this.$api.logoutFromFolder()}catch(t){return this.response=t,this.$alertify.delay(4e3).error(t),!1}}}},C=E,S=(0,v.A)(C,c,u,!1,null,"87193b5a",null),A=S.exports,T=function(){var t=this,e=t._self._c;return e("BaseModal2",{attrs:{title:t.$t("ui_lang_select")},on:{close:function(e){return t.$emit("close")}}},[e("div",{key:t.$i18n.locale,staticClass:"_langSelect"},[e("select",{directives:[{name:"model",rawName:"v-model",value:t.current_lang,expression:"current_lang"}],on:{change:function(e){var n=Array.prototype.filter.call(e.target.options,(function(t){return t.selected})).map((function(t){var e="_value"in t?t._value:t.value;return e}));t.current_lang=e.target.multiple?n:n[0]}}},t._l(t.lang_options,(function(n){return e("option",{key:n.key,domProps:{value:n.key,textContent:t._s(n.text)}})})),0)]),t.is_instance_admin?e("div",{},[e("div",{staticClass:"u-spacingBottom"}),e("button",{staticClass:"u-buttonLink",class:{"is--active":t.show_missing_translations},attrs:{type:"button"},on:{click:function(e){t.show_missing_translations=!t.show_missing_translations}}},[e("b-icon",{attrs:{icon:"flag-fill"}}),t._v(" "+t._s(t.$t("show_missing_translations"))+" ")],1),t.show_missing_translations?e("div",{staticClass:"_missingTranslations"},[e("hr"),e("DLabel",{attrs:{str:t.$t("missing_translations")}}),e("SelectField2",{attrs:{value:t.lang_to_find_missing_str,options:t.lang_options.filter((t=>"fr"!==t.key)),can_edit:!0,hide_validation:!0},on:{change:function(e){t.lang_to_find_missing_str=e}}}),Object.keys(t.translations_to_share).length>0?e("div",{staticClass:"_translated"},[e("pre",[t._v(t._s(t.translations_to_share))]),e("div",{staticClass:"u-instructions",domProps:{innerHTML:t._s(t.$t("publish_on_forum_to_add_to_contribute_to_code"))}}),e("button",{staticClass:"u-buttonLink",attrs:{type:"button"},on:{click:function(e){t.translations_to_share={}}}},[e("b-icon",{attrs:{icon:"trash"}}),t._v(" "+t._s(t.$t("erase_translations"))+" ")],1)]):t._e(),e("div",{},[e("b",[t._v(" "+t._s(t.$t("to_translate:"))+" "+t._s(t.missing_translations.length)+" ")])]),e("div",{},[e("span",{staticClass:"u-switch u-switch-xs"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.hide_already_translated,expression:"hide_already_translated"}],staticClass:"switch",attrs:{id:"hide_already_translated",type:"checkbox"},domProps:{checked:Array.isArray(t.hide_already_translated)?t._i(t.hide_already_translated,null)>-1:t.hide_already_translated},on:{change:function(e){var n=t.hide_already_translated,r=e.target,i=!!r.checked;if(Array.isArray(n)){var o=null,a=t._i(n,o);r.checked?a<0&&(t.hide_already_translated=n.concat([o])):a>-1&&(t.hide_already_translated=n.slice(0,a).concat(n.slice(a+1)))}else t.hide_already_translated=i}}}),e("label",{staticClass:"u-label",attrs:{for:"hide_already_translated"}},[t._v(t._s(t.$t("hide_already_translated")))])])]),e("div",{staticClass:"_allMissingTranslations"},[t._l(t.missing_translations,(function(n){return e("div",{key:n.key},[e("div",{},[e("b",[t._v(t._s(n.key))]),t._v("   "),e("button",{staticClass:"u-buttonLink",class:{"is--active":t.isAlreadyTranslated(n.key)},attrs:{type:"button"},on:{click:function(e){return t.translateStr(n.key)}}},[t._v(" "+t._s(t.$t("translate"))+" ")])]),t._l(n.translations,(function([n,r]){return e("div",{key:n},[e("i",[t._v(t._s(n.toUpperCase()))]),t._v("   "),e("b-icon",{attrs:{icon:"arrow-right"}}),t._v("   "+t._s(r)+" ")],1)}))],2)})),t.will_translate_str?e("BaseModal2",{attrs:{title:t.$t("translate")},on:{close:function(e){t.will_translate_str=!1}}},[e("div",{staticClass:"u-spacingBottom"},[t._v(" "+t._s(t.$t("translate"))+" ("+t._s(t.lang_to_find_missing_str)+") = "+t._s(t.will_translate_str)+" ")]),e("input",{directives:[{name:"model",rawName:"v-model.trim",value:t.new_translation_text,expression:"new_translation_text",modifiers:{trim:!0}}],staticClass:"u-spacingBottom",attrs:{type:"text",required:"",autofocus:"autofocus"},domProps:{value:t.new_translation_text},on:{keydown:function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:(e.preventDefault(),t.submitTranslation.apply(null,arguments))},input:function(e){e.target.composing||(t.new_translation_text=e.target.value.trim())},blur:function(e){return t.$forceUpdate()}}}),e("button",{staticClass:"u-button u-button_bleuvert",attrs:{type:"button"},on:{click:t.submitTranslation}},[t._v(" "+t._s(t.$t("submit"))+" ")])]):t._e()],2)],1):t._e()]):t._e()])},q=[],M={props:{},components:{},data(){return{current_lang:this.$i18n.locale,lang_options:[{key:"fr",text:"Français"},{key:"en",text:"English"},{key:"de",text:"Deutsch"},{key:"nl",text:"Nederlands"},{key:"oc",text:"Occitan"}],translations:{},show_missing_translations:!1,lang_to_find_missing_str:"en",translations_to_share:{},hide_already_translated:!0,new_translations:{},will_translate_str:void 0,new_translation_text:""}},created(){const t=localStorage.getItem("translations_to_share");if(t)try{this.translations_to_share=JSON.parse(t)}catch(nr){}},mounted(){},beforeDestroy(){},watch:{show_missing_translations(){this.show_missing_translations&&this.loadMissingTranslations()},translations_to_share:{handler(){localStorage.setItem("translations_to_share",JSON.stringify(this.translations_to_share))},deep:!0},current_lang(){this.updateLang(this.current_lang)}},computed:{missing_translations(){return!!this.translations&&Object.entries(this.translations).reduce(((t,[e,n])=>(Object.prototype.hasOwnProperty.call(n,this.lang_to_find_missing_str)||this.hide_already_translated&&this.isAlreadyTranslated(e)||t.push({key:e,translations:Object.entries(n)}),t)),[])}},methods:{async updateLang(t){await this.$root.changeLocale(t),this.$alertify.closeLogOnClick(!0).delay(4e3).success(this.$t("lang_updated"))},async loadMissingTranslations(){const t=await this.$root.findMissingTranslations();this.translations=Object.assign({},t)},translateStr(t){this.will_translate_str=t,this.new_translation_text=""},isAlreadyTranslated(t){return!!this.translations_to_share[this.lang_to_find_missing_str]?.[t]},submitTranslation(){Object.prototype.hasOwnProperty.call(this.translations_to_share,this.lang_to_find_missing_str)||this.$set(this.translations_to_share,this.lang_to_find_missing_str,{}),this.$set(this.translations_to_share[this.lang_to_find_missing_str],this.will_translate_str,this.new_translation_text),this.will_translate_str=void 0}}},P=M,L=(n(63941),(0,v.A)(P,T,q,!1,null,"6868a4ea",null)),j=L.exports,$=function(){var t=this,e=t._self._c;return e("BaseModal2",{attrs:{title:t.$t("about_dodoc")},on:{close:function(e){return t.$emit("close")}}},[e("div",{staticClass:"_creditsModal"},[e("p",{domProps:{innerHTML:t._s(t.$t("about_dodoc_txt"))}}),e("br"),e("p",{domProps:{innerHTML:t._s(t.$t("about_dodoc_links"))}}),e("br"),e("p",{domProps:{innerHTML:t._s(t.$t("about_dodoc_contributors"))}})])])},R=[],N={props:{},components:{},data(){return{}},created(){},mounted(){},beforeDestroy(){},watch:{},computed:{},methods:{}},I=N,z=(n(46425),(0,v.A)(I,$,R,!1,null,"cd16b2fc",null)),D=z.exports,F=function(){var t=this,e=t._self._c;return e("nav",{staticClass:"_breadcrumb",attrs:{"aria-label":"Fil d’ariane"}},[t.$root.app_infos.is_electron?e("button",{staticClass:"u-button u-button_icon _backButton",attrs:{type:"button",title:t.$t("back")},on:{click:t.goBack}},[e("b-icon",{attrs:{icon:"chevron-left"}})],1):t._e(),e("div",{staticClass:"_logo"},[e("Accueil"!==t.$route.name?"router-link":"span",{tag:"component",attrs:{to:"/",title:t.$t("home")}},["dodoc"===t.instance_logo?e("DodocLogo",{staticClass:"_dodocLogo"}):e("img",{staticClass:"_customLogo",attrs:{src:t.instance_logo}})],1)],1),e("transition",{attrs:{name:"fade",mode:"out-in"}},[t.show_space_name?e("div",[e("b-icon",{staticClass:"_arrowRight",attrs:{icon:"arrow-right-short",label:""}}),t._v("   "),e("Projet"===t.$route.name?"router-link":"span",{tag:"component",staticClass:"_spaceName",attrs:{to:{path:"/+"+t.$route.params.space_slug},disabled:"Espace"===t.$route.name}},[e("div",{staticClass:"u-label"},[t._v(" "+t._s(t.$t("space"))+" ")]),e("div",{staticClass:"_name"},[t._v(t._s(t.space&&t.space.title||"–"))])])],1):t._e()]),e("transition",{attrs:{name:"fade",mode:"out-in"}},[t.show_project_name?e("div",[e("b-icon",{staticClass:"_arrowRight",attrs:{icon:"arrow-right-short",label:""}}),t._v("   "),e("span",{tag:"component",staticClass:"_spaceName",attrs:{to:{path:"/+"+t.$route.params.space_slug},disabled:"Espace"===t.$route.name}},[e("div",{staticClass:"u-label"},[t._v(" "+t._s(t.$t("project"))+" ")]),e("div",{staticClass:"_name"},[t._v(t._s(t.project&&t.project.title||"–"))])])],1):t._e()])],1)},B=[],H=n(35272),U={props:{},components:{DodocLogo:H.A},data(){return{space:void 0,project:void 0}},created(){},mounted(){this.$eventHub.$on("received.project",this.setProject),this.$eventHub.$on("received.space",this.setSpace)},beforeDestroy(){this.$eventHub.$off("received.project",this.setProject),this.$eventHub.$off("received.space",this.setSpace)},watch:{show_space_name(){this.show_space_name||(this.space=void 0)},show_project_name(){this.show_project_name||(this.project=void 0)}},computed:{instance_logo(){return this.$root.app_infos.instance_meta.topbar_thumb||"dodoc"},show_space_name(){return this.$route.path.includes("/+")},show_project_name(){return"Projet"===this.$route.name}},methods:{setSpace(t){this.space=t},setProject(t){this.project=t},goBack(){window.history.back()}}},V=U,W=(n(54640),(0,v.A)(V,F,B,!1,null,"cead2da6",null)),Y=W.exports,G={props:{},components:{AdminSettings:()=>n.e(141).then(n.bind(n,54141)),AuthorList:A,LangModal:j,CreditsModal:D,BreadCrumbs:Y},data(){return{show_authors_modal:!1,show_lang_modal:!1,show_credits_modal:!1,show_qr_code_modal:!1,show_settings_modal:!1}},created(){},async mounted(){await this.$api.getFolders({path:"authors"}),this.$api.join({room:"authors"}),this.$eventHub.$on("toolbar.openAuthor",this.showAuthorModal)},beforeDestroy(){this.$api.leave({room:"authors"}),this.$eventHub.$off("toolbar.openAuthor",this.showAuthorModal)},watch:{$route:{handler(){},immediate:!0}},computed:{current_lang_code(){return this.$i18n.availableLocales,this.$i18n.locale},url_to_page(){return this.$route.path,window.location.href}},methods:{showAuthorModal(){this.show_authors_modal=!0}}},K=G,J=(n(47911),(0,v.A)(K,s,l,!1,null,"0dc431f4",null)),Z=J.exports,X=function(){var t=this,e=t._self._c;return e("BaseModal2",{attrs:{title:t.$root.app_infos.instance_meta.name||t.$t("home"),is_closable:!1},on:{close:function(e){return t.$emit("close")}}},[e("p",{staticClass:"u-spacingBottom"},[t._v(" "+t._s(t.$t("general_password_modal_text"))+" "),e("br"),e("a",{attrs:{href:"mailto:"+t.$root.app_infos.instance_meta.contactmail,target:"_blank"}},[t._v(" "+t._s(t.$root.app_infos.instance_meta.contactmail)+" ")])]),e("form",{on:{submit:function(e){return e.preventDefault(),t.submitGeneralPassword.apply(null,arguments)}}},[e("TextInput",{attrs:{label_str:"general_password",content:t.password_to_submit,required:!0,input_type:"password"},on:{"update:content":function(e){t.password_to_submit=e},toggleValidity:e=>t.allow_send=e,onEnter:t.submitGeneralPassword}}),e("button",{staticClass:"u-button u-button_bleuvert",attrs:{type:"submit",disabled:!t.allow_send}},[t._v(" "+t._s(t.$t("access"))+" ")]),t.password_submit_error?e("div",[t._v(" "+t._s(t.password_submit_error)+" ")]):t._e()],1)])},Q=[],tt={props:{},components:{},data(){return{password_to_submit:"",allow_send:!1,remember_on_this_device:!0,password_submit_error:!1}},created(){},async mounted(){},beforeDestroy(){},watch:{},computed:{},methods:{async submitGeneralPassword(){try{await this.$api.submitGeneralPassword({password:this.password_to_submit,remember_on_this_device:this.remember_on_this_device}),this.$emit("close")}catch(t){let e=t.code;return"submitted_general_password_is_wrong"===t.code&&(e=this.$t("submitted_password_is_wrong")),this.password_submit_error=e,this.$alertify.delay(4e3).error(e),setTimeout((()=>{this.password_submit_error=!1}),4e3),!1}}}},et=tt,nt=(0,v.A)(et,X,Q,!1,null,"651ae0d8",null),rt=nt.exports,it=function(){var t=this,e=t._self._c;return e("div",{staticClass:"_trackAuthorChanges"})},ot=[],at={props:{},components:{},data(){return{projects_recently_edited:[],max_items_in_memory:5}},created(){},mounted(){this.$eventHub.$on("hooks.createFolder",this.newPathEdited),this.$eventHub.$on("hooks.uploadFile",this.newPathEdited),this.$eventHub.$on("hooks.copyFile",this.newPathEdited),this.$eventHub.$on("hooks.copyFolder",this.newPathEdited),this.$eventHub.$on("hooks.importFolder",this.newPathEdited),this.$eventHub.$on("hooks.remixFolder",this.newPathEdited),this.$eventHub.$on("hooks.exportFolder",this.newPathEdited),this.$eventHub.$on("hooks.optimizeFile",this.newPathEdited),this.$eventHub.$on("hooks.generatePreviewForPublication",this.newPathEdited),this.$eventHub.$on("hooks.updateMeta",this.newPathEdited),this.$eventHub.$on("hooks.updateCover",this.newPathEdited),this.$eventHub.$on("hooks.deleteItem",this.newPathEdited)},beforeDestroy(){},watch:{projects_recently_edited(){this.updateRecentProjectForAuthor()},"connected_as.projects_recently_edited":{handler(){this.connected_as?.projects_recently_edited&&(this.projects_recently_edited=this.connected_as.projects_recently_edited.slice())},deep:!0,immediate:!0}},computed:{},methods:{newPathEdited({path:t}){const{space_slug:e,project_slug:n}=this.decomposePath(t);if(!e||!n)return;if(t=this.createPath({space_slug:e,project_slug:n}),this.projects_recently_edited.at(-1)===t)return;let r=this.projects_recently_edited.slice();r=r.filter((e=>e!==t)),r.push(t),r=r.slice(-this.max_items_in_memory),this.projects_recently_edited=r},async updateRecentProjectForAuthor(){return!(!this.connected_as||0===this.projects_recently_edited.length)&&(JSON.stringify(this.connected_as.projects_recently_edited)!==JSON.stringify(this.projects_recently_edited)&&(console.log("UPDATE RECENTLY EDITED"),void await this.$api.updateMeta({path:this.connected_as.$path,new_meta:{projects_recently_edited:this.projects_recently_edited}})))}}},st=at,lt=(n(45089),(0,v.A)(st,it,ot,!1,null,"4f46c22a",null)),ct=lt.exports,ut=function(){var t=this,e=t._self._c;return t.tasks_tracked.length>0?e("div",{staticClass:"_taskTracker"},[e("DLabel",{attrs:{str:t.tasks_tracked.length>1?t.$t("exports"):t.$t("export")}}),t._l(t.tasks_tracked,(function(n){return e("div",{key:n.id,staticClass:"_task"},[e("div",{},[t._v(" "+t._s(t.$t(n.instructions.recipe))+" ")]),"completed"!==n.event?e("div",[e("i",[t._v(" "+t._s(t.$t(n.event))+" ")])]):t._e(),e("div",[e("b",[e("AnimatedCounter",{attrs:{value:n.progress}})],1)]),n.path?e("div",[e("button",{staticClass:"u-button u-button_bleuvert",attrs:{type:"button"},on:{click:function(e){return t.openMediaModalToExport(n.path)}}},[t._v(" "+t._s(t.$t("open"))+" ")])]):t._e(),e("div",{staticClass:"u-sameRow"},[n.progress<100?e("button",{staticClass:"u-button u-button_red",attrs:{type:"button"},on:{click:function(e){return t.abortTask(n.id)}}},[e("b-icon",{attrs:{icon:"x-octagon"}}),t._v(" "+t._s(t.$t("stop"))+" ")],1):100===n.progress?e("button",{staticClass:"u-button u-button_icon",attrs:{type:"button"},on:{click:function(e){return t.removeTask(n.id)}}},[e("b-icon",{attrs:{icon:"x-octagon"}})],1):t._e()])])}))],2):t._e()},dt=[],pt={props:{},components:{},data(){return{tasks_tracked:[]}},created(){},mounted(){this.$eventHub.$on("task.started",this.started),this.$eventHub.$on("task.status",this.status),this.$eventHub.$on("task.ended",this.ended)},beforeDestroy(){this.$eventHub.$off("task.started",this.started),this.$eventHub.$off("task.status",this.status),this.$eventHub.$off("task.ended",this.ended)},watch:{},computed:{},methods:{started({task_id:t,instructions:e}){this.tasks_tracked.push({date_started:+new Date,id:t,event:void 0,instructions:e,progress:0,path:void 0}),this.$api.join({room:"task_"+t})},status({task_id:t,progress:e}){const n=this.tasks_tracked.findIndex((e=>e.id===t));-1!==n&&(this.tasks_tracked[n].progress=e)},ended({task_id:t,message:e}){const n=this.tasks_tracked.findIndex((e=>e.id===t));-1!==n&&(this.tasks_tracked[n].progress=100,this.tasks_tracked[n].event=e.event,e.file?.$path&&(this.tasks_tracked[n].path=e.file.$path),this.$api.leave({room:"task_"+t}))},openMediaModalToExport(t){const{space_slug:e,project_slug:n}=this.decomposePath(t),r=this.createPath({space_slug:e,project_slug:n}),i=this.createURLFromPath(r);let o={};o.projectpanes=JSON.stringify([{type:"collect",size:100,focus:this.getFilename(t)}]),this.$router.push({path:i,query:o})},abortTask(t){},removeTask(t){this.tasks_tracked=this.tasks_tracked.filter((e=>e.id!==t))}}},ft=pt,ht=(n(68159),(0,v.A)(ft,ut,dt,!1,null,"adb40426",null)),vt=ht.exports,mt=function(){var t=this,e=t._self._c;return e("BaseModal2",{attrs:{title:t.$t("connection_lost"),is_closable:!1}},[t.$api.connected?t._e():[e("p",{staticClass:"u-spacingBottom"},[e("span",{domProps:{innerHTML:t._s(t.$t("connection_lost_in"))}}),e("br"),t.is_reconnecting?t._e():[e("span",{domProps:{innerHTML:t._s(t.$t("attempting_to_reconnect_in"))}}),t._v(" "),e("strong",[e("span",{key:t.seconds_before_reconnecting},[t._v(" "+t._s(t.seconds_before_reconnecting)+"s ")])])]],2),e("div",{staticClass:"u-spacingBottom"},[t.is_reconnecting?e("div",{staticClass:"_reconnectingMsg"},[e("LoaderSpinner"),t._v(" "+t._s(t.$t("reconnecting"))+" ")],1):e("button",{staticClass:"u-button u-button_bleumarine",attrs:{type:"button"},on:{click:t.reconnectSocket}},[t._v(" "+t._s(t.$t("try_reconnect_now"))+" ")])]),e("p",[t._v(" "+t._s(t.$t("if_issues_contact"))+" "),e("br"),e("a",{attrs:{href:"mailto:"+t.$root.app_infos.instance_meta.contactmail,target:"_blank"}},[t._v(" "+t._s(t.$root.app_infos.instance_meta.contactmail)+" ")])])]],2)},gt=[],_t={props:{},components:{},data(){return{seconds_before_reconnecting:10,is_reconnecting:!1,countdown:void 0}},created(){(this.countdown=async()=>{this.seconds_before_reconnecting-=1,0===this.seconds_before_reconnecting&&await this.reconnectSocket(),this.$api.connected||window.setTimeout(this.countdown,1e3)})()},mounted(){},beforeDestroy(){window.clearTimeout(this.countdown)},watch:{"$api.connected":function(){this.$api.connected&&(this.$emit("close"),this.$alertify.closeLogOnClick(!0).delay(4e3).success(this.$t("connection_back")))}},computed:{},methods:{async reconnectSocket(){this.is_reconnecting=!0,this.$api.reconnectSocket(),await new Promise((t=>setTimeout(t,1e3))),this.is_reconnecting=!1,this.seconds_before_reconnecting=10}}},bt=_t,yt=(n(73793),(0,v.A)(bt,mt,gt,!1,null,"785786c3",null)),wt=yt.exports,kt={props:{},components:{TopBar:Z,GeneralPasswordModal:rt,TrackAuthorChanges:ct,TaskTracker:vt,DisconnectModal:wt},data(){return{show_general_password_modal:!1,show_disconnect_modal:!1}},async created(){console.log("Loading FullUI"),this.$eventHub.$on("app.prompt_general_password",this.promptGeneralPassword),await this.$api.init({debug_mode:this.$root.debug_mode}),this.$eventHub.$on("socketio.connect",this.socketConnected),this.$eventHub.$on("socketio.reconnect",this.socketConnected),this.$eventHub.$on("socketio.disconnect",this.socketDisconnected),this.$eventHub.$on("socketio.connect_error",this.socketConnectError),this.$eventHub.$on("socketio.disconnect",this.showDisconnectModal),this.$root.is_loading=!1},mounted(){},beforeDestroy(){this.$eventHub.$off("app.prompt_general_password",this.promptGeneralPassword),this.$eventHub.$off("socketio.disconnect",this.showDisconnectModal)},watch:{},computed:{},methods:{socketConnected(){this.debug_mode&&this.$alertify.closeLogOnClick(!0).delay(4e3).success(`Connected or reconnected with id ${this.$api.socket.id}`)},socketDisconnected(t){this.$alertify.closeLogOnClick(!0).delay(4e3).error(`Disconnected ${t}`)},socketConnectError(t){this.$alertify.closeLogOnClick(!0).delay(4e3).error(`Connect error ${t}`)},showDisconnectModal(){this.show_disconnect_modal=!0},promptGeneralPassword(){this.show_general_password_modal=!0}}},xt=kt,Ot=(n(715),(0,v.A)(xt,o,a,!1,null,"2fcc2aec",null)),Et=Ot.exports,Ct={props:{},components:{FullUI:Et},data(){return{router_is_loading:!0}},created(){},mounted(){setTimeout((()=>{this.router_is_loading=!1}),200)},beforeDestroy(){},watch:{},computed:{custom_fonts_css(){const t=this.$root.app_infos.custom_fonts;return t.reduce(((t,e)=>e.font_files?(Object.entries(e.font_files).map((([n,r])=>{let i,o;"regular-normal"===n?(i=400,o="normal"):"regular-italic"===n?(i=400,o="italic"):"bold-normal"===n?(i=700,o="normal"):"bold-italic"===n&&(i=700,o="italic");const a="/"+e.path+"/"+r;t+=`\n@font-face {\n font-family: "${e.title}";\n font-style: ${o};\n font-weight: ${i};\n src: url("${a}") format("woff2");\n}\n\n @font-face {\n }\n `})),t):t),"")}},methods:{}},St=Ct,At=(n(30248),n(25167),n(88572),n(90339),(0,v.A)(St,r,i,!1,null,null,null)),Tt=At.exports;n(16280),n(13609);function qt(t,e){for(var n in e)t[n]=e[n];return t}var Mt=/[!'()*]/g,Pt=function(t){return"%"+t.charCodeAt(0).toString(16)},Lt=/%2C/g,jt=function(t){return encodeURIComponent(t).replace(Mt,Pt).replace(Lt,",")};function $t(t){try{return decodeURIComponent(t)}catch(e){0}return t}function Rt(t,e,n){void 0===e&&(e={});var r,i=n||It;try{r=i(t||"")}catch(nr){r={}}for(var o in e){var a=e[o];r[o]=Array.isArray(a)?a.map(Nt):Nt(a)}return r}var Nt=function(t){return null==t||"object"===typeof t?t:String(t)};function It(t){var e={};return t=t.trim().replace(/^(\?|#|&)/,""),t?(t.split("&").forEach((function(t){var n=t.replace(/\+/g," ").split("="),r=$t(n.shift()),i=n.length>0?$t(n.join("=")):null;void 0===e[r]?e[r]=i:Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]})),e):e}function zt(t){var e=t?Object.keys(t).map((function(e){var n=t[e];if(void 0===n)return"";if(null===n)return jt(e);if(Array.isArray(n)){var r=[];return n.forEach((function(t){void 0!==t&&(null===t?r.push(jt(e)):r.push(jt(e)+"="+jt(t)))})),r.join("&")}return jt(e)+"="+jt(n)})).filter((function(t){return t.length>0})).join("&"):null;return e?"?"+e:""}var Dt=/\/?$/;function Ft(t,e,n,r){var i=r&&r.options.stringifyQuery,o=e.query||{};try{o=Bt(o)}catch(nr){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:o,params:e.params||{},fullPath:Vt(e,i),matched:t?Ut(t):[]};return n&&(a.redirectedFrom=Vt(n,i)),Object.freeze(a)}function Bt(t){if(Array.isArray(t))return t.map(Bt);if(t&&"object"===typeof t){var e={};for(var n in t)e[n]=Bt(t[n]);return e}return t}var Ht=Ft(null,{path:"/"});function Ut(t){var e=[];while(t)e.unshift(t),t=t.parent;return e}function Vt(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var i=t.hash;void 0===i&&(i="");var o=e||zt;return(n||"/")+o(r)+i}function Wt(t,e,n){return e===Ht?t===e:!!e&&(t.path&&e.path?t.path.replace(Dt,"")===e.path.replace(Dt,"")&&(n||t.hash===e.hash&&Yt(t.query,e.query)):!(!t.name||!e.name)&&(t.name===e.name&&(n||t.hash===e.hash&&Yt(t.query,e.query)&&Yt(t.params,e.params))))}function Yt(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t).sort(),r=Object.keys(e).sort();return n.length===r.length&&n.every((function(n,i){var o=t[n],a=r[i];if(a!==n)return!1;var s=e[n];return null==o||null==s?o===s:"object"===typeof o&&"object"===typeof s?Yt(o,s):String(o)===String(s)}))}function Gt(t,e){return 0===t.path.replace(Dt,"/").indexOf(e.path.replace(Dt,"/"))&&(!e.hash||t.hash===e.hash)&&Kt(t.query,e.query)}function Kt(t,e){for(var n in e)if(!(n in t))return!1;return!0}function Jt(t){for(var e=0;e=0&&(e=t.slice(r),t=t.slice(0,r));var i=t.indexOf("?");return i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),{path:t,query:n,hash:e}}function ne(t){return t.replace(/\/(?:\s*\/)+/g,"/")}var re=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},ie=xe,oe=ue,ae=de,se=he,le=ke,ce=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function ue(t,e){var n,r=[],i=0,o=0,a="",s=e&&e.delimiter||"/";while(null!=(n=ce.exec(t))){var l=n[0],c=n[1],u=n.index;if(a+=t.slice(o,u),o=u+l.length,c)a+=c[1];else{var d=t[o],p=n[2],f=n[3],h=n[4],v=n[5],m=n[6],g=n[7];a&&(r.push(a),a="");var _=null!=p&&null!=d&&d!==p,b="+"===m||"*"===m,y="?"===m||"*"===m,w=n[2]||s,k=h||v;r.push({name:f||i++,prefix:p||"",delimiter:w,optional:y,repeat:b,partial:_,asterisk:!!g,pattern:k?me(k):g?".*":"[^"+ve(w)+"]+?"})}}return o1||!y.length)return 0===y.length?t():t("span",{},y)}if("a"===this.tag)b.on=_,b.attrs={href:s,"aria-current":m};else{var w=Le(this.$slots.default);if(w){w.isStatic=!1;var k=w.data=qt({},w.data);for(var x in k.on=k.on||{},k.on){var O=k.on[x];x in _&&(k.on[x]=Array.isArray(O)?O:[O])}for(var E in _)E in k.on?k.on[E].push(_[E]):k.on[E]=g;var C=w.data.attrs=qt({},w.data.attrs);C.href=s,C["aria-current"]=m}else b.on=_}return t(this.tag,b,this.$slots.default)}};function Pe(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)&&!t.defaultPrevented&&(void 0===t.button||0===t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}function Le(t){if(t)for(var e,n=0;n-1&&(s.params[d]=n.params[d]);return s.path=Ee(c.path,s.params,'named route "'+l+'"'),p(c,s,a)}if(s.path){s.params={};for(var f=0;f-1}function yn(t,e){return bn(t)&&t._isRouter&&(null==e||t.type===e)}function wn(t,e,n){var r=function(i){i>=t.length?n():t[i]?e(t[i],(function(){r(i+1)})):r(i+1)};r(0)}function kn(t){return function(e,n,r){var i=!1,o=0,a=null;xn(t,(function(t,e,n,s){if("function"===typeof t&&void 0===t.cid){i=!0,o++;var l,c=Sn((function(e){Cn(e)&&(e=e.default),t.resolved="function"===typeof e?e:Se.extend(e),n.components[s]=e,o--,o<=0&&r()})),u=Sn((function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=bn(t)?t:new Error(e),r(a))}));try{l=t(c,u)}catch(nr){u(nr)}if(l)if("function"===typeof l.then)l.then(c,u);else{var d=l.component;d&&"function"===typeof d.then&&d.then(c,u)}}})),i||r()}}function xn(t,e){return On(t.map((function(t){return Object.keys(t.components).map((function(n){return e(t.components[n],t.instances[n],t,n)}))})))}function On(t){return Array.prototype.concat.apply([],t)}var En="function"===typeof Symbol&&"symbol"===typeof Symbol.toStringTag;function Cn(t){return t.__esModule||En&&"Module"===t[Symbol.toStringTag]}function Sn(t){var e=!1;return function(){var n=[],r=arguments.length;while(r--)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var An=function(t,e){this.router=t,this.base=Tn(e),this.current=Ht,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[],this.listeners=[]};function Tn(t){if(!t)if($e){var e=document.querySelector("base");t=e&&e.getAttribute("href")||"/",t=t.replace(/^https?:\/\/[^\/]+/,"")}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function qn(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n0)){var e=this.router,n=e.options.scrollBehavior,r=ln&&n;r&&this.listeners.push(Ke());var i=function(){var n=t.current,i=zn(t.base);t.current===Ht&&i===t._startLocation||t.transitionTo(i,(function(t){r&&Je(e,t,n,!0)}))};window.addEventListener("popstate",i),this.listeners.push((function(){window.removeEventListener("popstate",i)}))}},e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,i=this,o=i.current;this.transitionTo(t,(function(t){cn(ne(r.base+t.fullPath)),Je(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,i=this,o=i.current;this.transitionTo(t,(function(t){un(ne(r.base+t.fullPath)),Je(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.ensureURL=function(t){if(zn(this.base)!==this.current.fullPath){var e=ne(this.base+this.current.fullPath);t?cn(e):un(e)}},e.prototype.getCurrentLocation=function(){return zn(this.base)},e}(An);function zn(t){var e=window.location.pathname,n=e.toLowerCase(),r=t.toLowerCase();return!t||n!==r&&0!==n.indexOf(ne(r+"/"))||(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var Dn=function(t){function e(e,n,r){t.call(this,e,n),r&&Fn(this.base)||Bn()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this;if(!(this.listeners.length>0)){var e=this.router,n=e.options.scrollBehavior,r=ln&&n;r&&this.listeners.push(Ke());var i=function(){var e=t.current;Bn()&&t.transitionTo(Hn(),(function(n){r&&Je(t.router,n,e,!0),ln||Wn(n.fullPath)}))},o=ln?"popstate":"hashchange";window.addEventListener(o,i),this.listeners.push((function(){window.removeEventListener(o,i)}))}},e.prototype.push=function(t,e,n){var r=this,i=this,o=i.current;this.transitionTo(t,(function(t){Vn(t.fullPath),Je(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this,i=this,o=i.current;this.transitionTo(t,(function(t){Wn(t.fullPath),Je(r.router,t,o,!1),e&&e(t)}),n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;Hn()!==e&&(t?Vn(e):Wn(e))},e.prototype.getCurrentLocation=function(){return Hn()},e}(An);function Fn(t){var e=zn(t);if(!/^\/#/.test(e))return window.location.replace(ne(t+"/#"+e)),!0}function Bn(){var t=Hn();return"/"===t.charAt(0)||(Wn("/"+t),!1)}function Hn(){var t=window.location.href,e=t.indexOf("#");return e<0?"":(t=t.slice(e+1),t)}function Un(t){var e=window.location.href,n=e.indexOf("#"),r=n>=0?e.slice(0,n):e;return r+"#"+t}function Vn(t){ln?cn(Un(t)):window.location.hash=t}function Wn(t){ln?un(Un(t)):window.location.replace(Un(t))}var Yn=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)}),n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,(function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)}),n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,(function(){var t=e.current;e.index=n,e.updateRoute(r),e.router.afterHooks.forEach((function(e){e&&e(r,t)}))}),(function(t){yn(t,dn.duplicated)&&(e.index=n)}))}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(An),Gn=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=De(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!ln&&!1!==t.fallback,this.fallback&&(e="hash"),$e||(e="abstract"),this.mode=e,e){case"history":this.history=new In(this,t.base);break;case"hash":this.history=new Dn(this,t.base,this.fallback);break;case"abstract":this.history=new Yn(this,t.base);break;default:0}},Kn={currentRoute:{configurable:!0}};Gn.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},Kn.currentRoute.get=function(){return this.history&&this.history.current},Gn.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",(function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null),e.app||e.history.teardown()})),!this.app){this.app=t;var n=this.history;if(n instanceof In||n instanceof Dn){var r=function(t){var r=n.current,i=e.options.scrollBehavior,o=ln&&i;o&&"fullPath"in t&&Je(e,t,r,!1)},i=function(t){n.setupListeners(),r(t)};n.transitionTo(n.getCurrentLocation(),i,i)}n.listen((function(t){e.apps.forEach((function(e){e._route=t}))}))}},Gn.prototype.beforeEach=function(t){return Zn(this.beforeHooks,t)},Gn.prototype.beforeResolve=function(t){return Zn(this.resolveHooks,t)},Gn.prototype.afterEach=function(t){return Zn(this.afterHooks,t)},Gn.prototype.onReady=function(t,e){this.history.onReady(t,e)},Gn.prototype.onError=function(t){this.history.onError(t)},Gn.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.push(t,e,n)}));this.history.push(t,e,n)},Gn.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!==typeof Promise)return new Promise((function(e,n){r.history.replace(t,e,n)}));this.history.replace(t,e,n)},Gn.prototype.go=function(t){this.history.go(t)},Gn.prototype.back=function(){this.go(-1)},Gn.prototype.forward=function(){this.go(1)},Gn.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map((function(t){return Object.keys(t.components).map((function(e){return t.components[e]}))}))):[]},Gn.prototype.resolve=function(t,e,n){e=e||this.history.current;var r=Ce(t,e,n,this),i=this.match(r,e),o=i.redirectedFrom||i.fullPath,a=this.history.base,s=Xn(a,o,this.mode);return{location:r,route:i,href:s,normalizedTo:r,resolved:i}},Gn.prototype.getRoutes=function(){return this.matcher.getRoutes()},Gn.prototype.addRoute=function(t,e){this.matcher.addRoute(t,e),this.history.current!==Ht&&this.history.transitionTo(this.history.getCurrentLocation())},Gn.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==Ht&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(Gn.prototype,Kn);var Jn=Gn;function Zn(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}function Xn(t,e,n){var r="hash"===n?"#"+e:e;return t?ne(t+"/"+r):r}Gn.install=je,Gn.version="3.6.5",Gn.isNavigationFailure=yn,Gn.NavigationFailureType=dn,Gn.START_LOCATION=Ht,$e&&window.Vue&&window.Vue.use(Gn);e["default"].use(Jn);const Qn=[{path:"/",name:"Accueil",component:()=>n.e(397).then(n.bind(n,27771))},{path:"/+:space_slug",name:"Espace",component:()=>n.e(272).then(n.bind(n,36022))},{path:"/+:space_slug/:project_slug",name:"Projet",component:()=>n.e(541).then(n.bind(n,48535))},{path:"/+:space_slug/:project_slug/publications/:publication_slug",name:"Publication",meta:{static:!0},component:()=>n.e(248).then(n.bind(n,49909))},{path:"/@",name:"Tous les auteurs",component:()=>n.e(182).then(n.bind(n,67582))},{path:"/@:author_slug",name:"Auteur",component:()=>n.e(317).then(n.bind(n,1761))},{path:"/p/:page_slug",name:"Page",component:()=>n.e(402).then(n.bind(n,44352))},{path:"/_ui",name:"UI (dev only)",component:()=>n.e(317).then(n.bind(n,10697))},{path:"/:pathMatch(.*)*",name:"NotFound",component:()=>n.e(317).then(n.bind(n,61796))}],tr=new Jn({mode:"history",base:"/",routes:Qn});var er=tr,nr=function(){return(nr=Object.assign||function(t){for(var e,n=1,r=arguments.length;n=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(i[n]=t[n])}return i}function dr(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r=0||(i[n]=t[n]);return i}function pr(t){return pr="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},pr(t)}var fr=e["default"].version.startsWith("3"),hr=["class","staticClass","style","attrs","props","domProps","on","nativeOn","directives","scopedSlots","slot","key","ref","refInFor"],vr=e["default"].extend.bind(e["default"]);if(fr){var mr=e["default"].extend,gr=["router-link","transition","transition-group"],_r=e["default"].vModelDynamic.created,br=e["default"].vModelDynamic.beforeUpdate;e["default"].vModelDynamic.created=function(t,e,n){_r.call(this,t,e,n),t._assign||(t._assign=function(){})},e["default"].vModelDynamic.beforeUpdate=function(t,e,n){br.call(this,t,e,n),t._assign||(t._assign=function(){})},vr=function(t){if("object"===pr(t)&&t.render&&!t.__alreadyPatched){var e=t.render;t.__alreadyPatched=!0,t.render=function(n){var r=function(t,e,r){var i=void 0===r?[]:[Array.isArray(r)?r.filter(Boolean):r],o="string"===typeof t&&!gr.includes(t),a=e&&"object"===pr(e)&&!Array.isArray(e);if(!a)return n.apply(void 0,[t,e].concat(i));var s=e.attrs,l=e.props,c=ur(e,["attrs","props"]),u=lr(lr({},c),{},{attrs:s,props:o?{}:l});return"router-link"!==t||u.slots||u.scopedSlots||(u.scopedSlots={$hasNormal:function(){}}),n.apply(void 0,[t,u].concat(i))};if(t.functional){var i,o,a=arguments[1],s=lr({},a);s.data={attrs:lr({},a.data.attrs||{}),props:lr({},a.data.props||{})},Object.keys(a.data||{}).forEach((function(t){hr.includes(t)?s.data[t]=a.data[t]:t in a.props?s.data.props[t]=a.data[t]:t.startsWith("on")||(s.data.attrs[t]=a.data[t])}));var l=["_ctx"],c=(null===(i=a.children)||void 0===i||null===(o=i.default)||void 0===o?void 0:o.call(i))||a.children;return c&&0===Object.keys(s.children).filter((function(t){return!l.includes(t)})).length?delete s.children:s.children=c,s.data.on=a.listeners,e.call(this,r,s)}return e.call(this,r)}}return mr.call(this,t)}.bind(e["default"])}e["default"].nextTick;var yr="BIcon",wr="BIconBase",kr=void 0,xr=Boolean,Or=(Date,Number),Er=String,Cr=[Or,Er],Sr=/\B([A-Z])/g,Ar=/-(\w)/g,Tr=/^BIcon/;function qr(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Mr(t){for(var e=1;et.length)&&(e=t.length);for(var n=0,r=new Array(e);n1&&void 0!==arguments[1]?arguments[1]:e;return Hr(e)?e.reduce((function(e,n){return[].concat(Kr(e),[t(n,n)])}),[]):Vr(e)?jr(e).reduce((function(n,r){return Yr(Yr({},n),{},Gr({},r,t(e[r],e[r])))}),{}):n},ni="$bvConfig",ri=["xs","sm","md","lg","xl"],ii=function(t){var e=Lr(null);return function(){for(var n=arguments.length,r=new Array(n),i=0;i1&&void 0!==arguments[1]?arguments[1]:void 0,n=oi[ni];return n?n.getConfigValue(t,e):ei(e)},si=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;return e?ai("".concat(t,".").concat(e),n):ai(t,{})},li=function(){return ai("breakpoints",ri)},ci=ii((function(){return li()})),ui=function(){return ei(ci())},di=(ii((function(){var t=ui();return t[0]="",t})),function(t){return t});function pi(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function fi(t){for(var e=1;e0&&void 0!==arguments[0]?arguments[0]:kr,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:void 0,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0,i=!0===n;return r=i?r:n,fi(fi(fi({},t?{type:t}:{}),i?{required:i}:zr(e)?{}:{default:Ur(e)?function(){return e}:e}),zr(r)?{}:{validator:r})},mi=function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:di;return(Hr(t)?t.slice():jr(t)).reduce((function(t,r){return t[n(r)]=e[r],t}),{})},gi=function(t,e,n){return fi(fi({},ei(t)),{},{default:function(){var r=si(n,e,t.default);return Br(r)?r():r}})},_i=function(t,e){return jr(t).reduce((function(n,r){return fi(fi({},n),{},hi({},r,gi(t[r],r,e)))}),{})},bi=(gi({},"","").default.name,function(t){return t.replace(Sr,"-$1").toLowerCase()}),yi=function(t){return t=bi(t).replace(Ar,(function(t,e){return e?e.toUpperCase():""})),t.charAt(0).toUpperCase()+t.slice(1)},wi=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2;return Fr(t)?"":Hr(t)||Vr(t)&&t.toString===Object.prototype.toString?JSON.stringify(t,null,e):String(t)},ki=function(t){return wi(t).trim()},xi=(Math.min,Math.max),Oi=(Math.abs,Math.ceil,Math.floor,Math.pow,Math.round,function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:NaN,n=parseFloat(t);return isNaN(n)?e:n});function Ei(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}var Ci={viewBox:"0 0 16 16",width:"1em",height:"1em",focusable:"false",role:"img","aria-label":"icon"},Si={width:null,height:null,focusable:null,role:null,"aria-label":null},Ai={animation:vi(Er),content:vi(Er),flipH:vi(xr,!1),flipV:vi(xr,!1),fontScale:vi(Cr,1),rotate:vi(Cr,0),scale:vi(Cr,1),shiftH:vi(Cr,0),shiftV:vi(Cr,0),stacked:vi(xr,!1),title:vi(Er),variant:vi(Er)},Ti=vr({name:wr,functional:!0,props:Ai,render:function(t,e){var n,r=e.data,i=e.props,o=e.children,a=i.animation,s=i.content,l=i.flipH,c=i.flipV,u=i.stacked,d=i.title,p=i.variant,f=xi(Oi(i.fontScale,1),0)||1,h=xi(Oi(i.scale,1),0)||1,v=Oi(i.rotate,0),m=Oi(i.shiftH,0),g=Oi(i.shiftV,0),_=l||c||1!==h,b=_||v,y=m||g,w=!Fr(s),k=[b?"translate(8 8)":null,_?"scale(".concat((l?-1:1)*h," ").concat((c?-1:1)*h,")"):null,v?"rotate(".concat(v,")"):null,b?"translate(-8 -8)":null].filter(di),x=t("g",{attrs:{transform:k.join(" ")||null},domProps:w?{innerHTML:s||""}:{}},o);y&&(x=t("g",{attrs:{transform:"translate(".concat(16*m/16," ").concat(-16*g/16,")")}},[x])),u&&(x=t("g",[x]));var O=d?t("title",d):null,E=[O,x].filter(di);return t("svg",ar({staticClass:"b-icon bi",class:(n={},Ei(n,"text-".concat(p),p),Ei(n,"b-icon-animation-".concat(a),a),n),attrs:Ci,style:u?{}:{fontSize:1===f?null:"".concat(100*f,"%")}},r,u?{attrs:Si}:{},{attrs:{xmlns:u?null:"http://www.w3.org/2000/svg",fill:"currentColor"}}),E)}});function qi(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function Mi(t){for(var e=1;e'),Ni=ji("AlignEnd",''),Ii=ji("AlignStart",''),zi=ji("Archive",''),Di=ji("ArrowClockwise",''),Fi=ji("ArrowCounterclockwise",''),Bi=ji("ArrowDown",''),Hi=ji("ArrowDownShort",''),Ui=ji("ArrowLeftCircle",''),Vi=ji("ArrowLeftCircleFill",''),Wi=ji("ArrowLeftRight",''),Yi=ji("ArrowLeftShort",''),Gi=ji("ArrowRight",''),Ki=ji("ArrowRightCircle",''),Ji=ji("ArrowRightCircleFill",''),Zi=ji("ArrowRightShort",''),Xi=ji("ArrowRightSquare",''),Qi=ji("ArrowUp",''),to=ji("ArrowUpLeftCircleFill",''),eo=ji("ArrowUpShort",''),no=ji("AspectRatio",''),ro=ji("AspectRatioFill",''),io=ji("Back",''),oo=ji("Book",''),ao=ji("BookmarkStar",''),so=ji("BoxArrowInRight",''),lo=ji("BoxArrowUpRight",''),co=ji("Bricks",''),uo=ji("Check",''),po=ji("Check2Circle",''),fo=ji("CheckCircle",''),ho=ji("CheckCircleFill",''),vo=ji("CheckLg",''),mo=ji("ChevronBarContract",''),go=ji("ChevronBarExpand",''),_o=ji("ChevronBarLeft",''),bo=ji("ChevronBarRight",''),yo=ji("ChevronDoubleDown",''),wo=ji("ChevronDoubleLeft",''),ko=ji("ChevronDoubleRight",''),xo=ji("ChevronLeft",''),Oo=ji("ChevronRight",''),Eo=ji("ChevronUp",''),Co=ji("Circle",''),So=ji("CircleFill",''),Ao=ji("Clipboard",''),To=ji("ClipboardCheck",''),qo=ji("Dash",''),Mo=ji("DashLg",''),Po=ji("DashSquareDotted",''),Lo=ji("Diagram2",''),jo=ji("DiscFill",''),$o=ji("Download",''),Ro=ji("ExclamationTriangleFill",''),No=ji("EyeSlash",''),Io=ji("FileEarmark",''),zo=ji("FileEarmarkArrowDown",''),Do=ji("FileEarmarkArrowDownFill",''),Fo=ji("FileEarmarkImage",''),Bo=ji("FileLock2Fill",''),Ho=ji("FilePdf",''),Uo=ji("FilePlus",''),Vo=ji("FlagFill",''),Wo=ji("Fonts",''),Yo=ji("Front",''),Go=ji("Fullscreen",''),Ko=ji("FullscreenExit",''),Jo=ji("Gear",''),Zo=ji("GearWideConnected",''),Xo=ji("Grid3x2GapFill",''),Qo=ji("GridFill",''),ta=ji("HandIndex",''),ea=ji("HandIndexThumb",''),na=ji("Image",''),ra=ji("Images",''),ia=ji("InfoCircle",''),oa=ji("InfoCircleFill",''),aa=ji("InfoSquare",''),sa=ji("Intersect",''),la=ji("Link",''),ca=ji("ListOl",''),ua=ji("Lock",''),da=ji("Map",''),pa=ji("MapFill",''),fa=ji("PatchQuestion",''),ha=ji("PauseCircle",''),va=ji("PauseFill",''),ma=ji("Pen",''),ga=ji("Pencil",''),_a=ji("PencilFill",''),ba=ji("Pentagon",''),ya=ji("People",''),wa=ji("PeopleFill",''),ka=ji("PersonCircle",''),xa=ji("Pin",''),Oa=ji("PinFill",''),Ea=ji("PinMap",''),Ca=ji("PinMapFill",''),Sa=ji("PlayCircleFill",''),Aa=ji("PlayFill",''),Ta=ji("Plus",''),qa=ji("PlusCircle",''),Ma=ji("PlusCircleDotted",''),Pa=ji("PlusCircleFill",''),La=ji("PlusLg",''),ja=ji("PlusSquare",''),$a=ji("PlusSquareDotted",''),Ra=ji("Printer",''),Na=ji("Puzzle",''),Ia=ji("RecordCircleFill",''),za=ji("Save2Fill",''),Da=ji("Search",''),Fa=ji("ShieldCheck",''),Ba=ji("Slash",''),Ha=ji("SquareFill",''),Ua=ji("SquareHalf",''),Va=ji("Star",''),Wa=ji("StarFill",''),Ya=ji("Stopwatch",''),Ga=ji("Tag",''),Ka=ji("TextParagraph",''),Ja=ji("Tools",''),Za=ji("Trash",''),Xa=ji("Unlock",''),Qa=ji("Upload",''),ts=ji("XCircle",''),es=ji("XCircleFill",''),ns=ji("XLg",''),rs=ji("XOctagon",''),is=ji("XSquare",''),os=ji("ZoomIn",''),as=ji("ZoomOut",'');function ss(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function ls(t){for(var e=1;e0?Sl:Cl)(t)},Tl=Math.min,ql=function(t){return t>0?Tl(Al(t),9007199254740991):0},Ml=Math.max,Pl=Math.min,Ll=function(t,e){var n=Al(t);return n<0?Ml(n+e,0):Pl(n,e)},jl=function(t){return function(e,n,r){var i,o=Ws(e),a=ql(o.length),s=Ll(r,a);if(t&&n!=n){for(;a>s;)if((i=o[s++])!=i)return!0}else for(;a>s;s++)if((t||s in o)&&o[s]===n)return t||s||0;return!t&&-1}},$l={includes:jl(!0),indexOf:jl(!1)},Rl=$l.indexOf,Nl=function(t,e){var n,r=Ws(t),i=0,o=[];for(n in r)!Gs(fl,n)&&Gs(r,n)&&o.push(n);for(;e.length>i;)Gs(r,n=e[i++])&&(~Rl(o,n)||o.push(n));return o},Il=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],zl=Il.concat("length","prototype"),Dl={f:Object.getOwnPropertyNames||function(t){return Nl(t,zl)}},Fl={f:Object.getOwnPropertySymbols},Bl=El("Reflect","ownKeys")||function(t){var e=Dl.f(Ts(t)),n=Fl.f;return n?e.concat(n(t)):e},Hl=function(t,e){for(var n=Bl(e),r=Ps.f,i=Js.f,o=0;oo;)Ps.f(t,n=r[o++],e[n]);return t},oc=El("document","documentElement"),ac=pl("IE_PROTO"),sc=function(){},lc=function(t){return"\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorCard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorCard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AuthorCard.vue?vue&type=template&id=5f1283cc&scoped=true\"\nimport script from \"./AuthorCard.vue?vue&type=script&lang=js\"\nexport * from \"./AuthorCard.vue?vue&type=script&lang=js\"\nimport style0 from \"./AuthorCard.vue?vue&type=style&index=0&id=5f1283cc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f1283cc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('button',{staticClass:\"u-buttonLink u-buttonLink_red\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_confirm_delete = true}}},[_c('b-icon',{attrs:{\"icon\":\"trash\"}}),(_vm.show_button_text)?[_vm._v(\" \"+_vm._s(_vm.remove_text)+\" \")]:_vm._e()],2),(_vm.show_confirm_delete)?_c('BaseModal2',{attrs:{\"title\":_vm.remove_text},on:{\"close\":_vm.modalClosed}},[(_vm.remove_expl)?_c('div',[_vm._v(\" \"+_vm._s(_vm.remove_expl)+\" \")]):_vm._e(),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_confirm_delete = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\",\"autofocus\":\"\"},on:{\"click\":_vm.confirmRemove}},[_vm._v(\" \"+_vm._s(_vm.$t(\"confirm_removal\"))+\" \")])])]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RemoveMenu.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RemoveMenu.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RemoveMenu.vue?vue&type=template&id=748e59eb&scoped=true\"\nimport script from \"./RemoveMenu.vue?vue&type=script&lang=js\"\nexport * from \"./RemoveMenu.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"748e59eb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_importFileZone\"},[_c('label',{staticClass:\"u-dropzone\",class:{\n 'is--dragover': _vm.is_dragover,\n 'is--active': _vm.$root.has_file_dragover_on_window,\n },attrs:{\"for\":_vm.id + '-add_file'},on:{\"dragover\":_vm.onDragover,\"dragenter\":_vm.onDragEnter,\"dragleave\":_vm.onDragLeave,\"drop\":_vm.onDrop}},[_c('div',{staticClass:\"u-button u-button_red\"},[_c('b-icon',{attrs:{\"icon\":\"upload\",\"label\":_vm.$t('import')}}),_vm._v(\" \"+_vm._s(_vm.$t(\"import\"))+\" \")],1),_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"or_drag_drop_file_here\").toLowerCase())+\" \")])]),_c('input',{attrs:{\"type\":\"file\",\"multiple\":_vm.multiple,\"id\":_vm.id + '-add_file',\"name\":\"file\",\"accept\":_vm.accepts},on:{\"change\":function($event){return _vm.updateInputFiles($event)}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImportFileZone.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImportFileZone.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImportFileZone.vue?vue&type=template&id=909e19d4&scoped=true\"\nimport script from \"./ImportFileZone.vue?vue&type=script&lang=js\"\nexport * from \"./ImportFileZone.vue?vue&type=script&lang=js\"\nimport style0 from \"./ImportFileZone.vue?vue&type=style&index=0&id=909e19d4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"909e19d4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_spaceProjectPicker\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('destination_project')}}),_c('div',{staticClass:\"_row\"},[_c('div',{},[_c('div',{staticClass:\"u-buttonLink\",attrs:{\"disabled\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"space\"))+\" \")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.destination_space_path),expression:\"destination_space_path\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.destination_space_path=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.sorted_spaces),function(space){return _c('option',{key:space.$path,domProps:{\"value\":space.$path,\"textContent\":_vm._s(_vm.makeSpaceTitle(space))}})}),0)]),_c('div',{staticClass:\"_arrowBtn\"},[_c('b-icon',{attrs:{\"icon\":\"arrow-right-short\",\"label\":\"\"}})],1),(!_vm.projects)?_c('div',{staticClass:\"_projectLoader\"},[_c('LoaderSpinner')],1):(_vm.projects.length > 0)?_c('div',[_c('div',{staticClass:\"u-buttonLink\",attrs:{\"disabled\":\"\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"project\"))+\" \")]),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.destination_project_path),expression:\"destination_project_path\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.destination_project_path=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.sorted_projects),function(project){return _c('option',{key:project.$path,domProps:{\"value\":project.$path,\"textContent\":_vm._s(_vm.makeProjectTitle(project))}})}),0)]):(_vm.sorted_projects.length === 0)?_c('div',[_c('small',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"no_projects\"))+\" \")])]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpaceProjectPicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpaceProjectPicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SpaceProjectPicker.vue?vue&type=template&id=2105b2dd&scoped=true\"\nimport script from \"./SpaceProjectPicker.vue?vue&type=script&lang=js\"\nexport * from \"./SpaceProjectPicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./SpaceProjectPicker.vue?vue&type=style&index=0&id=2105b2dd&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2105b2dd\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"scaleInFade\",\"duration\":150,\"mode\":\"out-in\"}},[(_vm.is_loaded)?_c('svg',{staticClass:\"_dodocLogo\",attrs:{\"enable-background\":\"new 0 0 515 168\",\"viewBox\":\"10 0 515 168\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',{attrs:{\"fill\":\"var(--color1)\"}},[_c('path',{attrs:{\"d\":\"m288.3 29h37.6v71.6l-37.6 37.1z\"}}),_c('ellipse',{attrs:{\"cx\":\"375.1\",\"cy\":\"101.1\",\"rx\":\"37.6\",\"ry\":\"37.6\",\"transform\":\"matrix(.4927 -.8702 .8702 .4927 102.2979 377.7576)\"}}),_c('path',{attrs:{\"d\":\"m488.3 74.5c-14.7-14.7-38.5-14.7-53.2 0s-14.7 38.5 0 53.2z\"}}),_c('path',{attrs:{\"d\":\"m52 29h37.6v71.6l-37.6 37.1z\"}}),_c('circle',{attrs:{\"cx\":\"145.3\",\"cy\":\"101.1\",\"r\":\"37.6\"}}),_c('path',{attrs:{\"d\":\"m435.1 74.5c-14.7 14.7-14.7 38.5 0 53.2s38.5 14.7 53.2 0z\"}})]),_c('g',{attrs:{\"fill\":\"var(--color2)\"}},[_c('ellipse',{attrs:{\"cx\":\"288.3\",\"cy\":\"100.6\",\"rx\":\"37.6\",\"ry\":\"37.6\",\"transform\":\"matrix(.9665 -.2567 .2567 .9665 -16.1696 77.357)\"}}),_c('path',{attrs:{\"d\":\"m52 63c20.8 0 37.6 16.8 37.6 37.6s-16.8 37.6-37.6 37.6-37.6-16.8-37.6-37.6 16.8-37.6 37.6-37.6z\"}}),_c('circle',{attrs:{\"cx\":\"375.1\",\"cy\":\"100.6\",\"r\":\"18.7\"}}),_c('circle',{attrs:{\"cx\":\"145.3\",\"cy\":\"100.6\",\"r\":\"18.7\"}}),_c('circle',{attrs:{\"cx\":\"215.9\",\"cy\":\"101.7\",\"r\":\"18.7\"}}),_c('circle',{attrs:{\"cx\":\"461.2\",\"cy\":\"100.6\",\"r\":\"18.7\"}})])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DodocLogo.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DodocLogo.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DodocLogo.vue?vue&type=template&id=255ec2f0&scoped=true\"\nimport script from \"./DodocLogo.vue?vue&type=script&lang=js\"\nexport * from \"./DodocLogo.vue?vue&type=script&lang=js\"\nimport style0 from \"./DodocLogo.vue?vue&type=style&index=0&id=255ec2f0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"255ec2f0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_mediaLibrary\"},[_c('section',{staticClass:\"_scrollBox\"},[_c('div',{staticClass:\"_importButton\"},[_c('ImportFileZone',{attrs:{\"multiple\":true,\"files_to_import\":_vm.files_to_import},on:{\"update:files_to_import\":function($event){_vm.files_to_import=$event}}}),(_vm.files_to_import.length > 0)?_c('UploadFiles',{attrs:{\"files_to_import\":_vm.files_to_import,\"path\":_vm.project.$path},on:{\"importedMedias\":function($event){return _vm.mediaJustImported($event)},\"close\":function($event){_vm.files_to_import = []}}}):_vm._e()],1),_c('div',{staticClass:\"_topSection\"},[_c('div',{staticClass:\"_topSection--left\"},[(_vm.medias.length === 0)?_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"no_media_in_project\"))+\" \")]):(_vm.medias.length > 0)?[_c('div',{staticClass:\"_mediaCount\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"number_of_media\"))+\" = \"+_vm._s(_vm.medias.length)+\" \"),(_vm.filtered_medias.length !== _vm.medias.length)?[_vm._v(\" (\"),_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('displayed:').toLowerCase())}}),_vm._v(\" \"+_vm._s(_vm.filtered_medias.length)+\") \")]:_vm._e()],2),(!_vm.select_mode && !_vm.batch_mode)?_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.batch_mode = !_vm.batch_mode}}},[_c('b-icon',{attrs:{\"icon\":\"hand-index\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"select\"))+\" \")],1):_vm._e(),(_vm.batch_mode)?_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.cancelSelect}},[_c('b-icon',{attrs:{\"icon\":\"x-square\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")],1):_vm._e(),(_vm.select_mode === 'multiple' || _vm.batch_mode)?_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.selectAllVisibleMedias}},[_c('b-icon',{attrs:{\"icon\":\"plus-square\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"select_all\"))+\" \")],1):_vm._e()]:_vm._e()],2),_c('div',{staticClass:\"_topSection--right\"},[_c('button',{staticClass:\"u-button u-button_icon _favFilter\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.fav_filter = !_vm.fav_filter}}},[_c('b-icon',{attrs:{\"icon\":_vm.fav_filter ? 'star-fill' : 'star'}})],1),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.origin_of_media_to_display),expression:\"origin_of_media_to_display\"}],staticClass:\"_selectMediaOrigin\",class:{\n 'is--active': _vm.origin_of_media_to_display !== 'all',\n },attrs:{\"size\":\"small\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.origin_of_media_to_display=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.origins_of_medias),function(origin){return _c('option',{key:origin.key,attrs:{\"disabled\":_vm.quantityOfMediaWithKey({\n key: '$origin',\n val: origin.key,\n }) === 0},domProps:{\"value\":origin.key,\"textContent\":_vm._s(\n origin.label +\n _vm.formattedQuantity({\n key: '$origin',\n val: origin.key,\n })\n )}})}),0),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.type_of_media_to_display),expression:\"type_of_media_to_display\"}],staticClass:\"_selectMediaType\",class:{\n 'is--active': _vm.type_of_media_to_display !== 'all',\n },attrs:{\"size\":\"small\",\"disabled\":_vm.show_only_media_type && _vm.show_only_media_type !== 'all'},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.type_of_media_to_display=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.types_of_medias),function(type_of_media){return _c('option',{key:type_of_media.key,attrs:{\"disabled\":_vm.quantityOfMediaWithKey({\n key: '$type',\n val: type_of_media.key,\n }) === 0},domProps:{\"value\":type_of_media.key,\"textContent\":_vm._s(\n type_of_media.label +\n _vm.formattedQuantity({\n key: '$type',\n val: type_of_media.key,\n })\n )}})}),0),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.author_of_media_to_display),expression:\"author_of_media_to_display\"}],staticClass:\"_selectMediaAuthor\",class:{\n 'is--active': _vm.author_of_media_to_display !== 'all',\n },attrs:{\"size\":\"small\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.author_of_media_to_display=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{key:\"all\",attrs:{\"value\":\"all\"},domProps:{\"textContent\":_vm._s(_vm.$t('all_accounts'))}}),_vm._l((_vm.authors_of_medias),function(author_of_media){return _c('option',{key:author_of_media.$path,attrs:{\"disabled\":_vm.quantityOfMediaWithAuthor(author_of_media.$path) === 0},domProps:{\"value\":author_of_media.$path,\"textContent\":_vm._s(\n author_of_media.name +\n _vm.formattedQuantityWithAuthor(author_of_media.$path)\n )}})})],2),_c('div',{staticClass:\"_groupBy\"},[(_vm.tile_mode !== 'map')?_vm._l((_vm.group_options),function(group_option){return _c('div',{key:group_option.key},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.group_mode),expression:\"group_mode\"}],attrs:{\"type\":\"radio\",\"id\":group_option.key},domProps:{\"value\":group_option.key,\"checked\":_vm._q(_vm.group_mode,group_option.key)},on:{\"change\":function($event){_vm.group_mode=group_option.key}}}),_c('label',{class:{\n 'is--selected': group_option.key === _vm.group_mode,\n },attrs:{\"for\":group_option.key},domProps:{\"textContent\":_vm._s(group_option.label)}})])}):_vm._e()],2),_c('div',{staticClass:\"_tileMode\"},[_c('button',{staticClass:\"u-button u-button_transparent\",class:{\n 'is--active': _vm.tile_mode === 'table',\n },attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.tile_mode = 'table'}}},[_c('b-icon',{attrs:{\"icon\":\"list-ol\"}})],1),_c('button',{staticClass:\"u-button u-button_transparent\",class:{\n 'is--active': _vm.tile_mode === 'tiny',\n },attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.tile_mode = 'tiny'}}},[_c('b-icon',{attrs:{\"icon\":\"grid-3x2-gap-fill\"}})],1),_c('button',{staticClass:\"u-button u-button_transparent\",class:{\n 'is--active': _vm.tile_mode === 'medium',\n },attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.tile_mode = 'medium'}}},[_c('b-icon',{attrs:{\"icon\":\"grid-fill\"}})],1),_c('button',{staticClass:\"u-button u-button_transparent\",class:{\n 'is--active': _vm.tile_mode === 'map',\n },attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.tile_mode = 'map'}}},[_c('b-icon',{attrs:{\"icon\":\"map-fill\"}})],1)])])]),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[(_vm.tile_mode === 'map')?_c('MediaMap',{key:\"mediaMap\",attrs:{\"medias\":_vm.filtered_medias},on:{\"toggleMediaFocus\":_vm.toggleMediaFocus}}):_c('div',{key:_vm.group_mode,staticClass:\"_gridSection\"},_vm._l((_vm.grouped_medias),function({ label, files }){return _c('div',{key:label,staticClass:\"_dayFileSection\"},[_c('div',{staticClass:\"_mediaLibrary--lib--label\"},[_c('strong',[_vm._v(_vm._s(label))])]),_c('transition-group',{ref:\"mediaTiles\",refInFor:true,staticClass:\"_mediaLibrary--lib--grid\",attrs:{\"tag\":\"div\",\"data-tilemode\":_vm.tile_mode,\"name\":\"StoryModules\",\"appear\":\"\"}},_vm._l((files),function(file){return _c('MediaTile',{key:file.$path,attrs:{\"project_path\":_vm.project.$path,\"index\":file._index,\"file\":file,\"was_focused\":_vm.media_just_focused === _vm.getFilename(file.$path),\"is_selectable\":_vm.mediaTileIsSelectable(file.$path),\"is_selected\":_vm.selected_medias.includes(file.$path),\"data-filepath\":file.$path,\"tile_mode\":_vm.tile_mode,\"is_already_selected\":_vm.mediaTileAlreadySelected(file.$path)},on:{\"toggleMediaFocus\":function($event){return _vm.toggleMediaFocus(file.$path)},\"setSelected\":(present) => _vm.setSelected(present, file.$path)}})}),1)],1)}),0)],1),_c('transition',{attrs:{\"name\":\"slideup\"}},[(_vm.selected_medias.length > 0)?_c('div',{staticClass:\"_selectBtn\"},[(_vm.select_mode)?[_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.addMedias(_vm.selected_medias)}}},[_vm._v(\" \"+_vm._s(`${_vm.$t(\"add\")} (${_vm.selected_medias.length})`)+\" \")])]:(_vm.batch_mode)?[_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.removeAllMedias(_vm.selected_medias)}}},[_vm._v(\" \"+_vm._s(`${_vm.$t(\"remove\")} (${_vm.selected_medias.length})`)+\" \")])]:_vm._e(),_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.cancelSelect}},[_c('b-icon',{attrs:{\"icon\":\"x-circle\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")],1)],2):_vm._e()])],1),_c('transition',{attrs:{\"name\":\"mediaModal\",\"mode\":\"in-out\"}},[(_vm.focused_media)?_c('MediaModal',{key:_vm.focused_media.$path,attrs:{\"file\":_vm.focused_media,\"select_mode\":_vm.select_mode,\"position_in_list\":_vm.focused_media_position_in_list},on:{\"remove\":function($event){return _vm.removeMedia(_vm.focused_media.$path)},\"close\":function($event){return _vm.closeMediaFocus()},\"select\":function($event){return _vm.addMedias([_vm.focused_media.$path])},\"prevMedia\":_vm.prevMedia,\"nextMedia\":_vm.nextMedia}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_mediaTile\",class:{\n 'was--focused': _vm.was_focused,\n 'is--dragged': _vm.is_dragged,\n 'is--selected': _vm.is_selected,\n 'is--own': _vm.is_own_media,\n },attrs:{\"data-tilemode\":_vm.tile_mode}},[_c('div',{staticClass:\"u-nut _index\",style:(`--o-color: var(--color-${_vm.file.$origin})`),domProps:{\"innerHTML\":_vm._s(_vm.index)},on:{\"click\":function($event){return _vm.$emit('toggleMediaFocus')}}}),_c('MediaContent',{staticClass:\"_content\",attrs:{\"file\":_vm.file,\"resolution\":_vm.media_resolution}}),(_vm.tile_mode === 'table')?_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.formatDateToPrecise(_vm.file.$date_uploaded))}}):_vm._e(),_c('FavSwitch',{staticClass:\"_favSwitch\",attrs:{\"fav\":_vm.file.fav,\"path\":_vm.file.$path,\"can_edit\":true}}),(_vm.has_coordinates || _vm.tile_mode === 'table')?_c('div',{staticClass:\"_hasCoordinates\"},[(_vm.has_coordinates)?_c('b-icon',{attrs:{\"icon\":\"pin-map-fill\"}}):_c('span',{domProps:{\"textContent\":_vm._s('-')}})],1):_vm._e(),[(_vm.duration)?_c('span',{staticClass:\"_fileType\",domProps:{\"innerHTML\":_vm._s(_vm.duration)}}):_vm._e(),(['pdf', 'stl'].includes(_vm.file.$type) || _vm.tile_mode === 'table')?_c('span',{staticClass:\"_fileType\",domProps:{\"innerHTML\":_vm._s(_vm.$t(_vm.file.$type))}}):_vm._e()],(_vm.tile_mode !== 'tiny')?_c('span',{staticClass:\"_caption\",domProps:{\"innerHTML\":_vm._s(_vm.file.caption || '–')}}):_vm._e(),(_vm.is_already_selected)?_c('div',{staticClass:\"_alreadySelected\"},[_c('div',{style:(`--notice-bg: ${_vm.is_already_selected.color}`)},[_c('span',[_vm._v(_vm._s(_vm.is_already_selected.label))])])]):_vm._e(),_c('button',{staticClass:\"_focusMediaBtn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('toggleMediaFocus')}}}),_c('div',{staticClass:\"_dragFileIcon\"},[_c('DragFile',{attrs:{\"file\":_vm.file,\"is_dragged\":_vm.is_dragged},on:{\"update:is_dragged\":function($event){_vm.is_dragged=$event}}})],1),(_vm.is_selectable)?_c('ToggleInput',{staticClass:\"_selectCb\",attrs:{\"content\":_vm.is_selected},on:{\"update:content\":function($event){return _vm.$emit('setSelected', $event)}}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaTile.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaTile.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MediaTile.vue?vue&type=template&id=d014b2a4&scoped=true\"\nimport script from \"./MediaTile.vue?vue&type=script&lang=js\"\nexport * from \"./MediaTile.vue?vue&type=script&lang=js\"\nimport style0 from \"./MediaTile.vue?vue&type=style&index=0&id=d014b2a4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d014b2a4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_mediaModal\"},[_c('div',{staticClass:\"_mediaModal--overlay\",on:{\"click\":function($event){return _vm.$emit('close')}}}),_c('div',{staticClass:\"_mediaModal--content\",class:{\n 'is--mobileView': _vm.$root.is_mobile_view,\n }},[(_vm.$root.is_mobile_view)?_c('div',{staticClass:\"_stickyClose\"},[_c('div',{staticClass:\"_stickyClose--content\"},[_c('button',{staticClass:\"u-button u-button_icon _navBtn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('b-icon',{attrs:{\"icon\":\"x-lg\"}})],1)])]):_vm._e(),_c('div',{staticClass:\"_preview\"},[_c('MediaContent',{attrs:{\"file\":_vm.file,\"resolution\":1600,\"context\":'full',\"show_fs_button\":true,\"zoom_on_click\":true}}),(_vm.optimization_strongly_recommended)?_c('div',{staticClass:\"_optimizeNotice\"},[_c('div',{},[_vm._v(\" \"+_vm._s(_vm.$t(\"convert_to_format\"))+\" \"),_c('OptimizeMedia',{attrs:{\"media\":_vm.file},on:{\"close\":function($event){return _vm.$emit('close')}}})],1)]):_vm._e(),(!_vm.$root.is_mobile_view)?_c('div',{staticClass:\"_topRightBtn\"},[_c('DragFile',{staticClass:\"_dragFile\",attrs:{\"file\":_vm.file}}),_c('button',{staticClass:\"u-button u-button_icon _navBtn\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleMeta}},[_c('b-icon',{attrs:{\"icon\":_vm.show_meta_sidebar\n ? 'chevron-double-right'\n : 'chevron-double-left'}})],1),_c('button',{staticClass:\"u-button u-button_icon _navBtn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('b-icon',{attrs:{\"icon\":\"x-lg\"}})],1)],1):_vm._e(),_c('transition',{attrs:{\"name\":\"scaleOutFade\",\"mode\":\"out-in\"}},[(_vm.position_in_list !== 'alone' && _vm.show_nav_btn)?_c('div',{key:_vm.file.$path,staticClass:\"_navBtns\"},[_c('span',[(_vm.position_in_list !== 'first')?_c('button',{staticClass:\"u-button u-button_icon _navBtn _leftArrow\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('prevMedia')}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-short\"}})],1):_vm._e()]),_c('span',[_c('button',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.position_in_list !== 'last'),expression:\"position_in_list !== 'last'\"}],staticClass:\"u-button u-button_icon _navBtn _rightArrow\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('nextMedia')}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-right-short\"}})],1)])]):_vm._e()])],1),(_vm.show_meta_sidebar || _vm.$root.is_mobile_view)?_c('div',{staticClass:\"_meta\"},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('div',{staticClass:\"_topbar\"},[_c('h3',[_vm._v(\" \"+_vm._s(_vm.$t(\"media\"))+\" \"+_vm._s(_vm.file._index)+\" \"),_c('FavSwitch',{staticClass:\"_favSwitch\",attrs:{\"fav\":_vm.file.fav,\"path\":_vm.file.$path,\"can_edit\":true}})],1),_c('DropDown',{attrs:{\"right\":true}},[_c('div',[_c('DownloadFile',{attrs:{\"file\":_vm.file}},[_c('b-icon',{attrs:{\"icon\":\"file-earmark-arrow-down\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"download\"))+\" \")],1)],1),(_vm.optimization_possible)?_c('OptimizeMedia',{attrs:{\"media\":_vm.file},on:{\"close\":function($event){return _vm.$emit('close')}}}):_vm._e(),_c('DuplicateMedia',{attrs:{\"path\":_vm.file.$path},on:{\"close\":function($event){return _vm.$emit('close')}}}),(_vm.$listeners.remove)?_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove_media')},on:{\"remove\":function($event){return _vm.$emit('remove')}}}):_vm._e()],1)],1),_c('small',{staticClass:\"fieldCaption\"},[_vm._v(_vm._s(_vm.file.$media_filename))])]),_c('hr',{staticClass:\"u-spacingBottom\"}),_c('div',{staticClass:\"u-spacingBottom\"},[_c('CollaborativeEditor2',{attrs:{\"label\":_vm.$t('caption'),\"field_to_edit\":'caption',\"content\":_vm.file.caption,\"path\":_vm.file.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"can_edit\":true}})],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('CollaborativeEditor2',{attrs:{\"label\":_vm.$t('credit/reference'),\"field_to_edit\":'$credits',\"content\":_vm.file.$credits,\"path\":_vm.file.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"can_edit\":true}})],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('AuthorField',{staticClass:\"u-spacingBottom\",attrs:{\"label\":_vm.$t('authors'),\"field\":'$authors',\"authors_paths\":_vm.authors_path,\"path\":_vm.file.$path,\"can_edit\":true,\"instructions\":_vm.$t('file_author_instructions'),\"no_options\":true}})],1),_c('DetailsPane',{staticClass:\"u-spacingBottom\",attrs:{\"header\":_vm.$t('informations'),\"icon\":'info-square',\"is_open_initially\":true}},[_c('DateDisplay',{attrs:{\"title\":_vm.$t('date_uploaded'),\"date\":_vm.file.$date_uploaded}}),_c('DateDisplay',{attrs:{\"title\":_vm.$t('date_modified'),\"date\":_vm.file.$date_modified}}),(_vm.file.$infos && _vm.file.$infos.size)?_c('SizeDisplay',{attrs:{\"size\":_vm.file.$infos.size}}):_vm._e(),(_vm.file.$infos && (_vm.file.$infos.width || _vm.file.$infos.height))?_c('ResolutionDisplay',{attrs:{\"width\":_vm.file.$infos.width,\"height\":_vm.file.$infos.height}}):_vm._e(),(_vm.file.$infos && _vm.file.$infos.duration)?_c('DurationDisplay',{attrs:{\"title\":_vm.$t('duration'),\"duration\":_vm.file.$infos.duration}}):_vm._e(),(_vm.file.$origin)?_c('div',{staticClass:\"_metaField\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('origin')}}),_c('div',{staticClass:\"_originInd\",style:(`--o-color: var(--color-${_vm.file.$origin})`)},[_c('i',[_vm._v(\" \"+_vm._s(_vm.$t(_vm.file.$origin))+\" \")])])],1):_vm._e()],1),_c('DetailsPane',{attrs:{\"header\":_vm.$t('location'),\"icon\":'map',\"has_items\":!!_vm.file.$location}},[_c('PositionPicker',{attrs:{\"field_name\":'$location',\"content\":_vm.file.$location,\"path\":_vm.file.$path,\"can_edit\":true}})],1)],1):_vm._e()]),(_vm.select_mode)?_c('div',{staticClass:\"_selectBtn\"},[_c('button',{staticClass:\"u-buttonLink has--whitebg\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('select')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"select\"))+\" \")])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"file-plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate_or_move\"))+\" \")],1),(_vm.show_modal)?_c('BaseModal2',{attrs:{\"title\":_vm.$t('duplicate_or_move')},on:{\"close\":function($event){_vm.show_modal = false}}},[(!_vm.navigation_to_copy)?[_c('div',{},[_c('div',{staticClass:\"u-spacingBottom u-instructions\"},[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"dmm_instr\"))+\" \")])]),_c('SpaceProjectPicker',{staticClass:\"u-spacingBottom\",attrs:{\"path\":_vm.path},on:{\"newProjectSelected\":function($event){_vm.destination_project_path = $event}}}),_c('div',{staticClass:\"u-spacingBottom\"},[_c('ToggleInput',{attrs:{\"content\":_vm.remove_original,\"label\":_vm.$t('remove_original'),\"options\":{\n true: _vm.$t('remove_original_after_copy'),\n false: _vm.$t('keep_original_after_copy'),\n }},on:{\"update:content\":function($event){_vm.remove_original=$event}}})],1)],1),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(!_vm.is_copying)?[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_modal = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\",\"autofocus\":\"\",\"disabled\":!_vm.destination_project_path},on:{\"click\":_vm.confirm}},[(_vm.remove_original)?[_vm._v(\" \"+_vm._s(_vm.$t(\"move\"))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate\"))+\" \")]],2)]:_c('LoaderSpinner')],2)]:[_c('router-link',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"to\":_vm.navigation_to_copy}},[_vm._v(\" \"+_vm._s(_vm.$t(\"open_copy\"))+\" \")])]],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicateMedia.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicateMedia.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DuplicateMedia.vue?vue&type=template&id=83c6f7f4&scoped=true\"\nimport script from \"./DuplicateMedia.vue?vue&type=script&lang=js\"\nexport * from \"./DuplicateMedia.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"83c6f7f4\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MediaModal.vue?vue&type=template&id=5a5c7aee&scoped=true\"\nimport script from \"./MediaModal.vue?vue&type=script&lang=js\"\nexport * from \"./MediaModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./MediaModal.vue?vue&type=style&index=0&id=5a5c7aee&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5a5c7aee\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaLibrary.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaLibrary.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MediaLibrary.vue?vue&type=template&id=c6cedf02&scoped=true\"\nimport script from \"./MediaLibrary.vue?vue&type=script&lang=js\"\nexport * from \"./MediaLibrary.vue?vue&type=script&lang=js\"\nimport style0 from \"./MediaLibrary.vue?vue&type=style&index=0&id=c6cedf02&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c6cedf02\",\n null\n \n)\n\nexport default component.exports","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","!function(){\"use strict\";function t(){var t={parent:document.body,version:\"1.0.12\",defaultOkLabel:\"Ok\",okLabel:\"Ok\",defaultCancelLabel:\"Cancel\",cancelLabel:\"Cancel\",defaultMaxLogItems:2,maxLogItems:2,promptValue:\"\",promptPlaceholder:\"\",closeLogOnClick:!1,closeLogOnClickDefault:!1,delay:5e3,defaultDelay:5e3,logContainerClass:\"alertify-logs\",logContainerDefaultClass:\"alertify-logs\",dialogs:{buttons:{holder:\"\",ok:\"\",cancel:\"\"},input:\"\",message:\"

{{message}}

\",log:\"
{{message}}
\"},defaultDialogs:{buttons:{holder:\"\",ok:\"\",cancel:\"\"},input:\"\",message:\"

{{message}}

\",log:\"
{{message}}
\"},build:function(t){var e=this.dialogs.buttons.ok,o=\"
\"+this.dialogs.message.replace(\"{{message}}\",t.message);return\"confirm\"!==t.type&&\"prompt\"!==t.type||(e=this.dialogs.buttons.cancel+this.dialogs.buttons.ok),\"prompt\"===t.type&&(o+=this.dialogs.input),o=(o+this.dialogs.buttons.holder+\"
\").replace(\"{{buttons}}\",e).replace(\"{{ok}}\",this.okLabel).replace(\"{{cancel}}\",this.cancelLabel)},setCloseLogOnClick:function(t){this.closeLogOnClick=!!t},close:function(t,e){this.closeLogOnClick&&t.addEventListener(\"click\",function(){o(t)}),e=e&&!isNaN(+e)?+e:this.delay,0>e?o(t):e>0&&setTimeout(function(){o(t)},e)},dialog:function(t,e,o,n){return this.setup({type:e,message:t,onOkay:o,onCancel:n})},log:function(t,e,o){var n=document.querySelectorAll(\".alertify-logs > div\");if(n){var i=n.length-this.maxLogItems;if(i>=0)for(var a=0,l=i+1;l>a;a++)this.close(n[a],-1)}this.notify(t,e,o)},setLogPosition:function(t){this.logContainerClass=\"alertify-logs \"+t},setupLogContainer:function(){var t=document.querySelector(\".alertify-logs\"),e=this.logContainerClass;return t||(t=document.createElement(\"div\"),t.className=e,this.parent.appendChild(t)),t.className!==e&&(t.className=e),t},notify:function(e,o,n){var i=this.setupLogContainer(),a=document.createElement(\"div\");a.className=o||\"default\",t.logTemplateMethod?a.innerHTML=t.logTemplateMethod(e):a.innerHTML=e,\"function\"==typeof n&&a.addEventListener(\"click\",n),i.appendChild(a),setTimeout(function(){a.className+=\" show\"},10),this.close(a,this.delay)},setup:function(t){function e(e){\"function\"!=typeof e&&(e=function(){}),i&&i.addEventListener(\"click\",function(i){t.onOkay&&\"function\"==typeof t.onOkay&&(l?t.onOkay(l.value,i):t.onOkay(i)),e(l?{buttonClicked:\"ok\",inputValue:l.value,event:i}:{buttonClicked:\"ok\",event:i}),o(n)}),a&&a.addEventListener(\"click\",function(i){t.onCancel&&\"function\"==typeof t.onCancel&&t.onCancel(i),e({buttonClicked:\"cancel\",event:i}),o(n)}),l&&l.addEventListener(\"keyup\",function(t){13===t.which&&i.click()})}var n=document.createElement(\"div\");n.className=\"alertify hide\",n.innerHTML=this.build(t);var i=n.querySelector(\".ok\"),a=n.querySelector(\".cancel\"),l=n.querySelector(\"input\"),s=n.querySelector(\"label\");l&&(\"string\"==typeof this.promptPlaceholder&&(s?s.textContent=this.promptPlaceholder:l.placeholder=this.promptPlaceholder),\"string\"==typeof this.promptValue&&(l.value=this.promptValue));var r;return\"function\"==typeof Promise?r=new Promise(e):e(),this.parent.appendChild(n),setTimeout(function(){n.classList.remove(\"hide\"),l&&t.type&&\"prompt\"===t.type?(l.select(),l.focus()):i&&i.focus()},100),r},okBtn:function(t){return this.okLabel=t,this},setDelay:function(t){return t=t||0,this.delay=isNaN(t)?this.defaultDelay:parseInt(t,10),this},cancelBtn:function(t){return this.cancelLabel=t,this},setMaxLogItems:function(t){this.maxLogItems=parseInt(t||this.defaultMaxLogItems)},theme:function(t){switch(t.toLowerCase()){case\"bootstrap\":this.dialogs.buttons.ok=\"\",this.dialogs.buttons.cancel=\"\",this.dialogs.input=\"\";break;case\"purecss\":this.dialogs.buttons.ok=\"\",this.dialogs.buttons.cancel=\"\";break;case\"mdl\":case\"material-design-light\":this.dialogs.buttons.ok=\"\",this.dialogs.buttons.cancel=\"\",this.dialogs.input=\"
\";break;case\"angular-material\":this.dialogs.buttons.ok=\"\",this.dialogs.buttons.cancel=\"\",this.dialogs.input=\"
\";break;case\"default\":default:this.dialogs.buttons.ok=this.defaultDialogs.buttons.ok,this.dialogs.buttons.cancel=this.defaultDialogs.buttons.cancel,this.dialogs.input=this.defaultDialogs.input}},reset:function(){this.parent=document.body,this.theme(\"default\"),this.okBtn(this.defaultOkLabel),this.cancelBtn(this.defaultCancelLabel),this.setMaxLogItems(),this.promptValue=\"\",this.promptPlaceholder=\"\",this.delay=this.defaultDelay,this.setCloseLogOnClick(this.closeLogOnClickDefault),this.setLogPosition(\"bottom left\"),this.logTemplateMethod=null},injectCSS:function(){if(!document.querySelector(\"#alertifyCSS\")){var t=document.getElementsByTagName(\"head\")[0],e=document.createElement(\"style\");e.type=\"text/css\",e.id=\"alertifyCSS\",e.innerHTML=\".alertify-logs>*{padding:12px 24px;color:#fff;box-shadow:0 2px 5px 0 rgba(0,0,0,.2);border-radius:1px}.alertify-logs>*,.alertify-logs>.default{background:rgba(0,0,0,.8)}.alertify-logs>.error{background:rgba(244,67,54,.8)}.alertify-logs>.success{background:rgba(76,175,80,.9)}.alertify{position:fixed;background-color:rgba(0,0,0,.3);left:0;right:0;top:0;bottom:0;width:100%;height:100%;z-index:1}.alertify.hide{opacity:0;pointer-events:none}.alertify,.alertify.show{box-sizing:border-box;transition:all .33s cubic-bezier(.25,.8,.25,1)}.alertify,.alertify *{box-sizing:border-box}.alertify .dialog{padding:12px}.alertify .alert,.alertify .dialog{width:100%;margin:0 auto;position:relative;top:50%;transform:translateY(-50%)}.alertify .alert>*,.alertify .dialog>*{width:400px;max-width:95%;margin:0 auto;text-align:center;padding:12px;background:#fff;box-shadow:0 2px 4px -1px rgba(0,0,0,.14),0 4px 5px 0 rgba(0,0,0,.098),0 1px 10px 0 rgba(0,0,0,.084)}.alertify .alert .msg,.alertify .dialog .msg{padding:12px;margin-bottom:12px;margin:0;text-align:left}.alertify .alert input:not(.form-control),.alertify .dialog input:not(.form-control){margin-bottom:15px;width:100%;font-size:100%;padding:12px}.alertify .alert input:not(.form-control):focus,.alertify .dialog input:not(.form-control):focus{outline-offset:-2px}.alertify .alert nav,.alertify .dialog nav{text-align:right}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button),.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button){background:transparent;box-sizing:border-box;color:rgba(0,0,0,.87);position:relative;outline:0;border:0;display:inline-block;-ms-flex-align:center;-ms-grid-row-align:center;align-items:center;padding:0 6px;margin:6px 8px;line-height:36px;min-height:36px;white-space:nowrap;min-width:88px;text-align:center;text-transform:uppercase;font-size:14px;text-decoration:none;cursor:pointer;border:1px solid transparent;border-radius:2px}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):active,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):hover{background-color:rgba(0,0,0,.05)}.alertify .alert nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus,.alertify .dialog nav button:not(.btn):not(.pure-button):not(.md-button):not(.mdl-button):focus{border:1px solid rgba(0,0,0,.1)}.alertify .alert nav button.btn,.alertify .dialog nav button.btn{margin:6px 4px}.alertify-logs{position:fixed;z-index:1}.alertify-logs.bottom,.alertify-logs:not(.top){bottom:16px}.alertify-logs.left,.alertify-logs:not(.right){left:16px}.alertify-logs.left>*,.alertify-logs:not(.right)>*{float:left;transform:translateZ(0);height:auto}.alertify-logs.left>.show,.alertify-logs:not(.right)>.show{left:0}.alertify-logs.left>*,.alertify-logs.left>.hide,.alertify-logs:not(.right)>*,.alertify-logs:not(.right)>.hide{left:-110%}.alertify-logs.right{right:16px}.alertify-logs.right>*{float:right;transform:translateZ(0)}.alertify-logs.right>.show{right:0;opacity:1}.alertify-logs.right>*,.alertify-logs.right>.hide{right:-110%;opacity:0}.alertify-logs.top{top:0}.alertify-logs>*{box-sizing:border-box;transition:all .4s cubic-bezier(.25,.8,.25,1);position:relative;clear:both;backface-visibility:hidden;perspective:1000;max-height:0;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}.alertify-logs>.show{margin-top:12px;opacity:1;max-height:1000px;padding:12px;pointer-events:auto}\",t.insertBefore(e,t.firstChild)}},removeCSS:function(){var t=document.querySelector(\"#alertifyCSS\");t&&t.parentNode&&t.parentNode.removeChild(t)}};return t.injectCSS(),{_$$alertify:t,parent:function(e){t.parent=e},reset:function(){return t.reset(),this},alert:function(e,o,n){return t.dialog(e,\"alert\",o,n)||this},confirm:function(e,o,n){return t.dialog(e,\"confirm\",o,n)||this},prompt:function(e,o,n){return t.dialog(e,\"prompt\",o,n)||this},log:function(e,o){return t.log(e,\"default\",o),this},theme:function(e){return t.theme(e),this},success:function(e,o){return t.log(e,\"success\",o),this},error:function(e,o){return t.log(e,\"error\",o),this},cancelBtn:function(e){return t.cancelBtn(e),this},okBtn:function(e){return t.okBtn(e),this},delay:function(e){return t.setDelay(e),this},placeholder:function(e){return t.promptPlaceholder=e,this},defaultValue:function(e){return t.promptValue=e,this},maxLogItems:function(e){return t.setMaxLogItems(e),this},closeLogOnClick:function(e){return t.setCloseLogOnClick(!!e),this},logPosition:function(e){return t.setLogPosition(e||\"\"),this},setLogTemplate:function(e){return t.logTemplateMethod=e,this},clearLogs:function(){return t.setupLogContainer().innerHTML=\"\",this},version:t.version}}var e=500,o=function(t){if(t){var o=function(){t&&t.parentNode&&t.parentNode.removeChild(t)};t.classList.remove(\"show\"),t.classList.add(\"hide\"),t.addEventListener(\"transitionend\",o),setTimeout(o,e)}};if(\"undefined\"!=typeof module&&module&&module.exports){module.exports=function(){return new t};var n=new t;for(var i in n)module.exports[i]=n[i]}else\"function\"==typeof define&&define.amd?define(function(){return new t}):window.alertify=new t}();","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (factory((global.async = global.async || {})));\n}(this, (function (exports) { 'use strict';\n\nfunction slice(arrayLike, start) {\n start = start|0;\n var newLen = Math.max(arrayLike.length - start, 0);\n var newArr = Array(newLen);\n for(var idx = 0; idx < newLen; idx++) {\n newArr[idx] = arrayLike[start + idx];\n }\n return newArr;\n}\n\n/**\n * Creates a continuation function with some arguments already applied.\n *\n * Useful as a shorthand when combined with other control flow functions. Any\n * arguments passed to the returned function are added to the arguments\n * originally passed to apply.\n *\n * @name apply\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {Function} fn - The function you want to eventually apply all\n * arguments to. Invokes with (arguments...).\n * @param {...*} arguments... - Any number of arguments to automatically apply\n * when the continuation is called.\n * @returns {Function} the partially-applied function\n * @example\n *\n * // using apply\n * async.parallel([\n * async.apply(fs.writeFile, 'testfile1', 'test1'),\n * async.apply(fs.writeFile, 'testfile2', 'test2')\n * ]);\n *\n *\n * // the same process without using apply\n * async.parallel([\n * function(callback) {\n * fs.writeFile('testfile1', 'test1', callback);\n * },\n * function(callback) {\n * fs.writeFile('testfile2', 'test2', callback);\n * }\n * ]);\n *\n * // It's possible to pass any number of additional arguments when calling the\n * // continuation:\n *\n * node> var fn = async.apply(sys.puts, 'one');\n * node> fn('two', 'three');\n * one\n * two\n * three\n */\nvar apply = function(fn/*, ...args*/) {\n var args = slice(arguments, 1);\n return function(/*callArgs*/) {\n var callArgs = slice(arguments);\n return fn.apply(null, args.concat(callArgs));\n };\n};\n\nvar initialParams = function (fn) {\n return function (/*...args, callback*/) {\n var args = slice(arguments);\n var callback = args.pop();\n fn.call(this, args, callback);\n };\n};\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nvar hasSetImmediate = typeof setImmediate === 'function' && setImmediate;\nvar hasNextTick = typeof process === 'object' && typeof process.nextTick === 'function';\n\nfunction fallback(fn) {\n setTimeout(fn, 0);\n}\n\nfunction wrap(defer) {\n return function (fn/*, ...args*/) {\n var args = slice(arguments, 1);\n defer(function () {\n fn.apply(null, args);\n });\n };\n}\n\nvar _defer;\n\nif (hasSetImmediate) {\n _defer = setImmediate;\n} else if (hasNextTick) {\n _defer = process.nextTick;\n} else {\n _defer = fallback;\n}\n\nvar setImmediate$1 = wrap(_defer);\n\n/**\n * Take a sync function and make it async, passing its return value to a\n * callback. This is useful for plugging sync functions into a waterfall,\n * series, or other async functions. Any arguments passed to the generated\n * function will be passed to the wrapped function (except for the final\n * callback argument). Errors thrown will be passed to the callback.\n *\n * If the function passed to `asyncify` returns a Promise, that promises's\n * resolved/rejected state will be used to call the callback, rather than simply\n * the synchronous return value.\n *\n * This also means you can asyncify ES2017 `async` functions.\n *\n * @name asyncify\n * @static\n * @memberOf module:Utils\n * @method\n * @alias wrapSync\n * @category Util\n * @param {Function} func - The synchronous function, or Promise-returning\n * function to convert to an {@link AsyncFunction}.\n * @returns {AsyncFunction} An asynchronous wrapper of the `func`. To be\n * invoked with `(args..., callback)`.\n * @example\n *\n * // passing a regular synchronous function\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(JSON.parse),\n * function (data, next) {\n * // data is the result of parsing the text.\n * // If there was a parsing error, it would have been caught.\n * }\n * ], callback);\n *\n * // passing a function returning a promise\n * async.waterfall([\n * async.apply(fs.readFile, filename, \"utf8\"),\n * async.asyncify(function (contents) {\n * return db.model.create(contents);\n * }),\n * function (model, next) {\n * // `model` is the instantiated model object.\n * // If there was an error, this function would be skipped.\n * }\n * ], callback);\n *\n * // es2017 example, though `asyncify` is not needed if your JS environment\n * // supports async functions out of the box\n * var q = async.queue(async.asyncify(async function(file) {\n * var intermediateStep = await processFile(file);\n * return await somePromise(intermediateStep)\n * }));\n *\n * q.push(files);\n */\nfunction asyncify(func) {\n return initialParams(function (args, callback) {\n var result;\n try {\n result = func.apply(this, args);\n } catch (e) {\n return callback(e);\n }\n // if result is Promise object\n if (isObject(result) && typeof result.then === 'function') {\n result.then(function(value) {\n invokeCallback(callback, null, value);\n }, function(err) {\n invokeCallback(callback, err.message ? err : new Error(err));\n });\n } else {\n callback(null, result);\n }\n });\n}\n\nfunction invokeCallback(callback, error, value) {\n try {\n callback(error, value);\n } catch (e) {\n setImmediate$1(rethrow, e);\n }\n}\n\nfunction rethrow(error) {\n throw error;\n}\n\nvar supportsSymbol = typeof Symbol === 'function';\n\nfunction isAsync(fn) {\n return supportsSymbol && fn[Symbol.toStringTag] === 'AsyncFunction';\n}\n\nfunction wrapAsync(asyncFn) {\n return isAsync(asyncFn) ? asyncify(asyncFn) : asyncFn;\n}\n\nfunction applyEach$1(eachfn) {\n return function(fns/*, ...args*/) {\n var args = slice(arguments, 1);\n var go = initialParams(function(args, callback) {\n var that = this;\n return eachfn(fns, function (fn, cb) {\n wrapAsync(fn).apply(that, args.concat(cb));\n }, callback);\n });\n if (args.length) {\n return go.apply(this, args);\n }\n else {\n return go;\n }\n };\n}\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Built-in value references. */\nvar Symbol$1 = root.Symbol;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag$1 = Symbol$1 ? Symbol$1.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag$1),\n tag = value[symToStringTag$1];\n\n try {\n value[symToStringTag$1] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag$1] = tag;\n } else {\n delete value[symToStringTag$1];\n }\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar objectProto$1 = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString$1 = objectProto$1.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString$1.call(value);\n}\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]';\nvar undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol$1 ? Symbol$1.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]';\nvar funcTag = '[object Function]';\nvar genTag = '[object GeneratorFunction]';\nvar proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n// A temporary value used to identify if the loop should be broken.\n// See #1064, #1293\nvar breakLoop = {};\n\n/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nfunction once(fn) {\n return function () {\n if (fn === null) return;\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n\nvar iteratorSymbol = typeof Symbol === 'function' && Symbol.iterator;\n\nvar getIterator = function (coll) {\n return iteratorSymbol && coll[iteratorSymbol] && coll[iteratorSymbol]();\n};\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/** Used for built-in method references. */\nvar objectProto$3 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$2 = objectProto$3.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto$3.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty$2.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER$1 = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER$1 : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/** `Object#toString` result references. */\nvar argsTag$1 = '[object Arguments]';\nvar arrayTag = '[object Array]';\nvar boolTag = '[object Boolean]';\nvar dateTag = '[object Date]';\nvar errorTag = '[object Error]';\nvar funcTag$1 = '[object Function]';\nvar mapTag = '[object Map]';\nvar numberTag = '[object Number]';\nvar objectTag = '[object Object]';\nvar regexpTag = '[object RegExp]';\nvar setTag = '[object Set]';\nvar stringTag = '[object String]';\nvar weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]';\nvar dataViewTag = '[object DataView]';\nvar float32Tag = '[object Float32Array]';\nvar float64Tag = '[object Float64Array]';\nvar int8Tag = '[object Int8Array]';\nvar int16Tag = '[object Int16Array]';\nvar int32Tag = '[object Int32Array]';\nvar uint8Tag = '[object Uint8Array]';\nvar uint8ClampedTag = '[object Uint8ClampedArray]';\nvar uint16Tag = '[object Uint16Array]';\nvar uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag$1] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag$1] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/** Detect free variable `exports`. */\nvar freeExports$1 = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule$1 = freeExports$1 && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports$1 = freeModule$1 && freeModule$1.exports === freeExports$1;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports$1 && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule$1 && freeModule$1.require && freeModule$1.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/** Used for built-in method references. */\nvar objectProto$2 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$1 = objectProto$2.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty$1.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/** Used for built-in method references. */\nvar objectProto$5 = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto$5;\n\n return value === proto;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\n/** Used for built-in method references. */\nvar objectProto$4 = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty$3 = objectProto$4.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty$3.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nfunction createArrayIterator(coll) {\n var i = -1;\n var len = coll.length;\n return function next() {\n return ++i < len ? {value: coll[i], key: i} : null;\n }\n}\n\nfunction createES2015Iterator(iterator) {\n var i = -1;\n return function next() {\n var item = iterator.next();\n if (item.done)\n return null;\n i++;\n return {value: item.value, key: i};\n }\n}\n\nfunction createObjectIterator(obj) {\n var okeys = keys(obj);\n var i = -1;\n var len = okeys.length;\n return function next() {\n var key = okeys[++i];\n if (key === '__proto__') {\n return next();\n }\n return i < len ? {value: obj[key], key: key} : null;\n };\n}\n\nfunction iterator(coll) {\n if (isArrayLike(coll)) {\n return createArrayIterator(coll);\n }\n\n var iterator = getIterator(coll);\n return iterator ? createES2015Iterator(iterator) : createObjectIterator(coll);\n}\n\nfunction onlyOnce(fn) {\n return function() {\n if (fn === null) throw new Error(\"Callback was already called.\");\n var callFn = fn;\n fn = null;\n callFn.apply(this, arguments);\n };\n}\n\nfunction _eachOfLimit(limit) {\n return function (obj, iteratee, callback) {\n callback = once(callback || noop);\n if (limit <= 0 || !obj) {\n return callback(null);\n }\n var nextElem = iterator(obj);\n var done = false;\n var running = 0;\n var looping = false;\n\n function iterateeCallback(err, value) {\n running -= 1;\n if (err) {\n done = true;\n callback(err);\n }\n else if (value === breakLoop || (done && running <= 0)) {\n done = true;\n return callback(null);\n }\n else if (!looping) {\n replenish();\n }\n }\n\n function replenish () {\n looping = true;\n while (running < limit && !done) {\n var elem = nextElem();\n if (elem === null) {\n done = true;\n if (running <= 0) {\n callback(null);\n }\n return;\n }\n running += 1;\n iteratee(elem.value, elem.key, onlyOnce(iterateeCallback));\n }\n looping = false;\n }\n\n replenish();\n };\n}\n\n/**\n * The same as [`eachOf`]{@link module:Collections.eachOf} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name eachOfLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.eachOf]{@link module:Collections.eachOf}\n * @alias forEachOfLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`. The `key` is the item's key, or index in the case of an\n * array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nfunction eachOfLimit(coll, limit, iteratee, callback) {\n _eachOfLimit(limit)(coll, wrapAsync(iteratee), callback);\n}\n\nfunction doLimit(fn, limit) {\n return function (iterable, iteratee, callback) {\n return fn(iterable, limit, iteratee, callback);\n };\n}\n\n// eachOf implementation optimized for array-likes\nfunction eachOfArrayLike(coll, iteratee, callback) {\n callback = once(callback || noop);\n var index = 0,\n completed = 0,\n length = coll.length;\n if (length === 0) {\n callback(null);\n }\n\n function iteratorCallback(err, value) {\n if (err) {\n callback(err);\n } else if ((++completed === length) || value === breakLoop) {\n callback(null);\n }\n }\n\n for (; index < length; index++) {\n iteratee(coll[index], index, onlyOnce(iteratorCallback));\n }\n}\n\n// a generic version of eachOf which can handle array, object, and iterator cases.\nvar eachOfGeneric = doLimit(eachOfLimit, Infinity);\n\n/**\n * Like [`each`]{@link module:Collections.each}, except that it passes the key (or index) as the second argument\n * to the iteratee.\n *\n * @name eachOf\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEachOf\n * @category Collection\n * @see [async.each]{@link module:Collections.each}\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each\n * item in `coll`.\n * The `key` is the item's key, or index in the case of an array.\n * Invoked with (item, key, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * var obj = {dev: \"/dev.json\", test: \"/test.json\", prod: \"/prod.json\"};\n * var configs = {};\n *\n * async.forEachOf(obj, function (value, key, callback) {\n * fs.readFile(__dirname + value, \"utf8\", function (err, data) {\n * if (err) return callback(err);\n * try {\n * configs[key] = JSON.parse(data);\n * } catch (e) {\n * return callback(e);\n * }\n * callback();\n * });\n * }, function (err) {\n * if (err) console.error(err.message);\n * // configs is now a map of JSON data\n * doSomethingWith(configs);\n * });\n */\nvar eachOf = function(coll, iteratee, callback) {\n var eachOfImplementation = isArrayLike(coll) ? eachOfArrayLike : eachOfGeneric;\n eachOfImplementation(coll, wrapAsync(iteratee), callback);\n};\n\nfunction doParallel(fn) {\n return function (obj, iteratee, callback) {\n return fn(eachOf, obj, wrapAsync(iteratee), callback);\n };\n}\n\nfunction _asyncMap(eachfn, arr, iteratee, callback) {\n callback = callback || noop;\n arr = arr || [];\n var results = [];\n var counter = 0;\n var _iteratee = wrapAsync(iteratee);\n\n eachfn(arr, function (value, _, callback) {\n var index = counter++;\n _iteratee(value, function (err, v) {\n results[index] = v;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n}\n\n/**\n * Produces a new collection of values by mapping each value in `coll` through\n * the `iteratee` function. The `iteratee` is called with an item from `coll`\n * and a callback for when it has finished processing. Each of these callback\n * takes 2 arguments: an `error`, and the transformed item from `coll`. If\n * `iteratee` passes an error to its callback, the main `callback` (for the\n * `map` function) is immediately called with the error.\n *\n * Note, that since this function applies the `iteratee` to each item in\n * parallel, there is no guarantee that the `iteratee` functions will complete\n * in order. However, the results array will be in the same order as the\n * original `coll`.\n *\n * If `map` is passed an Object, the results will be an Array. The results\n * will roughly be in the order of the original Objects' keys (but this can\n * vary across JavaScript engines).\n *\n * @name map\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an Array of the\n * transformed items from the `coll`. Invoked with (err, results).\n * @example\n *\n * async.map(['file1','file2','file3'], fs.stat, function(err, results) {\n * // results is now an array of stats for each file\n * });\n */\nvar map = doParallel(_asyncMap);\n\n/**\n * Applies the provided arguments to each function in the array, calling\n * `callback` after all functions have completed. If you only provide the first\n * argument, `fns`, then it will return a function which lets you pass in the\n * arguments as if it were a single function call. If more arguments are\n * provided, `callback` is required while `args` is still optional.\n *\n * @name applyEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} fns - A collection of {@link AsyncFunction}s\n * to all call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument, `fns`, is provided, it will\n * return a function which lets you pass in the arguments as if it were a single\n * function call. The signature is `(..args, callback)`. If invoked with any\n * arguments, `callback` is required.\n * @example\n *\n * async.applyEach([enableSearch, updateSchema], 'bucket', callback);\n *\n * // partial application example:\n * async.each(\n * buckets,\n * async.applyEach([enableSearch, updateSchema]),\n * callback\n * );\n */\nvar applyEach = applyEach$1(map);\n\nfunction doParallelLimit(fn) {\n return function (obj, limit, iteratee, callback) {\n return fn(_eachOfLimit(limit), obj, wrapAsync(iteratee), callback);\n };\n}\n\n/**\n * The same as [`map`]{@link module:Collections.map} but runs a maximum of `limit` async operations at a time.\n *\n * @name mapLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n */\nvar mapLimit = doParallelLimit(_asyncMap);\n\n/**\n * The same as [`map`]{@link module:Collections.map} but runs only a single async operation at a time.\n *\n * @name mapSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with the transformed item.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Results is an array of the\n * transformed items from the `coll`. Invoked with (err, results).\n */\nvar mapSeries = doLimit(mapLimit, 1);\n\n/**\n * The same as [`applyEach`]{@link module:ControlFlow.applyEach} but runs only a single async operation at a time.\n *\n * @name applyEachSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.applyEach]{@link module:ControlFlow.applyEach}\n * @category Control Flow\n * @param {Array|Iterable|Object} fns - A collection of {@link AsyncFunction}s to all\n * call with the same arguments\n * @param {...*} [args] - any number of separate arguments to pass to the\n * function.\n * @param {Function} [callback] - the final argument should be the callback,\n * called when all functions have completed processing.\n * @returns {Function} - If only the first argument is provided, it will return\n * a function which lets you pass in the arguments as if it were a single\n * function call.\n */\nvar applyEachSeries = applyEach$1(mapSeries);\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\n/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\n/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\n/**\n * Determines the best order for running the {@link AsyncFunction}s in `tasks`, based on\n * their requirements. Each function can optionally depend on other functions\n * being completed first, and each function is run as soon as its requirements\n * are satisfied.\n *\n * If any of the {@link AsyncFunction}s pass an error to their callback, the `auto` sequence\n * will stop. Further tasks will not execute (so any other functions depending\n * on it will not run), and the main `callback` is immediately called with the\n * error.\n *\n * {@link AsyncFunction}s also receive an object containing the results of functions which\n * have completed so far as the first argument, if they have dependencies. If a\n * task function has no dependencies, it will only be passed a callback.\n *\n * @name auto\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Object} tasks - An object. Each of its properties is either a\n * function or an array of requirements, with the {@link AsyncFunction} itself the last item\n * in the array. The object's key of a property serves as the name of the task\n * defined by that property, i.e. can be used when specifying requirements for\n * other tasks. The function receives one or two arguments:\n * * a `results` object, containing the results of the previously executed\n * functions, only passed if the task has any dependencies,\n * * a `callback(err, result)` function, which must be called when finished,\n * passing an `error` (which can be `null`) and the result of the function's\n * execution.\n * @param {number} [concurrency=Infinity] - An optional `integer` for\n * determining the maximum number of tasks that can be run in parallel. By\n * default, as many as possible.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback. Results are always returned; however, if an\n * error occurs, no further `tasks` will be performed, and the results object\n * will only contain partial results. Invoked with (err, results).\n * @returns undefined\n * @example\n *\n * async.auto({\n * // this function will just be passed a callback\n * readData: async.apply(fs.readFile, 'data.txt', 'utf-8'),\n * showData: ['readData', function(results, cb) {\n * // results.readData is the file's contents\n * // ...\n * }]\n * }, callback);\n *\n * async.auto({\n * get_data: function(callback) {\n * console.log('in get_data');\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * console.log('in make_folder');\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: ['get_data', 'make_folder', function(results, callback) {\n * console.log('in write_file', JSON.stringify(results));\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(results, callback) {\n * console.log('in email_link', JSON.stringify(results));\n * // once the file is written let's email a link to it...\n * // results.write_file contains the filename returned by write_file.\n * callback(null, {'file':results.write_file, 'email':'user@example.com'});\n * }]\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('results = ', results);\n * });\n */\nvar auto = function (tasks, concurrency, callback) {\n if (typeof concurrency === 'function') {\n // concurrency is optional, shift the args.\n callback = concurrency;\n concurrency = null;\n }\n callback = once(callback || noop);\n var keys$$1 = keys(tasks);\n var numTasks = keys$$1.length;\n if (!numTasks) {\n return callback(null);\n }\n if (!concurrency) {\n concurrency = numTasks;\n }\n\n var results = {};\n var runningTasks = 0;\n var hasError = false;\n\n var listeners = Object.create(null);\n\n var readyTasks = [];\n\n // for cycle detection:\n var readyToCheck = []; // tasks that have been identified as reachable\n // without the possibility of returning to an ancestor task\n var uncheckedDependencies = {};\n\n baseForOwn(tasks, function (task, key) {\n if (!isArray(task)) {\n // no dependencies\n enqueueTask(key, [task]);\n readyToCheck.push(key);\n return;\n }\n\n var dependencies = task.slice(0, task.length - 1);\n var remainingDependencies = dependencies.length;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n readyToCheck.push(key);\n return;\n }\n uncheckedDependencies[key] = remainingDependencies;\n\n arrayEach(dependencies, function (dependencyName) {\n if (!tasks[dependencyName]) {\n throw new Error('async.auto task `' + key +\n '` has a non-existent dependency `' +\n dependencyName + '` in ' +\n dependencies.join(', '));\n }\n addListener(dependencyName, function () {\n remainingDependencies--;\n if (remainingDependencies === 0) {\n enqueueTask(key, task);\n }\n });\n });\n });\n\n checkForDeadlocks();\n processQueue();\n\n function enqueueTask(key, task) {\n readyTasks.push(function () {\n runTask(key, task);\n });\n }\n\n function processQueue() {\n if (readyTasks.length === 0 && runningTasks === 0) {\n return callback(null, results);\n }\n while(readyTasks.length && runningTasks < concurrency) {\n var run = readyTasks.shift();\n run();\n }\n\n }\n\n function addListener(taskName, fn) {\n var taskListeners = listeners[taskName];\n if (!taskListeners) {\n taskListeners = listeners[taskName] = [];\n }\n\n taskListeners.push(fn);\n }\n\n function taskComplete(taskName) {\n var taskListeners = listeners[taskName] || [];\n arrayEach(taskListeners, function (fn) {\n fn();\n });\n processQueue();\n }\n\n\n function runTask(key, task) {\n if (hasError) return;\n\n var taskCallback = onlyOnce(function(err, result) {\n runningTasks--;\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n }\n if (err) {\n var safeResults = {};\n baseForOwn(results, function(val, rkey) {\n safeResults[rkey] = val;\n });\n safeResults[key] = result;\n hasError = true;\n listeners = Object.create(null);\n\n callback(err, safeResults);\n } else {\n results[key] = result;\n taskComplete(key);\n }\n });\n\n runningTasks++;\n var taskFn = wrapAsync(task[task.length - 1]);\n if (task.length > 1) {\n taskFn(results, taskCallback);\n } else {\n taskFn(taskCallback);\n }\n }\n\n function checkForDeadlocks() {\n // Kahn's algorithm\n // https://en.wikipedia.org/wiki/Topological_sorting#Kahn.27s_algorithm\n // http://connalle.blogspot.com/2013/10/topological-sortingkahn-algorithm.html\n var currentTask;\n var counter = 0;\n while (readyToCheck.length) {\n currentTask = readyToCheck.pop();\n counter++;\n arrayEach(getDependents(currentTask), function (dependent) {\n if (--uncheckedDependencies[dependent] === 0) {\n readyToCheck.push(dependent);\n }\n });\n }\n\n if (counter !== numTasks) {\n throw new Error(\n 'async.auto cannot execute tasks due to a recursive dependency'\n );\n }\n }\n\n function getDependents(taskName) {\n var result = [];\n baseForOwn(tasks, function (task, key) {\n if (isArray(task) && baseIndexOf(task, taskName, 0) >= 0) {\n result.push(key);\n }\n });\n return result;\n }\n};\n\n/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol$1 ? Symbol$1.prototype : undefined;\nvar symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\n/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\nfunction charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\n/**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\nfunction charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n}\n\n/**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff';\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f';\nvar reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f';\nvar rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff';\nvar rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\nvar rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\n/** Used to compose unicode character classes. */\nvar rsAstralRange$1 = '\\\\ud800-\\\\udfff';\nvar rsComboMarksRange$1 = '\\\\u0300-\\\\u036f';\nvar reComboHalfMarksRange$1 = '\\\\ufe20-\\\\ufe2f';\nvar rsComboSymbolsRange$1 = '\\\\u20d0-\\\\u20ff';\nvar rsComboRange$1 = rsComboMarksRange$1 + reComboHalfMarksRange$1 + rsComboSymbolsRange$1;\nvar rsVarRange$1 = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange$1 + ']';\nvar rsCombo = '[' + rsComboRange$1 + ']';\nvar rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]';\nvar rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')';\nvar rsNonAstral = '[^' + rsAstralRange$1 + ']';\nvar rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}';\nvar rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]';\nvar rsZWJ$1 = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?';\nvar rsOptVar = '[' + rsVarRange$1 + ']?';\nvar rsOptJoin = '(?:' + rsZWJ$1 + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*';\nvar rsSeq = rsOptVar + reOptMod + rsOptJoin;\nvar rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/**\n * Removes leading and trailing whitespace or specified characters from `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to trim.\n * @param {string} [chars=whitespace] The characters to trim.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the trimmed string.\n * @example\n *\n * _.trim(' abc ');\n * // => 'abc'\n *\n * _.trim('-_-abc-_-', '_-');\n * // => 'abc'\n *\n * _.map([' foo ', ' bar '], _.trim);\n * // => ['foo', 'bar']\n */\nfunction trim(string, chars, guard) {\n string = toString(string);\n if (string && (guard || chars === undefined)) {\n return string.replace(reTrim, '');\n }\n if (!string || !(chars = baseToString(chars))) {\n return string;\n }\n var strSymbols = stringToArray(string),\n chrSymbols = stringToArray(chars),\n start = charsStartIndex(strSymbols, chrSymbols),\n end = charsEndIndex(strSymbols, chrSymbols) + 1;\n\n return castSlice(strSymbols, start, end).join('');\n}\n\nvar FN_ARGS = /^(?:async\\s+)?(function)?\\s*[^\\(]*\\(\\s*([^\\)]*)\\)/m;\nvar FN_ARG_SPLIT = /,/;\nvar FN_ARG = /(=.+)?(\\s*)$/;\nvar STRIP_COMMENTS = /((\\/\\/.*$)|(\\/\\*[\\s\\S]*?\\*\\/))/mg;\n\nfunction parseParams(func) {\n func = func.toString().replace(STRIP_COMMENTS, '');\n func = func.match(FN_ARGS)[2].replace(' ', '');\n func = func ? func.split(FN_ARG_SPLIT) : [];\n func = func.map(function (arg){\n return trim(arg.replace(FN_ARG, ''));\n });\n return func;\n}\n\n/**\n * A dependency-injected version of the [async.auto]{@link module:ControlFlow.auto} function. Dependent\n * tasks are specified as parameters to the function, after the usual callback\n * parameter, with the parameter names matching the names of the tasks it\n * depends on. This can provide even more readable task graphs which can be\n * easier to maintain.\n *\n * If a final callback is specified, the task results are similarly injected,\n * specified as named parameters after the initial error parameter.\n *\n * The autoInject function is purely syntactic sugar and its semantics are\n * otherwise equivalent to [async.auto]{@link module:ControlFlow.auto}.\n *\n * @name autoInject\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.auto]{@link module:ControlFlow.auto}\n * @category Control Flow\n * @param {Object} tasks - An object, each of whose properties is an {@link AsyncFunction} of\n * the form 'func([dependencies...], callback). The object's key of a property\n * serves as the name of the task defined by that property, i.e. can be used\n * when specifying requirements for other tasks.\n * * The `callback` parameter is a `callback(err, result)` which must be called\n * when finished, passing an `error` (which can be `null`) and the result of\n * the function's execution. The remaining parameters name other tasks on\n * which the task is dependent, and the results from those tasks are the\n * arguments of those parameters.\n * @param {Function} [callback] - An optional callback which is called when all\n * the tasks have been completed. It receives the `err` argument if any `tasks`\n * pass an error to their callback, and a `results` object with any completed\n * task results, similar to `auto`.\n * @example\n *\n * // The example from `auto` can be rewritten as follows:\n * async.autoInject({\n * get_data: function(callback) {\n * // async code to get some data\n * callback(null, 'data', 'converted to array');\n * },\n * make_folder: function(callback) {\n * // async code to create a directory to store a file in\n * // this is run at the same time as getting the data\n * callback(null, 'folder');\n * },\n * write_file: function(get_data, make_folder, callback) {\n * // once there is some data and the directory exists,\n * // write the data to a file in the directory\n * callback(null, 'filename');\n * },\n * email_link: function(write_file, callback) {\n * // once the file is written let's email a link to it...\n * // write_file contains the filename returned by write_file.\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n *\n * // If you are using a JS minifier that mangles parameter names, `autoInject`\n * // will not work with plain functions, since the parameter names will be\n * // collapsed to a single letter identifier. To work around this, you can\n * // explicitly specify the names of the parameters your task function needs\n * // in an array, similar to Angular.js dependency injection.\n *\n * // This still has an advantage over plain `auto`, since the results a task\n * // depends on are still spread into arguments.\n * async.autoInject({\n * //...\n * write_file: ['get_data', 'make_folder', function(get_data, make_folder, callback) {\n * callback(null, 'filename');\n * }],\n * email_link: ['write_file', function(write_file, callback) {\n * callback(null, {'file':write_file, 'email':'user@example.com'});\n * }]\n * //...\n * }, function(err, results) {\n * console.log('err = ', err);\n * console.log('email_link = ', results.email_link);\n * });\n */\nfunction autoInject(tasks, callback) {\n var newTasks = {};\n\n baseForOwn(tasks, function (taskFn, key) {\n var params;\n var fnIsAsync = isAsync(taskFn);\n var hasNoDeps =\n (!fnIsAsync && taskFn.length === 1) ||\n (fnIsAsync && taskFn.length === 0);\n\n if (isArray(taskFn)) {\n params = taskFn.slice(0, -1);\n taskFn = taskFn[taskFn.length - 1];\n\n newTasks[key] = params.concat(params.length > 0 ? newTask : taskFn);\n } else if (hasNoDeps) {\n // no dependencies, use the function as-is\n newTasks[key] = taskFn;\n } else {\n params = parseParams(taskFn);\n if (taskFn.length === 0 && !fnIsAsync && params.length === 0) {\n throw new Error(\"autoInject task functions require explicit parameters.\");\n }\n\n // remove callback param\n if (!fnIsAsync) params.pop();\n\n newTasks[key] = params.concat(newTask);\n }\n\n function newTask(results, taskCb) {\n var newArgs = arrayMap(params, function (name) {\n return results[name];\n });\n newArgs.push(taskCb);\n wrapAsync(taskFn).apply(null, newArgs);\n }\n });\n\n auto(newTasks, callback);\n}\n\n// Simple doubly linked list (https://en.wikipedia.org/wiki/Doubly_linked_list) implementation\n// used for queues. This implementation assumes that the node provided by the user can be modified\n// to adjust the next and last properties. We implement only the minimal functionality\n// for queue support.\nfunction DLL() {\n this.head = this.tail = null;\n this.length = 0;\n}\n\nfunction setInitial(dll, node) {\n dll.length = 1;\n dll.head = dll.tail = node;\n}\n\nDLL.prototype.removeLink = function(node) {\n if (node.prev) node.prev.next = node.next;\n else this.head = node.next;\n if (node.next) node.next.prev = node.prev;\n else this.tail = node.prev;\n\n node.prev = node.next = null;\n this.length -= 1;\n return node;\n};\n\nDLL.prototype.empty = function () {\n while(this.head) this.shift();\n return this;\n};\n\nDLL.prototype.insertAfter = function(node, newNode) {\n newNode.prev = node;\n newNode.next = node.next;\n if (node.next) node.next.prev = newNode;\n else this.tail = newNode;\n node.next = newNode;\n this.length += 1;\n};\n\nDLL.prototype.insertBefore = function(node, newNode) {\n newNode.prev = node.prev;\n newNode.next = node;\n if (node.prev) node.prev.next = newNode;\n else this.head = newNode;\n node.prev = newNode;\n this.length += 1;\n};\n\nDLL.prototype.unshift = function(node) {\n if (this.head) this.insertBefore(this.head, node);\n else setInitial(this, node);\n};\n\nDLL.prototype.push = function(node) {\n if (this.tail) this.insertAfter(this.tail, node);\n else setInitial(this, node);\n};\n\nDLL.prototype.shift = function() {\n return this.head && this.removeLink(this.head);\n};\n\nDLL.prototype.pop = function() {\n return this.tail && this.removeLink(this.tail);\n};\n\nDLL.prototype.toArray = function () {\n var arr = Array(this.length);\n var curr = this.head;\n for(var idx = 0; idx < this.length; idx++) {\n arr[idx] = curr.data;\n curr = curr.next;\n }\n return arr;\n};\n\nDLL.prototype.remove = function (testFn) {\n var curr = this.head;\n while(!!curr) {\n var next = curr.next;\n if (testFn(curr)) {\n this.removeLink(curr);\n }\n curr = next;\n }\n return this;\n};\n\nfunction queue(worker, concurrency, payload) {\n if (concurrency == null) {\n concurrency = 1;\n }\n else if(concurrency === 0) {\n throw new Error('Concurrency must not be zero');\n }\n\n var _worker = wrapAsync(worker);\n var numRunning = 0;\n var workersList = [];\n\n var processingScheduled = false;\n function _insert(data, insertAtFront, callback) {\n if (callback != null && typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n if (!isArray(data)) {\n data = [data];\n }\n if (data.length === 0 && q.idle()) {\n // call drain immediately if there are no tasks\n return setImmediate$1(function() {\n q.drain();\n });\n }\n\n for (var i = 0, l = data.length; i < l; i++) {\n var item = {\n data: data[i],\n callback: callback || noop\n };\n\n if (insertAtFront) {\n q._tasks.unshift(item);\n } else {\n q._tasks.push(item);\n }\n }\n\n if (!processingScheduled) {\n processingScheduled = true;\n setImmediate$1(function() {\n processingScheduled = false;\n q.process();\n });\n }\n }\n\n function _next(tasks) {\n return function(err){\n numRunning -= 1;\n\n for (var i = 0, l = tasks.length; i < l; i++) {\n var task = tasks[i];\n\n var index = baseIndexOf(workersList, task, 0);\n if (index === 0) {\n workersList.shift();\n } else if (index > 0) {\n workersList.splice(index, 1);\n }\n\n task.callback.apply(task, arguments);\n\n if (err != null) {\n q.error(err, task.data);\n }\n }\n\n if (numRunning <= (q.concurrency - q.buffer) ) {\n q.unsaturated();\n }\n\n if (q.idle()) {\n q.drain();\n }\n q.process();\n };\n }\n\n var isProcessing = false;\n var q = {\n _tasks: new DLL(),\n concurrency: concurrency,\n payload: payload,\n saturated: noop,\n unsaturated:noop,\n buffer: concurrency / 4,\n empty: noop,\n drain: noop,\n error: noop,\n started: false,\n paused: false,\n push: function (data, callback) {\n _insert(data, false, callback);\n },\n kill: function () {\n q.drain = noop;\n q._tasks.empty();\n },\n unshift: function (data, callback) {\n _insert(data, true, callback);\n },\n remove: function (testFn) {\n q._tasks.remove(testFn);\n },\n process: function () {\n // Avoid trying to start too many processing operations. This can occur\n // when callbacks resolve synchronously (#1267).\n if (isProcessing) {\n return;\n }\n isProcessing = true;\n while(!q.paused && numRunning < q.concurrency && q._tasks.length){\n var tasks = [], data = [];\n var l = q._tasks.length;\n if (q.payload) l = Math.min(l, q.payload);\n for (var i = 0; i < l; i++) {\n var node = q._tasks.shift();\n tasks.push(node);\n workersList.push(node);\n data.push(node.data);\n }\n\n numRunning += 1;\n\n if (q._tasks.length === 0) {\n q.empty();\n }\n\n if (numRunning === q.concurrency) {\n q.saturated();\n }\n\n var cb = onlyOnce(_next(tasks));\n _worker(data, cb);\n }\n isProcessing = false;\n },\n length: function () {\n return q._tasks.length;\n },\n running: function () {\n return numRunning;\n },\n workersList: function () {\n return workersList;\n },\n idle: function() {\n return q._tasks.length + numRunning === 0;\n },\n pause: function () {\n q.paused = true;\n },\n resume: function () {\n if (q.paused === false) { return; }\n q.paused = false;\n setImmediate$1(q.process);\n }\n };\n return q;\n}\n\n/**\n * A cargo of tasks for the worker function to complete. Cargo inherits all of\n * the same methods and event callbacks as [`queue`]{@link module:ControlFlow.queue}.\n * @typedef {Object} CargoObject\n * @memberOf module:ControlFlow\n * @property {Function} length - A function returning the number of items\n * waiting to be processed. Invoke like `cargo.length()`.\n * @property {number} payload - An `integer` for determining how many tasks\n * should be process per round. This property can be changed after a `cargo` is\n * created to alter the payload on-the-fly.\n * @property {Function} push - Adds `task` to the `queue`. The callback is\n * called once the `worker` has finished processing the task. Instead of a\n * single task, an array of `tasks` can be submitted. The respective callback is\n * used for every task in the list. Invoke like `cargo.push(task, [callback])`.\n * @property {Function} saturated - A callback that is called when the\n * `queue.length()` hits the concurrency and further tasks will be queued.\n * @property {Function} empty - A callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - A callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke like `cargo.idle()`.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke like `cargo.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke like `cargo.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. Invoke like `cargo.kill()`.\n */\n\n/**\n * Creates a `cargo` object with the specified payload. Tasks added to the\n * cargo will be processed altogether (up to the `payload` limit). If the\n * `worker` is in progress, the task is queued until it becomes available. Once\n * the `worker` has completed some tasks, each callback of those tasks is\n * called. Check out [these](https://camo.githubusercontent.com/6bbd36f4cf5b35a0f11a96dcd2e97711ffc2fb37/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130382f62626330636662302d356632392d313165322d393734662d3333393763363464633835382e676966) [animations](https://camo.githubusercontent.com/f4810e00e1c5f5f8addbe3e9f49064fd5d102699/68747470733a2f2f662e636c6f75642e6769746875622e636f6d2f6173736574732f313637363837312f36383130312f38346339323036362d356632392d313165322d383134662d3964336430323431336266642e676966)\n * for how `cargo` and `queue` work.\n *\n * While [`queue`]{@link module:ControlFlow.queue} passes only one task to one of a group of workers\n * at a time, cargo passes an array of tasks to a single worker, repeating\n * when the worker is finished.\n *\n * @name cargo\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An asynchronous function for processing an array\n * of queued tasks. Invoked with `(tasks, callback)`.\n * @param {number} [payload=Infinity] - An optional `integer` for determining\n * how many tasks should be processed per round; if omitted, the default is\n * unlimited.\n * @returns {module:ControlFlow.CargoObject} A cargo object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the cargo and inner queue.\n * @example\n *\n * // create a cargo object with payload 2\n * var cargo = async.cargo(function(tasks, callback) {\n * for (var i=0; i true\n */\nfunction identity(value) {\n return value;\n}\n\nfunction _createTester(check, getResult) {\n return function(eachfn, arr, iteratee, cb) {\n cb = cb || noop;\n var testPassed = false;\n var testResult;\n eachfn(arr, function(value, _, callback) {\n iteratee(value, function(err, result) {\n if (err) {\n callback(err);\n } else if (check(result) && !testResult) {\n testPassed = true;\n testResult = getResult(true, value);\n callback(null, breakLoop);\n } else {\n callback();\n }\n });\n }, function(err) {\n if (err) {\n cb(err);\n } else {\n cb(null, testPassed ? testResult : getResult(false));\n }\n });\n };\n}\n\nfunction _findGetResult(v, x) {\n return x;\n}\n\n/**\n * Returns the first value in `coll` that passes an async truth test. The\n * `iteratee` is applied in parallel, meaning the first iteratee to return\n * `true` will fire the detect `callback` with that result. That means the\n * result might not be the first item in the original `coll` (in terms of order)\n * that passes the test.\n\n * If order within the original `coll` is important, then look at\n * [`detectSeries`]{@link module:Collections.detectSeries}.\n *\n * @name detect\n * @static\n * @memberOf module:Collections\n * @method\n * @alias find\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n * @example\n *\n * async.detect(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // result now equals the first file in the list that exists\n * });\n */\nvar detect = doParallel(_createTester(identity, _findGetResult));\n\n/**\n * The same as [`detect`]{@link module:Collections.detect} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name detectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findLimit\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n */\nvar detectLimit = doParallelLimit(_createTester(identity, _findGetResult));\n\n/**\n * The same as [`detect`]{@link module:Collections.detect} but runs only a single async operation at a time.\n *\n * @name detectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.detect]{@link module:Collections.detect}\n * @alias findSeries\n * @category Collections\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A truth test to apply to each item in `coll`.\n * The iteratee must complete with a boolean value as its result.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the `iteratee` functions have finished.\n * Result will be the first item in the array that passes the truth test\n * (iteratee) or the value `undefined` if none passed. Invoked with\n * (err, result).\n */\nvar detectSeries = doLimit(detectLimit, 1);\n\nfunction consoleFunc(name) {\n return function (fn/*, ...args*/) {\n var args = slice(arguments, 1);\n args.push(function (err/*, ...args*/) {\n var args = slice(arguments, 1);\n if (typeof console === 'object') {\n if (err) {\n if (console.error) {\n console.error(err);\n }\n } else if (console[name]) {\n arrayEach(args, function (x) {\n console[name](x);\n });\n }\n }\n });\n wrapAsync(fn).apply(null, args);\n };\n}\n\n/**\n * Logs the result of an [`async` function]{@link AsyncFunction} to the\n * `console` using `console.dir` to display the properties of the resulting object.\n * Only works in Node.js or in browsers that support `console.dir` and\n * `console.error` (such as FF and Chrome).\n * If multiple arguments are returned from the async function,\n * `console.dir` is called on each argument in order.\n *\n * @name dir\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, {hello: name});\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.dir(hello, 'world');\n * {hello: 'world'}\n */\nvar dir = consoleFunc('dir');\n\n/**\n * The post-check version of [`during`]{@link module:ControlFlow.during}. To reflect the difference in\n * the order of operations, the arguments `test` and `fn` are switched.\n *\n * Also a version of [`doWhilst`]{@link module:ControlFlow.doWhilst} with asynchronous `test` function.\n * @name doDuring\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.during]{@link module:ControlFlow.during}\n * @category Control Flow\n * @param {AsyncFunction} fn - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (...args, callback), where `...args` are the\n * non-error args from the previous callback of `fn`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error if one occurred, otherwise `null`.\n */\nfunction doDuring(fn, test, callback) {\n callback = onlyOnce(callback || noop);\n var _fn = wrapAsync(fn);\n var _test = wrapAsync(test);\n\n function next(err/*, ...args*/) {\n if (err) return callback(err);\n var args = slice(arguments, 1);\n args.push(check);\n _test.apply(this, args);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (!truth) return callback(null);\n _fn(next);\n }\n\n check(null, true);\n\n}\n\n/**\n * The post-check version of [`whilst`]{@link module:ControlFlow.whilst}. To reflect the difference in\n * the order of operations, the arguments `test` and `iteratee` are switched.\n *\n * `doWhilst` is to `whilst` as `do while` is to `while` in plain JavaScript.\n *\n * @name doWhilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - A function which is called each time `test`\n * passes. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `iteratee`. Invoked with any non-error callback results of\n * `iteratee`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped.\n * `callback` will be passed an error and any arguments passed to the final\n * `iteratee`'s callback. Invoked with (err, [results]);\n */\nfunction doWhilst(iteratee, test, callback) {\n callback = onlyOnce(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n var next = function(err/*, ...args*/) {\n if (err) return callback(err);\n var args = slice(arguments, 1);\n if (test.apply(this, args)) return _iteratee(next);\n callback.apply(null, [null].concat(args));\n };\n _iteratee(next);\n}\n\n/**\n * Like ['doWhilst']{@link module:ControlFlow.doWhilst}, except the `test` is inverted. Note the\n * argument ordering differs from `until`.\n *\n * @name doUntil\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.doWhilst]{@link module:ControlFlow.doWhilst}\n * @category Control Flow\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {Function} test - synchronous truth test to perform after each\n * execution of `iteratee`. Invoked with any non-error callback results of\n * `iteratee`.\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n */\nfunction doUntil(iteratee, test, callback) {\n doWhilst(iteratee, function() {\n return !test.apply(this, arguments);\n }, callback);\n}\n\n/**\n * Like [`whilst`]{@link module:ControlFlow.whilst}, except the `test` is an asynchronous function that\n * is passed a callback in the form of `function (err, truth)`. If error is\n * passed to `test` or `fn`, the main callback is immediately called with the\n * value of the error.\n *\n * @name during\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {AsyncFunction} test - asynchronous truth test to perform before each\n * execution of `fn`. Invoked with (callback).\n * @param {AsyncFunction} fn - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `fn` has stopped. `callback`\n * will be passed an error, if one occurred, otherwise `null`.\n * @example\n *\n * var count = 0;\n *\n * async.during(\n * function (callback) {\n * return callback(null, count < 5);\n * },\n * function (callback) {\n * count++;\n * setTimeout(callback, 1000);\n * },\n * function (err) {\n * // 5 seconds have passed\n * }\n * );\n */\nfunction during(test, fn, callback) {\n callback = onlyOnce(callback || noop);\n var _fn = wrapAsync(fn);\n var _test = wrapAsync(test);\n\n function next(err) {\n if (err) return callback(err);\n _test(check);\n }\n\n function check(err, truth) {\n if (err) return callback(err);\n if (!truth) return callback(null);\n _fn(next);\n }\n\n _test(check);\n}\n\nfunction _withoutIndex(iteratee) {\n return function (value, index, callback) {\n return iteratee(value, callback);\n };\n}\n\n/**\n * Applies the function `iteratee` to each item in `coll`, in parallel.\n * The `iteratee` is called with an item from the list, and a callback for when\n * it has finished. If the `iteratee` passes an error to its `callback`, the\n * main `callback` (for the `each` function) is immediately called with the\n * error.\n *\n * Note, that since this function applies `iteratee` to each item in parallel,\n * there is no guarantee that the iteratee functions will complete in order.\n *\n * @name each\n * @static\n * @memberOf module:Collections\n * @method\n * @alias forEach\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to\n * each item in `coll`. Invoked with (item, callback).\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOf`.\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n * @example\n *\n * // assuming openFiles is an array of file names and saveFile is a function\n * // to save the modified contents of that file:\n *\n * async.each(openFiles, saveFile, function(err){\n * // if any of the saves produced an error, err would equal that error\n * });\n *\n * // assuming openFiles is an array of file names\n * async.each(openFiles, function(file, callback) {\n *\n * // Perform operation on file here.\n * console.log('Processing file ' + file);\n *\n * if( file.length > 32 ) {\n * console.log('This file name is too long');\n * callback('File name too long');\n * } else {\n * // Do work to process file here\n * console.log('File processed');\n * callback();\n * }\n * }, function(err) {\n * // if any of the file processing produced an error, err would equal that error\n * if( err ) {\n * // One of the iterations produced an error.\n * // All processing will now stop.\n * console.log('A file failed to process');\n * } else {\n * console.log('All files have been processed successfully');\n * }\n * });\n */\nfunction eachLimit(coll, iteratee, callback) {\n eachOf(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n}\n\n/**\n * The same as [`each`]{@link module:Collections.each} but runs a maximum of `limit` async operations at a time.\n *\n * @name eachLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfLimit`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nfunction eachLimit$1(coll, limit, iteratee, callback) {\n _eachOfLimit(limit)(coll, _withoutIndex(wrapAsync(iteratee)), callback);\n}\n\n/**\n * The same as [`each`]{@link module:Collections.each} but runs only a single async operation at a time.\n *\n * @name eachSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.each]{@link module:Collections.each}\n * @alias forEachSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each\n * item in `coll`.\n * The array index is not passed to the iteratee.\n * If you need the index, use `eachOfSeries`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called when all\n * `iteratee` functions have finished, or an error occurs. Invoked with (err).\n */\nvar eachSeries = doLimit(eachLimit$1, 1);\n\n/**\n * Wrap an async function and ensure it calls its callback on a later tick of\n * the event loop. If the function already calls its callback on a next tick,\n * no extra deferral is added. This is useful for preventing stack overflows\n * (`RangeError: Maximum call stack size exceeded`) and generally keeping\n * [Zalgo](http://blog.izs.me/post/59142742143/designing-apis-for-asynchrony)\n * contained. ES2017 `async` functions are returned as-is -- they are immune\n * to Zalgo's corrupting influences, as they always resolve on a later tick.\n *\n * @name ensureAsync\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - an async function, one that expects a node-style\n * callback as its last argument.\n * @returns {AsyncFunction} Returns a wrapped function with the exact same call\n * signature as the function passed in.\n * @example\n *\n * function sometimesAsync(arg, callback) {\n * if (cache[arg]) {\n * return callback(null, cache[arg]); // this would be synchronous!!\n * } else {\n * doSomeIO(arg, callback); // this IO would be asynchronous\n * }\n * }\n *\n * // this has a risk of stack overflows if many results are cached in a row\n * async.mapSeries(args, sometimesAsync, done);\n *\n * // this will defer sometimesAsync's callback if necessary,\n * // preventing stack overflows\n * async.mapSeries(args, async.ensureAsync(sometimesAsync), done);\n */\nfunction ensureAsync(fn) {\n if (isAsync(fn)) return fn;\n return initialParams(function (args, callback) {\n var sync = true;\n args.push(function () {\n var innerArgs = arguments;\n if (sync) {\n setImmediate$1(function () {\n callback.apply(null, innerArgs);\n });\n } else {\n callback.apply(null, innerArgs);\n }\n });\n fn.apply(this, args);\n sync = false;\n });\n}\n\nfunction notId(v) {\n return !v;\n}\n\n/**\n * Returns `true` if every element in `coll` satisfies an async test. If any\n * iteratee call returns `false`, the main `callback` is immediately called.\n *\n * @name every\n * @static\n * @memberOf module:Collections\n * @method\n * @alias all\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n * @example\n *\n * async.every(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then every file exists\n * });\n */\nvar every = doParallel(_createTester(notId, notId));\n\n/**\n * The same as [`every`]{@link module:Collections.every} but runs a maximum of `limit` async operations at a time.\n *\n * @name everyLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in parallel.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n */\nvar everyLimit = doParallelLimit(_createTester(notId, notId));\n\n/**\n * The same as [`every`]{@link module:Collections.every} but runs only a single async operation at a time.\n *\n * @name everySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.every]{@link module:Collections.every}\n * @alias allSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collection in series.\n * The iteratee must complete with a boolean result value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result will be either `true` or `false`\n * depending on the values of the async tests. Invoked with (err, result).\n */\nvar everySeries = doLimit(everyLimit, 1);\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nfunction filterArray(eachfn, arr, iteratee, callback) {\n var truthValues = new Array(arr.length);\n eachfn(arr, function (x, index, callback) {\n iteratee(x, function (err, v) {\n truthValues[index] = !!v;\n callback(err);\n });\n }, function (err) {\n if (err) return callback(err);\n var results = [];\n for (var i = 0; i < arr.length; i++) {\n if (truthValues[i]) results.push(arr[i]);\n }\n callback(null, results);\n });\n}\n\nfunction filterGeneric(eachfn, coll, iteratee, callback) {\n var results = [];\n eachfn(coll, function (x, index, callback) {\n iteratee(x, function (err, v) {\n if (err) {\n callback(err);\n } else {\n if (v) {\n results.push({index: index, value: x});\n }\n callback();\n }\n });\n }, function (err) {\n if (err) {\n callback(err);\n } else {\n callback(null, arrayMap(results.sort(function (a, b) {\n return a.index - b.index;\n }), baseProperty('value')));\n }\n });\n}\n\nfunction _filter(eachfn, coll, iteratee, callback) {\n var filter = isArrayLike(coll) ? filterArray : filterGeneric;\n filter(eachfn, coll, wrapAsync(iteratee), callback || noop);\n}\n\n/**\n * Returns a new array of all the values in `coll` which pass an async truth\n * test. This operation is performed in parallel, but the results array will be\n * in the same order as the original.\n *\n * @name filter\n * @static\n * @memberOf module:Collections\n * @method\n * @alias select\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.filter(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of the existing files\n * });\n */\nvar filter = doParallel(_filter);\n\n/**\n * The same as [`filter`]{@link module:Collections.filter} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name filterLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar filterLimit = doParallelLimit(_filter);\n\n/**\n * The same as [`filter`]{@link module:Collections.filter} but runs only a single async operation at a time.\n *\n * @name filterSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @alias selectSeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - A truth test to apply to each item in `coll`.\n * The `iteratee` is passed a `callback(err, truthValue)`, which must be called\n * with a boolean argument once it has completed. Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results)\n */\nvar filterSeries = doLimit(filterLimit, 1);\n\n/**\n * Calls the asynchronous function `fn` with a callback parameter that allows it\n * to call itself again, in series, indefinitely.\n\n * If an error is passed to the callback then `errback` is called with the\n * error, and execution stops, otherwise it will never be called.\n *\n * @name forever\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} fn - an async function to call repeatedly.\n * Invoked with (next).\n * @param {Function} [errback] - when `fn` passes an error to it's callback,\n * this function will be called, and execution stops. Invoked with (err).\n * @example\n *\n * async.forever(\n * function(next) {\n * // next is suitable for passing to things that need a callback(err [, whatever]);\n * // it will result in this function being called again.\n * },\n * function(err) {\n * // if next is called with a value in its first parameter, it will appear\n * // in here as 'err', and execution will stop.\n * }\n * );\n */\nfunction forever(fn, errback) {\n var done = onlyOnce(errback || noop);\n var task = wrapAsync(ensureAsync(fn));\n\n function next(err) {\n if (err) return done(err);\n task(next);\n }\n next();\n}\n\n/**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs a maximum of `limit` async operations at a time.\n *\n * @name groupByLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n */\nvar groupByLimit = function(coll, limit, iteratee, callback) {\n callback = callback || noop;\n var _iteratee = wrapAsync(iteratee);\n mapLimit(coll, limit, function(val, callback) {\n _iteratee(val, function(err, key) {\n if (err) return callback(err);\n return callback(null, {key: key, val: val});\n });\n }, function(err, mapResults) {\n var result = {};\n // from MDN, handle object having an `hasOwnProperty` prop\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n for (var i = 0; i < mapResults.length; i++) {\n if (mapResults[i]) {\n var key = mapResults[i].key;\n var val = mapResults[i].val;\n\n if (hasOwnProperty.call(result, key)) {\n result[key].push(val);\n } else {\n result[key] = [val];\n }\n }\n }\n\n return callback(err, result);\n });\n};\n\n/**\n * Returns a new object, where each value corresponds to an array of items, from\n * `coll`, that returned the corresponding key. That is, the keys of the object\n * correspond to the values passed to the `iteratee` callback.\n *\n * Note: Since this function applies the `iteratee` to each item in parallel,\n * there is no guarantee that the `iteratee` functions will complete in order.\n * However, the values for each key in the `result` will be in the same order as\n * the original `coll`. For Objects, the values will roughly be in the order of\n * the original Objects' keys (but this can vary across JavaScript engines).\n *\n * @name groupBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n * @example\n *\n * async.groupBy(['userId1', 'userId2', 'userId3'], function(userId, callback) {\n * db.findById(userId, function(err, user) {\n * if (err) return callback(err);\n * return callback(null, user.age);\n * });\n * }, function(err, result) {\n * // result is object containing the userIds grouped by age\n * // e.g. { 30: ['userId1', 'userId3'], 42: ['userId2']};\n * });\n */\nvar groupBy = doLimit(groupByLimit, Infinity);\n\n/**\n * The same as [`groupBy`]{@link module:Collections.groupBy} but runs only a single async operation at a time.\n *\n * @name groupBySeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.groupBy]{@link module:Collections.groupBy}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a `key` to group the value under.\n * Invoked with (value, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. Result is an `Object` whoses\n * properties are arrays of values which returned the corresponding key.\n */\nvar groupBySeries = doLimit(groupByLimit, 1);\n\n/**\n * Logs the result of an `async` function to the `console`. Only works in\n * Node.js or in browsers that support `console.log` and `console.error` (such\n * as FF and Chrome). If multiple arguments are returned from the async\n * function, `console.log` is called on each argument in order.\n *\n * @name log\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} function - The function you want to eventually apply\n * all arguments to.\n * @param {...*} arguments... - Any number of arguments to apply to the function.\n * @example\n *\n * // in a module\n * var hello = function(name, callback) {\n * setTimeout(function() {\n * callback(null, 'hello ' + name);\n * }, 1000);\n * };\n *\n * // in the node repl\n * node> async.log(hello, 'world');\n * 'hello world'\n */\nvar log = consoleFunc('log');\n\n/**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name mapValuesLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n */\nfunction mapValuesLimit(obj, limit, iteratee, callback) {\n callback = once(callback || noop);\n var newObj = {};\n var _iteratee = wrapAsync(iteratee);\n eachOfLimit(obj, limit, function(val, key, next) {\n _iteratee(val, key, function (err, result) {\n if (err) return next(err);\n newObj[key] = result;\n next();\n });\n }, function (err) {\n callback(err, newObj);\n });\n}\n\n/**\n * A relative of [`map`]{@link module:Collections.map}, designed for use with objects.\n *\n * Produces a new Object by mapping each value of `obj` through the `iteratee`\n * function. The `iteratee` is called each `value` and `key` from `obj` and a\n * callback for when it has finished processing. Each of these callbacks takes\n * two arguments: an `error`, and the transformed item from `obj`. If `iteratee`\n * passes an error to its callback, the main `callback` (for the `mapValues`\n * function) is immediately called with the error.\n *\n * Note, the order of the keys in the result is not guaranteed. The keys will\n * be roughly in the order they complete, (but this is very engine-specific)\n *\n * @name mapValues\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n * @example\n *\n * async.mapValues({\n * f1: 'file1',\n * f2: 'file2',\n * f3: 'file3'\n * }, function (file, key, callback) {\n * fs.stat(file, callback);\n * }, function(err, result) {\n * // result is now a map of stats for each file, e.g.\n * // {\n * // f1: [stats for file1],\n * // f2: [stats for file2],\n * // f3: [stats for file3]\n * // }\n * });\n */\n\nvar mapValues = doLimit(mapValuesLimit, Infinity);\n\n/**\n * The same as [`mapValues`]{@link module:Collections.mapValues} but runs only a single async operation at a time.\n *\n * @name mapValuesSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.mapValues]{@link module:Collections.mapValues}\n * @category Collection\n * @param {Object} obj - A collection to iterate over.\n * @param {AsyncFunction} iteratee - A function to apply to each value and key\n * in `coll`.\n * The iteratee should complete with the transformed value as its result.\n * Invoked with (value, key, callback).\n * @param {Function} [callback] - A callback which is called when all `iteratee`\n * functions have finished, or an error occurs. `result` is a new object consisting\n * of each key from `obj`, with each transformed value on the right-hand side.\n * Invoked with (err, result).\n */\nvar mapValuesSeries = doLimit(mapValuesLimit, 1);\n\nfunction has(obj, key) {\n return key in obj;\n}\n\n/**\n * Caches the results of an async function. When creating a hash to store\n * function results against, the callback is omitted from the hash and an\n * optional hash function can be used.\n *\n * If no hash function is specified, the first argument is used as a hash key,\n * which may work reasonably if it is a string or a data type that converts to a\n * distinct string. Note that objects and arrays will not behave reasonably.\n * Neither will cases where the other arguments are significant. In such cases,\n * specify your own hash function.\n *\n * The cache of results is exposed as the `memo` property of the function\n * returned by `memoize`.\n *\n * @name memoize\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function to proxy and cache results from.\n * @param {Function} hasher - An optional function for generating a custom hash\n * for storing results. It has all the arguments applied to it apart from the\n * callback, and must be synchronous.\n * @returns {AsyncFunction} a memoized version of `fn`\n * @example\n *\n * var slow_fn = function(name, callback) {\n * // do something\n * callback(null, result);\n * };\n * var fn = async.memoize(slow_fn);\n *\n * // fn can now be used as if it were slow_fn\n * fn('some name', function() {\n * // callback\n * });\n */\nfunction memoize(fn, hasher) {\n var memo = Object.create(null);\n var queues = Object.create(null);\n hasher = hasher || identity;\n var _fn = wrapAsync(fn);\n var memoized = initialParams(function memoized(args, callback) {\n var key = hasher.apply(null, args);\n if (has(memo, key)) {\n setImmediate$1(function() {\n callback.apply(null, memo[key]);\n });\n } else if (has(queues, key)) {\n queues[key].push(callback);\n } else {\n queues[key] = [callback];\n _fn.apply(null, args.concat(function(/*args*/) {\n var args = slice(arguments);\n memo[key] = args;\n var q = queues[key];\n delete queues[key];\n for (var i = 0, l = q.length; i < l; i++) {\n q[i].apply(null, args);\n }\n }));\n }\n });\n memoized.memo = memo;\n memoized.unmemoized = fn;\n return memoized;\n}\n\n/**\n * Calls `callback` on a later loop around the event loop. In Node.js this just\n * calls `process.nextTick`. In the browser it will use `setImmediate` if\n * available, otherwise `setTimeout(callback, 0)`, which means other higher\n * priority events may precede the execution of `callback`.\n *\n * This is used internally for browser-compatibility purposes.\n *\n * @name nextTick\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.setImmediate]{@link module:Utils.setImmediate}\n * @category Util\n * @param {Function} callback - The function to call on a later loop around\n * the event loop. Invoked with (args...).\n * @param {...*} args... - any number of additional arguments to pass to the\n * callback on the next tick.\n * @example\n *\n * var call_order = [];\n * async.nextTick(function() {\n * call_order.push('two');\n * // call_order now equals ['one','two']\n * });\n * call_order.push('one');\n *\n * async.setImmediate(function (a, b, c) {\n * // a, b, and c equal 1, 2, and 3\n * }, 1, 2, 3);\n */\nvar _defer$1;\n\nif (hasNextTick) {\n _defer$1 = process.nextTick;\n} else if (hasSetImmediate) {\n _defer$1 = setImmediate;\n} else {\n _defer$1 = fallback;\n}\n\nvar nextTick = wrap(_defer$1);\n\nfunction _parallel(eachfn, tasks, callback) {\n callback = callback || noop;\n var results = isArrayLike(tasks) ? [] : {};\n\n eachfn(tasks, function (task, key, callback) {\n wrapAsync(task)(function (err, result) {\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n }\n results[key] = result;\n callback(err);\n });\n }, function (err) {\n callback(err, results);\n });\n}\n\n/**\n * Run the `tasks` collection of functions in parallel, without waiting until\n * the previous function has completed. If any of the functions pass an error to\n * its callback, the main `callback` is immediately called with the value of the\n * error. Once the `tasks` have completed, the results are passed to the final\n * `callback` as an array.\n *\n * **Note:** `parallel` is about kicking-off I/O tasks in parallel, not about\n * parallel execution of code. If your tasks do not use any timers or perform\n * any I/O, they will actually be executed in series. Any synchronous setup\n * sections for each task will happen one after the other. JavaScript remains\n * single-threaded.\n *\n * **Hint:** Use [`reflect`]{@link module:Utils.reflect} to continue the\n * execution of other tasks when a task fails.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.parallel}.\n *\n * @name parallel\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n *\n * @example\n * async.parallel([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // the results array will equal ['one','two'] even though\n * // the second function had a shorter timeout.\n * });\n *\n * // an example using an object instead of an array\n * async.parallel({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback) {\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equals to: {one: 1, two: 2}\n * });\n */\nfunction parallelLimit(tasks, callback) {\n _parallel(eachOf, tasks, callback);\n}\n\n/**\n * The same as [`parallel`]{@link module:ControlFlow.parallel} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name parallelLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.parallel]{@link module:ControlFlow.parallel}\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection of\n * [async functions]{@link AsyncFunction} to run.\n * Each async function can complete with any number of optional `result` values.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed successfully. This function gets a results array\n * (or object) containing all the result arguments passed to the task callbacks.\n * Invoked with (err, results).\n */\nfunction parallelLimit$1(tasks, limit, callback) {\n _parallel(_eachOfLimit(limit), tasks, callback);\n}\n\n/**\n * A queue of tasks for the worker function to complete.\n * @typedef {Object} QueueObject\n * @memberOf module:ControlFlow\n * @property {Function} length - a function returning the number of items\n * waiting to be processed. Invoke with `queue.length()`.\n * @property {boolean} started - a boolean indicating whether or not any\n * items have been pushed and processed by the queue.\n * @property {Function} running - a function returning the number of items\n * currently being processed. Invoke with `queue.running()`.\n * @property {Function} workersList - a function returning the array of items\n * currently being processed. Invoke with `queue.workersList()`.\n * @property {Function} idle - a function returning false if there are items\n * waiting or being processed, or true if not. Invoke with `queue.idle()`.\n * @property {number} concurrency - an integer for determining how many `worker`\n * functions should be run in parallel. This property can be changed after a\n * `queue` is created to alter the concurrency on-the-fly.\n * @property {Function} push - add a new task to the `queue`. Calls `callback`\n * once the `worker` has finished processing the task. Instead of a single task,\n * a `tasks` array can be submitted. The respective callback is used for every\n * task in the list. Invoke with `queue.push(task, [callback])`,\n * @property {Function} unshift - add a new task to the front of the `queue`.\n * Invoke with `queue.unshift(task, [callback])`.\n * @property {Function} remove - remove items from the queue that match a test\n * function. The test function will be passed an object with a `data` property,\n * and a `priority` property, if this is a\n * [priorityQueue]{@link module:ControlFlow.priorityQueue} object.\n * Invoked with `queue.remove(testFn)`, where `testFn` is of the form\n * `function ({data, priority}) {}` and returns a Boolean.\n * @property {Function} saturated - a callback that is called when the number of\n * running workers hits the `concurrency` limit, and further tasks will be\n * queued.\n * @property {Function} unsaturated - a callback that is called when the number\n * of running workers is less than the `concurrency` & `buffer` limits, and\n * further tasks will not be queued.\n * @property {number} buffer - A minimum threshold buffer in order to say that\n * the `queue` is `unsaturated`.\n * @property {Function} empty - a callback that is called when the last item\n * from the `queue` is given to a `worker`.\n * @property {Function} drain - a callback that is called when the last item\n * from the `queue` has returned from the `worker`.\n * @property {Function} error - a callback that is called when a task errors.\n * Has the signature `function(error, task)`.\n * @property {boolean} paused - a boolean for determining whether the queue is\n * in a paused state.\n * @property {Function} pause - a function that pauses the processing of tasks\n * until `resume()` is called. Invoke with `queue.pause()`.\n * @property {Function} resume - a function that resumes the processing of\n * queued tasks when the queue is paused. Invoke with `queue.resume()`.\n * @property {Function} kill - a function that removes the `drain` callback and\n * empties remaining tasks from the queue forcing it to go idle. No more tasks\n * should be pushed to the queue after calling this function. Invoke with `queue.kill()`.\n */\n\n/**\n * Creates a `queue` object with the specified `concurrency`. Tasks added to the\n * `queue` are processed in parallel (up to the `concurrency` limit). If all\n * `worker`s are in progress, the task is queued until one becomes available.\n * Once a `worker` completes a `task`, that `task`'s callback is called.\n *\n * @name queue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`. Invoked with (task, callback).\n * @param {number} [concurrency=1] - An `integer` for determining how many\n * `worker` functions should be run in parallel. If omitted, the concurrency\n * defaults to `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A queue object to manage the tasks. Callbacks can\n * attached as certain properties to listen for specific events during the\n * lifecycle of the queue.\n * @example\n *\n * // create a queue object with concurrency 2\n * var q = async.queue(function(task, callback) {\n * console.log('hello ' + task.name);\n * callback();\n * }, 2);\n *\n * // assign a callback\n * q.drain = function() {\n * console.log('all items have been processed');\n * };\n *\n * // add some items to the queue\n * q.push({name: 'foo'}, function(err) {\n * console.log('finished processing foo');\n * });\n * q.push({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n *\n * // add some items to the queue (batch-wise)\n * q.push([{name: 'baz'},{name: 'bay'},{name: 'bax'}], function(err) {\n * console.log('finished processing item');\n * });\n *\n * // add some items to the front of the queue\n * q.unshift({name: 'bar'}, function (err) {\n * console.log('finished processing bar');\n * });\n */\nvar queue$1 = function (worker, concurrency) {\n var _worker = wrapAsync(worker);\n return queue(function (items, cb) {\n _worker(items[0], cb);\n }, concurrency, 1);\n};\n\n/**\n * The same as [async.queue]{@link module:ControlFlow.queue} only tasks are assigned a priority and\n * completed in ascending priority order.\n *\n * @name priorityQueue\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.queue]{@link module:ControlFlow.queue}\n * @category Control Flow\n * @param {AsyncFunction} worker - An async function for processing a queued task.\n * If you want to handle errors from an individual task, pass a callback to\n * `q.push()`.\n * Invoked with (task, callback).\n * @param {number} concurrency - An `integer` for determining how many `worker`\n * functions should be run in parallel. If omitted, the concurrency defaults to\n * `1`. If the concurrency is `0`, an error is thrown.\n * @returns {module:ControlFlow.QueueObject} A priorityQueue object to manage the tasks. There are two\n * differences between `queue` and `priorityQueue` objects:\n * * `push(task, priority, [callback])` - `priority` should be a number. If an\n * array of `tasks` is given, all tasks will be assigned the same priority.\n * * The `unshift` method was removed.\n */\nvar priorityQueue = function(worker, concurrency) {\n // Start with a normal queue\n var q = queue$1(worker, concurrency);\n\n // Override push to accept second parameter representing priority\n q.push = function(data, priority, callback) {\n if (callback == null) callback = noop;\n if (typeof callback !== 'function') {\n throw new Error('task callback must be a function');\n }\n q.started = true;\n if (!isArray(data)) {\n data = [data];\n }\n if (data.length === 0) {\n // call drain immediately if there are no tasks\n return setImmediate$1(function() {\n q.drain();\n });\n }\n\n priority = priority || 0;\n var nextNode = q._tasks.head;\n while (nextNode && priority >= nextNode.priority) {\n nextNode = nextNode.next;\n }\n\n for (var i = 0, l = data.length; i < l; i++) {\n var item = {\n data: data[i],\n priority: priority,\n callback: callback\n };\n\n if (nextNode) {\n q._tasks.insertBefore(nextNode, item);\n } else {\n q._tasks.push(item);\n }\n }\n setImmediate$1(q.process);\n };\n\n // Remove unshift function\n delete q.unshift;\n\n return q;\n};\n\n/**\n * Runs the `tasks` array of functions in parallel, without waiting until the\n * previous function has completed. Once any of the `tasks` complete or pass an\n * error to its callback, the main `callback` is immediately called. It's\n * equivalent to `Promise.race()`.\n *\n * @name race\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array containing [async functions]{@link AsyncFunction}\n * to run. Each function can complete with an optional `result` value.\n * @param {Function} callback - A callback to run once any of the functions have\n * completed. This function gets an error or result from the first function that\n * completed. Invoked with (err, result).\n * @returns undefined\n * @example\n *\n * async.race([\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ],\n * // main callback\n * function(err, result) {\n * // the result will be equal to 'two' as it finishes earlier\n * });\n */\nfunction race(tasks, callback) {\n callback = once(callback || noop);\n if (!isArray(tasks)) return callback(new TypeError('First argument to race must be an array of functions'));\n if (!tasks.length) return callback();\n for (var i = 0, l = tasks.length; i < l; i++) {\n wrapAsync(tasks[i])(callback);\n }\n}\n\n/**\n * Same as [`reduce`]{@link module:Collections.reduce}, only operates on `array` in reverse order.\n *\n * @name reduceRight\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reduce]{@link module:Collections.reduce}\n * @alias foldr\n * @category Collection\n * @param {Array} array - A collection to iterate over.\n * @param {*} memo - The initial state of the reduction.\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * array to produce the next step in the reduction.\n * The `iteratee` should complete with the next state of the reduction.\n * If the iteratee complete with an error, the reduction is stopped and the\n * main `callback` is immediately called with the error.\n * Invoked with (memo, item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the reduced value. Invoked with\n * (err, result).\n */\nfunction reduceRight (array, memo, iteratee, callback) {\n var reversed = slice(array).reverse();\n reduce(reversed, memo, iteratee, callback);\n}\n\n/**\n * Wraps the async function in another function that always completes with a\n * result object, even when it errors.\n *\n * The result object has either the property `error` or `value`.\n *\n * @name reflect\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} fn - The async function you want to wrap\n * @returns {Function} - A function that always passes null to it's callback as\n * the error. The second argument to the callback will be an `object` with\n * either an `error` or a `value` property.\n * @example\n *\n * async.parallel([\n * async.reflect(function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff but error ...\n * callback('bad stuff happened');\n * }),\n * async.reflect(function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * })\n * ],\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = 'bad stuff happened'\n * // results[2].value = 'two'\n * });\n */\nfunction reflect(fn) {\n var _fn = wrapAsync(fn);\n return initialParams(function reflectOn(args, reflectCallback) {\n args.push(function callback(error, cbArg) {\n if (error) {\n reflectCallback(null, { error: error });\n } else {\n var value;\n if (arguments.length <= 2) {\n value = cbArg;\n } else {\n value = slice(arguments, 1);\n }\n reflectCallback(null, { value: value });\n }\n });\n\n return _fn.apply(this, args);\n });\n}\n\n/**\n * A helper function that wraps an array or an object of functions with `reflect`.\n *\n * @name reflectAll\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.reflect]{@link module:Utils.reflect}\n * @category Util\n * @param {Array|Object|Iterable} tasks - The collection of\n * [async functions]{@link AsyncFunction} to wrap in `async.reflect`.\n * @returns {Array} Returns an array of async functions, each wrapped in\n * `async.reflect`\n * @example\n *\n * let tasks = [\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * function(callback) {\n * // do some more stuff but error ...\n * callback(new Error('bad stuff happened'));\n * },\n * function(callback) {\n * setTimeout(function() {\n * callback(null, 'two');\n * }, 100);\n * }\n * ];\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results[0].value = 'one'\n * // results[1].error = Error('bad stuff happened')\n * // results[2].value = 'two'\n * });\n *\n * // an example using an object instead of an array\n * let tasks = {\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 'one');\n * }, 200);\n * },\n * two: function(callback) {\n * callback('two');\n * },\n * three: function(callback) {\n * setTimeout(function() {\n * callback(null, 'three');\n * }, 100);\n * }\n * };\n *\n * async.parallel(async.reflectAll(tasks),\n * // optional callback\n * function(err, results) {\n * // values\n * // results.one.value = 'one'\n * // results.two.error = 'two'\n * // results.three.value = 'three'\n * });\n */\nfunction reflectAll(tasks) {\n var results;\n if (isArray(tasks)) {\n results = arrayMap(tasks, reflect);\n } else {\n results = {};\n baseForOwn(tasks, function(task, key) {\n results[key] = reflect.call(this, task);\n });\n }\n return results;\n}\n\nfunction reject$1(eachfn, arr, iteratee, callback) {\n _filter(eachfn, arr, function(value, cb) {\n iteratee(value, function(err, v) {\n cb(err, !v);\n });\n }, callback);\n}\n\n/**\n * The opposite of [`filter`]{@link module:Collections.filter}. Removes values that pass an `async` truth test.\n *\n * @name reject\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.filter]{@link module:Collections.filter}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n * @example\n *\n * async.reject(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, results) {\n * // results now equals an array of missing files\n * createFiles(results);\n * });\n */\nvar reject = doParallel(reject$1);\n\n/**\n * The same as [`reject`]{@link module:Collections.reject} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name rejectLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar rejectLimit = doParallelLimit(reject$1);\n\n/**\n * The same as [`reject`]{@link module:Collections.reject} but runs only a single async operation at a time.\n *\n * @name rejectSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.reject]{@link module:Collections.reject}\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {Function} iteratee - An async truth test to apply to each item in\n * `coll`.\n * The should complete with a boolean value as its `result`.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Invoked with (err, results).\n */\nvar rejectSeries = doLimit(rejectLimit, 1);\n\n/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant$1(value) {\n return function() {\n return value;\n };\n}\n\n/**\n * Attempts to get a successful response from `task` no more than `times` times\n * before returning an error. If the task is successful, the `callback` will be\n * passed the result of the successful task. If all attempts fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name retry\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @see [async.retryable]{@link module:ControlFlow.retryable}\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - Can be either an\n * object with `times` and `interval` or a number.\n * * `times` - The number of attempts to make before giving up. The default\n * is `5`.\n * * `interval` - The time to wait between retries, in milliseconds. The\n * default is `0`. The interval may also be specified as a function of the\n * retry count (see example).\n * * `errorFilter` - An optional synchronous function that is invoked on\n * erroneous result. If it returns `true` the retry attempts will continue;\n * if the function returns `false` the retry flow is aborted with the current\n * attempt's error and result being returned to the final callback.\n * Invoked with (err).\n * * If `opts` is a number, the number specifies the number of times to retry,\n * with the default interval of `0`.\n * @param {AsyncFunction} task - An async function to retry.\n * Invoked with (callback).\n * @param {Function} [callback] - An optional callback which is called when the\n * task has succeeded, or after the final failed attempt. It receives the `err`\n * and `result` arguments of the last attempt at completing the `task`. Invoked\n * with (err, results).\n *\n * @example\n *\n * // The `retry` function can be used as a stand-alone control flow by passing\n * // a callback, as shown below:\n *\n * // try calling apiMethod 3 times\n * async.retry(3, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 3 times, waiting 200 ms between each retry\n * async.retry({times: 3, interval: 200}, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod 10 times with exponential backoff\n * // (i.e. intervals of 100, 200, 400, 800, 1600, ... milliseconds)\n * async.retry({\n * times: 10,\n * interval: function(retryCount) {\n * return 50 * Math.pow(2, retryCount);\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod the default 5 times no delay between each retry\n * async.retry(apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // try calling apiMethod only when error condition satisfies, all other\n * // errors will abort the retry control flow and return to final callback\n * async.retry({\n * errorFilter: function(err) {\n * return err.message === 'Temporary error'; // only retry on a specific error\n * }\n * }, apiMethod, function(err, result) {\n * // do something with the result\n * });\n *\n * // to retry individual methods that are not as reliable within other\n * // control flow functions, use the `retryable` wrapper:\n * async.auto({\n * users: api.getUsers.bind(api),\n * payments: async.retryable(3, api.getPayments.bind(api))\n * }, function(err, results) {\n * // do something with the results\n * });\n *\n */\nfunction retry(opts, task, callback) {\n var DEFAULT_TIMES = 5;\n var DEFAULT_INTERVAL = 0;\n\n var options = {\n times: DEFAULT_TIMES,\n intervalFunc: constant$1(DEFAULT_INTERVAL)\n };\n\n function parseTimes(acc, t) {\n if (typeof t === 'object') {\n acc.times = +t.times || DEFAULT_TIMES;\n\n acc.intervalFunc = typeof t.interval === 'function' ?\n t.interval :\n constant$1(+t.interval || DEFAULT_INTERVAL);\n\n acc.errorFilter = t.errorFilter;\n } else if (typeof t === 'number' || typeof t === 'string') {\n acc.times = +t || DEFAULT_TIMES;\n } else {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n }\n\n if (arguments.length < 3 && typeof opts === 'function') {\n callback = task || noop;\n task = opts;\n } else {\n parseTimes(options, opts);\n callback = callback || noop;\n }\n\n if (typeof task !== 'function') {\n throw new Error(\"Invalid arguments for async.retry\");\n }\n\n var _task = wrapAsync(task);\n\n var attempt = 1;\n function retryAttempt() {\n _task(function(err) {\n if (err && attempt++ < options.times &&\n (typeof options.errorFilter != 'function' ||\n options.errorFilter(err))) {\n setTimeout(retryAttempt, options.intervalFunc(attempt));\n } else {\n callback.apply(null, arguments);\n }\n });\n }\n\n retryAttempt();\n}\n\n/**\n * A close relative of [`retry`]{@link module:ControlFlow.retry}. This method\n * wraps a task and makes it retryable, rather than immediately calling it\n * with retries.\n *\n * @name retryable\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.retry]{@link module:ControlFlow.retry}\n * @category Control Flow\n * @param {Object|number} [opts = {times: 5, interval: 0}| 5] - optional\n * options, exactly the same as from `retry`\n * @param {AsyncFunction} task - the asynchronous function to wrap.\n * This function will be passed any arguments passed to the returned wrapper.\n * Invoked with (...args, callback).\n * @returns {AsyncFunction} The wrapped function, which when invoked, will\n * retry on an error, based on the parameters specified in `opts`.\n * This function will accept the same parameters as `task`.\n * @example\n *\n * async.auto({\n * dep1: async.retryable(3, getFromFlakyService),\n * process: [\"dep1\", async.retryable(3, function (results, cb) {\n * maybeProcessData(results.dep1, cb);\n * })]\n * }, callback);\n */\nvar retryable = function (opts, task) {\n if (!task) {\n task = opts;\n opts = null;\n }\n var _task = wrapAsync(task);\n return initialParams(function (args, callback) {\n function taskFn(cb) {\n _task.apply(null, args.concat(cb));\n }\n\n if (opts) retry(opts, taskFn, callback);\n else retry(taskFn, callback);\n\n });\n};\n\n/**\n * Run the functions in the `tasks` collection in series, each one running once\n * the previous function has completed. If any functions in the series pass an\n * error to its callback, no more functions are run, and `callback` is\n * immediately called with the value of the error. Otherwise, `callback`\n * receives an array of results when `tasks` have completed.\n *\n * It is also possible to use an object instead of an array. Each property will\n * be run as a function, and the results will be passed to the final `callback`\n * as an object instead of an array. This can be a more readable way of handling\n * results from {@link async.series}.\n *\n * **Note** that while many implementations preserve the order of object\n * properties, the [ECMAScript Language Specification](http://www.ecma-international.org/ecma-262/5.1/#sec-8.6)\n * explicitly states that\n *\n * > The mechanics and order of enumerating the properties is not specified.\n *\n * So if you rely on the order in which your series of functions are executed,\n * and want this to work on all platforms, consider using an array.\n *\n * @name series\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection containing\n * [async functions]{@link AsyncFunction} to run in series.\n * Each function can complete with any number of optional `result` values.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This function gets a results array (or object)\n * containing all the result arguments passed to the `task` callbacks. Invoked\n * with (err, result).\n * @example\n * async.series([\n * function(callback) {\n * // do some stuff ...\n * callback(null, 'one');\n * },\n * function(callback) {\n * // do some more stuff ...\n * callback(null, 'two');\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * // results is now equal to ['one', 'two']\n * });\n *\n * async.series({\n * one: function(callback) {\n * setTimeout(function() {\n * callback(null, 1);\n * }, 200);\n * },\n * two: function(callback){\n * setTimeout(function() {\n * callback(null, 2);\n * }, 100);\n * }\n * }, function(err, results) {\n * // results is now equal to: {one: 1, two: 2}\n * });\n */\nfunction series(tasks, callback) {\n _parallel(eachOfSeries, tasks, callback);\n}\n\n/**\n * Returns `true` if at least one element in the `coll` satisfies an async test.\n * If any iteratee call returns `true`, the main `callback` is immediately\n * called.\n *\n * @name some\n * @static\n * @memberOf module:Collections\n * @method\n * @alias any\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n * @example\n *\n * async.some(['file1','file2','file3'], function(filePath, callback) {\n * fs.access(filePath, function(err) {\n * callback(null, !err)\n * });\n * }, function(err, result) {\n * // if result is true then at least one of the files exists\n * });\n */\nvar some = doParallel(_createTester(Boolean, identity));\n\n/**\n * The same as [`some`]{@link module:Collections.some} but runs a maximum of `limit` async operations at a time.\n *\n * @name someLimit\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anyLimit\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in parallel.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n */\nvar someLimit = doParallelLimit(_createTester(Boolean, identity));\n\n/**\n * The same as [`some`]{@link module:Collections.some} but runs only a single async operation at a time.\n *\n * @name someSeries\n * @static\n * @memberOf module:Collections\n * @method\n * @see [async.some]{@link module:Collections.some}\n * @alias anySeries\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async truth test to apply to each item\n * in the collections in series.\n * The iteratee should complete with a boolean `result` value.\n * Invoked with (item, callback).\n * @param {Function} [callback] - A callback which is called as soon as any\n * iteratee returns `true`, or after all the iteratee functions have finished.\n * Result will be either `true` or `false` depending on the values of the async\n * tests. Invoked with (err, result).\n */\nvar someSeries = doLimit(someLimit, 1);\n\n/**\n * Sorts a list by the results of running each `coll` value through an async\n * `iteratee`.\n *\n * @name sortBy\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {AsyncFunction} iteratee - An async function to apply to each item in\n * `coll`.\n * The iteratee should complete with a value to use as the sort criteria as\n * its `result`.\n * Invoked with (item, callback).\n * @param {Function} callback - A callback which is called after all the\n * `iteratee` functions have finished, or an error occurs. Results is the items\n * from the original `coll` sorted by the values returned by the `iteratee`\n * calls. Invoked with (err, results).\n * @example\n *\n * async.sortBy(['file1','file2','file3'], function(file, callback) {\n * fs.stat(file, function(err, stats) {\n * callback(err, stats.mtime);\n * });\n * }, function(err, results) {\n * // results is now the original array of files sorted by\n * // modified date\n * });\n *\n * // By modifying the callback parameter the\n * // sorting order can be influenced:\n *\n * // ascending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x);\n * }, function(err,result) {\n * // result callback\n * });\n *\n * // descending order\n * async.sortBy([1,9,3,5], function(x, callback) {\n * callback(null, x*-1); //<- x*-1 instead of x, turns the order around\n * }, function(err,result) {\n * // result callback\n * });\n */\nfunction sortBy (coll, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n map(coll, function (x, callback) {\n _iteratee(x, function (err, criteria) {\n if (err) return callback(err);\n callback(null, {value: x, criteria: criteria});\n });\n }, function (err, results) {\n if (err) return callback(err);\n callback(null, arrayMap(results.sort(comparator), baseProperty('value')));\n });\n\n function comparator(left, right) {\n var a = left.criteria, b = right.criteria;\n return a < b ? -1 : a > b ? 1 : 0;\n }\n}\n\n/**\n * Sets a time limit on an asynchronous function. If the function does not call\n * its callback within the specified milliseconds, it will be called with a\n * timeout error. The code property for the error object will be `'ETIMEDOUT'`.\n *\n * @name timeout\n * @static\n * @memberOf module:Utils\n * @method\n * @category Util\n * @param {AsyncFunction} asyncFn - The async function to limit in time.\n * @param {number} milliseconds - The specified time limit.\n * @param {*} [info] - Any variable you want attached (`string`, `object`, etc)\n * to timeout Error for more information..\n * @returns {AsyncFunction} Returns a wrapped function that can be used with any\n * of the control flow functions.\n * Invoke this function with the same parameters as you would `asyncFunc`.\n * @example\n *\n * function myFunction(foo, callback) {\n * doAsyncTask(foo, function(err, data) {\n * // handle errors\n * if (err) return callback(err);\n *\n * // do some stuff ...\n *\n * // return processed data\n * return callback(null, data);\n * });\n * }\n *\n * var wrapped = async.timeout(myFunction, 1000);\n *\n * // call `wrapped` as you would `myFunction`\n * wrapped({ bar: 'bar' }, function(err, data) {\n * // if `myFunction` takes < 1000 ms to execute, `err`\n * // and `data` will have their expected values\n *\n * // else `err` will be an Error with the code 'ETIMEDOUT'\n * });\n */\nfunction timeout(asyncFn, milliseconds, info) {\n var fn = wrapAsync(asyncFn);\n\n return initialParams(function (args, callback) {\n var timedOut = false;\n var timer;\n\n function timeoutCallback() {\n var name = asyncFn.name || 'anonymous';\n var error = new Error('Callback function \"' + name + '\" timed out.');\n error.code = 'ETIMEDOUT';\n if (info) {\n error.info = info;\n }\n timedOut = true;\n callback(error);\n }\n\n args.push(function () {\n if (!timedOut) {\n callback.apply(null, arguments);\n clearTimeout(timer);\n }\n });\n\n // setup timer and call original function\n timer = setTimeout(timeoutCallback, milliseconds);\n fn.apply(null, args);\n });\n}\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil;\nvar nativeMax = Math.max;\n\n/**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\n/**\n * The same as [times]{@link module:ControlFlow.times} but runs a maximum of `limit` async operations at a\n * time.\n *\n * @name timesLimit\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} count - The number of times to run the function.\n * @param {number} limit - The maximum number of async operations at a time.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see [async.map]{@link module:Collections.map}.\n */\nfunction timeLimit(count, limit, iteratee, callback) {\n var _iteratee = wrapAsync(iteratee);\n mapLimit(baseRange(0, count, 1), limit, _iteratee, callback);\n}\n\n/**\n * Calls the `iteratee` function `n` times, and accumulates results in the same\n * manner you would use with [map]{@link module:Collections.map}.\n *\n * @name times\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.map]{@link module:Collections.map}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n * @example\n *\n * // Pretend this is some complicated async factory\n * var createUser = function(id, callback) {\n * callback(null, {\n * id: 'user' + id\n * });\n * };\n *\n * // generate 5 users\n * async.times(5, function(n, next) {\n * createUser(n, function(err, user) {\n * next(err, user);\n * });\n * }, function(err, users) {\n * // we should now have 5 users\n * });\n */\nvar times = doLimit(timeLimit, Infinity);\n\n/**\n * The same as [times]{@link module:ControlFlow.times} but runs only a single async operation at a time.\n *\n * @name timesSeries\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.times]{@link module:ControlFlow.times}\n * @category Control Flow\n * @param {number} n - The number of times to run the function.\n * @param {AsyncFunction} iteratee - The async function to call `n` times.\n * Invoked with the iteration index and a callback: (n, next).\n * @param {Function} callback - see {@link module:Collections.map}.\n */\nvar timesSeries = doLimit(timeLimit, 1);\n\n/**\n * A relative of `reduce`. Takes an Object or Array, and iterates over each\n * element in series, each step potentially mutating an `accumulator` value.\n * The type of the accumulator defaults to the type of collection passed in.\n *\n * @name transform\n * @static\n * @memberOf module:Collections\n * @method\n * @category Collection\n * @param {Array|Iterable|Object} coll - A collection to iterate over.\n * @param {*} [accumulator] - The initial state of the transform. If omitted,\n * it will default to an empty Object or Array, depending on the type of `coll`\n * @param {AsyncFunction} iteratee - A function applied to each item in the\n * collection that potentially modifies the accumulator.\n * Invoked with (accumulator, item, key, callback).\n * @param {Function} [callback] - A callback which is called after all the\n * `iteratee` functions have finished. Result is the transformed accumulator.\n * Invoked with (err, result).\n * @example\n *\n * async.transform([1,2,3], function(acc, item, index, callback) {\n * // pointless async:\n * process.nextTick(function() {\n * acc.push(item * 2)\n * callback(null)\n * });\n * }, function(err, result) {\n * // result is now equal to [2, 4, 6]\n * });\n *\n * @example\n *\n * async.transform({a: 1, b: 2, c: 3}, function (obj, val, key, callback) {\n * setImmediate(function () {\n * obj[key] = val * 2;\n * callback();\n * })\n * }, function (err, result) {\n * // result is equal to {a: 2, b: 4, c: 6}\n * })\n */\nfunction transform (coll, accumulator, iteratee, callback) {\n if (arguments.length <= 3) {\n callback = iteratee;\n iteratee = accumulator;\n accumulator = isArray(coll) ? [] : {};\n }\n callback = once(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n\n eachOf(coll, function(v, k, cb) {\n _iteratee(accumulator, v, k, cb);\n }, function(err) {\n callback(err, accumulator);\n });\n}\n\n/**\n * It runs each task in series but stops whenever any of the functions were\n * successful. If one of the tasks were successful, the `callback` will be\n * passed the result of the successful task. If all tasks fail, the callback\n * will be passed the error and result (if any) of the final attempt.\n *\n * @name tryEach\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array|Iterable|Object} tasks - A collection containing functions to\n * run, each function is passed a `callback(err, result)` it must call on\n * completion with an error `err` (which can be `null`) and an optional `result`\n * value.\n * @param {Function} [callback] - An optional callback which is called when one\n * of the tasks has succeeded, or all have failed. It receives the `err` and\n * `result` arguments of the last attempt at completing the `task`. Invoked with\n * (err, results).\n * @example\n * async.tryEach([\n * function getDataFromFirstWebsite(callback) {\n * // Try getting the data from the first website\n * callback(err, data);\n * },\n * function getDataFromSecondWebsite(callback) {\n * // First website failed,\n * // Try getting the data from the backup website\n * callback(err, data);\n * }\n * ],\n * // optional callback\n * function(err, results) {\n * Now do something with the data.\n * });\n *\n */\nfunction tryEach(tasks, callback) {\n var error = null;\n var result;\n callback = callback || noop;\n eachSeries(tasks, function(task, callback) {\n wrapAsync(task)(function (err, res/*, ...args*/) {\n if (arguments.length > 2) {\n result = slice(arguments, 1);\n } else {\n result = res;\n }\n error = err;\n callback(!err);\n });\n }, function () {\n callback(error, result);\n });\n}\n\n/**\n * Undoes a [memoize]{@link module:Utils.memoize}d function, reverting it to the original,\n * unmemoized form. Handy for testing.\n *\n * @name unmemoize\n * @static\n * @memberOf module:Utils\n * @method\n * @see [async.memoize]{@link module:Utils.memoize}\n * @category Util\n * @param {AsyncFunction} fn - the memoized function\n * @returns {AsyncFunction} a function that calls the original unmemoized function\n */\nfunction unmemoize(fn) {\n return function () {\n return (fn.unmemoized || fn).apply(null, arguments);\n };\n}\n\n/**\n * Repeatedly call `iteratee`, while `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs.\n *\n * @name whilst\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `iteratee`. Invoked with ().\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` passes. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has failed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n * @returns undefined\n * @example\n *\n * var count = 0;\n * async.whilst(\n * function() { return count < 5; },\n * function(callback) {\n * count++;\n * setTimeout(function() {\n * callback(null, count);\n * }, 1000);\n * },\n * function (err, n) {\n * // 5 seconds have passed, n = 5\n * }\n * );\n */\nfunction whilst(test, iteratee, callback) {\n callback = onlyOnce(callback || noop);\n var _iteratee = wrapAsync(iteratee);\n if (!test()) return callback(null);\n var next = function(err/*, ...args*/) {\n if (err) return callback(err);\n if (test()) return _iteratee(next);\n var args = slice(arguments, 1);\n callback.apply(null, [null].concat(args));\n };\n _iteratee(next);\n}\n\n/**\n * Repeatedly call `iteratee` until `test` returns `true`. Calls `callback` when\n * stopped, or an error occurs. `callback` will be passed an error and any\n * arguments passed to the final `iteratee`'s callback.\n *\n * The inverse of [whilst]{@link module:ControlFlow.whilst}.\n *\n * @name until\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @see [async.whilst]{@link module:ControlFlow.whilst}\n * @category Control Flow\n * @param {Function} test - synchronous truth test to perform before each\n * execution of `iteratee`. Invoked with ().\n * @param {AsyncFunction} iteratee - An async function which is called each time\n * `test` fails. Invoked with (callback).\n * @param {Function} [callback] - A callback which is called after the test\n * function has passed and repeated execution of `iteratee` has stopped. `callback`\n * will be passed an error and any arguments passed to the final `iteratee`'s\n * callback. Invoked with (err, [results]);\n */\nfunction until(test, iteratee, callback) {\n whilst(function() {\n return !test.apply(this, arguments);\n }, iteratee, callback);\n}\n\n/**\n * Runs the `tasks` array of functions in series, each passing their results to\n * the next in the array. However, if any of the `tasks` pass an error to their\n * own callback, the next function is not executed, and the main `callback` is\n * immediately called with the error.\n *\n * @name waterfall\n * @static\n * @memberOf module:ControlFlow\n * @method\n * @category Control Flow\n * @param {Array} tasks - An array of [async functions]{@link AsyncFunction}\n * to run.\n * Each function should complete with any number of `result` values.\n * The `result` values will be passed as arguments, in order, to the next task.\n * @param {Function} [callback] - An optional callback to run once all the\n * functions have completed. This will be passed the results of the last task's\n * callback. Invoked with (err, [results]).\n * @returns undefined\n * @example\n *\n * async.waterfall([\n * function(callback) {\n * callback(null, 'one', 'two');\n * },\n * function(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * },\n * function(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n *\n * // Or, with named functions:\n * async.waterfall([\n * myFirstFunction,\n * mySecondFunction,\n * myLastFunction,\n * ], function (err, result) {\n * // result now equals 'done'\n * });\n * function myFirstFunction(callback) {\n * callback(null, 'one', 'two');\n * }\n * function mySecondFunction(arg1, arg2, callback) {\n * // arg1 now equals 'one' and arg2 now equals 'two'\n * callback(null, 'three');\n * }\n * function myLastFunction(arg1, callback) {\n * // arg1 now equals 'three'\n * callback(null, 'done');\n * }\n */\nvar waterfall = function(tasks, callback) {\n callback = once(callback || noop);\n if (!isArray(tasks)) return callback(new Error('First argument to waterfall must be an array of functions'));\n if (!tasks.length) return callback();\n var taskIndex = 0;\n\n function nextTask(args) {\n var task = wrapAsync(tasks[taskIndex++]);\n args.push(onlyOnce(next));\n task.apply(null, args);\n }\n\n function next(err/*, ...args*/) {\n if (err || taskIndex === tasks.length) {\n return callback.apply(null, arguments);\n }\n nextTask(slice(arguments, 1));\n }\n\n nextTask([]);\n};\n\n/**\n * An \"async function\" in the context of Async is an asynchronous function with\n * a variable number of parameters, with the final parameter being a callback.\n * (`function (arg1, arg2, ..., callback) {}`)\n * The final callback is of the form `callback(err, results...)`, which must be\n * called once the function is completed. The callback should be called with a\n * Error as its first argument to signal that an error occurred.\n * Otherwise, if no error occurred, it should be called with `null` as the first\n * argument, and any additional `result` arguments that may apply, to signal\n * successful completion.\n * The callback must be called exactly once, ideally on a later tick of the\n * JavaScript event loop.\n *\n * This type of function is also referred to as a \"Node-style async function\",\n * or a \"continuation passing-style function\" (CPS). Most of the methods of this\n * library are themselves CPS/Node-style async functions, or functions that\n * return CPS/Node-style async functions.\n *\n * Wherever we accept a Node-style async function, we also directly accept an\n * [ES2017 `async` function]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/async_function}.\n * In this case, the `async` function will not be passed a final callback\n * argument, and any thrown error will be used as the `err` argument of the\n * implicit callback, and the return value will be used as the `result` value.\n * (i.e. a `rejected` of the returned Promise becomes the `err` callback\n * argument, and a `resolved` value becomes the `result`.)\n *\n * Note, due to JavaScript limitations, we can only detect native `async`\n * functions and not transpilied implementations.\n * Your environment must have `async`/`await` support for this to work.\n * (e.g. Node > v7.6, or a recent version of a modern browser).\n * If you are using `async` functions through a transpiler (e.g. Babel), you\n * must still wrap the function with [asyncify]{@link module:Utils.asyncify},\n * because the `async function` will be compiled to an ordinary function that\n * returns a promise.\n *\n * @typedef {Function} AsyncFunction\n * @static\n */\n\n/**\n * Async is a utility module which provides straight-forward, powerful functions\n * for working with asynchronous JavaScript. Although originally designed for\n * use with [Node.js](http://nodejs.org) and installable via\n * `npm install --save async`, it can also be used directly in the browser.\n * @module async\n * @see AsyncFunction\n */\n\n\n/**\n * A collection of `async` functions for manipulating collections, such as\n * arrays and objects.\n * @module Collections\n */\n\n/**\n * A collection of `async` functions for controlling the flow through a script.\n * @module ControlFlow\n */\n\n/**\n * A collection of `async` utility functions.\n * @module Utils\n */\n\nvar index = {\n apply: apply,\n applyEach: applyEach,\n applyEachSeries: applyEachSeries,\n asyncify: asyncify,\n auto: auto,\n autoInject: autoInject,\n cargo: cargo,\n compose: compose,\n concat: concat,\n concatLimit: concatLimit,\n concatSeries: concatSeries,\n constant: constant,\n detect: detect,\n detectLimit: detectLimit,\n detectSeries: detectSeries,\n dir: dir,\n doDuring: doDuring,\n doUntil: doUntil,\n doWhilst: doWhilst,\n during: during,\n each: eachLimit,\n eachLimit: eachLimit$1,\n eachOf: eachOf,\n eachOfLimit: eachOfLimit,\n eachOfSeries: eachOfSeries,\n eachSeries: eachSeries,\n ensureAsync: ensureAsync,\n every: every,\n everyLimit: everyLimit,\n everySeries: everySeries,\n filter: filter,\n filterLimit: filterLimit,\n filterSeries: filterSeries,\n forever: forever,\n groupBy: groupBy,\n groupByLimit: groupByLimit,\n groupBySeries: groupBySeries,\n log: log,\n map: map,\n mapLimit: mapLimit,\n mapSeries: mapSeries,\n mapValues: mapValues,\n mapValuesLimit: mapValuesLimit,\n mapValuesSeries: mapValuesSeries,\n memoize: memoize,\n nextTick: nextTick,\n parallel: parallelLimit,\n parallelLimit: parallelLimit$1,\n priorityQueue: priorityQueue,\n queue: queue$1,\n race: race,\n reduce: reduce,\n reduceRight: reduceRight,\n reflect: reflect,\n reflectAll: reflectAll,\n reject: reject,\n rejectLimit: rejectLimit,\n rejectSeries: rejectSeries,\n retry: retry,\n retryable: retryable,\n seq: seq,\n series: series,\n setImmediate: setImmediate$1,\n some: some,\n someLimit: someLimit,\n someSeries: someSeries,\n sortBy: sortBy,\n timeout: timeout,\n times: times,\n timesLimit: timeLimit,\n timesSeries: timesSeries,\n transform: transform,\n tryEach: tryEach,\n unmemoize: unmemoize,\n until: until,\n waterfall: waterfall,\n whilst: whilst,\n\n // aliases\n all: every,\n allLimit: everyLimit,\n allSeries: everySeries,\n any: some,\n anyLimit: someLimit,\n anySeries: someSeries,\n find: detect,\n findLimit: detectLimit,\n findSeries: detectSeries,\n forEach: eachLimit,\n forEachSeries: eachSeries,\n forEachLimit: eachLimit$1,\n forEachOf: eachOf,\n forEachOfSeries: eachOfSeries,\n forEachOfLimit: eachOfLimit,\n inject: reduce,\n foldl: reduce,\n foldr: reduceRight,\n select: filter,\n selectLimit: filterLimit,\n selectSeries: filterSeries,\n wrapSync: asyncify\n};\n\nexports['default'] = index;\nexports.apply = apply;\nexports.applyEach = applyEach;\nexports.applyEachSeries = applyEachSeries;\nexports.asyncify = asyncify;\nexports.auto = auto;\nexports.autoInject = autoInject;\nexports.cargo = cargo;\nexports.compose = compose;\nexports.concat = concat;\nexports.concatLimit = concatLimit;\nexports.concatSeries = concatSeries;\nexports.constant = constant;\nexports.detect = detect;\nexports.detectLimit = detectLimit;\nexports.detectSeries = detectSeries;\nexports.dir = dir;\nexports.doDuring = doDuring;\nexports.doUntil = doUntil;\nexports.doWhilst = doWhilst;\nexports.during = during;\nexports.each = eachLimit;\nexports.eachLimit = eachLimit$1;\nexports.eachOf = eachOf;\nexports.eachOfLimit = eachOfLimit;\nexports.eachOfSeries = eachOfSeries;\nexports.eachSeries = eachSeries;\nexports.ensureAsync = ensureAsync;\nexports.every = every;\nexports.everyLimit = everyLimit;\nexports.everySeries = everySeries;\nexports.filter = filter;\nexports.filterLimit = filterLimit;\nexports.filterSeries = filterSeries;\nexports.forever = forever;\nexports.groupBy = groupBy;\nexports.groupByLimit = groupByLimit;\nexports.groupBySeries = groupBySeries;\nexports.log = log;\nexports.map = map;\nexports.mapLimit = mapLimit;\nexports.mapSeries = mapSeries;\nexports.mapValues = mapValues;\nexports.mapValuesLimit = mapValuesLimit;\nexports.mapValuesSeries = mapValuesSeries;\nexports.memoize = memoize;\nexports.nextTick = nextTick;\nexports.parallel = parallelLimit;\nexports.parallelLimit = parallelLimit$1;\nexports.priorityQueue = priorityQueue;\nexports.queue = queue$1;\nexports.race = race;\nexports.reduce = reduce;\nexports.reduceRight = reduceRight;\nexports.reflect = reflect;\nexports.reflectAll = reflectAll;\nexports.reject = reject;\nexports.rejectLimit = rejectLimit;\nexports.rejectSeries = rejectSeries;\nexports.retry = retry;\nexports.retryable = retryable;\nexports.seq = seq;\nexports.series = series;\nexports.setImmediate = setImmediate$1;\nexports.some = some;\nexports.someLimit = someLimit;\nexports.someSeries = someSeries;\nexports.sortBy = sortBy;\nexports.timeout = timeout;\nexports.times = times;\nexports.timesLimit = timeLimit;\nexports.timesSeries = timesSeries;\nexports.transform = transform;\nexports.tryEach = tryEach;\nexports.unmemoize = unmemoize;\nexports.until = until;\nexports.waterfall = waterfall;\nexports.whilst = whilst;\nexports.all = every;\nexports.allLimit = everyLimit;\nexports.allSeries = everySeries;\nexports.any = some;\nexports.anyLimit = someLimit;\nexports.anySeries = someSeries;\nexports.find = detect;\nexports.findLimit = detectLimit;\nexports.findSeries = detectSeries;\nexports.forEach = eachLimit;\nexports.forEachSeries = eachSeries;\nexports.forEachLimit = eachLimit$1;\nexports.forEachOf = eachOf;\nexports.forEachOfSeries = eachOfSeries;\nexports.forEachOfLimit = eachOfLimit;\nexports.inject = reduce;\nexports.foldl = reduce;\nexports.foldr = reduceRight;\nexports.select = filter;\nexports.selectLimit = filterLimit;\nexports.selectSeries = filterSeries;\nexports.wrapSync = asyncify;\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n})));\n","require('./index')\nrequire('debug').enable('axios')\n","'use strict'\n\nvar axios = require('axios')\nvar isAbsoluteURL = require('axios/lib/helpers/isAbsoluteURL')\nvar buildURL = require('axios/lib/helpers/buildURL')\nvar combineURLs = require('axios/lib/helpers/combineURLs')\nvar axiosDebug = require('debug')('axios')\n\nvar URL_KEY = '__AXIOS-DEBUG-LOG_URL__'\n\nfunction getURL (config) {\n var url = config.url\n if (config.baseURL && !isAbsoluteURL(url)) {\n url = combineURLs(config.baseURL, url)\n }\n return buildURL(url, config.params, config.paramsSerializer)\n}\n\nvar options = {\n request: function (debug, config) {\n var url = getURL(config)\n Object.defineProperty(config, URL_KEY, { value: url })\n debug(\n config.method.toUpperCase() + ' ' + url\n )\n },\n response: function (debug, response) {\n var url = response.config[URL_KEY]\n debug(\n response.status + ' ' + response.statusText,\n '(' + response.config.method.toUpperCase() + ' ' + url + ')'\n )\n },\n error: function (debug, error) {\n if (error.config) {\n var url = error.config[URL_KEY]\n debug(\n error.name + ': ' + error.message,\n '(' + error.config.method.toUpperCase() + ' ' + url + ')'\n )\n } else {\n debug(error.name + ': ' + error.message)\n }\n }\n}\n\nfunction addLogger (instance, debug) {\n if (debug === undefined) debug = axiosDebug\n instance.interceptors.request.use(function (config) {\n options.request(debug, config)\n return config\n })\n instance.interceptors.response.use(function (response) {\n options.response(debug, response)\n return response\n }, function (error) {\n options.error(debug, error)\n throw error\n })\n}\n\naddLogger(axios)\n\naxios.create = (function (originalCreate) {\n return function create () {\n var instance = originalCreate.apply(this, arguments)\n addLogger(instance)\n return instance\n }\n})(axios.create)\n\nexports = module.exports = function (userOptions) {\n for (var key in options) {\n if (key in userOptions) {\n options[key] = userOptions[key]\n }\n }\n}\n\nexports.addLogger = addLogger\n","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\nvar platform = require('../platform');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var withXSRFToken = config.withXSRFToken;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n var xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n // false, 0 (zero number), and '' (empty string) are valid JSON values\n if (!requestData && requestData !== false && requestData !== 0 && requestData !== '') {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\nvar formDataToJSON = require('./helpers/formDataToJSON');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\naxios.formToJSON = function(thing) {\n return formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n};\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n var paramsSerializer = config.paramsSerializer;\n\n if (paramsSerializer !== undefined) {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n\n utils.isFunction(paramsSerializer) && (config.paramsSerializer = {serialize: paramsSerializer});\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Clear all interceptors from the stack\n */\nInterceptorManager.prototype.clear = function clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n null,\n config.transformRequest\n );\n\n normalizeHeaderName(config.headers, 'Accept');\n normalizeHeaderName(config.headers, 'Content-Type');\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n response.status,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n reason.response.status,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isEmptyObject(source)) {\n return utils.merge({}, target);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'withXSRFToken': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Number} status HTTP status code\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, status, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers, status);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\nvar toURLEncodedForm = require('../helpers/toURLEncodedForm');\nvar platform = require('../platform');\nvar formDataToJSON = require('../helpers/formDataToJSON');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n var contentType = headers && headers['Content-Type'] || '';\n var hasJSONContentType = contentType.indexOf('application/json') > -1;\n var isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n var isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') !== -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n var _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","// eslint-disable-next-line strict\nmodule.exports = require('form-data');\n","module.exports = {\n \"version\": \"0.28.1\"\n};","'use strict';\n\nvar toFormData = require('./toFormData');\n\nfunction encode(str) {\n var charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'\\(\\)~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nvar prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n var _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nmodule.exports = AxiosURLSearchParams;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar AxiosURLSearchParams = require('../helpers/AxiosURLSearchParams');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n var _encode = options && options.encode || encode;\n\n var serializeFn = options && options.serialize;\n\n var serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(function(match) {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\nfunction arrayToObject(arr) {\n var obj = {};\n var keys = Object.keys(arr);\n var i;\n var len = keys.length;\n var key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n var name = path[index++];\n var isNumericKey = Number.isFinite(+name);\n var isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProperty(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n var result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n var obj = {};\n\n utils.forEachEntry(formData, function(name, value) {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nmodule.exports = formDataToJSON;\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.slice(0, i)).toLowerCase();\n val = utils.trim(line.slice(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar AxiosError = require('../core/AxiosError');\nvar envFormData = require('../env/classes/FormData');\n\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nvar predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\nfunction isSpecCompliant(thing) {\n return thing && utils.isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator];\n}\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (envFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n var metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n var visitor = options.visitor || defaultVisitor;\n var dots = options.dots;\n var indexes = options.indexes;\n var _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n var useBlob = _Blob && isSpecCompliant(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n var arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n (utils.isFileList(value) || utils.endsWith(key, '[]') && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !utils.isUndefined(el) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n var stack = [];\n\n var exposedHelpers = Object.assign(predicates, {\n defaultVisitor: defaultVisitor,\n convertValue: convertValue,\n isVisitable: isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n var result = !utils.isUndefined(el) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar utils = require('../utils');\nvar toFormData = require('./toFormData');\nvar platform = require('../platform/');\n\nmodule.exports = function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n};\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nmodule.exports = FormData;\n","'use strict';\n\nvar AxiosURLSearchParams = require('../../../helpers/AxiosURLSearchParams');\n\nmodule.exports = typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nmodule.exports = {\n isBrowser: true,\n classes: {\n URLSearchParams: require('./classes/URLSearchParams'),\n FormData: require('./classes/FormData'),\n Blob: Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nmodule.exports = require('./node/');\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a empty Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a empty Object, otherwise false\n */\nfunction isEmptyObject(val) {\n return val && Object.keys(val).length === 0 && Object.getPrototypeOf(val) === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n var product;\n if (typeof navigator !== 'undefined' && (\n (product = navigator.product) === 'ReactNative' ||\n product === 'NativeScript' ||\n product === 'NS')\n ) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter, propFilter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n * @param {*} [thing]\n * @returns {?Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n var i = thing.length;\n if (!isNumber(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nfunction forEachEntry(obj, fn) {\n var generator = obj && obj[Symbol.iterator];\n\n var iterator = generator.call(obj);\n\n var result;\n\n while ((result = iterator.next()) && !result.done) {\n var pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\nfunction matchAll(regExp, str) {\n var matches;\n var arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\nvar isHTMLForm = kindOfTest('HTMLFormElement');\n\nvar hasOwnProperty = (function resolver(_hasOwnProperty) {\n return function(obj, prop) {\n return _hasOwnProperty.call(obj, prop);\n };\n})(Object.prototype.hasOwnProperty);\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isEmptyObject: isEmptyObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList,\n forEachEntry: forEachEntry,\n matchAll: matchAll,\n isHTMLForm: isHTMLForm,\n hasOwnProperty: hasOwnProperty\n};\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/**\n * This library modifies the diff-patch-match library by Neil Fraser\n * by removing the patch and match functionality and certain advanced\n * options in the diff function. The original license is as follows:\n *\n * ===\n *\n * Diff Match and Patch\n *\n * Copyright 2006 Google Inc.\n * http://code.google.com/p/google-diff-match-patch/\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n\n/**\n * The data structure representing a diff is an array of tuples:\n * [[DIFF_DELETE, 'Hello'], [DIFF_INSERT, 'Goodbye'], [DIFF_EQUAL, ' world.']]\n * which means: delete 'Hello', add 'Goodbye' and keep ' world.'\n */\nvar DIFF_DELETE = -1;\nvar DIFF_INSERT = 1;\nvar DIFF_EQUAL = 0;\n\n\n/**\n * Find the differences between two texts. Simplifies the problem by stripping\n * any common prefix or suffix off the texts before diffing.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {Int|Object} [cursor_pos] Edit position in text1 or object with more info\n * @return {Array} Array of diff tuples.\n */\nfunction diff_main(text1, text2, cursor_pos, _fix_unicode) {\n // Check for equality\n if (text1 === text2) {\n if (text1) {\n return [[DIFF_EQUAL, text1]];\n }\n return [];\n }\n\n if (cursor_pos != null) {\n var editdiff = find_cursor_edit_diff(text1, text2, cursor_pos);\n if (editdiff) {\n return editdiff;\n }\n }\n\n // Trim off common prefix (speedup).\n var commonlength = diff_commonPrefix(text1, text2);\n var commonprefix = text1.substring(0, commonlength);\n text1 = text1.substring(commonlength);\n text2 = text2.substring(commonlength);\n\n // Trim off common suffix (speedup).\n commonlength = diff_commonSuffix(text1, text2);\n var commonsuffix = text1.substring(text1.length - commonlength);\n text1 = text1.substring(0, text1.length - commonlength);\n text2 = text2.substring(0, text2.length - commonlength);\n\n // Compute the diff on the middle block.\n var diffs = diff_compute_(text1, text2);\n\n // Restore the prefix and suffix.\n if (commonprefix) {\n diffs.unshift([DIFF_EQUAL, commonprefix]);\n }\n if (commonsuffix) {\n diffs.push([DIFF_EQUAL, commonsuffix]);\n }\n diff_cleanupMerge(diffs, _fix_unicode);\n return diffs;\n};\n\n\n/**\n * Find the differences between two texts. Assumes that the texts do not\n * have any common prefix or suffix.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_compute_(text1, text2) {\n var diffs;\n\n if (!text1) {\n // Just add some text (speedup).\n return [[DIFF_INSERT, text2]];\n }\n\n if (!text2) {\n // Just delete some text (speedup).\n return [[DIFF_DELETE, text1]];\n }\n\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n var i = longtext.indexOf(shorttext);\n if (i !== -1) {\n // Shorter text is inside the longer text (speedup).\n diffs = [\n [DIFF_INSERT, longtext.substring(0, i)],\n [DIFF_EQUAL, shorttext],\n [DIFF_INSERT, longtext.substring(i + shorttext.length)]\n ];\n // Swap insertions for deletions if diff is reversed.\n if (text1.length > text2.length) {\n diffs[0][0] = diffs[2][0] = DIFF_DELETE;\n }\n return diffs;\n }\n\n if (shorttext.length === 1) {\n // Single character string.\n // After the previous speedup, the character can't be an equality.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n }\n\n // Check to see if the problem can be split in two.\n var hm = diff_halfMatch_(text1, text2);\n if (hm) {\n // A half-match was found, sort out the return data.\n var text1_a = hm[0];\n var text1_b = hm[1];\n var text2_a = hm[2];\n var text2_b = hm[3];\n var mid_common = hm[4];\n // Send both pairs off for separate processing.\n var diffs_a = diff_main(text1_a, text2_a);\n var diffs_b = diff_main(text1_b, text2_b);\n // Merge the results.\n return diffs_a.concat([[DIFF_EQUAL, mid_common]], diffs_b);\n }\n\n return diff_bisect_(text1, text2);\n};\n\n\n/**\n * Find the 'middle snake' of a diff, split the problem in two\n * and return the recursively constructed diff.\n * See Myers 1986 paper: An O(ND) Difference Algorithm and Its Variations.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @return {Array} Array of diff tuples.\n * @private\n */\nfunction diff_bisect_(text1, text2) {\n // Cache the text lengths to prevent multiple calls.\n var text1_length = text1.length;\n var text2_length = text2.length;\n var max_d = Math.ceil((text1_length + text2_length) / 2);\n var v_offset = max_d;\n var v_length = 2 * max_d;\n var v1 = new Array(v_length);\n var v2 = new Array(v_length);\n // Setting all elements to -1 is faster in Chrome & Firefox than mixing\n // integers and undefined.\n for (var x = 0; x < v_length; x++) {\n v1[x] = -1;\n v2[x] = -1;\n }\n v1[v_offset + 1] = 0;\n v2[v_offset + 1] = 0;\n var delta = text1_length - text2_length;\n // If the total number of characters is odd, then the front path will collide\n // with the reverse path.\n var front = (delta % 2 !== 0);\n // Offsets for start and end of k loop.\n // Prevents mapping of space beyond the grid.\n var k1start = 0;\n var k1end = 0;\n var k2start = 0;\n var k2end = 0;\n for (var d = 0; d < max_d; d++) {\n // Walk the front path one step.\n for (var k1 = -d + k1start; k1 <= d - k1end; k1 += 2) {\n var k1_offset = v_offset + k1;\n var x1;\n if (k1 === -d || (k1 !== d && v1[k1_offset - 1] < v1[k1_offset + 1])) {\n x1 = v1[k1_offset + 1];\n } else {\n x1 = v1[k1_offset - 1] + 1;\n }\n var y1 = x1 - k1;\n while (\n x1 < text1_length && y1 < text2_length &&\n text1.charAt(x1) === text2.charAt(y1)\n ) {\n x1++;\n y1++;\n }\n v1[k1_offset] = x1;\n if (x1 > text1_length) {\n // Ran off the right of the graph.\n k1end += 2;\n } else if (y1 > text2_length) {\n // Ran off the bottom of the graph.\n k1start += 2;\n } else if (front) {\n var k2_offset = v_offset + delta - k1;\n if (k2_offset >= 0 && k2_offset < v_length && v2[k2_offset] !== -1) {\n // Mirror x2 onto top-left coordinate system.\n var x2 = text1_length - v2[k2_offset];\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n\n // Walk the reverse path one step.\n for (var k2 = -d + k2start; k2 <= d - k2end; k2 += 2) {\n var k2_offset = v_offset + k2;\n var x2;\n if (k2 === -d || (k2 !== d && v2[k2_offset - 1] < v2[k2_offset + 1])) {\n x2 = v2[k2_offset + 1];\n } else {\n x2 = v2[k2_offset - 1] + 1;\n }\n var y2 = x2 - k2;\n while (\n x2 < text1_length && y2 < text2_length &&\n text1.charAt(text1_length - x2 - 1) === text2.charAt(text2_length - y2 - 1)\n ) {\n x2++;\n y2++;\n }\n v2[k2_offset] = x2;\n if (x2 > text1_length) {\n // Ran off the left of the graph.\n k2end += 2;\n } else if (y2 > text2_length) {\n // Ran off the top of the graph.\n k2start += 2;\n } else if (!front) {\n var k1_offset = v_offset + delta - k2;\n if (k1_offset >= 0 && k1_offset < v_length && v1[k1_offset] !== -1) {\n var x1 = v1[k1_offset];\n var y1 = v_offset + x1 - k1_offset;\n // Mirror x2 onto top-left coordinate system.\n x2 = text1_length - x2;\n if (x1 >= x2) {\n // Overlap detected.\n return diff_bisectSplit_(text1, text2, x1, y1);\n }\n }\n }\n }\n }\n // Diff took too long and hit the deadline or\n // number of diffs equals number of characters, no commonality at all.\n return [[DIFF_DELETE, text1], [DIFF_INSERT, text2]];\n};\n\n\n/**\n * Given the location of the 'middle snake', split the diff in two parts\n * and recurse.\n * @param {string} text1 Old string to be diffed.\n * @param {string} text2 New string to be diffed.\n * @param {number} x Index of split point in text1.\n * @param {number} y Index of split point in text2.\n * @return {Array} Array of diff tuples.\n */\nfunction diff_bisectSplit_(text1, text2, x, y) {\n var text1a = text1.substring(0, x);\n var text2a = text2.substring(0, y);\n var text1b = text1.substring(x);\n var text2b = text2.substring(y);\n\n // Compute both diffs serially.\n var diffs = diff_main(text1a, text2a);\n var diffsb = diff_main(text1b, text2b);\n\n return diffs.concat(diffsb);\n};\n\n\n/**\n * Determine the common prefix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the start of each\n * string.\n */\nfunction diff_commonPrefix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.charAt(0) !== text2.charAt(0)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerstart = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(pointerstart, pointermid) ==\n text2.substring(pointerstart, pointermid)\n ) {\n pointermin = pointermid;\n pointerstart = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_start(text1.charCodeAt(pointermid - 1))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Determine the common suffix of two strings.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {number} The number of characters common to the end of each string.\n */\nfunction diff_commonSuffix(text1, text2) {\n // Quick check for common null cases.\n if (!text1 || !text2 || text1.slice(-1) !== text2.slice(-1)) {\n return 0;\n }\n // Binary search.\n // Performance analysis: http://neil.fraser.name/news/2007/10/09/\n var pointermin = 0;\n var pointermax = Math.min(text1.length, text2.length);\n var pointermid = pointermax;\n var pointerend = 0;\n while (pointermin < pointermid) {\n if (\n text1.substring(text1.length - pointermid, text1.length - pointerend) ==\n text2.substring(text2.length - pointermid, text2.length - pointerend)\n ) {\n pointermin = pointermid;\n pointerend = pointermin;\n } else {\n pointermax = pointermid;\n }\n pointermid = Math.floor((pointermax - pointermin) / 2 + pointermin);\n }\n\n if (is_surrogate_pair_end(text1.charCodeAt(text1.length - pointermid))) {\n pointermid--;\n }\n\n return pointermid;\n};\n\n\n/**\n * Do the two texts share a substring which is at least half the length of the\n * longer text?\n * This speedup can produce non-minimal diffs.\n * @param {string} text1 First string.\n * @param {string} text2 Second string.\n * @return {Array.} Five element Array, containing the prefix of\n * text1, the suffix of text1, the prefix of text2, the suffix of\n * text2 and the common middle. Or null if there was no match.\n */\nfunction diff_halfMatch_(text1, text2) {\n var longtext = text1.length > text2.length ? text1 : text2;\n var shorttext = text1.length > text2.length ? text2 : text1;\n if (longtext.length < 4 || shorttext.length * 2 < longtext.length) {\n return null; // Pointless.\n }\n\n /**\n * Does a substring of shorttext exist within longtext such that the substring\n * is at least half the length of longtext?\n * Closure, but does not reference any external variables.\n * @param {string} longtext Longer string.\n * @param {string} shorttext Shorter string.\n * @param {number} i Start index of quarter length substring within longtext.\n * @return {Array.} Five element Array, containing the prefix of\n * longtext, the suffix of longtext, the prefix of shorttext, the suffix\n * of shorttext and the common middle. Or null if there was no match.\n * @private\n */\n function diff_halfMatchI_(longtext, shorttext, i) {\n // Start with a 1/4 length substring at position i as a seed.\n var seed = longtext.substring(i, i + Math.floor(longtext.length / 4));\n var j = -1;\n var best_common = '';\n var best_longtext_a, best_longtext_b, best_shorttext_a, best_shorttext_b;\n while ((j = shorttext.indexOf(seed, j + 1)) !== -1) {\n var prefixLength = diff_commonPrefix(\n longtext.substring(i), shorttext.substring(j));\n var suffixLength = diff_commonSuffix(\n longtext.substring(0, i), shorttext.substring(0, j));\n if (best_common.length < suffixLength + prefixLength) {\n best_common = shorttext.substring(\n j - suffixLength, j) + shorttext.substring(j, j + prefixLength);\n best_longtext_a = longtext.substring(0, i - suffixLength);\n best_longtext_b = longtext.substring(i + prefixLength);\n best_shorttext_a = shorttext.substring(0, j - suffixLength);\n best_shorttext_b = shorttext.substring(j + prefixLength);\n }\n }\n if (best_common.length * 2 >= longtext.length) {\n return [\n best_longtext_a, best_longtext_b,\n best_shorttext_a, best_shorttext_b, best_common\n ];\n } else {\n return null;\n }\n }\n\n // First check if the second quarter is the seed for a half-match.\n var hm1 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 4));\n // Check again based on the third quarter.\n var hm2 = diff_halfMatchI_(longtext, shorttext, Math.ceil(longtext.length / 2));\n var hm;\n if (!hm1 && !hm2) {\n return null;\n } else if (!hm2) {\n hm = hm1;\n } else if (!hm1) {\n hm = hm2;\n } else {\n // Both matched. Select the longest.\n hm = hm1[4].length > hm2[4].length ? hm1 : hm2;\n }\n\n // A half-match was found, sort out the return data.\n var text1_a, text1_b, text2_a, text2_b;\n if (text1.length > text2.length) {\n text1_a = hm[0];\n text1_b = hm[1];\n text2_a = hm[2];\n text2_b = hm[3];\n } else {\n text2_a = hm[0];\n text2_b = hm[1];\n text1_a = hm[2];\n text1_b = hm[3];\n }\n var mid_common = hm[4];\n return [text1_a, text1_b, text2_a, text2_b, mid_common];\n};\n\n\n/**\n * Reorder and merge like edit sections. Merge equalities.\n * Any edit section can move as long as it doesn't cross an equality.\n * @param {Array} diffs Array of diff tuples.\n * @param {boolean} fix_unicode Whether to normalize to a unicode-correct diff\n */\nfunction diff_cleanupMerge(diffs, fix_unicode) {\n diffs.push([DIFF_EQUAL, '']); // Add a dummy entry at the end.\n var pointer = 0;\n var count_delete = 0;\n var count_insert = 0;\n var text_delete = '';\n var text_insert = '';\n var commonlength;\n while (pointer < diffs.length) {\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n diffs.splice(pointer, 1);\n continue;\n }\n switch (diffs[pointer][0]) {\n case DIFF_INSERT:\n\n count_insert++;\n text_insert += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_DELETE:\n count_delete++;\n text_delete += diffs[pointer][1];\n pointer++;\n break;\n case DIFF_EQUAL:\n var previous_equality = pointer - count_insert - count_delete - 1;\n if (fix_unicode) {\n // prevent splitting of unicode surrogate pairs. when fix_unicode is true,\n // we assume that the old and new text in the diff are complete and correct\n // unicode-encoded JS strings, but the tuple boundaries may fall between\n // surrogate pairs. we fix this by shaving off stray surrogates from the end\n // of the previous equality and the beginning of this equality. this may create\n // empty equalities or a common prefix or suffix. for example, if AB and AC are\n // emojis, `[[0, 'A'], [-1, 'BA'], [0, 'C']]` would turn into deleting 'ABAC' and\n // inserting 'AC', and then the common suffix 'AC' will be eliminated. in this\n // particular case, both equalities go away, we absorb any previous inequalities,\n // and we keep scanning for the next equality before rewriting the tuples.\n if (previous_equality >= 0 && ends_with_pair_start(diffs[previous_equality][1])) {\n var stray = diffs[previous_equality][1].slice(-1);\n diffs[previous_equality][1] = diffs[previous_equality][1].slice(0, -1);\n text_delete = stray + text_delete;\n text_insert = stray + text_insert;\n if (!diffs[previous_equality][1]) {\n // emptied out previous equality, so delete it and include previous delete/insert\n diffs.splice(previous_equality, 1);\n pointer--;\n var k = previous_equality - 1;\n if (diffs[k] && diffs[k][0] === DIFF_INSERT) {\n count_insert++;\n text_insert = diffs[k][1] + text_insert;\n k--;\n }\n if (diffs[k] && diffs[k][0] === DIFF_DELETE) {\n count_delete++;\n text_delete = diffs[k][1] + text_delete;\n k--;\n }\n previous_equality = k;\n }\n }\n if (starts_with_pair_end(diffs[pointer][1])) {\n var stray = diffs[pointer][1].charAt(0);\n diffs[pointer][1] = diffs[pointer][1].slice(1);\n text_delete += stray;\n text_insert += stray;\n }\n }\n if (pointer < diffs.length - 1 && !diffs[pointer][1]) {\n // for empty equality not at end, wait for next equality\n diffs.splice(pointer, 1);\n break;\n }\n if (text_delete.length > 0 || text_insert.length > 0) {\n // note that diff_commonPrefix and diff_commonSuffix are unicode-aware\n if (text_delete.length > 0 && text_insert.length > 0) {\n // Factor out any common prefixes.\n commonlength = diff_commonPrefix(text_insert, text_delete);\n if (commonlength !== 0) {\n if (previous_equality >= 0) {\n diffs[previous_equality][1] += text_insert.substring(0, commonlength);\n } else {\n diffs.splice(0, 0, [DIFF_EQUAL, text_insert.substring(0, commonlength)]);\n pointer++;\n }\n text_insert = text_insert.substring(commonlength);\n text_delete = text_delete.substring(commonlength);\n }\n // Factor out any common suffixes.\n commonlength = diff_commonSuffix(text_insert, text_delete);\n if (commonlength !== 0) {\n diffs[pointer][1] =\n text_insert.substring(text_insert.length - commonlength) + diffs[pointer][1];\n text_insert = text_insert.substring(0, text_insert.length - commonlength);\n text_delete = text_delete.substring(0, text_delete.length - commonlength);\n }\n }\n // Delete the offending records and add the merged ones.\n var n = count_insert + count_delete;\n if (text_delete.length === 0 && text_insert.length === 0) {\n diffs.splice(pointer - n, n);\n pointer = pointer - n;\n } else if (text_delete.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 1;\n } else if (text_insert.length === 0) {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete]);\n pointer = pointer - n + 1;\n } else {\n diffs.splice(pointer - n, n, [DIFF_DELETE, text_delete], [DIFF_INSERT, text_insert]);\n pointer = pointer - n + 2;\n }\n }\n if (pointer !== 0 && diffs[pointer - 1][0] === DIFF_EQUAL) {\n // Merge this equality with the previous one.\n diffs[pointer - 1][1] += diffs[pointer][1];\n diffs.splice(pointer, 1);\n } else {\n pointer++;\n }\n count_insert = 0;\n count_delete = 0;\n text_delete = '';\n text_insert = '';\n break;\n }\n }\n if (diffs[diffs.length - 1][1] === '') {\n diffs.pop(); // Remove the dummy entry at the end.\n }\n\n // Second pass: look for single edits surrounded on both sides by equalities\n // which can be shifted sideways to eliminate an equality.\n // e.g: ABAC -> ABAC\n var changes = false;\n pointer = 1;\n // Intentionally ignore the first and last element (don't need checking).\n while (pointer < diffs.length - 1) {\n if (diffs[pointer - 1][0] === DIFF_EQUAL &&\n diffs[pointer + 1][0] === DIFF_EQUAL) {\n // This is a single edit surrounded by equalities.\n if (diffs[pointer][1].substring(diffs[pointer][1].length -\n diffs[pointer - 1][1].length) === diffs[pointer - 1][1]) {\n // Shift the edit over the previous equality.\n diffs[pointer][1] = diffs[pointer - 1][1] +\n diffs[pointer][1].substring(0, diffs[pointer][1].length -\n diffs[pointer - 1][1].length);\n diffs[pointer + 1][1] = diffs[pointer - 1][1] + diffs[pointer + 1][1];\n diffs.splice(pointer - 1, 1);\n changes = true;\n } else if (diffs[pointer][1].substring(0, diffs[pointer + 1][1].length) ==\n diffs[pointer + 1][1]) {\n // Shift the edit over the next equality.\n diffs[pointer - 1][1] += diffs[pointer + 1][1];\n diffs[pointer][1] =\n diffs[pointer][1].substring(diffs[pointer + 1][1].length) +\n diffs[pointer + 1][1];\n diffs.splice(pointer + 1, 1);\n changes = true;\n }\n }\n pointer++;\n }\n // If shifts were made, the diff needs reordering and another shift sweep.\n if (changes) {\n diff_cleanupMerge(diffs, fix_unicode);\n }\n};\n\nfunction is_surrogate_pair_start(charCode) {\n return charCode >= 0xD800 && charCode <= 0xDBFF;\n}\n\nfunction is_surrogate_pair_end(charCode) {\n return charCode >= 0xDC00 && charCode <= 0xDFFF;\n}\n\nfunction starts_with_pair_end(str) {\n return is_surrogate_pair_end(str.charCodeAt(0));\n}\n\nfunction ends_with_pair_start(str) {\n return is_surrogate_pair_start(str.charCodeAt(str.length - 1));\n}\n\nfunction remove_empty_tuples(tuples) {\n var ret = [];\n for (var i = 0; i < tuples.length; i++) {\n if (tuples[i][1].length > 0) {\n ret.push(tuples[i]);\n }\n }\n return ret;\n}\n\nfunction make_edit_splice(before, oldMiddle, newMiddle, after) {\n if (ends_with_pair_start(before) || starts_with_pair_end(after)) {\n return null;\n }\n return remove_empty_tuples([\n [DIFF_EQUAL, before],\n [DIFF_DELETE, oldMiddle],\n [DIFF_INSERT, newMiddle],\n [DIFF_EQUAL, after]\n ]);\n}\n\nfunction find_cursor_edit_diff(oldText, newText, cursor_pos) {\n // note: this runs after equality check has ruled out exact equality\n var oldRange = typeof cursor_pos === 'number' ?\n { index: cursor_pos, length: 0 } : cursor_pos.oldRange;\n var newRange = typeof cursor_pos === 'number' ?\n null : cursor_pos.newRange;\n // take into account the old and new selection to generate the best diff\n // possible for a text edit. for example, a text change from \"xxx\" to \"xx\"\n // could be a delete or forwards-delete of any one of the x's, or the\n // result of selecting two of the x's and typing \"x\".\n var oldLength = oldText.length;\n var newLength = newText.length;\n if (oldRange.length === 0 && (newRange === null || newRange.length === 0)) {\n // see if we have an insert or delete before or after cursor\n var oldCursor = oldRange.index;\n var oldBefore = oldText.slice(0, oldCursor);\n var oldAfter = oldText.slice(oldCursor);\n var maybeNewCursor = newRange ? newRange.index : null;\n editBefore: {\n // is this an insert or delete right before oldCursor?\n var newCursor = oldCursor + newLength - oldLength;\n if (maybeNewCursor !== null && maybeNewCursor !== newCursor) {\n break editBefore;\n }\n if (newCursor < 0 || newCursor > newLength) {\n break editBefore;\n }\n var newBefore = newText.slice(0, newCursor);\n var newAfter = newText.slice(newCursor);\n if (newAfter !== oldAfter) {\n break editBefore;\n }\n var prefixLength = Math.min(oldCursor, newCursor);\n var oldPrefix = oldBefore.slice(0, prefixLength);\n var newPrefix = newBefore.slice(0, prefixLength);\n if (oldPrefix !== newPrefix) {\n break editBefore;\n }\n var oldMiddle = oldBefore.slice(prefixLength);\n var newMiddle = newBefore.slice(prefixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldAfter);\n }\n editAfter: {\n // is this an insert or delete right after oldCursor?\n if (maybeNewCursor !== null && maybeNewCursor !== oldCursor) {\n break editAfter;\n }\n var cursor = oldCursor;\n var newBefore = newText.slice(0, cursor);\n var newAfter = newText.slice(cursor);\n if (newBefore !== oldBefore) {\n break editAfter;\n }\n var suffixLength = Math.min(oldLength - cursor, newLength - cursor);\n var oldSuffix = oldAfter.slice(oldAfter.length - suffixLength);\n var newSuffix = newAfter.slice(newAfter.length - suffixLength);\n if (oldSuffix !== newSuffix) {\n break editAfter;\n }\n var oldMiddle = oldAfter.slice(0, oldAfter.length - suffixLength);\n var newMiddle = newAfter.slice(0, newAfter.length - suffixLength);\n return make_edit_splice(oldBefore, oldMiddle, newMiddle, oldSuffix);\n }\n }\n if (oldRange.length > 0 && newRange && newRange.length === 0) {\n replaceRange: {\n // see if diff could be a splice of the old selection range\n var oldPrefix = oldText.slice(0, oldRange.index);\n var oldSuffix = oldText.slice(oldRange.index + oldRange.length);\n var prefixLength = oldPrefix.length;\n var suffixLength = oldSuffix.length;\n if (newLength < prefixLength + suffixLength) {\n break replaceRange;\n }\n var newPrefix = newText.slice(0, prefixLength);\n var newSuffix = newText.slice(newLength - suffixLength);\n if (oldPrefix !== newPrefix || oldSuffix !== newSuffix) {\n break replaceRange;\n }\n var oldMiddle = oldText.slice(prefixLength, oldLength - suffixLength);\n var newMiddle = newText.slice(prefixLength, newLength - suffixLength);\n return make_edit_splice(oldPrefix, oldMiddle, newMiddle, oldSuffix);\n }\n }\n\n return null;\n}\n\nfunction diff(text1, text2, cursor_pos) {\n // only pass fix_unicode=true at the top level, not when diff_main is\n // recursively invoked\n return diff_main(text1, text2, cursor_pos, true);\n}\n\ndiff.INSERT = DIFF_INSERT;\ndiff.DELETE = DIFF_DELETE;\ndiff.EQUAL = DIFF_EQUAL;\n\nmodule.exports = diff;\n","/*\n* FileSaver.js\n* A saveAs() FileSaver implementation.\n*\n* By Eli Grey, http://eligrey.com\n*\n* License : https://github.com/eligrey/FileSaver.js/blob/master/LICENSE.md (MIT)\n* source : http://purl.eligrey.com/github/FileSaver.js\n*/\n\n// The one and only way of getting global scope in all environments\n// https://stackoverflow.com/q/3277182/1008999\nvar _global = typeof window === 'object' && window.window === window\n ? window : typeof self === 'object' && self.self === self\n ? self : typeof global === 'object' && global.global === global\n ? global\n : this\n\nfunction bom (blob, opts) {\n if (typeof opts === 'undefined') opts = { autoBom: false }\n else if (typeof opts !== 'object') {\n console.warn('Deprecated: Expected third argument to be a object')\n opts = { autoBom: !opts }\n }\n\n // prepend BOM for UTF-8 XML and text/* types (including HTML)\n // note: your browser will automatically convert UTF-16 U+FEFF to EF BB BF\n if (opts.autoBom && /^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(blob.type)) {\n return new Blob([String.fromCharCode(0xFEFF), blob], { type: blob.type })\n }\n return blob\n}\n\nfunction download (url, name, opts) {\n var xhr = new XMLHttpRequest()\n xhr.open('GET', url)\n xhr.responseType = 'blob'\n xhr.onload = function () {\n saveAs(xhr.response, name, opts)\n }\n xhr.onerror = function () {\n console.error('could not download file')\n }\n xhr.send()\n}\n\nfunction corsEnabled (url) {\n var xhr = new XMLHttpRequest()\n // use sync to avoid popup blocker\n xhr.open('HEAD', url, false)\n try {\n xhr.send()\n } catch (e) {}\n return xhr.status >= 200 && xhr.status <= 299\n}\n\n// `a.click()` doesn't work for all browsers (#465)\nfunction click (node) {\n try {\n node.dispatchEvent(new MouseEvent('click'))\n } catch (e) {\n var evt = document.createEvent('MouseEvents')\n evt.initMouseEvent('click', true, true, window, 0, 0, 0, 80,\n 20, false, false, false, false, 0, null)\n node.dispatchEvent(evt)\n }\n}\n\n// Detect WebView inside a native macOS app by ruling out all browsers\n// We just need to check for 'Safari' because all other browsers (besides Firefox) include that too\n// https://www.whatismybrowser.com/guides/the-latest-user-agent/macos\nvar isMacOSWebView = _global.navigator && /Macintosh/.test(navigator.userAgent) && /AppleWebKit/.test(navigator.userAgent) && !/Safari/.test(navigator.userAgent)\n\nvar saveAs = _global.saveAs || (\n // probably in some web worker\n (typeof window !== 'object' || window !== _global)\n ? function saveAs () { /* noop */ }\n\n // Use download attribute first if possible (#193 Lumia mobile) unless this is a macOS WebView\n : ('download' in HTMLAnchorElement.prototype && !isMacOSWebView)\n ? function saveAs (blob, name, opts) {\n var URL = _global.URL || _global.webkitURL\n var a = document.createElement('a')\n name = name || blob.name || 'download'\n\n a.download = name\n a.rel = 'noopener' // tabnabbing\n\n // TODO: detect chrome extensions & packaged apps\n // a.target = '_blank'\n\n if (typeof blob === 'string') {\n // Support regular links\n a.href = blob\n if (a.origin !== location.origin) {\n corsEnabled(a.href)\n ? download(blob, name, opts)\n : click(a, a.target = '_blank')\n } else {\n click(a)\n }\n } else {\n // Support blobs\n a.href = URL.createObjectURL(blob)\n setTimeout(function () { URL.revokeObjectURL(a.href) }, 4E4) // 40s\n setTimeout(function () { click(a) }, 0)\n }\n }\n\n // Use msSaveOrOpenBlob as a second approach\n : 'msSaveOrOpenBlob' in navigator\n ? function saveAs (blob, name, opts) {\n name = name || blob.name || 'download'\n\n if (typeof blob === 'string') {\n if (corsEnabled(blob)) {\n download(blob, name, opts)\n } else {\n var a = document.createElement('a')\n a.href = blob\n a.target = '_blank'\n setTimeout(function () { click(a) })\n }\n } else {\n navigator.msSaveOrOpenBlob(bom(blob, opts), name)\n }\n }\n\n // Fallback to using FileReader and a popup\n : function saveAs (blob, name, opts, popup) {\n // Open a popup immediately do go around popup blocker\n // Mostly only available on user interaction and the fileReader is async so...\n popup = popup || open('', '_blank')\n if (popup) {\n popup.document.title =\n popup.document.body.innerText = 'downloading...'\n }\n\n if (typeof blob === 'string') return download(blob, name, opts)\n\n var force = blob.type === 'application/octet-stream'\n var isSafari = /constructor/i.test(_global.HTMLElement) || _global.safari\n var isChromeIOS = /CriOS\\/[\\d]+/.test(navigator.userAgent)\n\n if ((isChromeIOS || (force && isSafari) || isMacOSWebView) && typeof FileReader !== 'undefined') {\n // Safari doesn't allow downloading of blob URLs\n var reader = new FileReader()\n reader.onloadend = function () {\n var url = reader.result\n url = isChromeIOS ? url : url.replace(/^data:[^;]*;/, 'data:attachment/file;')\n if (popup) popup.location.href = url\n else location = url\n popup = null // reverse-tabnabbing #460\n }\n reader.readAsDataURL(blob)\n } else {\n var URL = _global.URL || _global.webkitURL\n var url = URL.createObjectURL(blob)\n if (popup) popup.location = url\n else location.href = url\n popup = null // reverse-tabnabbing #460\n setTimeout(function () { URL.revokeObjectURL(url) }, 4E4) // 40s\n }\n }\n)\n\n_global.saveAs = saveAs.saveAs = saveAs\n\nif (typeof module !== 'undefined') {\n module.exports = saveAs;\n}\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","var hat = module.exports = function (bits, base) {\n if (!base) base = 16;\n if (bits === undefined) bits = 128;\n if (bits <= 0) return '0';\n \n var digits = Math.log(Math.pow(2, bits)) / Math.log(base);\n for (var i = 2; digits === Infinity; i *= 2) {\n digits = Math.log(Math.pow(2, bits / i)) / Math.log(base) * i;\n }\n \n var rem = digits - Math.floor(digits);\n \n var res = '';\n \n for (var i = 0; i < Math.floor(digits); i++) {\n var x = Math.floor(Math.random() * base).toString(base);\n res = x + res;\n }\n \n if (rem) {\n var b = Math.pow(base, rem);\n var x = Math.floor(Math.random() * b).toString(base);\n res = x + res;\n }\n \n var parsed = parseInt(res, base);\n if (parsed !== Infinity && parsed >= Math.pow(2, bits)) {\n return hat(bits, base)\n }\n else return res;\n};\n\nhat.rack = function (bits, base, expandBy) {\n var fn = function (data) {\n var iters = 0;\n do {\n if (iters ++ > 10) {\n if (expandBy) bits += expandBy;\n else throw new Error('too many ID collisions, use more bits')\n }\n \n var id = hat(bits, base);\n } while (Object.hasOwnProperty.call(hats, id));\n \n hats[id] = data;\n return id;\n };\n var hats = fn.hats = {};\n \n fn.get = function (id) {\n return fn.hats[id];\n };\n \n fn.set = function (id, value) {\n fn.hats[id] = value;\n return fn;\n };\n \n fn.bits = bits || 128;\n fn.base = base || 16;\n return fn;\n};\n","/**\n * lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","// These methods let you build a transform function from a transformComponent\n// function for OT types like JSON0 in which operations are lists of components\n// and transforming them requires N^2 work. I find it kind of nasty that I need\n// this, but I'm not really sure what a better solution is. Maybe I should do\n// this automatically to types that don't have a compose function defined.\n\n// Add transform and transformX functions for an OT type which has\n// transformComponent defined. transformComponent(destination array,\n// component, other component, side)\nmodule.exports = bootstrapTransform\nfunction bootstrapTransform(type, transformComponent, checkValidOp, append) {\n var transformComponentX = function(left, right, destLeft, destRight) {\n transformComponent(destLeft, left, right, 'left');\n transformComponent(destRight, right, left, 'right');\n };\n\n var transformX = type.transformX = function(leftOp, rightOp) {\n checkValidOp(leftOp);\n checkValidOp(rightOp);\n var newRightOp = [];\n\n for (var i = 0; i < rightOp.length; i++) {\n var rightComponent = rightOp[i];\n\n // Generate newLeftOp by composing leftOp by rightComponent\n var newLeftOp = [];\n var k = 0;\n while (k < leftOp.length) {\n var nextC = [];\n transformComponentX(leftOp[k], rightComponent, newLeftOp, nextC);\n k++;\n\n if (nextC.length === 1) {\n rightComponent = nextC[0];\n } else if (nextC.length === 0) {\n for (var j = k; j < leftOp.length; j++) {\n append(newLeftOp, leftOp[j]);\n }\n rightComponent = null;\n break;\n } else {\n // Recurse.\n var pair = transformX(leftOp.slice(k), nextC);\n for (var l = 0; l < pair[0].length; l++) {\n append(newLeftOp, pair[0][l]);\n }\n for (var r = 0; r < pair[1].length; r++) {\n append(newRightOp, pair[1][r]);\n }\n rightComponent = null;\n break;\n }\n }\n\n if (rightComponent != null) {\n append(newRightOp, rightComponent);\n }\n leftOp = newLeftOp;\n }\n return [leftOp, newRightOp];\n };\n\n // Transforms op with specified type ('left' or 'right') by otherOp.\n type.transform = function(op, otherOp, type) {\n if (!(type === 'left' || type === 'right'))\n throw new Error(\"type must be 'left' or 'right'\");\n\n if (otherOp.length === 0) return op;\n\n if (op.length === 1 && otherOp.length === 1)\n return transformComponent([], op[0], otherOp[0], type);\n\n if (type === 'left')\n return transformX(op, otherOp)[0];\n else\n return transformX(otherOp, op)[1];\n };\n};\n","// Only the JSON type is exported, because the text type is deprecated\n// otherwise. (If you want to use it somewhere, you're welcome to pull it out\n// into a separate module that json0 can depend on).\n\nmodule.exports = {\n type: require('./json0')\n};\n","/*\n This is the implementation of the JSON OT type.\n\n Spec is here: https://github.com/josephg/ShareJS/wiki/JSON-Operations\n\n Note: This is being made obsolete. It will soon be replaced by the JSON2 type.\n*/\n\n/**\n * UTILITY FUNCTIONS\n */\n\n/**\n * Checks if the passed object is an Array instance. Can't use Array.isArray\n * yet because its not supported on IE8.\n *\n * @param obj\n * @returns {boolean}\n */\nvar isArray = function(obj) {\n return Object.prototype.toString.call(obj) == '[object Array]';\n};\n\n/**\n * Checks if the passed object is an Object instance.\n * No function call (fast) version\n *\n * @param obj\n * @returns {boolean}\n */\nvar isObject = function(obj) {\n return (!!obj) && (obj.constructor === Object);\n};\n\n/**\n * Clones the passed object using JSON serialization (which is slow).\n *\n * hax, copied from test/types/json. Apparently this is still the fastest way\n * to deep clone an object, assuming we have browser support for JSON. @see\n * http://jsperf.com/cloning-an-object/12\n */\nvar clone = function(o) {\n return JSON.parse(JSON.stringify(o));\n};\n\n/**\n * JSON OT Type\n * @type {*}\n */\nvar json = {\n name: 'json0',\n uri: 'http://sharejs.org/types/JSONv0'\n};\n\n// You can register another OT type as a subtype in a JSON document using\n// the following function. This allows another type to handle certain\n// operations instead of the builtin JSON type.\nvar subtypes = {};\njson.registerSubtype = function(subtype) {\n subtypes[subtype.name] = subtype;\n};\n\njson.create = function(data) {\n // Null instead of undefined if you don't pass an argument.\n return data === undefined ? null : clone(data);\n};\n\njson.invertComponent = function(c) {\n var c_ = {p: c.p};\n\n // handle subtype ops\n if (c.t && subtypes[c.t]) {\n c_.t = c.t;\n c_.o = subtypes[c.t].invert(c.o);\n }\n\n if (c.si !== void 0) c_.sd = c.si;\n if (c.sd !== void 0) c_.si = c.sd;\n if (c.oi !== void 0) c_.od = c.oi;\n if (c.od !== void 0) c_.oi = c.od;\n if (c.li !== void 0) c_.ld = c.li;\n if (c.ld !== void 0) c_.li = c.ld;\n if (c.na !== void 0) c_.na = -c.na;\n\n if (c.lm !== void 0) {\n c_.lm = c.p[c.p.length-1];\n c_.p = c.p.slice(0,c.p.length-1).concat([c.lm]);\n }\n\n return c_;\n};\n\njson.invert = function(op) {\n var op_ = op.slice().reverse();\n var iop = [];\n for (var i = 0; i < op_.length; i++) {\n iop.push(json.invertComponent(op_[i]));\n }\n return iop;\n};\n\njson.checkValidOp = function(op) {\n for (var i = 0; i < op.length; i++) {\n if (!isArray(op[i].p)) throw new Error('Missing path');\n }\n};\n\njson.checkList = function(elem) {\n if (!isArray(elem))\n throw new Error('Referenced element not a list');\n};\n\njson.checkObj = function(elem) {\n if (!isObject(elem)) {\n throw new Error(\"Referenced element not an object (it was \" + JSON.stringify(elem) + \")\");\n }\n};\n\n// helper functions to convert old string ops to and from subtype ops\nfunction convertFromText(c) {\n c.t = 'text0';\n var o = {p: c.p.pop()};\n if (c.si != null) o.i = c.si;\n if (c.sd != null) o.d = c.sd;\n c.o = [o];\n}\n\nfunction convertToText(c) {\n c.p.push(c.o[0].p);\n if (c.o[0].i != null) c.si = c.o[0].i;\n if (c.o[0].d != null) c.sd = c.o[0].d;\n delete c.t;\n delete c.o;\n}\n\njson.apply = function(snapshot, op) {\n json.checkValidOp(op);\n\n op = clone(op);\n\n var container = {\n data: snapshot\n };\n\n for (var i = 0; i < op.length; i++) {\n var c = op[i];\n\n // convert old string ops to use subtype for backwards compatibility\n if (c.si != null || c.sd != null)\n convertFromText(c);\n\n var parent = null;\n var parentKey = null;\n var elem = container;\n var key = 'data';\n\n for (var j = 0; j < c.p.length; j++) {\n var p = c.p[j];\n\n parent = elem;\n parentKey = key;\n elem = elem[key];\n key = p;\n\n if (parent == null)\n throw new Error('Path invalid');\n }\n\n // handle subtype ops\n if (c.t && c.o !== void 0 && subtypes[c.t]) {\n elem[key] = subtypes[c.t].apply(elem[key], c.o);\n\n // Number add\n } else if (c.na !== void 0) {\n if (typeof elem[key] != 'number')\n throw new Error('Referenced element not a number');\n\n elem[key] += c.na;\n }\n\n // List replace\n else if (c.li !== void 0 && c.ld !== void 0) {\n json.checkList(elem);\n // Should check the list element matches c.ld\n elem[key] = c.li;\n }\n\n // List insert\n else if (c.li !== void 0) {\n json.checkList(elem);\n elem.splice(key,0, c.li);\n }\n\n // List delete\n else if (c.ld !== void 0) {\n json.checkList(elem);\n // Should check the list element matches c.ld here too.\n elem.splice(key,1);\n }\n\n // List move\n else if (c.lm !== void 0) {\n json.checkList(elem);\n if (c.lm != key) {\n var e = elem[key];\n // Remove it...\n elem.splice(key,1);\n // And insert it back.\n elem.splice(c.lm,0,e);\n }\n }\n\n // Object insert / replace\n else if (c.oi !== void 0) {\n json.checkObj(elem);\n\n // Should check that elem[key] == c.od\n elem[key] = c.oi;\n }\n\n // Object delete\n else if (c.od !== void 0) {\n json.checkObj(elem);\n\n // Should check that elem[key] == c.od\n delete elem[key];\n }\n\n else {\n throw new Error('invalid / missing instruction in op');\n }\n }\n\n return container.data;\n};\n\n// Helper to break an operation up into a bunch of small ops.\njson.shatter = function(op) {\n var results = [];\n for (var i = 0; i < op.length; i++) {\n results.push([op[i]]);\n }\n return results;\n};\n\n// Helper for incrementally applying an operation to a snapshot. Calls yield\n// after each op component has been applied.\njson.incrementalApply = function(snapshot, op, _yield) {\n for (var i = 0; i < op.length; i++) {\n var smallOp = [op[i]];\n snapshot = json.apply(snapshot, smallOp);\n // I'd just call this yield, but thats a reserved keyword. Bah!\n _yield(smallOp, snapshot);\n }\n\n return snapshot;\n};\n\n// Checks if two paths, p1 and p2 match.\nvar pathMatches = json.pathMatches = function(p1, p2, ignoreLast) {\n if (p1.length != p2.length)\n return false;\n\n for (var i = 0; i < p1.length; i++) {\n if (p1[i] !== p2[i] && (!ignoreLast || i !== p1.length - 1))\n return false;\n }\n\n return true;\n};\n\njson.append = function(dest,c) {\n c = clone(c);\n\n if (dest.length === 0) {\n dest.push(c);\n return;\n }\n\n var last = dest[dest.length - 1];\n\n // convert old string ops to use subtype for backwards compatibility\n if ((c.si != null || c.sd != null) && (last.si != null || last.sd != null)) {\n convertFromText(c);\n convertFromText(last);\n }\n\n if (pathMatches(c.p, last.p)) {\n // handle subtype ops\n if (c.t && last.t && c.t === last.t && subtypes[c.t]) {\n last.o = subtypes[c.t].compose(last.o, c.o);\n\n // convert back to old string ops\n if (c.si != null || c.sd != null) {\n var p = c.p;\n for (var i = 0; i < last.o.length - 1; i++) {\n c.o = [last.o.pop()];\n c.p = p.slice();\n convertToText(c);\n dest.push(c);\n }\n\n convertToText(last);\n }\n } else if (last.na != null && c.na != null) {\n dest[dest.length - 1] = {p: last.p, na: last.na + c.na};\n } else if (last.li !== undefined && c.li === undefined && c.ld === last.li) {\n // insert immediately followed by delete becomes a noop.\n if (last.ld !== undefined) {\n // leave the delete part of the replace\n delete last.li;\n } else {\n dest.pop();\n }\n } else if (last.od !== undefined && last.oi === undefined && c.oi !== undefined && c.od === undefined) {\n last.oi = c.oi;\n } else if (last.oi !== undefined && c.od !== undefined) {\n // The last path component inserted something that the new component deletes (or replaces).\n // Just merge them.\n if (c.oi !== undefined) {\n last.oi = c.oi;\n } else if (last.od !== undefined) {\n delete last.oi;\n } else {\n // An insert directly followed by a delete turns into a no-op and can be removed.\n dest.pop();\n }\n } else if (c.lm !== undefined && c.p[c.p.length - 1] === c.lm) {\n // don't do anything\n } else {\n dest.push(c);\n }\n } else {\n // convert string ops back\n if ((c.si != null || c.sd != null) && (last.si != null || last.sd != null)) {\n convertToText(c);\n convertToText(last);\n }\n\n dest.push(c);\n }\n};\n\njson.compose = function(op1,op2) {\n json.checkValidOp(op1);\n json.checkValidOp(op2);\n\n var newOp = clone(op1);\n\n for (var i = 0; i < op2.length; i++) {\n json.append(newOp,op2[i]);\n }\n\n return newOp;\n};\n\njson.normalize = function(op) {\n var newOp = [];\n\n op = isArray(op) ? op : [op];\n\n for (var i = 0; i < op.length; i++) {\n var c = op[i];\n if (c.p == null) c.p = [];\n\n json.append(newOp,c);\n }\n\n return newOp;\n};\n\n// Returns the common length of the paths of ops a and b\njson.commonLengthForOps = function(a, b) {\n var alen = a.p.length;\n var blen = b.p.length;\n if (a.na != null || a.t)\n alen++;\n\n if (b.na != null || b.t)\n blen++;\n\n if (alen === 0) return -1;\n if (blen === 0) return null;\n\n alen--;\n blen--;\n\n for (var i = 0; i < alen; i++) {\n var p = a.p[i];\n if (i >= blen || p !== b.p[i])\n return null;\n }\n\n return alen;\n};\n\n// Returns true if an op can affect the given path\njson.canOpAffectPath = function(op, path) {\n return json.commonLengthForOps({p:path}, op) != null;\n};\n\n// transform c so it applies to a document with otherC applied.\njson.transformComponent = function(dest, c, otherC, type) {\n c = clone(c);\n\n var common = json.commonLengthForOps(otherC, c);\n var common2 = json.commonLengthForOps(c, otherC);\n var cplength = c.p.length;\n var otherCplength = otherC.p.length;\n\n if (c.na != null || c.t)\n cplength++;\n\n if (otherC.na != null || otherC.t)\n otherCplength++;\n\n // if c is deleting something, and that thing is changed by otherC, we need to\n // update c to reflect that change for invertibility.\n if (common2 != null && otherCplength > cplength && c.p[common2] == otherC.p[common2]) {\n if (c.ld !== void 0) {\n var oc = clone(otherC);\n oc.p = oc.p.slice(cplength);\n c.ld = json.apply(clone(c.ld),[oc]);\n } else if (c.od !== void 0) {\n var oc = clone(otherC);\n oc.p = oc.p.slice(cplength);\n c.od = json.apply(clone(c.od),[oc]);\n }\n }\n\n if (common != null) {\n var commonOperand = cplength == otherCplength;\n\n // backward compatibility for old string ops\n var oc = otherC;\n if ((c.si != null || c.sd != null) && (otherC.si != null || otherC.sd != null)) {\n convertFromText(c);\n oc = clone(otherC);\n convertFromText(oc);\n }\n\n // handle subtype ops\n if (oc.t && subtypes[oc.t]) {\n if (c.t && c.t === oc.t) {\n var res = subtypes[c.t].transform(c.o, oc.o, type);\n\n // convert back to old string ops\n if (c.si != null || c.sd != null) {\n var p = c.p;\n for (var i = 0; i < res.length; i++) {\n c.o = [res[i]];\n c.p = p.slice();\n convertToText(c);\n json.append(dest, c);\n }\n } else if (!isArray(res) || res.length > 0) {\n c.o = res;\n json.append(dest, c);\n }\n\n return dest;\n }\n }\n\n // transform based on otherC\n else if (otherC.na !== void 0) {\n // this case is handled below\n } else if (otherC.li !== void 0 && otherC.ld !== void 0) {\n if (otherC.p[common] === c.p[common]) {\n // noop\n\n if (!commonOperand) {\n return dest;\n } else if (c.ld !== void 0) {\n // we're trying to delete the same element, -> noop\n if (c.li !== void 0 && type === 'left') {\n // we're both replacing one element with another. only one can survive\n c.ld = clone(otherC.li);\n } else {\n return dest;\n }\n }\n }\n } else if (otherC.li !== void 0) {\n if (c.li !== void 0 && c.ld === undefined && commonOperand && c.p[common] === otherC.p[common]) {\n // in li vs. li, left wins.\n if (type === 'right')\n c.p[common]++;\n } else if (otherC.p[common] <= c.p[common]) {\n c.p[common]++;\n }\n\n if (c.lm !== void 0) {\n if (commonOperand) {\n // otherC edits the same list we edit\n if (otherC.p[common] <= c.lm)\n c.lm++;\n // changing c.from is handled above.\n }\n }\n } else if (otherC.ld !== void 0) {\n if (c.lm !== void 0) {\n if (commonOperand) {\n if (otherC.p[common] === c.p[common]) {\n // they deleted the thing we're trying to move\n return dest;\n }\n // otherC edits the same list we edit\n var p = otherC.p[common];\n var from = c.p[common];\n var to = c.lm;\n if (p < to || (p === to && from < to))\n c.lm--;\n\n }\n }\n\n if (otherC.p[common] < c.p[common]) {\n c.p[common]--;\n } else if (otherC.p[common] === c.p[common]) {\n if (otherCplength < cplength) {\n // we're below the deleted element, so -> noop\n return dest;\n } else if (c.ld !== void 0) {\n if (c.li !== void 0) {\n // we're replacing, they're deleting. we become an insert.\n delete c.ld;\n } else {\n // we're trying to delete the same element, -> noop\n return dest;\n }\n }\n }\n\n } else if (otherC.lm !== void 0) {\n if (c.lm !== void 0 && cplength === otherCplength) {\n // lm vs lm, here we go!\n var from = c.p[common];\n var to = c.lm;\n var otherFrom = otherC.p[common];\n var otherTo = otherC.lm;\n if (otherFrom !== otherTo) {\n // if otherFrom == otherTo, we don't need to change our op.\n\n // where did my thing go?\n if (from === otherFrom) {\n // they moved it! tie break.\n if (type === 'left') {\n c.p[common] = otherTo;\n if (from === to) // ugh\n c.lm = otherTo;\n } else {\n return dest;\n }\n } else {\n // they moved around it\n if (from > otherFrom) c.p[common]--;\n if (from > otherTo) c.p[common]++;\n else if (from === otherTo) {\n if (otherFrom > otherTo) {\n c.p[common]++;\n if (from === to) // ugh, again\n c.lm++;\n }\n }\n\n // step 2: where am i going to put it?\n if (to > otherFrom) {\n c.lm--;\n } else if (to === otherFrom) {\n if (to > from)\n c.lm--;\n }\n if (to > otherTo) {\n c.lm++;\n } else if (to === otherTo) {\n // if we're both moving in the same direction, tie break\n if ((otherTo > otherFrom && to > from) ||\n (otherTo < otherFrom && to < from)) {\n if (type === 'right') c.lm++;\n } else {\n if (to > from) c.lm++;\n else if (to === otherFrom) c.lm--;\n }\n }\n }\n }\n } else if (c.li !== void 0 && c.ld === undefined && commonOperand) {\n // li\n var from = otherC.p[common];\n var to = otherC.lm;\n p = c.p[common];\n if (p > from) c.p[common]--;\n if (p > to) c.p[common]++;\n } else {\n // ld, ld+li, si, sd, na, oi, od, oi+od, any li on an element beneath\n // the lm\n //\n // i.e. things care about where their item is after the move.\n var from = otherC.p[common];\n var to = otherC.lm;\n p = c.p[common];\n if (p === from) {\n c.p[common] = to;\n } else {\n if (p > from) c.p[common]--;\n if (p > to) c.p[common]++;\n else if (p === to && from > to) c.p[common]++;\n }\n }\n }\n else if (otherC.oi !== void 0 && otherC.od !== void 0) {\n if (c.p[common] === otherC.p[common]) {\n if (c.oi !== void 0 && commonOperand) {\n // we inserted where someone else replaced\n if (type === 'right') {\n // left wins\n return dest;\n } else {\n // we win, make our op replace what they inserted\n c.od = otherC.oi;\n }\n } else {\n // -> noop if the other component is deleting the same object (or any parent)\n return dest;\n }\n }\n } else if (otherC.oi !== void 0) {\n if (c.oi !== void 0 && c.p[common] === otherC.p[common]) {\n // left wins if we try to insert at the same place\n if (type === 'left') {\n json.append(dest,{p: c.p, od:otherC.oi});\n } else {\n return dest;\n }\n }\n } else if (otherC.od !== void 0) {\n if (c.p[common] == otherC.p[common]) {\n if (!commonOperand)\n return dest;\n if (c.oi !== void 0) {\n delete c.od;\n } else {\n return dest;\n }\n }\n }\n }\n\n json.append(dest,c);\n return dest;\n};\n\nrequire('./bootstrapTransform')(json, json.transformComponent, json.checkValidOp, json.append);\n\n/**\n * Register a subtype for string operations, using the text0 type.\n */\nvar text = require('./text0');\n\njson.registerSubtype(text);\nmodule.exports = json;\n\n","// DEPRECATED!\n//\n// This type works, but is not exported. Its included here because the JSON0\n// embedded string operations use this library.\n\n\n// A simple text implementation\n//\n// Operations are lists of components. Each component either inserts or deletes\n// at a specified position in the document.\n//\n// Components are either:\n// {i:'str', p:100}: Insert 'str' at position 100 in the document\n// {d:'str', p:100}: Delete 'str' at position 100 in the document\n//\n// Components in an operation are executed sequentially, so the position of components\n// assumes previous components have already executed.\n//\n// Eg: This op:\n// [{i:'abc', p:0}]\n// is equivalent to this op:\n// [{i:'a', p:0}, {i:'b', p:1}, {i:'c', p:2}]\n\nvar text = module.exports = {\n name: 'text0',\n uri: 'http://sharejs.org/types/textv0',\n create: function(initial) {\n if ((initial != null) && typeof initial !== 'string') {\n throw new Error('Initial data must be a string');\n }\n return initial || '';\n }\n};\n\n/** Insert s2 into s1 at pos. */\nvar strInject = function(s1, pos, s2) {\n return s1.slice(0, pos) + s2 + s1.slice(pos);\n};\n\n/** Check that an operation component is valid. Throws if its invalid. */\nvar checkValidComponent = function(c) {\n if (typeof c.p !== 'number')\n throw new Error('component missing position field');\n\n if ((typeof c.i === 'string') === (typeof c.d === 'string'))\n throw new Error('component needs an i or d field');\n\n if (c.p < 0)\n throw new Error('position cannot be negative');\n};\n\n/** Check that an operation is valid */\nvar checkValidOp = function(op) {\n for (var i = 0; i < op.length; i++) {\n checkValidComponent(op[i]);\n }\n};\n\n/** Apply op to snapshot */\ntext.apply = function(snapshot, op) {\n var deleted;\n\n checkValidOp(op);\n for (var i = 0; i < op.length; i++) {\n var component = op[i];\n if (component.i != null) {\n snapshot = strInject(snapshot, component.p, component.i);\n } else {\n deleted = snapshot.slice(component.p, component.p + component.d.length);\n if (component.d !== deleted)\n throw new Error(\"Delete component '\" + component.d + \"' does not match deleted text '\" + deleted + \"'\");\n\n snapshot = snapshot.slice(0, component.p) + snapshot.slice(component.p + component.d.length);\n }\n }\n return snapshot;\n};\n\n/**\n * Append a component to the end of newOp. Exported for use by the random op\n * generator and the JSON0 type.\n */\nvar append = text._append = function(newOp, c) {\n if (c.i === '' || c.d === '') return;\n\n if (newOp.length === 0) {\n newOp.push(c);\n } else {\n var last = newOp[newOp.length - 1];\n\n if (last.i != null && c.i != null && last.p <= c.p && c.p <= last.p + last.i.length) {\n // Compose the insert into the previous insert\n newOp[newOp.length - 1] = {i:strInject(last.i, c.p - last.p, c.i), p:last.p};\n\n } else if (last.d != null && c.d != null && c.p <= last.p && last.p <= c.p + c.d.length) {\n // Compose the deletes together\n newOp[newOp.length - 1] = {d:strInject(c.d, last.p - c.p, last.d), p:c.p};\n\n } else {\n newOp.push(c);\n }\n }\n};\n\n/** Compose op1 and op2 together */\ntext.compose = function(op1, op2) {\n checkValidOp(op1);\n checkValidOp(op2);\n var newOp = op1.slice();\n for (var i = 0; i < op2.length; i++) {\n append(newOp, op2[i]);\n }\n return newOp;\n};\n\n/** Clean up an op */\ntext.normalize = function(op) {\n var newOp = [];\n\n // Normalize should allow ops which are a single (unwrapped) component:\n // {i:'asdf', p:23}.\n // There's no good way to test if something is an array:\n // http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/\n // so this is probably the least bad solution.\n if (op.i != null || op.p != null) op = [op];\n\n for (var i = 0; i < op.length; i++) {\n var c = op[i];\n if (c.p == null) c.p = 0;\n\n append(newOp, c);\n }\n\n return newOp;\n};\n\n// This helper method transforms a position by an op component.\n//\n// If c is an insert, insertAfter specifies whether the transform\n// is pushed after the insert (true) or before it (false).\n//\n// insertAfter is optional for deletes.\nvar transformPosition = function(pos, c, insertAfter) {\n // This will get collapsed into a giant ternary by uglify.\n if (c.i != null) {\n if (c.p < pos || (c.p === pos && insertAfter)) {\n return pos + c.i.length;\n } else {\n return pos;\n }\n } else {\n // I think this could also be written as: Math.min(c.p, Math.min(c.p -\n // otherC.p, otherC.d.length)) but I think its harder to read that way, and\n // it compiles using ternary operators anyway so its no slower written like\n // this.\n if (pos <= c.p) {\n return pos;\n } else if (pos <= c.p + c.d.length) {\n return c.p;\n } else {\n return pos - c.d.length;\n }\n }\n};\n\n// Helper method to transform a cursor position as a result of an op.\n//\n// Like transformPosition above, if c is an insert, insertAfter specifies\n// whether the cursor position is pushed after an insert (true) or before it\n// (false).\ntext.transformCursor = function(position, op, side) {\n var insertAfter = side === 'right';\n for (var i = 0; i < op.length; i++) {\n position = transformPosition(position, op[i], insertAfter);\n }\n\n return position;\n};\n\n// Transform an op component by another op component. Asymmetric.\n// The result will be appended to destination.\n//\n// exported for use in JSON type\nvar transformComponent = text._tc = function(dest, c, otherC, side) {\n //var cIntersect, intersectEnd, intersectStart, newC, otherIntersect, s;\n\n checkValidComponent(c);\n checkValidComponent(otherC);\n\n if (c.i != null) {\n // Insert.\n append(dest, {i:c.i, p:transformPosition(c.p, otherC, side === 'right')});\n } else {\n // Delete\n if (otherC.i != null) {\n // Delete vs insert\n var s = c.d;\n if (c.p < otherC.p) {\n append(dest, {d:s.slice(0, otherC.p - c.p), p:c.p});\n s = s.slice(otherC.p - c.p);\n }\n if (s !== '')\n append(dest, {d: s, p: c.p + otherC.i.length});\n\n } else {\n // Delete vs delete\n if (c.p >= otherC.p + otherC.d.length)\n append(dest, {d: c.d, p: c.p - otherC.d.length});\n else if (c.p + c.d.length <= otherC.p)\n append(dest, c);\n else {\n // They overlap somewhere.\n var newC = {d: '', p: c.p};\n\n if (c.p < otherC.p)\n newC.d = c.d.slice(0, otherC.p - c.p);\n\n if (c.p + c.d.length > otherC.p + otherC.d.length)\n newC.d += c.d.slice(otherC.p + otherC.d.length - c.p);\n\n // This is entirely optional - I'm just checking the deleted text in\n // the two ops matches\n var intersectStart = Math.max(c.p, otherC.p);\n var intersectEnd = Math.min(c.p + c.d.length, otherC.p + otherC.d.length);\n var cIntersect = c.d.slice(intersectStart - c.p, intersectEnd - c.p);\n var otherIntersect = otherC.d.slice(intersectStart - otherC.p, intersectEnd - otherC.p);\n if (cIntersect !== otherIntersect)\n throw new Error('Delete ops delete different text in the same region of the document');\n\n if (newC.d !== '') {\n newC.p = transformPosition(newC.p, otherC);\n append(dest, newC);\n }\n }\n }\n }\n\n return dest;\n};\n\nvar invertComponent = function(c) {\n return (c.i != null) ? {d:c.i, p:c.p} : {i:c.d, p:c.p};\n};\n\n// No need to use append for invert, because the components won't be able to\n// cancel one another.\ntext.invert = function(op) {\n // Shallow copy & reverse that sucka.\n op = op.slice().reverse();\n for (var i = 0; i < op.length; i++) {\n op[i] = invertComponent(op[i]);\n }\n return op;\n};\n\nrequire('./bootstrapTransform')(text, transformComponent, checkValidOp, append);\n","import { VNode } from 'vue'\nimport { Transport } from '../types'\n\nexport const inBrowser = typeof window !== 'undefined'\n\nexport function freeze(item: R[]): ReadonlyArray {\n if (Array.isArray(item) || typeof item === 'object') {\n return Object.freeze(item)\n }\n return item\n}\n\nexport function combinePassengers(\n transports: Transport[],\n slotProps = {}\n): Array {\n return transports.reduce(\n (passengers, transport) => {\n const temp = transport.passengers[0]\n const newPassengers =\n typeof temp === 'function'\n ? (temp(slotProps) as VNode[])\n : (transport.passengers as VNode[])\n return passengers.concat(newPassengers)\n },\n [] as Array\n )\n}\n\nexport function stableSort(array: T[], compareFn: Function) {\n return array\n .map((v: T, idx: number) => {\n return [idx, v] as [number, T]\n })\n .sort(function(a, b) {\n return compareFn(a[1], b[1]) || a[0] - b[0]\n })\n .map(c => c[1])\n}\n\nexport function pick(\n obj: T,\n keys: K[]\n): Pick {\n return keys.reduce(\n (acc, key) => {\n if (obj.hasOwnProperty(key)) {\n acc[key] = obj[key]\n }\n return acc\n },\n {} as Pick\n )\n}\n","import Vue from 'vue'\nimport { freeze, inBrowser, stableSort } from '../utils'\nimport {\n Transports,\n Transport,\n TransportInput,\n TransportVector,\n VMRegister,\n} from '../types'\n\nconst transports: Transports = {}\nconst targets: VMRegister = {}\nconst sources: VMRegister = {}\n\nexport const Wormhole = Vue.extend({\n data: () => ({\n transports,\n targets,\n sources,\n trackInstances: inBrowser,\n }),\n methods: {\n open(transport: TransportInput) {\n if (!inBrowser) return\n const { to, from, passengers, order = Infinity } = transport\n if (!to || !from || !passengers) return\n\n const newTransport = {\n to,\n from,\n passengers: freeze(passengers),\n order,\n } as Transport\n const keys = Object.keys(this.transports)\n\n if (keys.indexOf(to) === -1) {\n Vue.set(this.transports, to, [])\n }\n\n const currentIndex = this.$_getTransportIndex(newTransport)\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n const newTransports = this.transports[to].slice(0)\n if (currentIndex === -1) {\n newTransports.push(newTransport)\n } else {\n newTransports[currentIndex] = newTransport\n }\n\n this.transports[to] = stableSort(\n newTransports,\n (a: Transport, b: Transport) => a.order - b.order\n )\n },\n\n close(transport: TransportVector, force = false) {\n const { to, from } = transport\n if (!to || (!from && force === false)) return\n if (!this.transports[to]) {\n return\n }\n\n if (force) {\n this.transports[to] = []\n } else {\n const index = this.$_getTransportIndex(transport)\n if (index >= 0) {\n // Copying the array here so that the PortalTarget change event will actually contain two distinct arrays\n const newTransports = this.transports[to].slice(0)\n newTransports.splice(index, 1)\n this.transports[to] = newTransports\n }\n }\n },\n registerTarget(target: string, vm: Vue, force?: boolean): void {\n if (!inBrowser) return\n if (this.trackInstances && !force && this.targets[target]) {\n console.warn(`[portal-vue]: Target ${target} already exists`)\n }\n this.$set(this.targets, target, Object.freeze([vm]))\n },\n unregisterTarget(target: string) {\n this.$delete(this.targets, target)\n },\n registerSource(source: string, vm: Vue, force?: boolean): void {\n if (!inBrowser) return\n if (this.trackInstances && !force && this.sources[source]) {\n console.warn(`[portal-vue]: source ${source} already exists`)\n }\n this.$set(this.sources, source, Object.freeze([vm]))\n },\n unregisterSource(source: string) {\n this.$delete(this.sources, source)\n },\n hasTarget(to: string) {\n return !!(this.targets[to] && this.targets[to][0])\n },\n hasSource(to: string) {\n return !!(this.sources[to] && this.sources[to][0])\n },\n hasContentFor(to: string) {\n return !!this.transports[to] && !!this.transports[to].length\n },\n // Internal\n $_getTransportIndex({ to, from }: TransportVector): number {\n for (const i in this.transports[to]) {\n if (this.transports[to][i].from === from) {\n return +i\n }\n }\n return -1\n },\n },\n})\n\nconst wormhole = new Wormhole(transports)\nexport { wormhole }\n","import Vue from 'vue'\nimport { VNode } from 'vue'\nimport { TransportInput, TransportVector } from '../types'\nimport { wormhole } from './wormhole'\n\nlet _id = 1\n\nexport default Vue.extend({\n name: 'portal',\n props: {\n disabled: { type: Boolean },\n name: { type: String, default: () => String(_id++) },\n order: { type: Number, default: 0 },\n slim: { type: Boolean },\n slotProps: { type: Object, default: () => ({}) },\n tag: { type: String, default: 'DIV' },\n to: {\n type: String,\n default: () => String(Math.round(Math.random() * 10000000)),\n },\n },\n created() {\n this.$nextTick(() => {\n wormhole.registerSource(this.name, this)\n })\n },\n mounted() {\n if (!this.disabled) {\n this.sendUpdate()\n }\n },\n\n updated() {\n if (this.disabled) {\n this.clear()\n } else {\n this.sendUpdate()\n }\n },\n\n beforeDestroy() {\n wormhole.unregisterSource(this.name)\n this.clear()\n },\n watch: {\n to(newValue: string, oldValue: string): void {\n oldValue && oldValue !== newValue && this.clear(oldValue)\n this.sendUpdate()\n },\n },\n\n methods: {\n clear(target?: string) {\n const closer: TransportVector = {\n from: this.name,\n to: target || this.to,\n }\n wormhole.close(closer)\n },\n normalizeSlots(): Function[] | VNode[] | undefined {\n return this.$scopedSlots.default\n ? [this.$scopedSlots.default]\n : this.$slots.default\n },\n normalizeOwnChildren(children: VNode[] | Function): VNode[] {\n return typeof children === 'function'\n ? children(this.slotProps)\n : children\n },\n sendUpdate() {\n const slotContent = this.normalizeSlots()\n if (slotContent) {\n const transport: TransportInput = {\n from: this.name,\n to: this.to,\n passengers: [...slotContent],\n order: this.order,\n }\n wormhole.open(transport)\n } else {\n this.clear()\n }\n },\n },\n\n render(h): VNode {\n const children: VNode[] | Function =\n this.$slots.default || this.$scopedSlots.default || []\n const Tag = this.tag\n if (children && this.disabled) {\n return children.length <= 1 && this.slim ? (\n this.normalizeOwnChildren(children)[0]\n ) : (\n {this.normalizeOwnChildren(children)}\n )\n } else {\n return this.slim\n ? h()\n : h(Tag, {\n class: { 'v-portal': true },\n style: { display: 'none' },\n key: 'v-portal-placeholder',\n })\n }\n },\n})\n","import Vue from 'vue'\nimport { VNode, PropOptions } from 'vue'\nimport { combinePassengers } from '@/utils'\nimport { Transport, PropWithComponent } from '../types'\n\nimport { wormhole } from '@/components/wormhole'\n\nexport default Vue.extend({\n name: 'portalTarget',\n props: {\n multiple: { type: Boolean, default: false },\n name: { type: String, required: true },\n slim: { type: Boolean, default: false },\n slotProps: { type: Object, default: () => ({}) },\n tag: { type: String, default: 'div' },\n transition: { type: [String, Object, Function] } as PropOptions<\n PropWithComponent\n >,\n },\n data() {\n return {\n transports: wormhole.transports,\n firstRender: true,\n }\n },\n created() {\n this.$nextTick(() => {\n wormhole.registerTarget(this.name, this)\n })\n },\n watch: {\n ownTransports() {\n this.$emit('change', this.children().length > 0)\n },\n name(newVal, oldVal) {\n /**\n * TODO\n * This should warn as well ...\n */\n wormhole.unregisterTarget(oldVal)\n wormhole.registerTarget(newVal, this)\n },\n },\n mounted() {\n if (this.transition) {\n this.$nextTick(() => {\n // only when we have a transition, because it causes a re-render\n this.firstRender = false\n })\n }\n },\n beforeDestroy() {\n wormhole.unregisterTarget(this.name)\n },\n\n computed: {\n ownTransports(): Transport[] {\n const transports: Transport[] = this.transports[this.name] || []\n if (this.multiple) {\n return transports\n }\n return transports.length === 0 ? [] : [transports[transports.length - 1]]\n },\n passengers(): VNode[] {\n return combinePassengers(this.ownTransports, this.slotProps)\n },\n },\n\n methods: {\n // can't be a computed prop because it has to \"react\" to $slot changes.\n children(): VNode[] {\n return this.passengers.length !== 0\n ? this.passengers\n : this.$scopedSlots.default\n ? (this.$scopedSlots.default(this.slotProps) as VNode[])\n : this.$slots.default || []\n },\n // can't be a computed prop because it has to \"react\" to this.children().\n noWrapper() {\n const noWrapper = this.slim && !this.transition\n if (noWrapper && this.children().length > 1) {\n console.warn(\n '[portal-vue]: PortalTarget with `slim` option received more than one child element.'\n )\n }\n return noWrapper\n },\n },\n render(h): VNode {\n const noWrapper = this.noWrapper()\n const children = this.children()\n const Tag = this.transition || this.tag\n\n return noWrapper\n ? children[0]\n : this.slim && !Tag\n ? h()\n : h(\n Tag,\n {\n props: {\n // if we have a transition component, pass the tag if it exists\n tag: this.transition && this.tag ? this.tag : undefined,\n },\n class: { 'vue-portal-target': true },\n },\n\n children\n )\n },\n})\n","import Vue from 'vue'\nimport { VNode, VueConstructor, PropOptions } from 'vue'\nimport Portal from './portal'\nimport PortalTarget from './portal-target'\nimport { wormhole } from './wormhole'\nimport { pick } from '@/utils'\n\nimport { PropWithComponent } from '../types'\n\nlet _id = 0\n\nexport type withPortalTarget = VueConstructor<\n Vue & {\n portalTarget: any\n }\n>\n\nconst portalProps = [\n 'disabled',\n 'name',\n 'order',\n 'slim',\n 'slotProps',\n 'tag',\n 'to',\n]\n\nconst targetProps = ['multiple', 'transition']\n\nexport default (Vue as withPortalTarget).extend({\n name: 'MountingPortal',\n inheritAttrs: false,\n props: {\n append: { type: [Boolean, String] },\n bail: {\n type: Boolean,\n },\n mountTo: { type: String, required: true },\n\n // Portal\n disabled: { type: Boolean },\n // name for the portal\n name: {\n type: String,\n default: () => 'mounted_' + String(_id++),\n },\n order: { type: Number, default: 0 },\n slim: { type: Boolean },\n slotProps: { type: Object, default: () => ({}) },\n tag: { type: String, default: 'DIV' },\n // name for the target\n to: {\n type: String,\n default: () => String(Math.round(Math.random() * 10000000)),\n },\n\n // Target\n multiple: { type: Boolean, default: false },\n targetSlim: { type: Boolean },\n targetSlotProps: { type: Object, default: () => ({}) },\n targetTag: { type: String, default: 'div' },\n transition: { type: [String, Object, Function] } as PropOptions<\n PropWithComponent\n >,\n },\n created() {\n if (typeof document === 'undefined') return\n let el: HTMLElement | null = document.querySelector(this.mountTo)\n\n if (!el) {\n console.error(\n `[portal-vue]: Mount Point '${this.mountTo}' not found in document`\n )\n return\n }\n\n const props = this.$props\n\n // Target already exists\n if (wormhole.targets[props.name]) {\n if (props.bail) {\n console.warn(`[portal-vue]: Target ${props.name} is already mounted.\n Aborting because 'bail: true' is set`)\n } else {\n this.portalTarget = wormhole.targets[props.name]\n }\n return\n }\n\n const { append } = props\n if (append) {\n const type = typeof append === 'string' ? append : 'DIV'\n const mountEl = document.createElement(type)\n el.appendChild(mountEl)\n el = mountEl\n }\n\n // get props for target from $props\n // we have to rename a few of them\n const _props = pick(this.$props, targetProps)\n _props.slim = this.targetSlim\n _props.tag = this.targetTag\n _props.slotProps = this.targetSlotProps\n _props.name = this.to\n\n this.portalTarget = new PortalTarget({\n el,\n parent: this.$parent || this,\n propsData: _props,\n })\n },\n\n beforeDestroy() {\n const target = this.portalTarget\n if (this.append) {\n const el = target.$el\n el.parentNode.removeChild(el)\n }\n target.$destroy()\n },\n\n render(h): VNode {\n if (!this.portalTarget) {\n console.warn(\"[portal-vue] Target wasn't mounted\")\n return h()\n }\n\n // if there's no \"manual\" scoped slot, so we create a ourselves\n if (!this.$scopedSlots.manual) {\n const props = pick(this.$props, portalProps)\n return h(\n Portal,\n {\n props: props,\n attrs: this.$attrs,\n on: this.$listeners,\n scopedSlots: this.$scopedSlots,\n },\n this.$slots.default\n )\n }\n\n // else, we render the scoped slot\n let content: VNode = (this.$scopedSlots.manual({\n to: this.to,\n }) as unknown) as VNode\n\n // if user used \n \n\n \n\n \n \n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAdminsAndContributorsField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditAdminsAndContributorsField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EditAdminsAndContributorsField.vue?vue&type=template&id=58ff3ef8&scoped=true\"\nimport script from \"./EditAdminsAndContributorsField.vue?vue&type=script&lang=js\"\nexport * from \"./EditAdminsAndContributorsField.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditAdminsAndContributorsField.vue?vue&type=style&index=0&id=58ff3ef8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"58ff3ef8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag_type,{tag:\"component\",staticClass:\"_statusTag\",attrs:{\"type\":_vm.tag_type === 'button' ? 'button' : '',\"data-status\":[_vm.new_status]},on:{\"click\":function($event){return _vm.$emit('click')}}},[(!_vm.can_edit)?_c('div',{staticClass:\"_tag\"},[(_vm.status === 'finished')?_c('b-icon',{attrs:{\"icon\":\"check-circle-fill\"}}):(_vm.status === 'private')?_c('b-icon',{attrs:{\"icon\":\"file-lock2-fill\"}}):_vm._e(),(_vm.show_label)?[_vm._v(_vm._s(_vm.$t(_vm.status)))]:_vm._e(),(_vm.mode === 'disable')?_c('b-icon',{key:_vm.mode,attrs:{\"icon\":\"x-circle-fill\"}}):_vm._e()],2):_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.new_status),expression:\"new_status\"}],attrs:{\"size\":\"small\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.new_status=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.status_options),function(opt){return _c('option',{key:opt,domProps:{\"value\":opt,\"textContent\":_vm._s(_vm.$t(opt))}})}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTag.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./StatusTag.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./StatusTag.vue?vue&type=template&id=d2d26b06&scoped=true\"\nimport script from \"./StatusTag.vue?vue&type=script&lang=js\"\nexport * from \"./StatusTag.vue?vue&type=script&lang=js\"\nimport style0 from \"./StatusTag.vue?vue&type=style&index=0&id=d2d26b06&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d2d26b06\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_favSwitch\"},[_c('button',{staticClass:\"u-button u-button_icon u-button_transparent\",attrs:{\"type\":\"button\",\"disabled\":!_vm.can_edit},on:{\"click\":_vm.toggleFav}},[_c('b-icon',{attrs:{\"icon\":_vm.local_fav ? 'star-fill' : 'star'}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FavSwitch.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FavSwitch.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FavSwitch.vue?vue&type=template&id=0319d4ce&scoped=true\"\nimport script from \"./FavSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./FavSwitch.vue?vue&type=script&lang=js\"\nimport style0 from \"./FavSwitch.vue?vue&type=style&index=0&id=0319d4ce&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0319d4ce\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_tagsField\"},[(_vm.label)?_c('DLabel',{attrs:{\"str\":_vm.label}}):_vm._e(),_c('div',{staticClass:\"_tl\"},[_c('TagsList',{attrs:{\"tags\":_vm.content,\"tag_type\":_vm.tag_type,\"mode\":'inactive',\"shorten_if_too_long\":_vm.shorten_if_too_long}}),(_vm.can_edit)?_c('EditBtn',{on:{\"click\":_vm.enableEditMode}}):_vm._e()],1),(_vm.edit_mode)?_c('BaseModal2',{attrs:{\"title\":_vm.label},on:{\"close\":_vm.cancel}},[_c('TagsList',{attrs:{\"tags\":_vm.new_tags,\"tag_type\":_vm.tag_type,\"mode\":'remove',\"shorten_if_too_long\":false},on:{\"tagClick\":function($event){return _vm.removeTag($event)}}}),_c('div',{staticClass:\"u-spacingBottom\"}),(_vm.create_new_tag)?_c('fieldset',{staticClass:\"_newTagPane\"},[_c('legend',{staticClass:\"u-label\"},[_vm._v(_vm._s(_vm.$t(\"add_item\")))]),_c('div',{staticClass:\"u-spacingBottom\"},[_c('TagsSuggestion',{attrs:{\"tag_type\":_vm.tag_type,\"new_tag_name\":_vm.new_tag_name,\"tags_to_exclude\":_vm.new_tags},on:{\"newTag\":function($event){return _vm.newTag($event)}}})],1),_c('div',{staticClass:\"_sameRowBtnInput\"},[_c('TextInput',{staticClass:\"_input\",attrs:{\"content\":_vm.new_tag_name,\"maxlength\":_vm.maxlength,\"required\":true},on:{\"update:content\":function($event){_vm.new_tag_name=$event},\"toggleValidity\":($event) => (_vm.allow_save_newkeyword = $event),\"onEnter\":_vm.onEnter}}),_c('div',{},[(_vm.allow_save_newkeyword && !_vm.new_tag_name_already_exists)?_c('button',{staticClass:\"u-button u-button_bleuvert _submitBtn\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.onEnter}},[_c('b-icon',{staticStyle:{\"font-size\":\"1.5em\"},attrs:{\"icon\":\"check\",\"aria-label\":_vm.$t('submit')}})],1):_vm._e()])],1),(_vm.new_tag_name_already_exists)?_c('div',{staticClass:\"fieldCaption u-colorRed\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"already_added\"))+\" \")]):_vm._e()]):_vm._e(),_c('SaveCancelButtons',{staticClass:\"_scb\",attrs:{\"slot\":\"footer\",\"is_saving\":_vm.is_saving},on:{\"save\":_vm.updateTags,\"cancel\":_vm.cancel},slot:\"footer\"})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagsField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagsField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TagsField.vue?vue&type=template&id=4f25219b&scoped=true\"\nimport script from \"./TagsField.vue?vue&type=script&lang=js\"\nexport * from \"./TagsField.vue?vue&type=script&lang=js\"\nimport style0 from \"./TagsField.vue?vue&type=style&index=0&id=4f25219b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4f25219b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_coverField\"},[(_vm.cover_thumb)?_c('div',{staticClass:\"_hasImage\"},[_c('img',{attrs:{\"src\":_vm.cover_thumb,\"data-isround\":_vm.preview_format === 'circle',\"role\":\"presentation\"}}),(_vm.context === 'full')?[_c('div',{staticClass:\"_fsButton\"},[_c('EditBtn',{attrs:{\"btn_type\":'fullscreen'},on:{\"click\":function($event){_vm.show_cover_fullscreen = true}}})],1),(_vm.show_cover_fullscreen)?_c('FullscreenView',{on:{\"close\":function($event){_vm.show_cover_fullscreen = false}}},[_c('img',{attrs:{\"src\":_vm.cover_full,\"role\":\"presentation\"}})]):_vm._e()]:_vm._e()],2):_c('div',{staticClass:\"_noImage\",attrs:{\"data-isround\":_vm.preview_format === 'circle',\"data-placeholder\":_vm.placeholder}},[(_vm.placeholder !== 'pattern')?_c('span',{staticClass:\"_noImage--letter\"},[_vm._v(\" \"+_vm._s(_vm.placeholder)+\" \")]):_vm._e()]),(_vm.context === 'full' && _vm.can_edit)?_c('div',{staticClass:\"_editingPane\"},[(!_vm.edit_mode)?_c('EditBtn',{attrs:{\"label_position\":'left'},on:{\"click\":_vm.enableEditMode}}):_vm._e(),(_vm.edit_mode)?_c('BaseModal2',{attrs:{\"title\":_vm.label_title},on:{\"close\":function($event){_vm.edit_mode = false}}},[_c('div',{staticClass:\"_picker\"},[(_vm.edit_mode)?_c('ImageSelect',{attrs:{\"path\":_vm.path,\"existing_preview\":_vm.existing_preview,\"available_options\":['import', 'project', 'capture'],\"preview_format\":_vm.preview_format},on:{\"newPreview\":(value) => {\n _vm.new_cover = value;\n }}}):_vm._e(),_c('div',{staticClass:\"_footer\"},[_c('SaveCancelButtons',{staticClass:\"_scb\",attrs:{\"is_saving\":_vm.is_saving,\"allow_save\":_vm.allow_save},on:{\"save\":_vm.updateCover,\"cancel\":_vm.cancel}})],1)],1)]):_vm._e()],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoverField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CoverField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CoverField.vue?vue&type=template&id=0d289530&scoped=true\"\nimport script from \"./CoverField.vue?vue&type=script&lang=js\"\nexport * from \"./CoverField.vue?vue&type=script&lang=js\"\nimport style0 from \"./CoverField.vue?vue&type=style&index=0&id=0d289530&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d289530\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_selectField\"},[_c('div',{staticClass:\"u-sameRow\"},[(!_vm.edit_mode)?_c('span',[_vm._t(\"preview\",function(){return [_vm._v(\" \"+_vm._s(_vm.new_content)+\" \")]},{\"item\":_vm.new_content})],2):_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.new_content),expression:\"new_content\"}],attrs:{\"size\":_vm.size},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.new_content=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[(_vm.options)?_vm._l((_vm.options),function(option){return _c('option',{key:option.key,domProps:{\"value\":option.key,\"textContent\":_vm._s(option.text)}})}):(_vm.grouped_options)?_vm._l((_vm.grouped_options),function(group,index){return _c('optgroup',{key:index,attrs:{\"label\":group.label}},_vm._l((group.options),function(option){return _c('option',{key:option,domProps:{\"value\":option,\"textContent\":_vm._s(option)}})}),0)}):_vm._e()],2),(_vm.can_edit && !_vm.edit_mode)?_c('EditBtn',{attrs:{\"label_position\":'left'},on:{\"click\":_vm.enableEditMode}}):_vm._e()],1),(_vm.instructions)?_c('div',{staticClass:\"u-instructions\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.instructions)}})]):_vm._e(),(_vm.edit_mode)?_c('div',{staticClass:\"_footer\"},[_c('SaveCancelButtons',{staticClass:\"_scb\",attrs:{\"is_saving\":_vm.is_saving},on:{\"save\":_vm.updateSelect,\"cancel\":_vm.cancel}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SelectField.vue?vue&type=template&id=baca76a8&scoped=true\"\nimport script from \"./SelectField.vue?vue&type=script&lang=js\"\nexport * from \"./SelectField.vue?vue&type=script&lang=js\"\nimport style0 from \"./SelectField.vue?vue&type=style&index=0&id=baca76a8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"baca76a8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_selectField\"},[_c('div',{staticClass:\"u-sameRow\"},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.new_value),expression:\"new_value\"}],attrs:{\"disabled\":!_vm.can_edit},on:{\"change\":[function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.new_value=$event.target.multiple ? $$selectedVal : $$selectedVal[0]},function($event){return _vm.$emit('change', _vm.new_value)}]}},_vm._l((_vm.options),function(option){return _c('option',{key:option.key,attrs:{\"disabled\":option.disabled === true},domProps:{\"value\":option.key,\"textContent\":_vm._s(option.text)}})}),0)]),(_vm.instructions)?_c('div',{staticClass:\"u-instructions\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.instructions)}})]):_vm._e(),(_vm.hide_validation !== true && _vm.value !== _vm.new_value)?_c('div',{staticClass:\"_footer\"},[_c('SaveCancelButtons',{staticClass:\"_scb\",attrs:{\"is_saving\":_vm.is_saving},on:{\"save\":_vm.updateSelect,\"cancel\":_vm.cancel}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectField2.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SelectField2.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SelectField2.vue?vue&type=template&id=1bf0a1c1&scoped=true\"\nimport script from \"./SelectField2.vue?vue&type=script&lang=js\"\nexport * from \"./SelectField2.vue?vue&type=script&lang=js\"\nimport style0 from \"./SelectField2.vue?vue&type=style&index=0&id=1bf0a1c1&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1bf0a1c1\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_toggleField\"},[_c('div',{staticClass:\"_sameLine\"},[_c('ToggleInput',{attrs:{\"content\":_vm.new_content,\"label\":_vm.label,\"options\":_vm.options,\"disabled\":!_vm.edit_mode},on:{\"update:content\":function($event){_vm.new_content=$event}}}),(_vm.can_edit && !_vm.edit_mode)?_c('EditBtn',{on:{\"click\":_vm.enableEditMode}}):_vm._e()],1),(_vm.edit_mode)?_c('div',{staticClass:\"_footer\"},[_c('SaveCancelButtons',{staticClass:\"_scb\",attrs:{\"is_saving\":_vm.is_saving},on:{\"save\":_vm.updateSelect,\"cancel\":_vm.cancel}})],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_toggleInput\"},[_c('label',{staticClass:\"_inputLabel\",attrs:{\"for\":_vm.id}},[_c('input',{ref:\"field\",staticClass:\"_inputCb\",attrs:{\"id\":_vm.id,\"name\":_vm.label,\"type\":\"checkbox\",\"disabled\":_vm.disabled},domProps:{\"checked\":_vm.content},on:{\"change\":function($event){return _vm.$emit('update:content', $event.target.checked)}}}),(_vm.label)?_c('span',[_vm._v(\" \"+_vm._s(_vm.label)+\" \")]):_vm._e()]),(_vm.current_instruction)?_c('div',{staticClass:\"u-instructions\"},[_c('small',[_vm._v(_vm._s(_vm.current_instruction))])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToggleInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToggleInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToggleInput.vue?vue&type=template&id=331cc75e&scoped=true\"\nimport script from \"./ToggleInput.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./ToggleInput.vue?vue&type=style&index=0&id=331cc75e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"331cc75e\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToggleField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToggleField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToggleField.vue?vue&type=template&id=9b1bbfb4&scoped=true\"\nimport script from \"./ToggleField.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleField.vue?vue&type=script&lang=js\"\nimport style0 from \"./ToggleField.vue?vue&type=style&index=0&id=9b1bbfb4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9b1bbfb4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_radioCheckboxField\",class:{\n 'is--beingEdited': _vm.edit_mode,\n }},[(_vm.label)?_c('DLabel',{staticClass:\"_label\",attrs:{\"str\":_vm.label,\"instructions\":_vm.can_edit ? _vm.instructions : ''}}):_vm._e(),_c('div',[(_vm.input_type === 'radio')?_vm._t(\"preview\",function(){return [(_vm.current_option && _vm.current_option.key)?[(_vm.current_option.thumb_src)?_c('img',{staticClass:\"_option_preview\",attrs:{\"src\":_vm.current_option.thumb_src}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.current_option.label)+\" \")]:_vm._e()]},{\"item\":_vm.current_option}):_vm._e(),(_vm.input_type === 'checkbox')?_vm._t(\"preview\",function(){return _vm._l((_vm.current_options),function(option){return _c('div',{key:option.key},[_vm._v(\" \"+_vm._s(option.label)+\" \")])})},{\"items\":_vm.current_options}):_vm._e()],2),(_vm.can_edit && !_vm.edit_mode)?_c('EditBtn',{on:{\"click\":_vm.enableEditMode}}):_vm._e(),_c('div',{staticClass:\"_footer\"},[(_vm.edit_mode)?_c('BaseModal2',{attrs:{\"title\":_vm.label},on:{\"close\":_vm.cancel}},[(_vm.instructions)?_c('div',{staticClass:\"u-spacingBottom u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.instructions)+\" \")]):_vm._e(),_c('RadioCheckboxInput',{attrs:{\"value\":_vm.new_content,\"input_type\":_vm.input_type,\"options\":_vm.options,\"can_edit\":_vm.can_edit && _vm.edit_mode},on:{\"update:value\":function($event){_vm.new_content=$event}}}),(_vm.edit_mode)?_c('SaveCancelButtons',{staticClass:\"_scb\",attrs:{\"slot\":\"footer\",\"is_saving\":_vm.is_saving},on:{\"save\":_vm.updateSelect,\"cancel\":_vm.cancel},slot:\"footer\"}):_vm._e()],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RadioCheckboxField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RadioCheckboxField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RadioCheckboxField.vue?vue&type=template&id=d973d53a&scoped=true\"\nimport script from \"./RadioCheckboxField.vue?vue&type=script&lang=js\"\nexport * from \"./RadioCheckboxField.vue?vue&type=script&lang=js\"\nimport style0 from \"./RadioCheckboxField.vue?vue&type=style&index=0&id=d973d53a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d973d53a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition-group',{staticClass:\"_radioCheckboxInput\",class:{\n 'is--editable': _vm.can_edit,\n },attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},[_vm._l((_vm.adjusted_options),function(option){return [(_vm.can_edit || _vm.optionIsSelected(option.key))?_c('label',{key:option.key,attrs:{\"for\":_vm.id + '-radiocheckboxi-option-' + option.key,\"data-selectable\":_vm.can_edit}},[(_vm.can_edit)?_c('input',{attrs:{\"type\":_vm.input_type,\"name\":_vm.id + '-radiocheckboxi-option-' + option.key,\"id\":_vm.id + '-radiocheckboxi-option-' + option.key},domProps:{\"value\":option.key,\"checked\":_vm.optionIsSelected(option.key)},on:{\"input\":function($event){return _vm.checkOption(option.key)}}}):_vm._e(),_c('span',[(option.thumb_src)?_c('img',{staticClass:\"_option_preview\",attrs:{\"src\":option.thumb_src}}):_vm._e(),_c(option.key === '' ? 'i' : 'span',{tag:\"component\"},[_vm._v(\" \"+_vm._s(option.label)+\" \")]),_c('br'),_c('div',{staticClass:\"u-instructions\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(option.instructions)}})])],1)]):_vm._e()]})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RadioCheckboxInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RadioCheckboxInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RadioCheckboxInput.vue?vue&type=template&id=56eec5c5&scoped=true\"\nimport script from \"./RadioCheckboxInput.vue?vue&type=script&lang=js\"\nexport * from \"./RadioCheckboxInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./RadioCheckboxInput.vue?vue&type=style&index=0&id=56eec5c5&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56eec5c5\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_fileList\"},[(_vm.listed_files.length === 0)?[_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"no_files\"))+\" \")])]:_vm._l((_vm.listed_files),function(file,i){return _c('div',{key:i,staticClass:\"_file\"},[(file && file.$path)?_c('DownloadFile',{staticClass:\"_link\",attrs:{\"file\":file}},[(\n ['image', 'video', 'audio', 'pdf', 'stl', 'url'].includes(\n file.$type\n )\n )?_c('MediaContent',{staticClass:\"_preview\",attrs:{\"file\":file,\"resolution\":50}}):_c('div',{staticClass:\"_preview\"}),_c('span',{staticClass:\"_link--filename\",domProps:{\"textContent\":_vm._s(file.$media_filename)}}),_c('b-icon',{attrs:{\"icon\":\"file-earmark-arrow-down\"}})],1):_vm._e(),(_vm.can_edit)?_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeFile(file.$path)}}},[_c('b-icon',{attrs:{\"icon\":\"x-lg\"}})],1):_vm._e()],1)}),_c('div',{staticClass:\"_addBtn\"},[(_vm.can_edit)?_c('button',{staticClass:\"u-button u-button_small u-button_bleuvert _addFile\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_picker = !_vm.show_picker}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"add\"))+\" \")]):_vm._e(),(_vm.show_picker)?_c('PickMediaFromProjects',{attrs:{\"title\":_vm.$t('pick_medias'),\"path\":_vm.project_path,\"select_mode\":'multiple'},on:{\"addMedias\":_vm.addMedias,\"close\":function($event){_vm.show_picker = false}}}):_vm._e()],1)],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilesModule.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FilesModule.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FilesModule.vue?vue&type=template&id=70f168ba&scoped=true\"\nimport script from \"./FilesModule.vue?vue&type=script&lang=js\"\nexport * from \"./FilesModule.vue?vue&type=script&lang=js\"\nimport style0 from \"./FilesModule.vue?vue&type=style&index=0&id=70f168ba&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"70f168ba\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.is_instance_admin)?_c('div',[_c('button',{staticClass:\"u-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.debug_mode = !_vm.debug_mode}}},[_vm._v(\" debug \")]),(_vm.debug_mode)?_c('div',{},[_c('pre',[_vm._v(_vm._s(_vm.content))])]):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DebugBtn.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DebugBtn.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DebugBtn.vue?vue&type=template&id=549b5173&scoped=true\"\nimport script from \"./DebugBtn.vue?vue&type=script&lang=js\"\nexport * from \"./DebugBtn.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"549b5173\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.showDownloadModal}},[_c('b-icon',{attrs:{\"icon\":\"download\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"download\"))+\" \")],1),(_vm.show_download_modal)?_c('BaseModal2',{attrs:{\"title\":_vm.$t('download')},on:{\"close\":function($event){_vm.show_download_modal = false}}},[_c('div',{staticClass:\"_cont\"},[(_vm.folder_size)?_c('SizeDisplay',{staticClass:\"u-spacingBottom\",attrs:{\"size\":_vm.folder_size}}):_vm._e(),(!_vm.download_started)?_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\",\"autofocus\":\"\"},on:{\"click\":_vm.startDownload}},[_vm._v(\" \"+_vm._s(_vm.$t(\"download\"))+\" \")]):[(_vm.is_downloading)?_c('div',{key:\"loader\",staticClass:\"_spinner\"},[_c('LoaderSpinner')],1):[(_vm.err_code)?[_vm._v(\" \"+_vm._s(_vm.err_code)+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t(\"download_ready\"))+\" \")]]]],2)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DownloadFolder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DownloadFolder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DownloadFolder.vue?vue&type=template&id=6aaba201&scoped=true\"\nimport script from \"./DownloadFolder.vue?vue&type=script&lang=js\"\nexport * from \"./DownloadFolder.vue?vue&type=script&lang=js\"\nimport style0 from \"./DownloadFolder.vue?vue&type=style&index=0&id=6aaba201&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6aaba201\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_tagsList\"},[(_vm.tags.length === 0)?[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"none\"))+\" \")])]:_c('transition-group',{staticClass:\"_list\",attrs:{\"name\":\"listComplete\",\"appear\":\"\"}},_vm._l((_vm.tags_list),function(tag){return _c('SingleTag',{key:tag,attrs:{\"tag_type\":_vm.tag_type,\"tag_str\":tag,\"mode\":_vm.tagMode(tag)},on:{\"tagClick\":function($event){return _vm.$emit('tagClick', tag)}}})}),1),(_vm.shorten_tag_list)?_c('div',{},[(_vm.show_subset)?_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleSubset}},[_vm._v(\" + \"+_vm._s(_vm.tags.length - _vm.show_at_first)+\" \")]):_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleSubset}},[_c('b-icon',{attrs:{\"icon\":\"arrow-up-short\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"hide\"))+\" \")],1)]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagsList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TagsList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TagsList.vue?vue&type=template&id=d3bc052a&scoped=true\"\nimport script from \"./TagsList.vue?vue&type=script&lang=js\"\nexport * from \"./TagsList.vue?vue&type=script&lang=js\"\nimport style0 from \"./TagsList.vue?vue&type=style&index=0&id=d3bc052a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d3bc052a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_tag\",class:{\n 'is--inactive': _vm.mode === 'inactive',\n },attrs:{\"data-tagtype\":_vm.tag_type,\"data-tagvalue\":_vm.tag_str,\"data-mode\":_vm.mode},on:{\"click\":function($event){_vm.mode !== 'inactive' ? _vm.$emit('tagClick') : ''}}},[(_vm.icon_to_show)?_c('b-icon',{staticClass:\"_picto\",attrs:{\"icon\":_vm.icon_to_show}}):_vm._e(),_c('span',{staticClass:\"_tagName\"},[_vm._v(\" \"+_vm._s(_vm.tag_name)+\" \")]),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[(_vm.mode === 'add')?_c('b-icon',{key:_vm.mode,attrs:{\"icon\":\"plus-circle\"}}):(_vm.mode === 'remove')?_c('b-icon',{key:_vm.mode,attrs:{\"icon\":\"x-circle\"}}):(_vm.mode === 'disable')?_c('b-icon',{key:_vm.mode,attrs:{\"icon\":\"x-circle-fill\"}}):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SingleTag.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SingleTag.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SingleTag.vue?vue&type=template&id=07136840&scoped=true\"\nimport script from \"./SingleTag.vue?vue&type=script&lang=js\"\nexport * from \"./SingleTag.vue?vue&type=script&lang=js\"\nimport style0 from \"./SingleTag.vue?vue&type=style&index=0&id=07136840&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"07136840\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('SlickList',{staticClass:\"_reorderedList\",attrs:{\"axis\":\"x\",\"value\":_vm.local_items,\"useDragHandle\":true},on:{\"input\":function($event){return _vm.updateOrder($event)}}},[_vm._l((_vm.local_items),function(item,index){return _c('SlickItem',{key:item.$path,staticClass:\"_reorderedList--item\",attrs:{\"index\":index}},[(_vm.can_edit && _vm.change_order)?_c('span',{directives:[{name:\"handle\",rawName:\"v-handle\"}],staticClass:\"_dragHandle\"}):_vm._e(),_c('button',{staticClass:\"u-linkList\",class:{\n 'is--active': _vm.isActive(item.$path),\n 'is--redorderable': _vm.change_order,\n },attrs:{\"type\":\"button\"},on:{\"click\":function($event){!_vm.isActive(item.$path) ? _vm.$emit('openItem', item.$path) : undefined}}},[_c('span',[_vm._t(\"default\",null,{\"item\":item,\"index\":index})],2)])])}),_vm._v(\"   \"),_c('div',{staticClass:\"_reorderedList--item\"},[(_vm.can_edit)?_c('EditBtn',{attrs:{\"btn_type\":'add'},on:{\"click\":function($event){return _vm.$emit('createItem')}}}):_vm._e()],1),_vm._v(\"   \"),(_vm.can_edit && _vm.local_items.length > 1)?_c('div',{staticClass:\"_reorderedList--item\"},[_c('EditBtn',{attrs:{\"btn_type\":'order',\"is_unfolded\":_vm.change_order},on:{\"click\":function($event){_vm.change_order = !_vm.change_order}}}),(_vm.save_status === 'saving')?_c('b-icon',{key:_vm.save_status,attrs:{\"icon\":\"stopwatch\"}}):(_vm.save_status === 'saved')?_c('b-icon',{key:_vm.save_status,attrs:{\"icon\":\"check\"}}):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"_reorderedList--item\"},[(_vm.can_edit && _vm.local_items.length > 1)?_c('EditBtn',{attrs:{\"slot\":\"button\",\"btn_type\":'remove',\"label\":_vm.$t('remove_section')},on:{\"click\":function($event){_vm.show_remove_modal = true}},slot:\"button\"}):_vm._e(),(_vm.show_remove_modal)?_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove_section'),\"show_button_text\":false,\"show_modal_on_startup\":true},on:{\"remove\":function($event){_vm.$emit('removeOpened');\n _vm.show_remove_modal = false;},\"modalClosed\":function($event){_vm.show_remove_modal = false}}}):_vm._e()],1)],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReorderedList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ReorderedList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ReorderedList.vue?vue&type=template&id=ee000d4e\"\nimport script from \"./ReorderedList.vue?vue&type=script&lang=js\"\nexport * from \"./ReorderedList.vue?vue&type=script&lang=js\"\nimport style0 from \"./ReorderedList.vue?vue&type=style&index=0&id=ee000d4e&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.$t('share_link_to_page')},on:{\"close\":function($event){return _vm.$emit('close')}}},[(_vm.is_loading)?_c('div',{key:\"loader\",staticClass:\"_spinner\"},[_c('LoaderSpinner')],1):_c('div',{staticClass:\"_txt\"},[_vm._t(\"default\"),(!_vm.urls_to_page.domain)?_c('RadioCheckboxInput',{attrs:{\"value\":_vm.current_opt,\"options\":_vm.network_options,\"can_edit\":true},on:{\"update:value\":function($event){_vm.current_opt=$event}}}):_vm._e(),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[_c('div',{key:_vm.current_opt,staticClass:\"_qrAndLinks\"},[(!_vm.qr_urls)?[(_vm.current_opt === 'domain')?[_vm._v(\" \"+_vm._s(_vm.$t(\"no_domain_set\"))+\" \")]:(_vm.current_opt === 'local_network')?[_vm._v(\" \"+_vm._s(_vm.$t(\"no_local_network_set\"))+\" \")]:_vm._e()]:_vm._l((_vm.qr_urls),function(qr_url){return _c('QRCodeWithLink',{key:qr_url,attrs:{\"url\":qr_url}})})],2)])],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QRModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./QRModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./QRModal.vue?vue&type=template&id=3d83bc35&scoped=true\"\nimport script from \"./QRModal.vue?vue&type=script&lang=js\"\nexport * from \"./QRModal.vue?vue&type=script&lang=js\"\nimport style0 from \"./QRModal.vue?vue&type=style&index=0&id=3d83bc35&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3d83bc35\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('portal',{attrs:{\"to\":\"destination\"}},[_c('transition',{attrs:{\"name\":\"fade_fast\"}},[(_vm.show_modal)?_c('div',{ref:\"modal\",staticClass:\"_baseModal\",attrs:{\"data-size\":_vm.size},on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.closeModal.apply(null, arguments)}}},[_c('div',{staticClass:\"_baseModal--content\"},[(_vm.title || _vm.is_closable)?_c('header',[(_vm.title)?_c('h2',[_vm._v(_vm._s(_vm.title))]):_vm._e(),(_vm.is_closable)?_c('button',{staticClass:\"u-button u-button_icon _closeBtn\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.closeModal}},[_c('b-icon',{attrs:{\"icon\":\"x-lg\",\"label\":_vm.$t('close')}})],1):_vm._e()]):_vm._e(),(_vm.$slots.hasOwnProperty('default'))?_c('div',{staticClass:\"_content\",class:{\n has_nofooter: !_vm.$slots.hasOwnProperty('footer'),\n }},[_vm._t(\"default\")],2):_vm._e(),(_vm.$slots.hasOwnProperty('footer'))?_c('footer',{staticClass:\"_footer\"},[_vm._t(\"footer\")],2):_vm._e()])]):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseModal2.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BaseModal2.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./BaseModal2.vue?vue&type=template&id=5319964e&scoped=true\"\nimport script from \"./BaseModal2.vue?vue&type=script&lang=js\"\nexport * from \"./BaseModal2.vue?vue&type=script&lang=js\"\nimport style0 from \"./BaseModal2.vue?vue&type=style&index=0&id=5319964e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5319964e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_radioSwitch\"},[_c('ul',{staticClass:\"radio-switch\"},_vm._l((_vm.options),function(option){return _c('li',{key:option.value,staticClass:\"radio-switch__item\"},[_c('input',{staticClass:\"radio-switch__input ri5-sr-only\",attrs:{\"type\":\"radio\",\"name\":_vm.id,\"id\":_vm.id + '_' + option.value},domProps:{\"value\":option.value,\"checked\":_vm.content === option.value},on:{\"input\":(event) => _vm.$emit('update:content', option.value)}}),_c('label',{staticClass:\"radio-switch__label\",attrs:{\"for\":_vm.id + '_' + option.value}},[_vm._v(\" \"+_vm._s(option.label)+\" \")]),_c('transition',{attrs:{\"name\":\"popUp_slow\"}},[(_vm.content === option.value)?_c('div',{staticClass:\"radio-switch__marker\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e()])],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RadioSwitch.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RadioSwitch.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RadioSwitch.vue?vue&type=template&id=47ae053a&scoped=true\"\nimport script from \"./RadioSwitch.vue?vue&type=script&lang=js\"\nexport * from \"./RadioSwitch.vue?vue&type=script&lang=js\"\nimport style0 from \"./RadioSwitch.vue?vue&type=style&index=0&id=47ae053a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47ae053a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"scaleInFade_fast\"}},[(_vm.show_dropzone)?_c('div',{staticClass:\"_dropZone\",class:{\n 'is--dragover': _vm.is_dragover,\n },on:{\"dragover\":_vm.onDragover,\"dragenter\":_vm.onDragEnter,\"dragleave\":_vm.onDragLeave,\"drop\":_vm.onDrop}},[_c('div',{staticClass:\"u-dropzone is--active _dzBg\",class:{\n 'is--dragover': _vm.is_dragover,\n }}),_c('div',{staticClass:\"u-instructions _dropNotice\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.$t('drop_here'))}})])]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DropZone.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DropZone.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DropZone.vue?vue&type=template&id=d03651be&scoped=true\"\nimport script from \"./DropZone.vue?vue&type=script&lang=js\"\nexport * from \"./DropZone.vue?vue&type=script&lang=js\"\nimport style0 from \"./DropZone.vue?vue&type=style&index=0&id=d03651be&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d03651be\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"_animatedCounter\"},[(_vm.current_value < 100)?_c('LoaderSpinner',{staticClass:\"_animatedCounter-spinner\"}):_c('b-icon',{staticClass:\"_animatedCounter-icon\",attrs:{\"icon\":\"check-circle-fill\"}}),_vm._v(\" \"+_vm._s(_vm.current_value)+\"% \")],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnimatedCounter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AnimatedCounter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AnimatedCounter.vue?vue&type=template&id=b5e8d96e&scoped=true\"\nimport script from \"./AnimatedCounter.vue?vue&type=script&lang=js\"\nexport * from \"./AnimatedCounter.vue?vue&type=script&lang=js\"\nimport style0 from \"./AnimatedCounter.vue?vue&type=style&index=0&id=b5e8d96e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b5e8d96e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.label_str)?_c('DLabel',{attrs:{\"str\":_vm.$t(_vm.label_str),\"for_input\":_vm.label_str}}):_vm._e(),(_vm.tag === 'input')?[_c('input',{ref:\"field\",attrs:{\"id\":_vm.label_str,\"type\":_vm.field_input_type_prop,\"name\":_vm.label_str,\"autocomplete\":_vm.autocomplete,\"size\":_vm.size,\"required\":_vm.required,\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.content},on:{\"input\":function($event){return _vm.$emit('update:content', $event.target.value)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.preventDefault();return _vm.$emit('onEnter')}}})]:(_vm.tag === 'span')?_c('span',{ref:\"field\",staticClass:\"u-input _content\",attrs:{\"contenteditable\":true,\"required\":_vm.required},on:{\"input\":function($event){return _vm.$emit('update:content', $event.target.innerText)}}}):_vm._e(),(_vm.minlength || _vm.maxlength || _vm.input_type === 'password')?_c('div',{staticClass:\"_notices fieldCaption\",class:{\n 'u-colorRed': !_vm.validity,\n }},[_c('div',[(_vm.minlength || _vm.maxlength)?[(_vm.minlength)?[_vm._v(_vm._s(_vm.minlength)+\" ≤ \")]:_vm._e(),_vm._v(\" \"+_vm._s(_vm.content.length)+\" \"),(_vm.maxlength)?[_vm._v(\" ≤ \"+_vm._s(_vm.maxlength))]:_vm._e()]:_vm._e()],2),(_vm.input_type === 'password')?_c('div',[_c('button',{staticClass:\"u-buttonLink _revealBtn\",class:{\n 'is--active': _vm.show_password_in_clear,\n },attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleInputType}},[_vm._v(\" \"+_vm._s(_vm.$t(\"reveal\"))+\" \")])]):_vm._e()]):_vm._e(),(_vm.instructions)?_c('div',[_c('small',{staticClass:\"u-instructions\",domProps:{\"innerHTML\":_vm._s(_vm.instructions)}})]):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextInput.vue?vue&type=template&id=560af44a&scoped=true\"\nimport script from \"./TextInput.vue?vue&type=script&lang=js\"\nexport * from \"./TextInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextInput.vue?vue&type=style&index=0&id=560af44a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"560af44a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_numberInput\",class:{ 'is--beingEdited': _vm.value !== _vm.local_value }},[(_vm.label)?_c('DLabel',{attrs:{\"str\":_vm.label,\"for\":_vm.label}}):_vm._e(),_c('div',{key:'value-' + _vm.value,staticClass:\"u-sameRow\"},[_c('div',{staticClass:\"u-inputGroup\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.local_value),expression:\"local_value\",modifiers:{\"number\":true}}],ref:\"field\",staticClass:\"_input\",attrs:{\"type\":\"number\",\"name\":_vm.label,\"id\":'_input_' + _vm.label,\"size\":_vm.size,\"min\":_vm.min,\"max\":_vm.max,\"step\":_vm.step},domProps:{\"value\":(_vm.local_value)},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.$emit('save', _vm.local_value)},\"input\":function($event){if($event.target.composing)return;_vm.local_value=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}),_c('span',{staticClass:\"u-suffix\"},[_vm._v(\" \"+_vm._s(_vm.suffix)+\" \")])]),(_vm.value !== _vm.local_value)?_c('button',{staticClass:\"u-button u-button_bleuvert _submitBtn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('save', _vm.local_value)}}},[_c('b-icon',{staticStyle:{\"font-size\":\"1.5em\"},attrs:{\"icon\":\"check\"}})],1):_vm._e()]),(_vm.default_value && _vm.value !== _vm.default_value)?_c('button',{staticClass:\"u-button u-button_bleumarine u-button_small\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('save', _vm.default_value)}}},[_c('b-icon',{attrs:{\"icon\":\"trash\",\"label\":_vm.$t('erase')}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NumberInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NumberInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NumberInput.vue?vue&type=template&id=27cbc02b&scoped=true\"\nimport script from \"./NumberInput.vue?vue&type=script&lang=js\"\nexport * from \"./NumberInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./NumberInput.vue?vue&type=style&index=0&id=27cbc02b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"27cbc02b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_positionPicker\"},[(_vm.label)?_c('DLabel',{staticClass:\"_label\",attrs:{\"str\":_vm.label,\"instructions\":_vm.can_edit ? _vm.instructions : ''}}):_vm._e(),_c('div',{},[(_vm.pins.length > 0 || _vm.edit_mode)?_c('DisplayOnMap',{key:_vm.map_key,attrs:{\"pins\":_vm.pins,\"start_zoom\":_vm.zoom,\"can_click\":_vm.edit_mode},on:{\"newPositionClicked\":_vm.newPositionClicked,\"zoomUpdated\":_vm.zoomUpdated}}):_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"no_position\"))+\" \")]),(!_vm.edit_mode && _vm.can_edit)?_c('div',{staticClass:\"_editBtn\"},[_c('EditBtn',{attrs:{\"label_position\":'left',\"is_unfolded\":true},on:{\"click\":_vm.enableEditMode}})],1):_vm._e(),(_vm.pins.length > 0 || _vm.edit_mode)?_c('details',[_c('summary',{staticClass:\"u-buttonLink\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"more_informations\"))+\" \")]),_c('div',{staticClass:\"u-sameRow\"},[_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.$t('latitude')}}),_c('div',{staticClass:\"u-inputGroup\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.latitude),expression:\"latitude\"}],attrs:{\"placeholder\":_vm.$t('latitude'),\"size\":\"small\",\"type\":\"text\",\"disabled\":!_vm.edit_mode,\"help-text\":\"Latitude, par exemple : 64.138 ou 64° 8' 16.8\\\" N\"},domProps:{\"value\":(_vm.latitude)},on:{\"input\":function($event){if($event.target.composing)return;_vm.latitude=$event.target.value}}}),_c('span',{staticClass:\"u-suffix\"},[_vm._v(\"°\")])])],1),_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.$t('longitude')}}),_c('div',{staticClass:\"u-inputGroup\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.longitude),expression:\"longitude\"}],attrs:{\"placeholder\":_vm.$t('longitude'),\"size\":\"small\",\"type\":\"text\",\"disabled\":!_vm.edit_mode,\"help-text\":\"Longitude, par exemple : -21.877 ou 21° 52' 37.199\\\" O\"},domProps:{\"value\":(_vm.longitude)},on:{\"input\":function($event){if($event.target.composing)return;_vm.longitude=$event.target.value}}}),_c('span',{staticClass:\"u-suffix\"},[_vm._v(\"°\")])])],1),_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.$t('zoom')}}),_c('div',{staticClass:\"u-inputGroup\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.zoom),expression:\"zoom\"}],attrs:{\"placeholder\":_vm.$t('zoom'),\"size\":\"small\",\"type\":\"text\",\"disabled\":!_vm.edit_mode,\"help-text\":\"Niveau de zoom\"},domProps:{\"value\":(_vm.zoom)},on:{\"input\":function($event){if($event.target.composing)return;_vm.zoom=$event.target.value}}})])],1)])]):_vm._e(),(_vm.edit_mode)?_c('div',[_c('span',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"click_on_map_to_repick_location\"))+\" \")]),_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.removePosition}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel_position\"))+\" \")])]):_vm._e(),(_vm.can_edit)?[_c('div',{staticClass:\"_footer\"},[(_vm.edit_mode)?[_c('SaveCancelButtons',{staticClass:\"_scb\",attrs:{\"allow_save\":_vm.allow_save},on:{\"save\":_vm.updateLongLatZoom,\"cancel\":_vm.cancel}})]:_vm._e()],2)]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PositionPicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PositionPicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PositionPicker.vue?vue&type=template&id=462e3b26&scoped=true\"\nimport script from \"./PositionPicker.vue?vue&type=script&lang=js\"\nexport * from \"./PositionPicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./PositionPicker.vue?vue&type=style&index=0&id=462e3b26&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"462e3b26\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_colorInput\"},[_c('ToggledSection',{attrs:{\"label\":_vm.label,\"can_toggle\":_vm.can_toggle,\"show_toggle\":_vm.show_color_input},on:{\"update:show_toggle\":function($event){_vm.show_color_input=$event}}},[(!_vm.edit_mode)?_c('div',{staticClass:\"_currentColor\"},[_c('button',{staticClass:\"u-button u-button_small u-button_transparent\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.edit_mode = true}}},[_c('span',{staticClass:\"_colorPatch\",style:(`--patch-color: ${_vm.local_value}`)}),_vm._v(\" \"+_vm._s(_vm.$t(\"edit\"))+\" \")])]):[_c('div',{staticClass:\"_defaultColors\"},_vm._l((_vm.default_colors),function(color){return _c('div',{key:color,staticClass:\"_colorPatch\",class:{\n 'is--active': color === _vm.local_value,\n },style:(`--patch-color: ${color}`),on:{\"click\":function($event){_vm.local_value = color}}})}),0),_c('div',{key:'value-' + _vm.value},[_c('div',{staticClass:\"_inputField\",class:{\n 'has--novalue': _vm.local_value === '',\n }},[_c('label',{staticClass:\"u-button u-button_verysmall _customCol\",style:(`--patch-color: ${_vm.local_value}`),attrs:{\"for\":'_input_' + _vm.label}},[(_vm.is_custom_color)?_c('span',{staticClass:\"_colorPatch is--active\"}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t(\"custom_color\"))+\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model.lazy\",value:(_vm.local_value),expression:\"local_value\",modifiers:{\"lazy\":true}}],ref:\"field\",attrs:{\"type\":\"color\",\"name\":_vm.label,\"id\":'_input_' + _vm.label},domProps:{\"value\":(_vm.local_value)},on:{\"change\":function($event){_vm.local_value=$event.target.value}}})])])]),_c('transition',{attrs:{\"name\":\"fade_fast\"}},[(!_vm.live_editing)?_c('SaveCancelButtons',{staticClass:\"_scb\",attrs:{\"allow_save\":_vm.value !== _vm.local_value},on:{\"save\":function($event){return _vm.saveColor(_vm.local_value)},\"cancel\":_vm.cancelColor}}):_vm._e()],1)]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ColorInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ColorInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ColorInput.vue?vue&type=template&id=7223d79a&scoped=true\"\nimport script from \"./ColorInput.vue?vue&type=script&lang=js\"\nexport * from \"./ColorInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./ColorInput.vue?vue&type=style&index=0&id=7223d79a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7223d79a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"u-inputGroup\"},[_c('input',{staticClass:\"_searchInput\",attrs:{\"type\":\"text\",\"size\":\"small\",\"placeholder\":_vm.search_placeholder,\"name\":_vm.name},domProps:{\"value\":_vm.value},on:{\"input\":function($event){return _vm.$emit('input', $event.target.value)}}}),_c('transition',{attrs:{\"name\":\"pagechange\"}},[(_vm.value.length > 0)?_c('button',{staticClass:\"u-suffix u-button u-button_bleumarine\",staticStyle:{\"flex\":\"0 0 auto\"},attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('input', '')}}},[_c('b-icon',{attrs:{\"icon\":\"x-lg\"}})],1):_vm._e()])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SearchInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SearchInput.vue?vue&type=template&id=4fb02e7c&scoped=true\"\nimport script from \"./SearchInput.vue?vue&type=script&lang=js\"\nexport * from \"./SearchInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./SearchInput.vue?vue&type=style&index=0&id=4fb02e7c&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4fb02e7c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_toggledSection\"},[(_vm.can_toggle)?_c('ToggleInput',{attrs:{\"content\":_vm.show_toggle,\"label\":_vm.label,\"disabled\":_vm.disabled},on:{\"update:content\":function($event){return _vm.$emit('update:show_toggle', $event)}}}):_c('DLabel',{attrs:{\"str\":_vm.label}}),(_vm.show_toggle)?_c('div',{staticClass:\"_toggled\",class:{\n 'can--toggle': _vm.can_toggle,\n }},[_vm._t(\"default\")],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToggledSection.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ToggledSection.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToggledSection.vue?vue&type=template&id=0044a89e&scoped=true\"\nimport script from \"./ToggledSection.vue?vue&type=script&lang=js\"\nexport * from \"./ToggledSection.vue?vue&type=script&lang=js\"\nimport style0 from \"./ToggledSection.vue?vue&type=style&index=0&id=0044a89e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0044a89e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_rangeInput\"},[_c('ToggledSection',{attrs:{\"label\":_vm.label,\"can_toggle\":_vm.can_toggle,\"show_toggle\":_vm.show_range_input},on:{\"update:show_toggle\":function($event){_vm.show_range_input=$event}}},[_c('div',{staticClass:\"u-sameRow\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.local_value),expression:\"local_value\",modifiers:{\"number\":true}}],staticClass:\"_inputRange\",attrs:{\"type\":\"range\",\"list\":_vm.steplist_id,\"min\":_vm.min,\"max\":_vm.max,\"step\":_vm.step},domProps:{\"value\":(_vm.local_value)},on:{\"change\":function($event){return _vm.$emit('save', +$event.target.value)},\"__r\":function($event){_vm.local_value=_vm._n($event.target.value)},\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.ticks)?_c('datalist',{attrs:{\"id\":_vm.steplist_id}},_vm._l((_vm.ticks),function(tick){return _c('option',{key:tick},[_vm._v(_vm._s(tick))])}),0):_vm._e(),_c('NumberInput',{key:'value-' + _vm.value,staticClass:\"_numberField\",attrs:{\"value\":_vm.local_value,\"min\":_vm.min,\"step\":_vm.step,\"suffix\":_vm.suffix},on:{\"save\":function($event){return _vm.$emit('save', $event)}}})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RangeValueInput.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RangeValueInput.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RangeValueInput.vue?vue&type=template&id=7acec450&scoped=true\"\nimport script from \"./RangeValueInput.vue?vue&type=script&lang=js\"\nexport * from \"./RangeValueInput.vue?vue&type=script&lang=js\"\nimport style0 from \"./RangeValueInput.vue?vue&type=style&index=0&id=7acec450&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7acec450\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_authorPicker\"},[_c('div',{staticClass:\"_searchField\"},[_c('SearchInput',{attrs:{\"search_placeholder\":_vm.$t('search_by_name'),\"name\":'search_author'},model:{value:(_vm.search_author_name),callback:function ($$v) {_vm.search_author_name=$$v},expression:\"search_author_name\"}})],1),(_vm.filtered_authors.length === 0)?_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"no_authors_to_show\"))+\" \")]):_vm._e(),_c('transition-group',{staticClass:\"_list\",attrs:{\"tag\":\"div\",\"name\":\"listComplete\",\"appear\":\"\"}},_vm._l((_vm.filtered_authors),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path,\"mode\":'add'},on:{\"click\":function($event){return _vm.$emit('addAuthor', $path)}}})}),1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorPicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorPicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AuthorPicker.vue?vue&type=template&id=baba8124&scoped=true\"\nimport script from \"./AuthorPicker.vue?vue&type=script&lang=js\"\nexport * from \"./AuthorPicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./AuthorPicker.vue?vue&type=style&index=0&id=baba8124&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"baba8124\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.modal_name},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('form',{staticClass:\"input-validation-required\",on:{\"submit\":function($event){$event.preventDefault();return _vm.createFolder.apply(null, arguments)}}},[_c('DLabel',{attrs:{\"str\":_vm.$t('title')}}),_c('TextInput',{ref:\"titleInput\",attrs:{\"content\":_vm.new_folder_title,\"maxlength\":40,\"required\":true,\"autofocus\":true},on:{\"update:content\":function($event){_vm.new_folder_title=$event},\"toggleValidity\":($event) => (_vm.allow_save = $event),\"onEnter\":_vm.createFolder}}),_c('br'),_c('div',{},[_c('ToggleInput',{attrs:{\"content\":_vm.new_folder_is_private,\"label\":_vm.$t('private'),\"options\":{\n true: _vm.$t('private_status_explanations'),\n false: _vm.$t('public_status_explanations'),\n }},on:{\"update:content\":function($event){_vm.new_folder_is_private=$event}}})],1),_c('br'),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"slot\":\"footer\",\"type\":\"submit\",\"loading\":_vm.is_creating_folder},slot:\"footer\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"create_and_open\"))+\" \")])]),(_vm.error_msg)?[_c('br'),_c('br'),_c('div',{staticClass:\"u-errorMsg\",domProps:{\"textContent\":_vm._s(_vm.error_msg)}})]:_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateFolder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreateFolder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CreateFolder.vue?vue&type=template&id=d89b9dc6&scoped=true\"\nimport script from \"./CreateFolder.vue?vue&type=script&lang=js\"\nexport * from \"./CreateFolder.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d89b9dc6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.modal_name},on:{\"close\":function($event){return _vm.$emit('close')}}},[(_vm.transfer_percent !== 100)?_c('div',{staticClass:\"u-instructions u-spacingBottom\",domProps:{\"innerHTML\":_vm._s(_vm.$t('import_a_project_instr'))}}):_vm._e(),(!_vm.folder_to_import)?_c('div',{staticClass:\"_importZone\"},[_c('ImportFileZone',{attrs:{\"accepts\":'.zip',\"files_to_import\":_vm.files_to_import},on:{\"update:files_to_import\":[function($event){_vm.files_to_import=$event},function($event){return _vm.importProject($event)}]}})],1):_c('div',[(_vm.err_message)?[_vm._v(\" \"+_vm._s(_vm.err_message)+\" \")]:[(_vm.transfer_percent < 100)?[_vm._v(\" \"+_vm._s(_vm.$t(\"import_in_progress\"))),_c('br'),_vm._v(\" \"+_vm._s(_vm.transfer_percent)+\"% \")]:[_vm._v(\" \"+_vm._s(_vm.$t(\"import_finished\"))+\" \"),(_vm.imported_project_path)?_c('router-link',{attrs:{\"to\":{ path: _vm.createURLFromPath(_vm.imported_project_path) }}},[_vm._v(\" \"+_vm._s(_vm.imported_project_title)+\" \")]):_vm._e()]]],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImportFolder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImportFolder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImportFolder.vue?vue&type=template&id=0f319e06&scoped=true\"\nimport script from \"./ImportFolder.vue?vue&type=script&lang=js\"\nexport * from \"./ImportFolder.vue?vue&type=script&lang=js\"\nimport style0 from \"./ImportFolder.vue?vue&type=style&index=0&id=0f319e06&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0f319e06\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_saveCancelBtns\"},[_c('button',{staticClass:\"u-buttonLink _cancelBtn\",on:{\"click\":function($event){return _vm.$emit('cancel')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"loading\":_vm.is_saving,\"disabled\":!_vm.allow_save},on:{\"click\":function($event){return _vm.$emit('save')}}},[_c('b-icon',{attrs:{\"icon\":\"check-circle-fill\"}}),_vm._v(\" \"+_vm._s(_vm.save_text ? _vm.save_text : _vm.$t(\"save\"))+\" \")],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SaveCancelButtons.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SaveCancelButtons.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SaveCancelButtons.vue?vue&type=template&id=635c1158&scoped=true\"\nimport script from \"./SaveCancelButtons.vue?vue&type=script&lang=js\"\nexport * from \"./SaveCancelButtons.vue?vue&type=script&lang=js\"\nimport style0 from \"./SaveCancelButtons.vue?vue&type=style&index=0&id=635c1158&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"635c1158\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_metaField\",on:{\"click\":function($event){_vm.show_detail = !_vm.show_detail}}},[_c('DLabel',{attrs:{\"str\":_vm.title}}),_c('div',[(!_vm.show_detail)?[_vm._v(_vm._s(_vm.formatDateToHuman(_vm.date))+\" \")]:[_vm._v(_vm._s(_vm.formatDateTimeToPrecise(_vm.date)))]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateDisplay.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateDisplay.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DateDisplay.vue?vue&type=template&id=86fdfd68\"\nimport script from \"./DateDisplay.vue?vue&type=script&lang=js\"\nexport * from \"./DateDisplay.vue?vue&type=script&lang=js\"\nimport style0 from \"./DateDisplay.vue?vue&type=style&index=0&id=86fdfd68&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_metaField\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('size')}}),_c('div',[(_vm.size)?[_vm._v(\" \"+_vm._s(_vm.formatBytes(_vm.size))+\" \")]:[_vm._v(\" – \")]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SizeDisplay.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SizeDisplay.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SizeDisplay.vue?vue&type=template&id=7994fe16\"\nimport script from \"./SizeDisplay.vue?vue&type=script&lang=js\"\nexport * from \"./SizeDisplay.vue?vue&type=script&lang=js\"\nimport style0 from \"./SizeDisplay.vue?vue&type=style&index=0&id=7994fe16&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_metaField\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('resolution')}}),_c('div',[(_vm.width)?[_vm._v(\" \"+_vm._s(_vm.width)+\" \")]:[_vm._v(\" – \")],_vm._v(\" × \"),(_vm.height)?[_vm._v(\" \"+_vm._s(_vm.height)+\" \")]:[_vm._v(\" – \")]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ResolutionDisplay.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ResolutionDisplay.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ResolutionDisplay.vue?vue&type=template&id=f37b7ff0\"\nimport script from \"./ResolutionDisplay.vue?vue&type=script&lang=js\"\nexport * from \"./ResolutionDisplay.vue?vue&type=script&lang=js\"\nimport style0 from \"./ResolutionDisplay.vue?vue&type=style&index=0&id=f37b7ff0&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_metaField\"},[_c('DLabel',{attrs:{\"str\":_vm.title}}),_c('div',[(_vm.duration)?[_vm._v(\" \"+_vm._s(_vm.formatDurationToHoursMinutesSecondsDeciseconds(_vm.duration))+\" \")]:[_vm._v(\"•:••\")]],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DurationDisplay.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DurationDisplay.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DurationDisplay.vue?vue&type=template&id=e0294698\"\nimport script from \"./DurationDisplay.vue?vue&type=script&lang=js\"\nexport * from \"./DurationDisplay.vue?vue&type=script&lang=js\"\nimport style0 from \"./DurationDisplay.vue?vue&type=style&index=0&id=e0294698&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_dateField\"},[(_vm.label)?_c('DLabel',{staticClass:\"_label\",attrs:{\"str\":_vm.label,\"instructions\":_vm.can_edit ? _vm.instructions : ''}}):_vm._e(),(!_vm.edit_mode)?_c('div',{},[_vm._v(\" \"+_vm._s(_vm.format_date)+\" \"),(_vm.can_edit)?_c('EditBtn',{on:{\"click\":function($event){_vm.edit_mode = true}}}):_vm._e()],1):_c('div',[((_vm.input_type)==='checkbox')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.local_date),expression:\"local_date\"}],attrs:{\"step\":\"1\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.local_date)?_vm._i(_vm.local_date,null)>-1:(_vm.local_date)},on:{\"change\":function($event){var $$a=_vm.local_date,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.local_date=$$a.concat([$$v]))}else{$$i>-1&&(_vm.local_date=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.local_date=$$c}}}}):((_vm.input_type)==='radio')?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.local_date),expression:\"local_date\"}],attrs:{\"step\":\"1\",\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.local_date,null)},on:{\"change\":function($event){_vm.local_date=null}}}):_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.local_date),expression:\"local_date\"}],attrs:{\"step\":\"1\",\"type\":_vm.input_type},domProps:{\"value\":(_vm.local_date)},on:{\"input\":function($event){if($event.target.composing)return;_vm.local_date=$event.target.value}}}),(_vm.edit_mode)?_c('div',{staticClass:\"_footer\"},[_c('SaveCancelButtons',{staticClass:\"_scb\",on:{\"save\":_vm.updateMeta,\"cancel\":_vm.cancel}})],1):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DateField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DateField.vue?vue&type=template&id=30ee1667&scoped=true\"\nimport script from \"./DateField.vue?vue&type=script&lang=js\"\nexport * from \"./DateField.vue?vue&type=script&lang=js\"\nimport style0 from \"./DateField.vue?vue&type=style&index=0&id=30ee1667&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"30ee1667\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_uploadFiles\"},_vm._l((_vm.files_to_upload),function(f){return _c('div',{key:f.name,staticClass:\"_uploadFile\",class:_vm.cssStatus(f),style:(`--progress-percent: ${\n _vm.files_to_upload_meta[f.name].upload_percentages / 100\n }`)},[_c('div',{staticClass:\"_uploadFile--progressBar\"}),(\n !!f.type &&\n f.type.includes('image') &&\n _vm.files_to_upload_meta[f.name].status === 'sending'\n )?_c('img',{staticClass:\"_uploadFile--image\",attrs:{\"width\":\"50\",\"src\":_vm.getImgPreview(f)}}):_c('div',{staticClass:\"_uploadFile--image\"}),_c('div',{staticClass:\"_uploadFile--filename\",attrs:{\"title\":f.name}},[_vm._v(_vm._s(f.name))]),_c('div',{staticClass:\"_uploadFile--size\"},[_vm._v(_vm._s(_vm.formatBytes(f.size)))]),_c('div',{staticClass:\"_uploadFile--action\"},[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\",\"disabled\":_vm.files_to_upload_meta[f.name].status !== 'failed'},on:{\"click\":function($event){return _vm.sendThisFile(f)}}},[(!_vm.files_to_upload_meta.hasOwnProperty(f.name))?[_vm._v(\" \"+_vm._s(_vm.$t(\"import\"))+\" \")]:(_vm.files_to_upload_meta[f.name].status === 'waiting')?[_vm._v(\" \"+_vm._s(_vm.$t(\"waiting\"))+\" \")]:(_vm.files_to_upload_meta[f.name].status === 'sending')?[_vm._v(\" \"+_vm._s(_vm.$t(\"sending\"))+\" \")]:(_vm.files_to_upload_meta[f.name].status === 'success')?[_vm._v(\" \"+_vm._s(_vm.$t(\"sent\"))+\" \")]:(_vm.files_to_upload_meta[f.name].status === 'failed')?[_vm._v(\" \"+_vm._s(_vm.$t(\"retry\"))+\" \")]:_vm._e()],2)])])}),0)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n {{ $t(\"sending\") }}\n \n \n {{ $t(\"sent\") }}\n \n \n {{ $t(\"retry\") }}\n \n \n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UploadFiles.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UploadFiles.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UploadFiles.vue?vue&type=template&id=dd9a2886\"\nimport script from \"./UploadFiles.vue?vue&type=script&lang=js\"\nexport * from \"./UploadFiles.vue?vue&type=script&lang=js\"\nimport style0 from \"./UploadFiles.vue?vue&type=style&index=0&id=dd9a2886&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_mediaContent\",attrs:{\"data-filetype\":_vm.file.$type,\"data-context\":_vm.context,\"data-novisual\":!_vm.thumb}},[(_vm.file.$type === 'image')?[(_vm.context === 'preview')?[(_vm.thumb)?_c('img',{staticClass:\"_mediaContent--image\",attrs:{\"src\":_vm.thumb,\"loading\":_vm.img_loading}}):[_c('b-icon',{attrs:{\"icon\":\"eye-slash\"}})]]:[(!_vm.zoom_on_click)?_c('img',{staticClass:\"_mediaContent--image\",attrs:{\"src\":_vm.file_full_path,\"loading\":_vm.img_loading}}):_c('ImageZoom',{staticClass:\"_mediaContent--image\",attrs:{\"small_img\":_vm.full_thumb,\"large_img\":_vm.file_full_path,\"width\":_vm.img_width,\"ratio\":_vm.img_ratio}})]]:(['video', 'audio'].includes(_vm.file.$type))?[(_vm.context === 'preview')?[(_vm.thumb)?_c('img',{staticClass:\"_mediaContent--image\",attrs:{\"src\":_vm.thumb,\"loading\":_vm.img_loading}}):[_c('b-icon',{attrs:{\"icon\":\"eye-slash\"}})]]:[_c('vue-plyr',{key:_vm.file_full_path,ref:\"plyr\",attrs:{\"emit\":['volumechange', 'timeupdate']},on:{\"volumechange\":_vm.volumeChanged,\"timeupdate\":_vm.videoTimeUpdated}},[(_vm.file.$type === 'video')?_c('video',{attrs:{\"poster\":_vm.thumb,\"src\":_vm.file_full_path,\"preload\":\"none\"}}):(_vm.file.$type === 'audio')?_c('audio',{attrs:{\"src\":_vm.file_full_path,\"preload\":\"none\"}}):_vm._e()])]]:(_vm.file.$type === 'text')?[_c('CollaborativeEditor2',{staticClass:\"_mediaContent--collabEditor\",attrs:{\"content\":_vm.file.$content,\"path\":_vm.file.$path,\"can_edit\":_vm.can_edit}})]:(['pdf', 'url', 'stl', 'obj'].includes(_vm.file.$type))?[(_vm.context === 'preview')?[(_vm.thumb)?_c('img',{staticClass:\"_mediaContent--image\",attrs:{\"src\":_vm.thumb,\"loading\":_vm.img_loading}}):_c('small',{staticClass:\"u-fontCode fieldCaption _fileName\"},[_c('b-icon',{attrs:{\"icon\":\"eye-slash\"}}),_vm._v(\" \"+_vm._s(_vm.file.$media_filename)+\" \")],1)]:[_c('div',{staticClass:\"_mediaContent--iframe\"},[(!_vm.start_iframe)?_c('div',{staticClass:\"_mediaContent--iframe--preview\"},[_c('img',{staticClass:\"_iframeStylePreview\",attrs:{\"src\":_vm.thumb,\"loading\":_vm.img_loading}}),_c('button',{staticClass:\"plyr__control plyr__control--overlaid _playButton\",attrs:{\"type\":\"button\",\"aria-label\":\"Play\"},on:{\"click\":_vm.loadIframe}},[_c('svg',{attrs:{\"aria-hidden\":\"true\",\"focusable\":\"false\"}},[_c('use',{attrs:{\"xlink:href\":_vm.$root.publicPath + 'plyr.svg#plyr-play'}})]),_c('span',{staticClass:\"plyr__sr-only\"},[_vm._v(\"Play\")])])]):_c('div',{staticClass:\"_mediaContent--iframe--content\"},[(!_vm.is_loading_iframe && _vm.failed_to_load_iframe)?_c('div',{staticClass:\"_errMessage\"},[_c('div',{},[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"page_failed_to_load\"))),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t(\"click_link_to_open_in_tab\"))+\" \")])])]):_vm._e(),(_vm.file.$type === 'pdf')?_c('iframe',{attrs:{\"frameborder\":\"0\",\"src\":_vm.file_full_path},on:{\"load\":_vm.iframeLoaded}}):(['stl', 'obj'].includes(_vm.file.$type))?_c('ThreeDPreview',{key:_vm.file_full_path,staticClass:\"_threeDPreview\",attrs:{\"file_type\":_vm.file.$type,\"src\":_vm.file_full_path}}):(_vm.url_to_site.type === 'any')?_c('iframe',{attrs:{\"src\":_vm.url_to_site.src,\"frameborder\":\"0\"},on:{\"load\":_vm.iframeLoaded}}):_c('vue-plyr',{key:_vm.file_full_path},[_c('div',{staticClass:\"plyr__video-embed\"},[_c('iframe',{attrs:{\"src\":_vm.url_to_site.src,\"allowfullscreen\":\"\",\"allowtransparency\":\"\",\"allow\":\"autoplay\",\"poster\":_vm.thumb,\"frameborder\":\"0\"}})])]),(_vm.is_loading_iframe)?_c('div',{key:\"loader\",staticClass:\"u-divCentered\"},[_c('LoaderSpinner')],1):_vm._e()],1),(_vm.file.$type === 'url')?_c('div',{staticClass:\"fieldCaption\"},[_c('a',{attrs:{\"href\":_vm.file.$content,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.file.$content))])]):_vm._e()])]]:_c('small',{staticClass:\"u-fontCode fieldCaption _fileName\"},[_c('b-icon',{attrs:{\"icon\":\"file-earmark\"}}),_vm._v(\" \"+_vm._s(_vm.file.$media_filename)+\" \")],1),(['image', 'stl', 'obj'].includes(_vm.file.$type) && _vm.show_fs_button)?[_c('div',{staticClass:\"_fsButton\"},[_c('EditBtn',{attrs:{\"btn_type\":'fullscreen'},on:{\"click\":function($event){_vm.show_fullscreen = true}}})],1),(_vm.show_fullscreen)?_c('FullscreenView',{on:{\"close\":function($event){_vm.show_fullscreen = false}}},[(_vm.file.$type === 'image')?_c('ImageZoom',{attrs:{\"small_img\":_vm.full_thumb,\"large_img\":_vm.file_full_path,\"width\":_vm.img_width,\"ratio\":_vm.img_ratio}}):(['stl', 'obj'].includes(_vm.file.$type))?_c('ThreeDPreview',{key:_vm.file_full_path,staticClass:\"_threeDPreview\",attrs:{\"file_type\":_vm.file.$type,\"src\":_vm.file_full_path}}):_vm._e()],1):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaContent.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MediaContent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MediaContent.vue?vue&type=template&id=67c4cc56&scoped=true\"\nimport script from \"./MediaContent.vue?vue&type=script&lang=js\"\nexport * from \"./MediaContent.vue?vue&type=script&lang=js\"\nimport style0 from \"./MediaContent.vue?vue&type=style&index=0&id=67c4cc56&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"67c4cc56\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_fullscreenView\"},[_c('transition',{attrs:{\"name\":\"scaleInFade\"}},[_c('div',{staticClass:\"_fsImg\"},[_vm._t(\"default\")],2)]),_c('div',{staticClass:\"_fsButton\"},[_c('EditBtn',{attrs:{\"btn_type\":'fullscreen-exit'},on:{\"click\":_vm.closeFs}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FullscreenView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FullscreenView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./FullscreenView.vue?vue&type=template&id=4372ff91&scoped=true\"\nimport script from \"./FullscreenView.vue?vue&type=script&lang=js\"\nexport * from \"./FullscreenView.vue?vue&type=script&lang=js\"\nimport style0 from \"./FullscreenView.vue?vue&type=style&index=0&id=4372ff91&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4372ff91\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_collaborativeEditor\",class:{\n 'is--editable': _vm.can_edit,\n 'is--editing_is_enabled': _vm.editor_is_enabled,\n 'is--mobileView': _vm.$root.is_mobile_view,\n },on:{\"click\":_vm.editorClick}},[(_vm.label)?_c('DLabel',{attrs:{\"str\":_vm.label,\"instructions\":_vm.can_edit ? _vm.instructions : ''}}):_vm._e(),(_vm.show_archives)?_c('TextVersioning',{attrs:{\"path\":_vm.path,\"current_content\":_vm.content},on:{\"close\":function($event){_vm.show_archives = false},\"restore\":_vm.restoreVersion}}):_vm._e(),_c(`style`,{tag:\"component\"},[_vm._v(\" \"+_vm._s(_vm.quill_styles)+\" \")]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.can_edit && _vm.editor_is_enabled),expression:\"can_edit && editor_is_enabled\"}],ref:\"editBtn\",staticClass:\"_TEbtnContainer\"},[_c('div',{},[(_vm.editor_is_enabled && !_vm.is_disabling_editor)?[_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[(_vm.is_loading_or_saving)?_c('div',{key:\"saving\",staticClass:\"u-button _savingStatus\"},[_c('LoaderSpinner'),_vm._v(\" \"+_vm._s(_vm.$t(\"saving\"))+\" \")],1):(_vm.show_saved_icon)?_c('div',{key:\"saved\",staticClass:\"u-button _savedStatus\"},[_c('b-icon',{attrs:{\"icon\":\"check-circle\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"saved\"))+\" \")],1):(_vm.field_to_edit === '$content')?_c('button',{staticClass:\"u-button _archivesBtn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_archives = !_vm.show_archives}}},[_c('b-icon',{attrs:{\"icon\":\"archive\"}}),_c('span',[_vm._v(_vm._s(_vm.$t(\"history\")))])],1):_vm._e()]),_c('EditBtn',{staticClass:\"_editBtn\",attrs:{\"btn_type\":'check',\"label_position\":'left'},on:{\"click\":_vm.disableEditor}})]:_vm._e()],2)]),(_vm.can_edit && !_vm.editor_is_enabled)?_c('div',{staticClass:\"_floatingEditBtn\"},[_c('EditBtn',{key:\"editbtn\",attrs:{\"label_position\":'left'},on:{\"click\":_vm.toggleEdit}})],1):_vm._e(),_c('div',{staticClass:\"_toolbarAndEditorContainer\"},[_c('div',{ref:\"editor\",on:{\"dragover\":_vm.onDragover,\"drop\":_vm.onDrop}})])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{staticClass:\"_modal\",attrs:{\"title\":_vm.$t('list_of_versions')},on:{\"close\":function($event){return _vm.$emit('close')}}},[(_vm.archives)?_c('div',{staticClass:\"_archives\"},[_c('div',{staticClass:\"_topbar\"},[_c('button',{staticClass:\"u-button u-button_small\",attrs:{\"disabled\":_vm.archive_shown_index === 0},on:{\"click\":_vm.newerVersion}},[_c('b-icon',{attrs:{\"icon\":\"arrow-up\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"recent\"))+\" \")],1),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selected_archive_filename),expression:\"selected_archive_filename\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selected_archive_filename=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.archives),function(archive,index){return _c('option',{key:archive.filename,domProps:{\"value\":archive.filename,\"textContent\":_vm._s(\n archive.filename === 'current'\n ? _vm.$t('current')\n : _vm.formatDateTimeToPrecise(archive.date) +\n ' - version ' +\n (_vm.archives.length - index)\n )}})}),0),_c('button',{staticClass:\"u-button u-button_small\",attrs:{\"disabled\":_vm.archive_shown_index === _vm.archives.length - 1},on:{\"click\":_vm.olderVersion}},[_c('b-icon',{attrs:{\"icon\":\"arrow-down\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"ancient\"))+\" \")],1)]),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\",\"appear\":\"\"}},[(\n _vm.archive_shown &&\n (_vm.archive_shown.content || _vm.archive_shown.content === '')\n )?_c('div',{key:_vm.selected_archive_filename},[_c('div',{staticClass:\"_archiveText\",domProps:{\"innerHTML\":_vm._s(_vm.archive_shown.content)}})]):_vm._e()])],1):_vm._e(),_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('SaveCancelButtons',{attrs:{\"allow_save\":_vm.selected_archive_filename !== 'current',\"save_text\":_vm.$t('restore_this_version')},on:{\"save\":function($event){return _vm.restoreVersion(_vm.archive_shown.content)},\"cancel\":function($event){return _vm.$emit('close')}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextVersioning.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TextVersioning.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./TextVersioning.vue?vue&type=template&id=571acb21&scoped=true\"\nimport script from \"./TextVersioning.vue?vue&type=script&lang=js\"\nexport * from \"./TextVersioning.vue?vue&type=script&lang=js\"\nimport style0 from \"./TextVersioning.vue?vue&type=style&index=0&id=571acb21&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"571acb21\",\n null\n \n)\n\nexport default component.exports","export const fonts = [\n \"Fira Sans\",\n \"Luciole\",\n \"Belle Allure CE\",\n \"Belle Allure CM\",\n \"OpenDyslexic\",\n \"Alegreya\",\n \"Roboto Mono\",\n \"Roboto\",\n \"Source Sans Pro\",\n \"Source Serif Pro\",\n \"PT Serif\",\n \"Work Sans\",\n \"Karla\",\n \"IBM Plex Serif\",\n \"IBM Plex Sans\",\n \"Raleway\",\n \"Volkhov\",\n \"Archivo\",\n \"Spectral\",\n \"Krub\",\n];\n\nexport const fontSizeArr = [\n \"6px\",\n \"7px\",\n \"8px\",\n \"9px\",\n \"10px\",\n \"12px\",\n \"14px\",\n false,\n \"20px\",\n \"24px\",\n \"32px\",\n \"42px\",\n \"54px\",\n \"68px\",\n \"84px\",\n \"98px\",\n \"116px\",\n \"130px\",\n \"144px\",\n \"158px\",\n];\nexport const lineHeightArr = [\n \"0.6\",\n \"0.8\",\n \"1\",\n \"1.2\",\n false,\n \"1.6\",\n \"1.8\",\n \"2\",\n];\n\nexport const formats = [\n \"bold\",\n \"size\",\n \"lineheight\",\n \"italic\",\n \"underline\",\n \"strike\",\n \"link\",\n \"header\",\n \"blockquote\",\n \"list\",\n \"color\",\n \"background\",\n \"font\",\n \"align\",\n \"code-block\",\n \"divider\",\n];\n","import Quill from \"quill\";\nlet BlockEmbed = Quill.import(\"blots/block/embed\");\n\n// inspired from https://gist.github.com/tranduongms1/584d43ec7d8ddeab458f087adbeef950\nexport default class MediaBlot extends BlockEmbed {\n static blotName = \"media\";\n static tagName = \"figure\";\n static className = \"ql-mediacard\";\n\n static create({ type, src, content, caption, meta_filename }) {\n console.log(`CollaborativeEditor • MediaBlot : create for type = ${type}`);\n\n let node = super.create();\n let container = window.document.createElement(\"div\");\n container.classList.add(\"ql-mediacard-container\");\n\n node.setAttribute(\"contenteditable\", false);\n // let bg = window.document.createElement(\"div\");\n // bg.setAttribute(\"class\", \"ql-mediacard--background\");\n // node.appendChild(bg);\n\n let tag;\n\n if (!type || !meta_filename) {\n alert(\n `Missing type or meta_filename : type = ${type} and meta_filename = ${meta_filename}`\n );\n return;\n }\n\n if (type === \"image\") {\n tag = window.document.createElement(\"img\");\n } else if (type === \"video\") {\n tag = window.document.createElement(\"video\");\n tag.setAttribute(\"controls\", true);\n } else if (type === \"audio\") {\n tag = window.document.createElement(\"audio\");\n tag.setAttribute(\"controls\", true);\n } else if (type === \"text\") {\n tag = window.document.createElement(\"blockquote\");\n tag.innerHTML = content;\n }\n\n if (src) {\n tag.setAttribute(\"src\", src);\n }\n tag.setAttribute(\"draggable\", false);\n container.appendChild(tag);\n\n if (caption) {\n let caption_tag = window.document.createElement(\"figcaption\");\n caption_tag.innerHTML = caption;\n container.appendChild(caption_tag);\n }\n node.dataset.type = type;\n node.dataset.meta_filename = meta_filename;\n node.setAttribute(\"draggable\", false);\n // todo for later: allow drag from cards in quill to move inside document or to composition\n node.addEventListener(\"dragstart\", ($event) => {\n $event.dataTransfer.setData(\"text/plain\", \"media_in_quill\");\n $event.dataTransfer.effectAllowed = \"move\";\n });\n\n node.appendChild(container);\n\n return node;\n }\n\n constructor(node) {\n super(node);\n\n let btnRow, caption, captionInput;\n\n node.__onSelect = () => {\n const quill = Quill.find(node.parentElement.parentElement);\n\n if (!quill.container.classList.contains(\"is--editable\")) return;\n node.classList.add(\"is--focused\");\n\n btnRow = window.document.createElement(\"div\");\n\n let removeButton = window.document.createElement(\"button\");\n removeButton.innerHTML = \"supprimer ×\";\n removeButton.setAttribute(\"type\", \"button\");\n removeButton.classList.add(\"_button_removeMedia\");\n removeButton.addEventListener(\"click\", () => {\n quill.enable(true);\n super.remove();\n });\n btnRow.appendChild(removeButton);\n\n let ratioButton = window.document.createElement(\"select\");\n ratioButton.innerHTML = `\n \n \n \n \n `;\n ratioButton.classList.add(\"_select_ratio\");\n ratioButton.addEventListener(\"change\", (event) => {\n const ratio = event.target.value;\n node.dataset.ratio = ratio;\n ratioButton.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n inline: \"nearest\",\n });\n });\n btnRow.appendChild(ratioButton);\n\n node.appendChild(btnRow);\n\n caption = node.querySelector(\"figcaption\");\n captionInput = window.document.createElement(\"input\");\n captionInput.setAttribute(\"type\", \"text\");\n captionInput.setAttribute(\"autofocus\", true);\n captionInput.placeholder = \"Légende…\";\n\n if (caption) {\n captionInput.value = caption.innerText;\n caption.innerHTML = \"\";\n caption.appendChild(captionInput);\n } else {\n caption = window.document.createElement(\"figcaption\");\n caption.appendChild(captionInput);\n node.querySelector(\".ql-mediacard-container\").appendChild(caption);\n }\n\n setTimeout(() => {\n captionInput.focus();\n }, 50);\n };\n node.__onDeselect = () => {\n let value = captionInput.value;\n if (!value || value === \"\") {\n caption.remove();\n } else {\n captionInput.remove();\n caption.innerText = value;\n }\n node.classList.remove(\"is--focused\");\n btnRow.remove();\n };\n }\n\n // deleteAt() {\n // console.log(\"deleteAt for custom mediablock: prevented\");\n // return false;\n // // prevent removing on backspace after block\n // }\n\n static value(node) {\n if (node.dataset.type === \"image\") {\n let img = node.querySelector(\"img\");\n let figcaption = node.querySelector(\"figcaption\");\n if (!img) return false;\n return {\n alt: img.getAttribute(\"alt\"),\n src: img.getAttribute(\"src\"),\n meta_filename: node.dataset.meta_filename,\n type: node.dataset.type,\n caption: figcaption ? figcaption.innerText : null,\n };\n } else if (node.dataset.type === \"video\") {\n let video = node.querySelector(\"video\");\n let figcaption = node.querySelector(\"figcaption\");\n if (!video) return false;\n return {\n alt: video.getAttribute(\"alt\"),\n src: video.getAttribute(\"src\"),\n meta_filename: node.dataset.meta_filename,\n type: node.dataset.type,\n caption: figcaption ? figcaption.innerText : null,\n };\n } else if (node.dataset.type === \"audio\") {\n let audio = node.querySelector(\"audio\");\n let figcaption = node.querySelector(\"figcaption\");\n if (!audio) return false;\n return {\n alt: audio.getAttribute(\"alt\"),\n src: audio.getAttribute(\"src\"),\n meta_filename: node.dataset.meta_filename,\n type: node.dataset.type,\n caption: figcaption ? figcaption.innerText : null,\n };\n } else if (node.dataset.type === \"text\") {\n let blockquote = node.querySelector(\"blockquote\");\n let figcaption = node.querySelector(\"figcaption\");\n if (!blockquote) return false;\n return {\n meta_filename: node.dataset.meta_filename,\n content: blockquote.innerHTML,\n type: node.dataset.type,\n caption: figcaption ? figcaption.innerText : null,\n };\n }\n }\n}\n","import Quill from \"quill\";\nconst Module = Quill.import(\"core/module\");\n\nexport default class CardEditableModule extends Module {\n constructor(quill, options) {\n super(quill, options);\n let is_selected = false;\n\n let listener = (e) => {\n if (!document.body.contains(quill.root)) {\n return document.body.removeEventListener(\"click\", listener);\n }\n let elm = e.target.closest(\".ql-mediacard\");\n\n let deselectCard = () => {\n console.log(\"deselectCard\");\n is_selected = false;\n if (elm.__onDeselect) {\n elm.__onDeselect(quill);\n } else {\n quill.setSelection(\n quill.getIndex(elm.__blot.blot) + 1,\n 0,\n Quill.sources.USER\n );\n }\n };\n if (elm && elm.__blot && elm.__onSelect && !is_selected) {\n // not ideal yet, can trigger repaint\n quill.disable();\n is_selected = true;\n console.log(\"selectCard\");\n\n elm.__onSelect(quill);\n\n let handleKeyPress = (e) => {\n if (e.keyCode === 27 || e.keyCode === 13) {\n window.removeEventListener(\"keypress\", handleKeyPress);\n quill.enable(true);\n deselectCard();\n }\n };\n let handleClick = (e) => {\n const path = e.path || (e.composedPath && e.composedPath());\n if (e.which === 1 && !path.includes(elm)) {\n window.removeEventListener(\"click\", handleClick);\n quill.enable(true);\n deselectCard();\n }\n };\n let handleDrag = (e) => {\n e;\n window.removeEventListener(\"dragover\", handleDrag);\n quill.enable(true);\n deselectCard();\n };\n window.addEventListener(\"keypress\", handleKeyPress);\n window.addEventListener(\"click\", handleClick);\n window.addEventListener(\"dragover\", handleDrag);\n }\n };\n quill.emitter.listenDOM(\"click\", document.body, listener);\n }\n}\n","\n\n\n\n\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CollaborativeEditor2.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CollaborativeEditor2.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CollaborativeEditor2.vue?vue&type=template&id=77f558a6&scoped=true\"\nimport script from \"./CollaborativeEditor2.vue?vue&type=script&lang=js\"\nexport * from \"./CollaborativeEditor2.vue?vue&type=script&lang=js\"\nimport style0 from \"quill/dist/quill.snow.css?vue&type=style&index=0&prod&lang=css&external\"\nimport style1 from \"./CollaborativeEditor2.vue?vue&type=style&index=1&id=77f558a6&prod&lang=scss&scoped=true\"\nimport style2 from \"./CollaborativeEditor2.vue?vue&type=style&index=2&id=77f558a6&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"77f558a6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.author)?_c(_vm.component_tag,{tag:\"component\",staticClass:\"_author\",class:{\n 'u-card2': _vm.component_tag === 'button' || _vm.component_tag === 'link',\n },attrs:{\"type\":_vm.component_tag === 'button' ? 'button' : '',\"to\":_vm.author_url,\"title\":_vm.author.name,\"data-isself\":_vm.is_self,\"data-imageonly\":_vm.show_image_only},on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('div',{staticClass:\"_cover\"},[_c('CoverField',{attrs:{\"context\":'preview',\"cover\":_vm.author.$cover,\"title\":_vm.$t('pick_portrait'),\"path\":_vm.author.$path,\"placeholder\":_vm.author.name.substring(0, 2),\"preview_format\":'circle',\"can_edit\":false}})],1),(!_vm.show_image_only)?_c('div',{staticClass:\"_infos\"},[_c('span',{staticClass:\"_name\"},[(\n _vm.authorIsInstance({\n field: '$admins',\n folder_path: _vm.author.$path,\n })\n )?_c('b-icon',{attrs:{\"icon\":\"shield-check\",\"aria-label\":_vm.$t('admin')}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.author.name)+\" \")],1)]):_vm._e(),(_vm.mode === 'select')?_c('b-icon',{attrs:{\"icon\":\"box-arrow-in-right\",\"aria-label\":_vm.$t('select')}}):_vm._e(),(_vm.mode === 'add')?_c('b-icon',{attrs:{\"icon\":\"plus-circle\",\"aria-label\":_vm.$t('add')}}):_vm._e(),(_vm.mode === 'remove')?_c('b-icon',{attrs:{\"icon\":\"x-circle\",\"aria-label\":_vm.$t('remove')}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorTag.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorTag.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AuthorTag.vue?vue&type=template&id=6307ca70&scoped=true\"\nimport script from \"./AuthorTag.vue?vue&type=script&lang=js\"\nexport * from \"./AuthorTag.vue?vue&type=script&lang=js\"\nimport style0 from \"./AuthorTag.vue?vue&type=style&index=0&id=6307ca70&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6307ca70\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_dLabel\"},[_c('div',{staticClass:\"_labelLine\",on:{\"click\":_vm.toggleInstructions}},[_c(_vm.tag,{tag:\"component\",class:_vm.tag === 'label' ? 'u-label' : '',attrs:{\"for\":_vm.for_input}},[_vm._v(\" \"+_vm._s(_vm.str)+\" \")]),(_vm.instructions)?[_vm._v(\"   \"),_c('button',{staticClass:\"u-button u-button_icon _icon\",style:(_vm.icon_styles),attrs:{\"type\":\"button\"}},[_c('b-icon',{class:{\n 'is--active': _vm.show_instructions,\n },attrs:{\"icon\":!_vm.show_instructions ? 'info-circle' : 'info-circle-fill'}})],1)]:_vm._e()],2),(_vm.show_instructions)?_c('div',{staticClass:\"u-instructions _instr\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.instructions)}})]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DLabel.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DLabel.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DLabel.vue?vue&type=template&id=0b7a95ee&scoped=true\"\nimport script from \"./DLabel.vue?vue&type=script&lang=js\"\nexport * from \"./DLabel.vue?vue&type=script&lang=js\"\nimport style0 from \"./DLabel.vue?vue&type=style&index=0&id=0b7a95ee&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0b7a95ee\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('a',{staticClass:\"u-buttonLink\",attrs:{\"download\":_vm.file.$media_filename,\"href\":_vm.file_url,\"target\":\"_blank\"}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DownloadFile.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DownloadFile.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DownloadFile.vue?vue&type=template&id=ccc6ca94&scoped=true\"\nimport script from \"./DownloadFile.vue?vue&type=script&lang=js\"\nexport * from \"./DownloadFile.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ccc6ca94\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_modal = true}}},[_c('b-icon',{attrs:{\"icon\":_vm.media.$optimized === true ? 'check2-circle' : 'tools'}}),_vm._v(\" \"+_vm._s(_vm.$t(\"convert\"))+\" \")],1),(_vm.show_modal)?_c('BaseModal2',{attrs:{\"title\":_vm.$t('convert'),\"size\":_vm.modal_width},on:{\"close\":function($event){_vm.show_modal = false}}},[_c('div',{staticClass:\"_cont\"},[(_vm.is_optimizing)?_c('LoaderSpinner',{staticClass:\"_loader\"}):_vm._e(),(!_vm.optimized_file)?_c('div',[_c('DLabel',{attrs:{\"str\":_vm.$t('quality')}}),(_vm.media.$optimized === true)?_c('div',{staticClass:\"u-spacingBottom u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"already_optimized\"))+\" \")]):_vm._e(),_c('div',{staticClass:\"u-spacingBottom\"},[_c('SelectField2',{attrs:{\"value\":_vm.resolution_preset_picked,\"options\":_vm.presets,\"can_edit\":true,\"hide_validation\":true},on:{\"change\":function($event){_vm.resolution_preset_picked = $event}}})],1),_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('div',{staticClass:\"_convertBtns\"},[_c('div',{},[_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.optimizeMedia}},[_c('b-icon',{attrs:{\"icon\":\"tools\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"preview_optimize\"))+\" \")],1)]),_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"wont_remove_original\"))+\" \")])])])],1):_c('div',{},[_c('div',{staticClass:\"u-spacingBottom _mediaPreview\",attrs:{\"data-type\":_vm.optimized_file.$type}},[_c('MediaContent',{attrs:{\"file\":_vm.optimized_file,\"resolution\":1600,\"context\":'full',\"zoom_on_click\":true,\"show_fs_button\":true}})],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('size')}}),_c('div',{staticClass:\"_comp\"},[_c('span',[(_vm.media.$infos && _vm.media.$infos.size)?[_vm._v(\" \"+_vm._s(_vm.formatBytes(_vm.media.$infos.size))+\" \")]:[_vm._v(\" ? \")]],2),_c('b-icon',{attrs:{\"icon\":\"arrow-right-circle\"}}),_c('strong',[(_vm.optimized_file.$infos && _vm.optimized_file.$infos.size)?[_vm._v(\" \"+_vm._s(_vm.formatBytes(_vm.optimized_file.$infos.size))+\" \")]:[_vm._v(\" ? \")]],2)],1)],1),(\n _vm.optimized_file.$type === 'image' ||\n _vm.optimized_file.$type === 'video'\n )?_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('resolution')}}),_c('div',{staticClass:\"_comp\"},[_c('span',[(\n _vm.media.$infos && _vm.media.$infos.width && _vm.media.$infos.height\n )?[_vm._v(\" \"+_vm._s(_vm.media.$infos.width + \"×\" + _vm.media.$infos.height)+\" \")]:[_vm._v(\" ? \")]],2),_c('b-icon',{attrs:{\"icon\":\"arrow-right-circle\"}}),_c('strong',[(\n _vm.optimized_file.$infos &&\n _vm.optimized_file.$infos.width &&\n _vm.optimized_file.$infos.height\n )?[_vm._v(\" \"+_vm._s(_vm.optimized_file.$infos.width + \"×\" + _vm.optimized_file.$infos.height)+\" \")]:[_vm._v(\" ? \")]],2)],1)],1):_vm._e(),_c('hr'),_c('div',{staticClass:\"_btnRow\"},[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.cancel}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-short\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"back\"))+\" \")],1),_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.keepBoth}},[_c('b-icon',{attrs:{\"icon\":\"file-plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"add_optimized_to_lib\"))+\" \")],1),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.replaceOriginal}},[_c('b-icon',{attrs:{\"icon\":\"save2-fill\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"replace_original\"))+\" \")],1)]),_c('div',{})])],1)]):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n \n \n \n \n \n \n
\n \n \n {{ media.$infos.width + \"×\" + media.$infos.height }}\n \n \n \n \n \n \n {{\n optimized_file.$infos.width +\n \"×\" +\n optimized_file.$infos.height\n }}\n \n \n \n
\n \n
\n
\n \n \n \n {{ $t(\"add_optimized_to_lib\") }}\n \n \n \n {{ $t(\"replace_original\") }}\n \n
\n
\n \n \n \n \n\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OptimizeMedia.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./OptimizeMedia.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./OptimizeMedia.vue?vue&type=template&id=0afecfa4&scoped=true\"\nimport script from \"./OptimizeMedia.vue?vue&type=script&lang=js\"\nexport * from \"./OptimizeMedia.vue?vue&type=script&lang=js\"\nimport style0 from \"./OptimizeMedia.vue?vue&type=style&index=0&id=0afecfa4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0afecfa4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_imageselect\"},[(!_vm.image)?[(_vm.available_options.includes('import'))?_c('div',{staticClass:\"_imageselect--upload\"},[_c('input',{staticClass:\"inputfile-2\",attrs:{\"type\":\"file\",\"accept\":\"image/*\",\"id\":_vm.id},on:{\"change\":_vm.onFileChange}}),_c('label',{staticClass:\"u-button\",attrs:{\"for\":_vm.id}},[_c('svg',{attrs:{\"width\":\"20\",\"height\":\"17\",\"viewBox\":\"0 0 20 17\"}},[_c('path',{attrs:{\"d\":\"M10 0l-5.2 4.9h3.3v5.1h3.8v-5.1h3.3l-5.2-4.9zm9.3 11.5l-3.2-2.1h-2l3.4 2.6h-3.5c-.1 0-.2.1-.2.1l-.8 2.3h-6l-.8-2.2c-.1-.1-.1-.2-.2-.2h-3.6l3.4-2.6h-2l-3.2 2.1c-.4.3-.7 1-.6 1.5l.6 3.1c.1.5.7.9 1.2.9h16.3c.6 0 1.1-.4 1.3-.9l.6-3.1c.1-.5-.2-1.2-.7-1.5z\"}})]),_c('span',[_vm._v(\" \"+_vm._s(_vm._instructions)+\" \")])])]):_vm._e(),(_vm.available_options.includes('project'))?_c('div',{staticClass:\"_imageselect--fromLib\"},[_c('button',{staticClass:\"u-button u-button_orange\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_picker = true}}},[_c('svg',{staticClass:\"inlineSVG\",staticStyle:{\"enable-background\":\"new 0 0 168 168\"},attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 168 168\",\"xml:space\":\"preserve\"}},[_c('path',{staticStyle:{\"fill\":\"var(--c-rouge)\"},attrs:{\"d\":\"M84,0C37.6,0,0,37.6,0,84c0,46.4,37.6,84,84,84c46.4,0,84-37.6,84-84 C168,37.6,130.4,0,84,0z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m42 42h21.6v21h-21.6z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m73.2 42h21.6v21h-21.6z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m104.4 42h21.6v21h-21.6z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m42 73.5h21.6v21h-21.6z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m73.2 73.5h21.6v21h-21.6z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m104.4 73.5h21.6v21h-21.6z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m42 105h21.6v21h-21.6z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m73.2 105h21.6v21h-21.6z\"}}),_c('path',{staticStyle:{\"fill\":\"var(--c-orange)\"},attrs:{\"d\":\"m104.4 105h21.6v21h-21.6z\"}})]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"from_project\"))+\" \")])]),(_vm.show_picker)?_c('PickMediaFromProjects',{attrs:{\"title\":_vm.$t('pick_media'),\"path\":_vm.path,\"select_mode\":'single',\"pick_from_type\":'image'},on:{\"addMedias\":_vm.addMediaFromLib,\"close\":function($event){_vm.show_picker = false}}}):_vm._e()],1):_vm._e(),(_vm.available_options.includes('capture'))?_c('div',{staticClass:\"_imageselect--takePhoto\"},[_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.enable_capture_mode = true}}},[_c('img',{staticClass:\"inlineSVG\",attrs:{\"src\":_vm.$root.publicPath + 'images/i_record.svg'}}),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"take_picture\"))+\" \")])]),(_vm.enable_capture_mode)?_c('CaptureView',{attrs:{\"available_modes\":[],\"selected_mode\":'photo',\"return_temp_media\":true,\"must_validate_media\":false},on:{\"close\":function($event){_vm.enable_capture_mode = false},\"tempMedia\":_vm.tempMedia}}):_vm._e(),(_vm.enable_capture_mode)?_c('div',[_c('button',{attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.enable_capture_mode = false}}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"cancel\")))])])]):_vm._e()],1):_vm._e(),_c('small',{staticClass:\"u-instructions\"},[_vm._v(_vm._s(_vm.$t(\"or_paste_an_image\")))])]:_c('div',{staticClass:\"_imageselect--image\"},[(typeof _vm.image === 'string')?_c('img',{attrs:{\"data-format\":_vm.preview_format,\"src\":_vm.image,\"draggable\":\"false\"}}):_vm._e(),_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.removeImage}},[_vm._v(\" \"+_vm._s(_vm.$t(\"remove_image\"))+\" \")])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImageSelect.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ImageSelect.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ImageSelect.vue?vue&type=template&id=44f04830&scoped=true\"\nimport script from \"./ImageSelect.vue?vue&type=script&lang=js\"\nexport * from \"./ImageSelect.vue?vue&type=script&lang=js\"\nimport style0 from \"./ImageSelect.vue?vue&type=style&index=0&id=44f04830&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"44f04830\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.title,\"size\":'large'},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('div',{staticClass:\"_pickMediaFromProject\"},[(_vm.is_loading)?_c('LoaderSpinner'):[_c('DLabel',{attrs:{\"str\":_vm.$t('source_project'),\"instructions\":_vm.$t('media_pickers_instr')}}),(\n _vm.sorted_projects &&\n Array.isArray(_vm.sorted_projects) &&\n _vm.sorted_projects.length === 0\n )?_c('div',{key:'noprojects',staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"no_projects\"))+\" \")]):_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.source_project_path),expression:\"source_project_path\"}],staticClass:\"u-spacingBottom\",on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.source_project_path=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.sorted_projects),function(project){return _c('option',{key:project.$path,domProps:{\"value\":project.$path,\"textContent\":_vm._s(project.title)}})}),0),(_vm.meta_filenames_already_present)?_c('ToggleInput',{staticClass:\"u-spacingBottom\",attrs:{\"content\":_vm.hide_already_present_medias,\"label\":_vm.$t('hide_already_present_medias')},on:{\"update:content\":function($event){_vm.hide_already_present_medias=$event}}}):_vm._e(),(_vm.source_project_path)?_c('div',{staticClass:\"_projectLib\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('medias')}}),_c('transition',{attrs:{\"name\":\"fade_fast\"}},[(_vm.is_loading_project)?_c('LoaderSpinner',{key:\"spinner\",staticClass:\"_loader\"}):_c('MediaLibrary',{key:\"medialib\",staticClass:\"_mediaLib\",attrs:{\"project\":_vm.source_project,\"media_focused\":_vm.media_focused,\"select_mode\":_vm.select_mode,\"hide_already_present_medias\":_vm.hide_already_present_medias,\"meta_filenames_already_present\":_vm.meta_filenames_already_present,\"show_only_media_type\":_vm.pick_from_type},on:{\"update:media_focused\":function($event){_vm.media_focused = $event},\"addMedias\":_vm.addMedias}})],1)],1):_vm._e()]],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PickMediaFromProjects.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PickMediaFromProjects.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PickMediaFromProjects.vue?vue&type=template&id=222c973e&scoped=true\"\nimport script from \"./PickMediaFromProjects.vue?vue&type=script&lang=js\"\nexport * from \"./PickMediaFromProjects.vue?vue&type=script&lang=js\"\nimport style0 from \"./PickMediaFromProjects.vue?vue&type=style&index=0&id=222c973e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"222c973e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:\"u-button u-button_verysmall _editBtn\",class:{\n 'is--unfolded': _vm.is_unfolded,\n },style:(_vm.btn_styles),attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('click')}}},[_c('span',{staticClass:\"_label\",attrs:{\"data-position\":_vm.label_position}},[(_vm.label)?[_vm._v(_vm._s(_vm.label))]:[_vm._v(_vm._s(_vm.btn_props.label))]],2),_c('b-icon',{staticClass:\"_icon\",attrs:{\"icon\":_vm.btn_props.icon}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditBtn.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EditBtn.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EditBtn.vue?vue&type=template&id=28985622&scoped=true\"\nimport script from \"./EditBtn.vue?vue&type=script&lang=js\"\nexport * from \"./EditBtn.vue?vue&type=script&lang=js\"\nimport style0 from \"./EditBtn.vue?vue&type=style&index=0&id=28985622&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"28985622\",\n null\n \n)\n\nexport default component.exports","export default {\n computed: {},\n methods: {\n formatTime(date, options) {\n return new Date(date).toLocaleTimeString(this.$i18n.locale, options);\n },\n formatDate(date, options) {\n return new Date(date).toLocaleDateString(this.$i18n.locale, options);\n },\n formatDateToHuman(date) {\n return this.formatDate(date, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n });\n },\n formatDateTimeToHuman(date) {\n return this.formatDate(date, {\n weekday: \"long\",\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n });\n },\n formatDateToPrecise(date) {\n return this.formatDate(date, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n });\n },\n formatDateTimeToPrecise(date) {\n return this.formatDate(date, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n });\n },\n formatDateToHoursMinutesOnly(date) {\n return this.formatDate(date, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\",\n hour: \"numeric\",\n minute: \"numeric\",\n second: \"numeric\",\n });\n },\n formatDurationToHoursMinutesSeconds(seconds) {\n const h = Math.floor(seconds / 3600);\n const m = Math.floor((seconds % 3600) / 60);\n const s = Math.floor(seconds % 60);\n return [h, m > 9 ? m : h ? \"0\" + m : m || \"0\", s > 9 ? s : \"0\" + s]\n .filter(Boolean)\n .join(\":\");\n },\n formatDurationToHoursMinutesSecondsDeciseconds(seconds) {\n const ds = (seconds % 1).toFixed(1).substring(1);\n // const ds = (\n // +(seconds % 1).toFixed(1).toLocaleString(this.$i18n.locale) + \"\"\n // ).substring(1);\n return this.formatDurationToHoursMinutesSeconds(seconds) + ds;\n },\n datetimeLocal(datetime) {\n const dt = new Date(datetime);\n dt.setMinutes(dt.getMinutes() - dt.getTimezoneOffset());\n return dt.toISOString().slice(0, 16);\n },\n },\n};\n","export default {\n computed: {},\n methods: {\n formatBytes(a, b) {\n if (a === 0) return `0 ${this.$t(\"bytes\")}`;\n\n var e = [\n this.$t(\"bytes\"),\n this.$t(\"kb\"),\n this.$t(\"mb\"),\n this.$t(\"gb\"),\n \"TB\",\n \"PB\",\n \"EB\",\n \"ZB\",\n \"YB\",\n ];\n\n var c = 1024,\n d = b || 2,\n f = Math.floor(Math.log(a) / Math.log(c));\n const n = parseFloat((a / Math.pow(c, f)).toFixed(d));\n return n.toLocaleString(this.$i18n.locale) + \" \" + e[f];\n },\n },\n};\n","export default {\n computed: {},\n methods: {\n extractArr(folder_arr, prop) {\n return folder_arr\n .reduce((acc, f) => {\n const p = f[prop];\n if (p)\n if (typeof p === \"string\") acc.push(p);\n else if (Array.isArray(p)) acc = acc.concat(p);\n return acc;\n }, [])\n .filter((value, index, array) => array.indexOf(value) === index)\n .sort((a, b) => {\n return a.localeCompare(b);\n });\n },\n roundToDec(num, expo = 2) {\n return Math.round((num + Number.EPSILON) * 10 ** expo) / 10 ** expo;\n },\n constrainVal(num, min, max) {\n return Math.min(Math.max(parseInt(num), min), max);\n },\n },\n};\n","export default {\n computed: {},\n methods: {\n getFromCache(path) {\n if (this.$api.store[path]) return this.$api.store[path];\n\n const type = path.split(\"/\")[0];\n if (this.$api.store[type])\n return this.$api.store[type].find((s) => s.$path === path);\n\n return false;\n },\n },\n};\n","export default {\n computed: {},\n methods: {\n makeRelativeURLFromThumbs({ $type, $path, $thumbs, resolution }) {\n if (!$thumbs) return false;\n\n let thumb_path = \"\";\n try {\n if ($type === \"image\") thumb_path = $thumbs[resolution];\n if ($type === \"video\")\n if ($thumbs[\"50pc\"]) thumb_path = $thumbs[\"50pc\"][resolution];\n else thumb_path = $thumbs[0][resolution];\n if ($type === \"audio\") thumb_path = $thumbs.waveform[resolution];\n if ($type === \"stl\") thumb_path = $thumbs[\"0\"][resolution];\n if ($type === \"pdf\") thumb_path = $thumbs[\"page-1\"][resolution];\n if ($type === \"url\") thumb_path = $thumbs[\"ogimage\"][resolution];\n } catch (err) {\n return false;\n }\n\n if ($path === \"\") return `/thumbs/${thumb_path}`;\n\n return `/thumbs/${$path}/${thumb_path}`;\n },\n getFirstThumbURLForMedia({ file, resolution }) {\n const path_to_parent = file.$path.substring(\n 0,\n file.$path.lastIndexOf(\"/\")\n );\n return this.makeRelativeURLFromThumbs({\n $thumbs: file.$thumbs,\n $type: file.$type,\n $path: path_to_parent,\n resolution: resolution,\n });\n },\n makeMediaFilePath({ $path, $media_filename }) {\n const path_to_parent_folder = $path.substring(0, $path.lastIndexOf(\"/\"));\n const full_path = path_to_parent_folder + \"/\" + $media_filename;\n return full_path;\n },\n makeMediaFileURL({ $path, $media_filename }) {\n const full_path = this.makeMediaFilePath({ $path, $media_filename });\n return window.location.origin + \"/\" + full_path;\n },\n getSourceMedia({ source_media, folder_path }) {\n // three cases : source_media contains\n // - meta_filename, meaning media belongs to publication path\n // - meta_filename_in_project, meaning media belongs to project path\n // - path, meaning media has full path to project or publi media (legacy)\n\n let source_path = undefined;\n let meta_filename = undefined;\n\n if (source_media._media) return source_media._media;\n else if (source_media.meta_filename) {\n source_path = folder_path;\n meta_filename = source_media.meta_filename;\n } else if (source_media.meta_filename_in_project) {\n source_path = this.getParent(this.getParent(folder_path));\n meta_filename = source_media.meta_filename_in_project;\n } else if (source_media.path) {\n if (source_media.path.includes(\"publications\")) {\n source_path = folder_path;\n } else {\n source_path = this.getParent(this.getParent(folder_path));\n }\n meta_filename = this.getFilename(source_media.path);\n }\n if (!source_path) {\n return this.$alertify.delay(4000).error(\"couldnt find media\");\n }\n return this.getMediaInFolder({ folder_path: source_path, meta_filename });\n },\n getMediaInFolder({\n path_to_source_media_meta,\n folder_path,\n meta_filename,\n }) {\n if (path_to_source_media_meta && !folder_path && !meta_filename) {\n folder_path = this.getParent(path_to_source_media_meta);\n meta_filename = this.getFilename(path_to_source_media_meta);\n }\n return this.$api.store[folder_path]?.$files?.find(\n ({ $path }) => $path === folder_path + \"/\" + meta_filename\n );\n },\n\n transformURL({ url: og_url, autoplay }) {\n function addhttp(url) {\n if (!/^(?:f|ht)tps?:\\/\\//.test(url)) {\n url = \"http://\" + url;\n }\n return url;\n }\n const cleaned_up_url = addhttp(og_url);\n function urlContains(url, strings) {\n return strings.some((s) => url.includes(s));\n }\n\n if (urlContains(cleaned_up_url, [\"peertube.fr\"]))\n return {\n type: \"peertube\",\n src: this.getPeertubeEmbedFromUrl(cleaned_up_url, autoplay),\n };\n else if (urlContains(cleaned_up_url, [\"youtube.com\", \"youtu.be\"]))\n return {\n type: \"youtube\",\n src: this.getYoutubeEmbedURLFromURL(cleaned_up_url, autoplay),\n };\n else if (urlContains(cleaned_up_url, [\"vimeo.com\"]))\n return {\n type: \"vimeo\",\n src: this.getVimeoEmbedURLFromURL(cleaned_up_url, autoplay),\n };\n else if (urlContains(cleaned_up_url, [\"soundcloud.com\"]))\n return {\n type: \"soundcloud\",\n src: this.getSoundcloudEmbedURLFromURL(this.media.content),\n };\n\n return {\n type: \"any\",\n src: cleaned_up_url,\n };\n },\n\n getPeertubeEmbedFromUrl(url, autoplay_value) {\n const video_id = url.split(\"/\").at(-1);\n return `https://peertube.fr/videos/embed/${video_id}?autoplay=${autoplay_value}`;\n\n // const MATCH_URL = new RegExp(\"(https?)://(.*)(/videos/watch/|/w/)(.*)\");\n // const m = MATCH_URL.exec(url);\n // return `${m[1]}://${m[2]}/videos/embed/${m[3]}?api=1&controls=${true}`;\n },\n getTweetIdFromURL(url) {\n let tweetRegex =\n /^https?:\\/\\/twitter\\.com\\/(?:#!\\/)?(\\w+)\\/status(es)?\\/([0-9]{19})/;\n return url.match(tweetRegex)[3];\n },\n getYoutubeEmbedURLFromURL(url, autoplay_value) {\n function getId(url) {\n const regExp =\n /^.*(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 const video_id = getId(url);\n return `https://www.youtube.com/embed/${video_id}?autoplay=${autoplay_value}&iv_load_policy=3&modestbranding=1&playsinline=1&showinfo=0&rel=0&enablejsapi=1`;\n },\n getVimeoEmbedURLFromURL(url, autoplay_value) {\n function getId(url) {\n const regExp = /(?:vimeo)\\.com.*(?:videos|video|channels|)\\/([\\d]+)/i;\n const match = url.match(regExp);\n return match ? match[1] : null;\n }\n const video_id = getId(url);\n return `https://player.vimeo.com/video/${video_id}?autoplay=${autoplay_value}loop=false&byline=false&portrait=false&title=false&transparent=0&dnt=true&playsinline=true`;\n },\n getSoundcloudEmbedURLFromURL(url) {\n return `https://w.soundcloud.com/player/?url=${url}&color=0066cc`;\n },\n groupFilesBy(files, fields, group_by) {\n const grouped = files.reduce((group, file) => {\n // var key = file.$date_uploaded;\n\n const date_field_to_use = fields.find((field) =>\n Object.prototype.hasOwnProperty.call(file, field)\n );\n\n var dateObj = new Date(file[date_field_to_use]);\n\n var month = dateObj.getUTCMonth() + 1; //months from 1-12\n var day = dateObj.getUTCDate();\n var year = dateObj.getUTCFullYear();\n\n let key;\n if (group_by === \"day\") key = year + \"/\" + month + \"/\" + day;\n if (group_by === \"month\") key = year + \"/\" + month + \"/\" + \"1\";\n if (group_by === \"year\") key = year;\n\n if (!Object.prototype.hasOwnProperty.call(group, key)) group[key] = [];\n group[key].push(file);\n return group;\n }, {});\n let ordered = [];\n for (const k in grouped)\n if (!Object.prototype.hasOwnProperty.call(ordered, k)) ordered.push(k);\n ordered.sort((a, b) => {\n return +new Date(b) - +new Date(a);\n });\n return ordered.map((o) => {\n let date_label;\n if (group_by === \"day\")\n date_label = this.formatDate(o, {\n year: \"numeric\",\n month: \"long\",\n day: \"numeric\",\n });\n else if (group_by === \"month\")\n date_label = this.formatDate(o, {\n year: \"numeric\",\n month: \"long\",\n });\n else date_label = o;\n return {\n label: date_label,\n files: grouped[o],\n };\n });\n },\n displayDuration({ media }) {\n if ([\"video\", \"audio\"].includes(media.$type))\n if (media.$infos.duration)\n return this.formatDurationToHoursMinutesSeconds(\n media.$infos.duration\n );\n else return \"•:••\";\n return false;\n },\n fileShouldBeOptimized({ path }) {\n if (!path) return false;\n const ext = [\n \".heic\",\n\n \".cr3\",\n \".cr2\",\n \".raf\",\n \".dng\",\n \".rwl\",\n \".nef\",\n \".rw2\",\n \".x3f\",\n \".arw\",\n\n \".tif\",\n \".tiff\",\n \".webp\",\n\n \".amr\",\n \".wma\",\n \".aif\",\n \".flac\",\n\n \".flv\",\n \".mov\",\n \".avi\",\n ];\n return ext.some((e) => path.toLowerCase().endsWith(e));\n },\n fileCanBeOptimized({ path }) {\n if (!path) return false;\n if (this.fileShouldBeOptimized({ path })) return true;\n const ext = [\n \".webm\",\n \".mp4\",\n\n \".jpeg\",\n \".jpg\",\n\n \".wav\",\n \".m4a\",\n \".ogg\",\n \".mp3\",\n \".aac\",\n ];\n return ext.some((e) => path.toLowerCase().endsWith(e));\n },\n },\n};\n","export default {\n computed: {\n connected_as() {\n if (this.$api.tokenpath.token_path)\n return this.$api.store[this.$api.tokenpath.token_path];\n return false;\n },\n is_instance_admin() {\n // return true;\n return this.authorIsInstance({\n field: \"$admins\",\n folder_path: this.connected_as?.$path,\n });\n },\n is_instance_contributor() {\n return this.authorIsInstance({\n field: \"$contributors\",\n folder_path: this.connected_as?.$path,\n });\n },\n },\n methods: {\n authorIsInstance({ field, folder_path }) {\n const $ = this.$root.app_infos.instance_meta[field];\n return $.includes(folder_path) || $ === \"everyone\";\n },\n isOwnItem({ folder }) {\n if (this.connected_as?.$path)\n return (\n folder.$admins?.includes(this.connected_as.$path) ||\n folder.$contributors?.includes(this.connected_as.$path) ||\n folder.$authors?.includes(this.connected_as.$path)\n );\n return false;\n },\n getAuthor(author_path) {\n const folder_path = author_path.substring(\n 0,\n author_path.lastIndexOf(\"/\")\n );\n if (!folder_path || !this.$api.store[folder_path]) return false;\n return this.$api.store[folder_path].find((f) => f.$path === author_path);\n },\n setDefaultContentAdmins() {\n if (this.connected_as) return [this.$api.tokenpath.token_path];\n return \"everyone\";\n },\n canLoggedinEditFolder({ folder }) {\n if (this.is_instance_admin) return true;\n if (folder.$admins === \"everyone\") return true;\n if (!this.connected_as) return false;\n if (\n Array.isArray(folder.$admins) &&\n folder.$admins.includes(this.connected_as.$path)\n )\n return true;\n\n // todo : check if parent folder match as well\n\n return false;\n },\n canLoggedinContributeToFolder({ folder }) {\n if (this.canLoggedinEditFolder({ folder })) return true;\n\n if (folder.$contributors === \"everyone\") return true;\n if (!this.connected_as) return false;\n if (\n Array.isArray(folder.$contributors) &&\n folder.$contributors.includes(this.connected_as.$path)\n )\n return true;\n\n return false;\n },\n canLoggedinSeeFolder({ folder }) {\n // todo do this API side\n // invisible is the old name for private\n if (folder.$status !== \"invisible\" && folder.$status !== \"private\")\n return true;\n if (!this.connected_as) return false;\n if (this.is_instance_admin) return true;\n if (\n Array.isArray(folder.$admins) &&\n folder.$admins.includes(this.connected_as.$path)\n )\n return true;\n if (\n Array.isArray(folder.$contributors) &&\n folder.$contributors.includes(this.connected_as.$path)\n )\n return true;\n return false;\n },\n canPublicSeeFolder({ folder }) {\n // if instance is protected by general password, we need to make sur that the folder has $public: true\n if (this.$root.app_infos.instance_meta.has_general_password)\n return folder.$public === true;\n return true;\n },\n },\n};\n","export default {\n computed: {},\n methods: {},\n};\n","export default {\n computed: {},\n methods: {\n calculateZoomToFit({\n width,\n height,\n desired_largest_dimension,\n magnification,\n }) {\n const largest_dimension = Math.max(width, height);\n return desired_largest_dimension / (largest_dimension * magnification);\n },\n findModuleFromMetaFilename({ files, meta_filename }) {\n if (!files) return [];\n return files.find((f) => {\n const _meta_name = this.getFilename(f.$path);\n return _meta_name === meta_filename;\n });\n },\n getModulesForPage({ modules, page_id }) {\n return (\n modules\n .filter((f) => f.page_id === page_id)\n .sort(\n (a, b) => +new Date(b.$date_uploaded) - +new Date(a.$date_uploaded)\n ) || []\n ).reverse();\n },\n getModulesForSection({ publication, section }) {\n if (Array.isArray(section?.modules_list)) {\n const modules_list = section.modules_list.reduce(\n (acc, meta_filename) => {\n const _module = this.findModuleFromMetaFilename({\n files: publication.$files,\n meta_filename,\n });\n if (_module) acc.push({ meta_filename, _module });\n return acc;\n },\n []\n );\n return modules_list;\n }\n return [];\n },\n\n makeStoryStyles({ publication }) {\n const width = (publication.story_width || 900) + \"px\";\n if (publication.story_is_not_responsive === true)\n return { width, maxWidth: \"none\" };\n else return { maxWidth: width };\n },\n setPaginationFromPublication(publication) {\n if (publication.enable_pagination !== true) return false;\n return {\n right: publication.pagn_right || 2,\n bottom: publication.pagn_bottom || 2,\n pagination_start_on_page: publication.pagn_starts_on_page - 1 || 0,\n };\n },\n makeSpread({ pages }) {\n // turn pages array into [[{id:\"\"}, {id:\"\"}], [{id:\"\"}, {id:\"\"}], [{id:\"\"}, {id:\"\"}], …]\n const number_of_spreads = Math.floor(pages.length / 2 + 1);\n let spreads = [];\n let index = 0;\n\n for (let i = 0; i < number_of_spreads; i++) {\n if (spreads.length === 0) {\n spreads.push([false, pages[index]]);\n index += 1;\n } else {\n const left_page = pages[index];\n const right_page =\n index + 1 < pages.length ? pages[index + 1] : false;\n\n spreads.push([left_page, right_page]);\n index += 2;\n }\n }\n return spreads;\n },\n firstMedia(page_module) {\n if (!page_module) return false;\n try {\n const source_media = page_module.source_medias[0];\n const publication_path = this.getParent(page_module.$path);\n\n return this.getSourceMedia({\n source_media,\n folder_path: publication_path,\n });\n } catch (err) {\n return false;\n }\n },\n async duplicateModuleWithSourceMedias({ og_module, addtl_meta_to_module }) {\n let new_meta = {};\n const new_source_medias = [];\n\n for (let {\n path,\n meta_filename_in_project,\n meta_filename,\n ...props\n } of og_module.source_medias) {\n let new_media_obj = Object.assign({}, props);\n\n if (path) {\n // old school path prop: could be either path to text in /publications\n // or path to media in parent project\n // now we only extract the meta_filename to make projects and publications portable, independent from the space\n if (path.includes(\"/publications/\"))\n meta_filename = this.getFilename(path);\n else meta_filename_in_project = this.getFilename(path);\n }\n\n if (meta_filename) {\n const og_file_path = this.getSourceMedia({\n source_media: { meta_filename },\n folder_path: this.getParent(og_module.$path),\n }).$path;\n const copy_file_path = await this.$api.copyFile({\n path: og_file_path,\n });\n new_media_obj.meta_filename = copy_file_path;\n } else if (meta_filename_in_project) {\n // linked media in project\n new_media_obj.meta_filename_in_project = meta_filename_in_project;\n }\n new_source_medias.push(new_media_obj);\n }\n new_meta.source_medias = new_source_medias;\n\n Object.assign(new_meta, addtl_meta_to_module);\n\n const meta_filename = await this.$api\n .copyFile({\n path: og_module.$path,\n new_meta,\n })\n .catch((err) => {\n this.$alertify.delay(4000).error(err);\n throw err;\n });\n return meta_filename;\n },\n\n /////////////////////////////////////////////////////\n\n getSectionsList({ publication, group }) {\n return Array.isArray(publication[group]) ? publication[group] : [];\n },\n getSectionsWithProps({ publication, group }) {\n return this.getSectionsList({\n publication: publication,\n group,\n }).reduce((acc, l) => {\n const section_module = this.findModuleFromMetaFilename({\n files: publication.$files,\n meta_filename: l.meta_filename,\n });\n if (section_module) acc.push(section_module);\n return acc;\n }, []);\n },\n async createSection2({ publication, type, group, title }) {\n let additional_meta = {\n section_type: \"-\",\n section_title: title,\n requested_slug: type,\n };\n\n const section_meta_filename = await this.$api\n .uploadFile({\n path: publication.$path,\n additional_meta,\n })\n .catch((err) => {\n this.$alertify.delay(4000).error(err);\n throw err;\n });\n\n let sections_list = this.getSectionsList({ publication, group }).slice();\n sections_list.push({\n meta_filename: section_meta_filename,\n });\n\n await this.$api.updateMeta({\n path: publication.$path,\n new_meta: {\n [group]: sections_list,\n },\n });\n\n return section_meta_filename;\n },\n async removeSection2({ publication, group, path }) {\n const section_meta_filename = this.getFilename(path);\n let sections_list = this.getSectionsList({ publication, group }).slice();\n sections_list = sections_list.filter(\n (f) => f.meta_filename !== section_meta_filename\n );\n\n await this.$api.updateMeta({\n path: publication.$path,\n new_meta: {\n [group]: sections_list,\n },\n });\n\n await this.$api.deleteItem({\n path,\n });\n },\n async insertModuleMetaFilenamesToList2({\n publication,\n section,\n index,\n meta_filenames,\n }) {\n const section_modules_list = this.getModulesForSection({\n publication,\n section,\n });\n let modules_list = section_modules_list.map((m) => m.meta_filename);\n\n if (typeof index !== \"number\")\n modules_list = modules_list.concat(meta_filenames);\n else modules_list.splice(index, 0, ...meta_filenames);\n\n await this.$api.updateMeta({\n path: section.$path,\n new_meta: {\n modules_list,\n },\n });\n },\n\n async moveModuleTo2({ publication, section, meta_filename, new_position }) {\n let modules_list = this.getModulesForSection({\n publication,\n section,\n }).map((m) => m.meta_filename);\n\n const target_meta_index = modules_list.findIndex(\n (m) => m === meta_filename\n );\n modules_list.move(target_meta_index, new_position);\n\n await this.$api.updateMeta({\n path: section.$path,\n new_meta: {\n modules_list,\n },\n });\n },\n\n async duplicatePublicationMedia2({\n publication,\n section,\n source_meta_filename,\n copy_meta_filename,\n }) {\n let modules_list = this.getModulesForSection({\n publication,\n section,\n }).map((m) => m.meta_filename);\n\n const position_of_original_media = modules_list.findIndex(\n (_mf) => _mf === source_meta_filename\n );\n\n modules_list.splice(\n position_of_original_media + 1,\n 0,\n copy_meta_filename\n );\n\n await this.$api.updateMeta({\n path: section.$path,\n new_meta: {\n modules_list,\n },\n });\n },\n\n async removeModule2({ publication, section, path }) {\n const meta_filename = this.getFilename(path);\n\n let modules_list = this.getModulesForSection({\n publication,\n section,\n })\n .map((m) => m.meta_filename)\n .slice()\n .filter((_mf) => _mf !== meta_filename);\n await this.$api.updateMeta({\n path: section.$path,\n new_meta: {\n modules_list,\n },\n });\n },\n\n getMediasAlreadyPresentInPublication({\n publication,\n sections,\n opened_section_meta_filename,\n }) {\n const current = [];\n const other = [];\n\n sections.map((s) => {\n const is_current_section =\n this.getFilename(s.$path) === opened_section_meta_filename;\n\n const modules = this.getModulesForSection({\n publication,\n section: s,\n });\n\n modules.map(({ _module }) => {\n if (_module?.source_medias && Array.isArray(_module.source_medias))\n _module.source_medias.map((sm) => {\n if (is_current_section) current.push(sm.meta_filename_in_project);\n else other.push(sm.meta_filename_in_project);\n });\n });\n });\n return { current, other };\n },\n\n async prepareMediaForPublication({\n path_to_source_media_meta,\n publication_path,\n import_mode = \"link\",\n }) {\n // check if media is already in publication, in which case we do nothing\n // for dodoc: texts in publi\n // for lumadoc: texts and images\n if (this.getParent(path_to_source_media_meta) === this.publication_path)\n return { meta_filename: this.getFilename(path_to_source_media_meta) };\n\n if (import_mode === \"link\") {\n // check if already in parent project\n const parent_project_path_for_media = this.getParent(\n path_to_source_media_meta\n );\n const parent_project_path_for_publi = this.getParent(\n this.getParent(publication_path)\n );\n\n let meta_filename_in_project;\n\n // if media is not in parent project, we'll copy it first to the project\n if (parent_project_path_for_media !== parent_project_path_for_publi) {\n meta_filename_in_project = await this.$api\n .copyFile({\n path: path_to_source_media_meta,\n path_to_destination_folder: parent_project_path_for_publi,\n })\n .catch((err_code) => {\n this.$alertify.delay(4000).error(err_code);\n throw \"fail\";\n });\n } else {\n meta_filename_in_project = this.getFilename(\n path_to_source_media_meta\n );\n }\n\n return { meta_filename_in_project };\n } else if (import_mode === \"copy\") {\n // if copy, we copy media to the local folder and append meta_filename\n const parent_project_path_for_media = this.getParent(\n path_to_source_media_meta\n );\n\n let meta_filename;\n if (parent_project_path_for_media !== publication_path) {\n meta_filename = await this.$api\n .copyFile({\n path: path_to_source_media_meta,\n path_to_destination_folder: publication_path,\n })\n .catch((err_code) => {\n this.$alertify.delay(4000).error(err_code);\n throw \"fail\";\n });\n } else {\n meta_filename = this.getFilename(path_to_source_media_meta);\n }\n\n return { meta_filename };\n }\n },\n getModuleType(t) {\n if ([\"ellipsis\", \"rectangle\", \"line\", \"arrow\"].includes(t))\n return \"shape\";\n return t;\n },\n },\n};\n","export default {\n computed: {},\n methods: {\n createURLFromPath(path) {\n // from spaces/tiers-lieux-edu/projects/mon-premier-projet\n // to /+tiers-lieux-edu/projects/mon-premier-projet\n const path_without_space = path\n .replace(\"authors/\", \"/@\")\n .replace(\"spaces/\", \"/+\")\n .replace(\"events/\", \"/#\")\n .replace(\"pages/\", \"/p/\")\n .replace(\"projects/\", \"\");\n return path_without_space;\n // return \"/\" + path;\n },\n getParent(path) {\n return path.substring(0, path.lastIndexOf(\"/\"));\n },\n getFilename(path) {\n return path.substring(path.lastIndexOf(\"/\") + 1);\n },\n getFilenameWithoutExt(filename) {\n return filename.substring(0, filename.lastIndexOf(\".\"));\n },\n createURLToSpace(url) {\n return url.split(\"/\").splice(0, 1).join(\"/\");\n },\n decomposePath(path) {\n let obj = {};\n const path_items = path.split(\"/\");\n\n if (path_items.length === 0) return obj;\n if (path_items[0] === \"spaces\") {\n if (path_items[1]) obj.space_slug = path_items[1];\n if (path_items[3]) obj.project_slug = path_items[3];\n }\n if (path_items[0] === \"authors\") {\n if (path_items[1]) obj.author_slug = path_items[1];\n }\n\n return obj;\n },\n createPath({\n space_slug,\n project_slug,\n author_slug,\n event_slug,\n page_slug,\n } = {}) {\n if (author_slug) return `authors/${author_slug}`;\n if (event_slug) return `events/${event_slug}`;\n if (space_slug)\n if (project_slug)\n return `spaces/${space_slug}/projects/${project_slug}`;\n else return `spaces/${space_slug}`;\n if (page_slug) return `pages/${page_slug}`;\n return false;\n },\n getRandomString() {\n return (Math.random().toString(36) + \"00000000000000000\").slice(2, 2 + 3);\n },\n },\n};\n","export default {\n methods: {\n twoStringsMatch(ref, input) {\n // if (input === \"\") return true;\n const _ref = this.normalizeStringForSearch(ref);\n const _input = this.normalizeStringForSearch(input);\n return _ref.startsWith(_input);\n },\n twoStringsSearch(ref, input) {\n // if (input === \"\") return true;\n const _ref = this.normalizeStringForSearch(ref);\n const _input = this.normalizeStringForSearch(input);\n return _ref.includes(_input);\n },\n normalizeStringForSearch(str) {\n return str\n .toLowerCase()\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\");\n },\n cleanUpString(str) {\n return str.trim();\n },\n },\n};\n","export default {\n computed: {},\n methods: {\n updatePageQuery({ prop, val }) {\n let query = {};\n if (this.$route.query)\n query = JSON.parse(JSON.stringify(this.$route.query));\n if (val === false) delete query[prop];\n else if (val) query[prop] = val;\n this.$router.push({ query });\n },\n },\n};\n","export default {\n computed: {},\n methods: {\n isTranslated(tag_type) {\n return [\"level\", \"disciplines\", \"target_audience\"].includes(tag_type);\n },\n translatedPrefix(tag_type) {\n if (this.isTranslated(tag_type))\n if (tag_type === \"disciplines\") return \"di_\";\n else if (tag_type === \"target_audience\") return \"ta_\";\n return;\n },\n },\n};\n","export default {\n computed: {},\n methods: {\n openInFinder({ absolute_path, path }) {\n if (absolute_path)\n window.electronAPI.send(\"toMain\", {\n type: \"open_path\",\n absolute_path,\n });\n else if (path)\n window.electronAPI.send(\"toMain\", {\n type: \"open_path\",\n path,\n });\n },\n },\n};\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport router from \"./router\";\n\nimport \"./utils/icons\";\n\nVue.config.productionTip = false;\n\nconst debug_mode = window.app_infos.debug_mode;\nVue.prototype.$eventHub = new Vue(); // Global event bus\n\nimport {\n i18n,\n changeLocale,\n findMissingTranslations,\n} from \"@/adc-core/lang/i18n.js\";\n\nimport alertify from \"alertify.js\";\nVue.prototype.$alertify = alertify;\n\nimport PortalVue from \"portal-vue\";\nVue.use(PortalVue);\n\nimport VuePlyr from \"vue-plyr\";\nVue.use(VuePlyr, {\n plyr: {\n controls: [\n \"play-large\",\n \"play\",\n \"progress\",\n \"current-time\",\n \"mute\",\n \"volume\",\n \"fullscreen\",\n ],\n iconUrl: `${process.env.BASE_URL}plyr.svg`,\n },\n});\nVue.directive(\"uppercase\", {\n bind(el, _, vnode) {\n el.addEventListener(\"input\", (e) => {\n e.target.value = e.target.value.toUpperCase();\n vnode.componentInstance.$emit(\"input\", e.target.value.toUpperCase());\n });\n },\n});\n\nif (window.app_infos.is_electron)\n document.body.addEventListener(\"click\", (event) => {\n if (\n event.target.tagName === \"A\" &&\n event.target.target === \"_blank\" &&\n !event.target.download\n ) {\n event.preventDefault();\n window.electronAPI.send(\"toMain\", {\n type: \"open_external\",\n url: event.target.href,\n });\n }\n });\n\nimport api from \"@/adc-core/api.js\";\nVue.prototype.$api = api();\n\nimport TitleField from \"@/adc-core/fields/TitleField.vue\";\nVue.component(\"TitleField\", TitleField);\nimport PickNativePath from \"@/adc-core/fields/PickNativePath.vue\";\nVue.component(\"PickNativePath\", PickNativePath);\nimport AuthorField from \"@/adc-core/fields/AuthorField.vue\";\nVue.component(\"AuthorField\", AuthorField);\nimport DetailsPane from \"@/adc-core/ui/DetailsPane.vue\";\nVue.component(\"DetailsPane\", DetailsPane);\nimport DragFile from \"@/adc-core/ui/DragFile.vue\";\nVue.component(\"DragFile\", DragFile);\nimport DropDown from \"@/adc-core/ui/DropDown.vue\";\nVue.component(\"DropDown\", DropDown);\nimport AdminsAndContributorsField from \"@/adc-core/fields/AdminsAndContributorsField.vue\";\nVue.component(\"AdminsAndContributorsField\", AdminsAndContributorsField);\nimport EditAdminsAndContributorsField from \"@/adc-core/fields/EditAdminsAndContributorsField.vue\";\nVue.component(\"EditAdminsAndContributorsField\", EditAdminsAndContributorsField);\nimport StatusTag from \"@/adc-core/fields/StatusTag.vue\";\nVue.component(\"StatusTag\", StatusTag);\nimport FavSwitch from \"@/adc-core/fields/FavSwitch.vue\";\nVue.component(\"FavSwitch\", FavSwitch);\nimport TagsField from \"@/adc-core/fields/TagsField.vue\";\nVue.component(\"TagsField\", TagsField);\nimport CoverField from \"@/adc-core/fields/CoverField.vue\";\nVue.component(\"CoverField\", CoverField);\nimport SelectField from \"@/adc-core/fields/SelectField.vue\";\nVue.component(\"SelectField\", SelectField);\nimport SelectField2 from \"@/adc-core/fields/SelectField2.vue\";\nVue.component(\"SelectField2\", SelectField2);\nimport ToggleField from \"@/adc-core/fields/ToggleField.vue\";\nVue.component(\"ToggleField\", ToggleField);\nimport RadioCheckboxField from \"@/adc-core/fields/RadioCheckboxField.vue\";\nVue.component(\"RadioCheckboxField\", RadioCheckboxField);\nimport RadioCheckboxInput from \"@/adc-core/inputs/RadioCheckboxInput.vue\";\nVue.component(\"RadioCheckboxInput\", RadioCheckboxInput);\nimport FilesModule from \"@/adc-core/fields/FilesModule.vue\";\nVue.component(\"FilesModule\", FilesModule);\nimport DebugBtn from \"@/adc-core/DebugBtn.vue\";\nVue.component(\"DebugBtn\", DebugBtn);\nimport DownloadFolder from \"@/adc-core/fields/DownloadFolder.vue\";\nVue.component(\"DownloadFolder\", DownloadFolder);\nimport RemoveMenu from \"@/adc-core/fields/RemoveMenu.vue\";\nVue.component(\"RemoveMenu\", RemoveMenu);\nimport TagsList from \"@/adc-core/ui/TagsList.vue\";\nVue.component(\"TagsList\", TagsList);\nimport SingleTag from \"@/adc-core/ui/SingleTag.vue\";\nVue.component(\"SingleTag\", SingleTag);\nimport ReorderedList from \"@/adc-core/ui/ReorderedList.vue\";\nVue.component(\"ReorderedList\", ReorderedList);\n\nimport QRModal from \"@/adc-core/modals/QRModal.vue\";\nVue.component(\"QRModal\", QRModal);\n//\nimport BaseModal2 from \"@/adc-core/modals/BaseModal2.vue\";\nVue.component(\"BaseModal2\", BaseModal2);\nimport RadioSwitch from \"@/adc-core/ui/RadioSwitch.vue\";\nVue.component(\"RadioSwitch\", RadioSwitch);\nimport DropZone from \"@/adc-core/ui/DropZone.vue\";\nVue.component(\"DropZone\", DropZone);\nimport AnimatedCounter from \"@/adc-core/ui/AnimatedCounter.vue\";\nVue.component(\"AnimatedCounter\", AnimatedCounter);\n//\nimport TextInput from \"@/adc-core/inputs/TextInput.vue\";\nVue.component(\"TextInput\", TextInput);\nimport NumberInput from \"@/adc-core/inputs/NumberInput.vue\";\nVue.component(\"NumberInput\", NumberInput);\nimport PositionPicker from \"@/adc-core/inputs/PositionPicker.vue\";\nVue.component(\"PositionPicker\", PositionPicker);\nimport ColorInput from \"@/adc-core/inputs/ColorInput.vue\";\nVue.component(\"ColorInput\", ColorInput);\nimport SearchInput from \"@/adc-core/inputs/SearchInput.vue\";\nVue.component(\"SearchInput\", SearchInput);\n\nimport ToggleInput from \"@/adc-core/inputs/ToggleInput.vue\";\nVue.component(\"ToggleInput\", ToggleInput);\nimport ToggledSection from \"@/adc-core/inputs/ToggledSection.vue\";\nVue.component(\"ToggledSection\", ToggledSection);\nimport RangeValueInput from \"@/adc-core/inputs/RangeValueInput.vue\";\nVue.component(\"RangeValueInput\", RangeValueInput);\nimport AuthorPicker from \"@/adc-core/inputs/AuthorPicker.vue\";\nVue.component(\"AuthorPicker\", AuthorPicker);\nimport CreateFolder from \"@/adc-core/modals/CreateFolder\";\nVue.component(\"CreateFolder\", CreateFolder);\nimport ImportFolder from \"@/adc-core/modals/ImportFolder\";\nVue.component(\"ImportFolder\", ImportFolder);\n//\n\nimport SaveCancelButtons from \"@/adc-core/fields/SaveCancelButtons.vue\";\nVue.component(\"SaveCancelButtons\", SaveCancelButtons);\nimport DateDisplay from \"@/adc-core/fields/DateDisplay.vue\";\nVue.component(\"DateDisplay\", DateDisplay);\nimport SizeDisplay from \"@/adc-core/fields/SizeDisplay.vue\";\nVue.component(\"SizeDisplay\", SizeDisplay);\nimport ResolutionDisplay from \"@/adc-core/fields/ResolutionDisplay.vue\";\nVue.component(\"ResolutionDisplay\", ResolutionDisplay);\nimport DurationDisplay from \"@/adc-core/fields/DurationDisplay.vue\";\nVue.component(\"DurationDisplay\", DurationDisplay);\n\nimport DateField from \"@/adc-core/fields/DateField.vue\";\nVue.component(\"DateField\", DateField);\nimport UploadFiles from \"@/adc-core/fields/UploadFiles.vue\";\nVue.component(\"UploadFiles\", UploadFiles);\nimport MediaContent from \"@/adc-core/fields/MediaContent.vue\";\nVue.component(\"MediaContent\", MediaContent);\nimport FullscreenView from \"@/adc-core/fields/FullscreenView.vue\";\nVue.component(\"FullscreenView\", FullscreenView);\nimport CollaborativeEditor2 from \"@/adc-core/fields/collaborative-editor/CollaborativeEditor2.vue\";\nVue.component(\"CollaborativeEditor2\", CollaborativeEditor2);\nimport AuthorTag from \"@/adc-core/fields/AuthorTag.vue\";\nVue.component(\"AuthorTag\", AuthorTag);\nimport DLabel from \"@/adc-core/fields/DLabel.vue\";\nVue.component(\"DLabel\", DLabel);\nimport DownloadFile from \"@/adc-core/fields/DownloadFile.vue\";\nVue.component(\"DownloadFile\", DownloadFile);\nimport OptimizeMedia from \"@/adc-core/fields/OptimizeMedia.vue\";\nVue.component(\"OptimizeMedia\", OptimizeMedia);\nimport ImageSelect from \"@/adc-core/fields/ImageSelect.vue\";\nVue.component(\"ImageSelect\", ImageSelect);\nimport PickMediaFromProjects from \"@/adc-core/fields/PickMediaFromProjects.vue\";\nVue.component(\"PickMediaFromProjects\", PickMediaFromProjects);\n\nimport EditBtn from \"@/adc-core/ui/EditBtn.vue\";\nVue.component(\"EditBtn\", EditBtn);\n\nVue.component(\"LoaderSpinner\", {\n name: \"LoaderSpinner\",\n template: `\n
\n
\n
\n `,\n});\n\ndocument.addEventListener(\n \"dragover\",\n function (event) {\n event.preventDefault();\n return false;\n },\n false\n);\ndocument.addEventListener(\n \"drop\",\n function (event) {\n event.preventDefault();\n return false;\n },\n false\n);\n\nimport FormatDates from \"@/mixins/FormatDates\";\nVue.mixin(FormatDates);\nimport FormatBytes from \"@/mixins/FormatBytes\";\nVue.mixin(FormatBytes);\nimport Props from \"@/mixins/Props\";\nVue.mixin(Props);\nimport Cache from \"@/mixins/Cache\";\nVue.mixin(Cache);\nimport Medias from \"@/mixins/Medias\";\nVue.mixin(Medias);\nimport Authors from \"@/mixins/Authors\";\nVue.mixin(Authors);\nimport Capture from \"@/mixins/Capture\";\nVue.mixin(Capture);\nimport Publications from \"@/mixins/Publications\";\nVue.mixin(Publications);\nimport Paths from \"@/mixins/Paths\";\nVue.mixin(Paths);\nimport Strings from \"@/mixins/Strings\";\nVue.mixin(Strings);\nimport Queries from \"@/mixins/Queries\";\nVue.mixin(Queries);\nimport Tags from \"@/mixins/Tags\";\nVue.mixin(Tags);\nimport Electron from \"@/mixins/Electron\";\nVue.mixin(Electron);\n\nArray.prototype.move = function (from, to) {\n this.splice(to, 0, this.splice(from, 1)[0]);\n};\n\nimport \"axios-debug-log/enable\";\nimport axios from \"axios\";\nconst instance = axios.create({\n baseURL: window.location.origin + \"/_api2\",\n // headers: {\n // Origin: window.location.origin,\n // },\n});\n\ninstance.interceptors.request.use((request) => {\n if (debug_mode)\n alertify.delay(4000).log(\n `⤒ — ${request.method} + ${request.url}\n ${request.data ? `+ ` + JSON.stringify(request.data).slice(0, 30) : \"\"}\n `\n );\n return request;\n});\nVue.prototype.$axios = instance;\n\nnew Vue({\n router,\n i18n: i18n(),\n render: (h) => h(App),\n data: {\n store: window.store,\n app_infos: window.app_infos,\n is_loading: true,\n debug_mode,\n\n publicPath: process.env.BASE_URL,\n\n modal_is_opened: false,\n has_file_dragover_on_window: false,\n\n current_time: \"\",\n\n default_new_module_width: 200,\n default_new_module_height: 200,\n default_new_module_left: 15,\n default_new_module_top: 15,\n set_new_module_offset_left: 0,\n set_new_module_offset_top: 0,\n zoom_offset: 50,\n\n page_magnification: 3.7952,\n\n window: {\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n },\n\n dropzones: [],\n\n publication_include_mode: \"link\",\n },\n created() {\n const getTime = () => new Date().getTime();\n this.current_time = getTime();\n setInterval(() => (this.current_time = getTime()), 1000);\n },\n mounted() {\n this.$eventHub.$on(\"modal.is_opened\", this.modalIsOpened);\n this.$eventHub.$on(\"modal.is_closed\", this.modalIsClosed);\n\n window.addEventListener(\"resize\", () => {\n this.window.innerWidth = window.innerWidth;\n this.window.innerHeight = window.innerHeight;\n });\n\n let debounce_dragover = undefined;\n\n window.addEventListener(\"dragover\", ($event) => {\n if (!$event.dataTransfer?.types?.includes(\"Files\")) return;\n\n if (debounce_dragover) clearTimeout(debounce_dragover);\n this.has_file_dragover_on_window = true;\n debounce_dragover = setTimeout(async () => {\n this.has_file_dragover_on_window = false;\n }, 200);\n });\n },\n watch: {},\n computed: {\n is_mobile_view() {\n // return false;\n return this.window.innerWidth < 1000;\n },\n },\n methods: {\n modalIsOpened() {\n document.body.style.overflow = \"hidden\";\n this.modal_is_opened = true;\n },\n modalIsClosed() {\n document.body.style.overflow = \"\";\n this.modal_is_opened = false;\n },\n async changeLocale(lang) {\n await changeLocale(lang);\n },\n async findMissingTranslations() {\n const translations = await findMissingTranslations();\n return translations;\n },\n registerDropzone({ id, allowed_types }) {\n this.dropzones.push({ id, allowed_types });\n },\n unregisterDropzone({ id: id_to_unregister }) {\n this.dropzones = this.dropzones.filter(\n ({ id }) => id !== id_to_unregister\n );\n },\n fileCanBeDragged({ type }) {\n // never enable drag when a modal is opened\n if (this.modal_is_opened) return false;\n return this.dropzones.some(\n ({ allowed_types }) => !allowed_types || allowed_types.includes(type)\n );\n },\n },\n}).$mount(\"#app\");\n"],"names":["render","_vm","this","_c","_self","staticClass","class","context","attrs","is_self","tag","author_url","nativeOn","$event","$emit","author","$cover","$t","$path","name","substring","can_edit","_e","authorIsInstance","field","folder_path","_v","_s","group","undefined","email","$root","app_infos","instance_meta","require_mail_to_signup","presentation","$location","is_instance_admin","on","show_settings_modal","removeAuthor","staticRenderFns","props","Object","String","components","AdminSettings","data","created","mounted","beforeDestroy","watch","computed","connected_as","createURLFromPath","methods","$api","deleteItem","path","logoutFromFolder","$router","push","component","show_confirm_delete","show_button_text","remove_text","modalClosed","remove_expl","slot","confirmRemove","type","Boolean","default","show_modal_on_startup","is_dragover","has_file_dragover_on_window","id","onDragover","onDragEnter","onDragLeave","onDrop","toLowerCase","multiple","accepts","updateInputFiles","files_to_import","Array","Math","random","toString","slice","window","addEventListener","handlePaste","removeEventListener","modal_is_opened","clipboardData","files","length","from","target","value","fileDropped","preventDefault","dataTransfer","types","includes","directives","rawName","destination_space_path","expression","$$selectedVal","prototype","filter","call","options","o","selected","map","val","_value","_l","sorted_spaces","space","key","domProps","makeSpaceTitle","projects","destination_project_path","sorted_projects","project","makeProjectTitle","spaces","current_space_path","current_project_path","space_slug","project_slug","decomposePath","createPath","getFolders","some","p","s","canLoggedinSeeFolder","folder","sort","a","b","title","localeCompare","is_loaded","$nextTick","mediaJustImported","medias","filtered_medias","select_mode","batch_mode","cancelSelect","selectAllVisibleMedias","fav_filter","origin_of_media_to_display","origins_of_medias","origin","quantityOfMediaWithKey","label","formattedQuantity","type_of_media_to_display","show_only_media_type","types_of_medias","type_of_media","author_of_media_to_display","authors_of_medias","author_of_media","quantityOfMediaWithAuthor","formattedQuantityWithAuthor","tile_mode","group_options","group_option","group_mode","_q","toggleMediaFocus","grouped_medias","ref","refInFor","file","_index","media_just_focused","getFilename","mediaTileIsSelectable","selected_medias","mediaTileAlreadySelected","present","setSelected","addMedias","removeAllMedias","focused_media","focused_media_position_in_list","removeMedia","closeMediaFocus","prevMedia","nextMedia","was_focused","is_dragged","is_selected","is_own_media","style","$origin","index","media_resolution","formatDateToPrecise","$date_uploaded","fav","has_coordinates","duration","$type","caption","is_already_selected","color","is_selectable","Number","project_path","isOwnItem","displayDuration","media","is_mobile_view","optimization_strongly_recommended","toggleMeta","show_meta_sidebar","position_in_list","show_nav_btn","optimization_possible","$listeners","remove","$media_filename","$credits","authors_path","$date_modified","$infos","size","width","height","show_modal","navigation_to_copy","remove_original","true","false","is_copying","confirm","source_title","SpaceProjectPicker","path_to_destination_folder","copy_file_meta","copyFile","new_meta","catch","err_code","$alertify","delay","error","closeLogOnClick","success","query","projectpanes","JSON","stringify","focus","navigation","DuplicateMedia","localStorage","getItem","setTimeout","fileCanBeOptimized","fileShouldBeOptimized","$authors","setItem","media_focused","hide_already_present_medias","meta_filenames_already_present","ImportFileZone","MediaTile","MediaModal","MediaMap","hide_dropzone_timeout","console","log","handleKeyPress","$files","sorted_medias","_medias","parse","Date","reverse","m","groupFilesBy","_focused_media","find","f","$refs","mediaTiles","scrollToMediaTile","focused_media_index","findIndex","reduce","acc","a_path","getAuthor","event","$el","closest","tagName","className","hasAttribute","meta_filename","meta_filename_is_present","list","fm","num","qty","author_path","list_of_added_metas","new_medias_path","concat","filename","openMediaFocus","sm","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","exports","t","document","body","version","defaultOkLabel","okLabel","defaultCancelLabel","cancelLabel","defaultMaxLogItems","maxLogItems","promptValue","promptPlaceholder","closeLogOnClickDefault","defaultDelay","logContainerClass","logContainerDefaultClass","dialogs","buttons","holder","ok","cancel","input","message","defaultDialogs","build","e","replace","setCloseLogOnClick","close","isNaN","dialog","n","setup","onOkay","onCancel","querySelectorAll","i","l","notify","setLogPosition","setupLogContainer","querySelector","createElement","appendChild","logTemplateMethod","innerHTML","buttonClicked","inputValue","which","click","r","textContent","placeholder","Promise","classList","select","okBtn","setDelay","parseInt","cancelBtn","setMaxLogItems","theme","reset","injectCSS","getElementsByTagName","insertBefore","firstChild","removeCSS","parentNode","removeChild","_$$alertify","alert","prompt","defaultValue","logPosition","setLogTemplate","clearLogs","module","define","global","factory","arrayLike","start","newLen","max","newArr","idx","apply","fn","args","arguments","callArgs","initialParams","callback","pop","isObject","_defer","hasSetImmediate","setImmediate","hasNextTick","process","nextTick","fallback","wrap","defer","setImmediate$1","asyncify","func","result","then","invokeCallback","err","Error","rethrow","supportsSymbol","Symbol","isAsync","toStringTag","wrapAsync","asyncFn","applyEach$1","eachfn","fns","go","that","cb","freeGlobal","freeSelf","self","root","Function","Symbol$1","objectProto","hasOwnProperty","nativeObjectToString","symToStringTag$1","getRawTag","isOwn","unmasked","objectProto$1","nativeObjectToString$1","objectToString","nullTag","undefinedTag","symToStringTag","baseGetTag","asyncTag","funcTag","genTag","proxyTag","isFunction","MAX_SAFE_INTEGER","isLength","isArrayLike","breakLoop","noop","once","callFn","iteratorSymbol","iterator","getIterator","coll","baseTimes","iteratee","isObjectLike","argsTag","baseIsArguments","objectProto$3","hasOwnProperty$2","propertyIsEnumerable","isArguments","isArray","stubFalse","freeExports","nodeType","freeModule","moduleExports","Buffer","nativeIsBuffer","isBuffer","MAX_SAFE_INTEGER$1","reIsUint","isIndex","test","argsTag$1","arrayTag","boolTag","dateTag","errorTag","funcTag$1","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","baseUnary","freeExports$1","freeModule$1","moduleExports$1","freeProcess","nodeUtil","require","binding","nodeIsTypedArray","isTypedArray","objectProto$2","hasOwnProperty$1","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","objectProto$5","isPrototype","Ctor","constructor","proto","overArg","transform","arg","nativeKeys","keys","objectProto$4","hasOwnProperty$3","baseKeys","object","createArrayIterator","len","createES2015Iterator","item","next","done","createObjectIterator","obj","okeys","onlyOnce","_eachOfLimit","limit","nextElem","running","looping","iterateeCallback","replenish","elem","eachOfLimit","doLimit","iterable","eachOfArrayLike","completed","iteratorCallback","eachOfGeneric","Infinity","eachOf","eachOfImplementation","doParallel","_asyncMap","arr","results","counter","_iteratee","_","v","applyEach","doParallelLimit","mapLimit","mapSeries","applyEachSeries","arrayEach","array","createBaseFor","fromRight","keysFunc","baseFor","baseForOwn","baseFindIndex","predicate","fromIndex","baseIsNaN","strictIndexOf","baseIndexOf","auto","tasks","concurrency","keys$$1","numTasks","runningTasks","hasError","listeners","create","readyTasks","readyToCheck","uncheckedDependencies","enqueueTask","task","runTask","processQueue","run","shift","addListener","taskName","taskListeners","taskComplete","taskCallback","safeResults","rkey","taskFn","checkForDeadlocks","currentTask","getDependents","dependent","dependencies","remainingDependencies","dependencyName","join","arrayMap","symbolTag","isSymbol","INFINITY","symbolProto","symbolToString","baseToString","baseSlice","end","castSlice","charsEndIndex","strSymbols","chrSymbols","charsStartIndex","asciiToArray","string","split","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","RegExp","hasUnicode","rsAstralRange$1","rsComboMarksRange$1","reComboHalfMarksRange$1","rsComboSymbolsRange$1","rsComboRange$1","rsVarRange$1","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","rsZWJ$1","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","unicodeToArray","match","stringToArray","reTrim","trim","chars","guard","FN_ARGS","FN_ARG_SPLIT","FN_ARG","STRIP_COMMENTS","parseParams","autoInject","newTasks","params","fnIsAsync","hasNoDeps","newTask","taskCb","newArgs","DLL","head","tail","setInitial","dll","node","queue","worker","payload","_worker","numRunning","workersList","processingScheduled","_insert","insertAtFront","q","started","idle","drain","_tasks","unshift","_next","splice","buffer","unsaturated","isProcessing","saturated","empty","paused","kill","testFn","min","pause","resume","cargo","removeLink","prev","insertAfter","newNode","toArray","curr","eachOfSeries","memo","x","seq","_functions","newargs","nextargs","compose","_concat","concatLimit","mapResults","concatSeries","constant","values","identity","_createTester","check","getResult","testResult","testPassed","_findGetResult","detect","detectLimit","detectSeries","consoleFunc","dir","doDuring","_fn","_test","truth","doWhilst","doUntil","during","_withoutIndex","eachLimit","eachLimit$1","eachSeries","ensureAsync","sync","innerArgs","notId","every","everyLimit","everySeries","baseProperty","filterArray","truthValues","filterGeneric","_filter","filterLimit","filterSeries","forever","errback","groupByLimit","groupBy","groupBySeries","mapValuesLimit","newObj","_defer$1","mapValues","mapValuesSeries","has","memoize","hasher","queues","memoized","unmemoized","_parallel","parallelLimit","parallelLimit$1","queue$1","items","priorityQueue","priority","nextNode","race","TypeError","reduceRight","reversed","reflect","reflectCallback","cbArg","reflectAll","reject$1","reject","rejectLimit","rejectSeries","constant$1","retry","opts","DEFAULT_TIMES","DEFAULT_INTERVAL","times","intervalFunc","parseTimes","interval","errorFilter","_task","attempt","retryAttempt","retryable","series","someLimit","someSeries","sortBy","comparator","left","right","criteria","timeout","milliseconds","info","timer","timedOut","timeoutCallback","code","clearTimeout","nativeCeil","ceil","nativeMax","baseRange","step","timeLimit","count","timesSeries","accumulator","k","tryEach","res","unmemoize","whilst","until","waterfall","taskIndex","nextTask","each","parallel","timesLimit","all","allLimit","allSeries","any","anyLimit","anySeries","findLimit","findSeries","forEach","forEachSeries","forEachLimit","forEachOf","forEachOfSeries","forEachOfLimit","inject","foldl","foldr","selectLimit","selectSeries","wrapSync","defineProperty","axios","isAbsoluteURL","buildURL","combineURLs","axiosDebug","URL_KEY","getURL","config","url","baseURL","paramsSerializer","request","debug","method","toUpperCase","response","status","statusText","addLogger","instance","interceptors","use","originalCreate","userOptions","utils","settle","cookies","buildFullPath","parseHeaders","isURLSameOrigin","transitionalDefaults","AxiosError","CanceledError","parseProtocol","platform","resolve","onCanceled","requestData","requestHeaders","headers","responseType","withXSRFToken","cancelToken","unsubscribe","signal","isFormData","isStandardBrowserEnv","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","onloadend","responseHeaders","getAllResponseHeaders","responseData","responseText","open","onreadystatechange","readyState","responseURL","indexOf","onabort","ECONNABORTED","onerror","ERR_NETWORK","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","ETIMEDOUT","xsrfValue","xsrfHeaderName","xsrfCookieName","read","setRequestHeader","isUndefined","withCredentials","onDownloadProgress","onUploadProgress","upload","abort","subscribe","aborted","protocol","protocols","ERR_BAD_REQUEST","send","bind","Axios","mergeConfig","defaults","formDataToJSON","createInstance","defaultConfig","extend","instanceConfig","CancelToken","isCancel","VERSION","toFormData","Cancel","promises","spread","isAxiosError","formToJSON","thing","isHTMLForm","FormData","executor","resolvePromise","promise","token","_listeners","onfulfilled","_resolve","reason","throwIfRequested","listener","source","c","ERR_CANCELED","inherits","__CANCEL__","InterceptorManager","dispatchRequest","validator","validators","configOrUrl","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","encode","function","serialize","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","fulfilled","rejected","responseInterceptorChain","chain","newConfig","onFulfilled","onRejected","getUri","generateHTTPMethod","isForm","captureStackTrace","stack","toJSON","description","number","fileName","lineNumber","columnNumber","descriptors","defineProperties","customProps","axiosError","toFlatObject","cause","assign","handlers","eject","clear","requestedURL","transformData","normalizeHeaderName","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","config1","config2","getMergedValue","isPlainObject","isEmptyObject","mergeDeepProperties","prop","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","configValue","validateStatus","ERR_BAD_RESPONSE","floor","toURLEncodedForm","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","stringifySafely","rawValue","parser","encoder","isString","contentType","hasJSONContentType","isObjectPayload","isFileList","isArrayBuffer","isStream","isFile","isBlob","isArrayBufferView","isURLSearchParams","formSerializer","_FormData","env","JSONRequested","strictJSONParsing","maxContentLength","maxBodyLength","classes","Blob","str","charMap","AxiosURLSearchParams","_pairs","append","_encode","pair","thisArg","hashmarkIndex","serializedParams","serializeFn","relativeURL","write","expires","domain","secure","cookie","isNumber","toGMTString","decodeURIComponent","now","parsePropPath","matchAll","arrayToObject","formData","buildPath","isNumericKey","isFinite","isLast","entries","forEachEntry","originURL","msie","navigator","userAgent","urlParsingNode","resolveURL","href","setAttribute","host","search","hash","hostname","port","pathname","charAt","location","requestURL","parsed","normalizedName","ignoreDuplicateOf","line","exec","envFormData","isVisitable","removeBrackets","endsWith","renderKey","dots","isFlatArray","predicates","isSpecCompliant","metaTokens","indexes","option","visitor","defaultVisitor","_Blob","useBlob","convertValue","isDate","toISOString","el","exposedHelpers","URLSearchParams","helpers","isNode","deprecatedWarnings","schema","allowUnknown","ERR_BAD_OPTION_VALUE","opt","ERR_BAD_OPTION","formatMessage","desc","ERR_DEPRECATED","warn","isBrowser","kindOf","cache","kindOfTest","ArrayBuffer","isView","getPrototypeOf","pipe","pattern","product","assignValue","stripBOM","content","charCodeAt","superConstructor","sourceObj","destObj","propFilter","merged","getOwnPropertyNames","searchString","position","lastIndex","TypedArray","Uint8Array","generator","regExp","matches","_hasOwnProperty","useColors","__nwjs","documentElement","WebkitAppearance","firebug","exception","table","$1","formatArgs","namespace","humanize","diff","lastC","save","namespaces","storage","removeItem","load","DEBUG","localstorage","destroy","warned","colors","formatters","j","selectColor","createDebug","abs","prevTime","namespacesCache","enabledCache","enableOverride","enabled","ms","coerce","format","formatter","logFn","enumerable","configurable","get","set","init","delimiter","newDebug","enable","names","skips","disable","toNamespace","regexp","ReflectOwnKeys","R","Reflect","ReflectApply","receiver","ProcessEmitWarning","warning","ownKeys","getOwnPropertySymbols","NumberIsNaN","EventEmitter","_events","_eventsCount","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","_addListener","prepend","events","newListener","emit","w","emitter","onceWrapper","fired","removeListener","wrapFn","_onceWrap","state","wrapped","unwrap","evlistener","unwrapListeners","arrayClone","listenerCount","copy","spliceOne","ret","errorListener","resolver","eventTargetAgnosticAddListener","addErrorHandlerIfEventEmitter","handler","flags","wrapListener","RangeError","setMaxListeners","getMaxListeners","doError","er","prependListener","prependOnceListener","originalListener","off","removeAllListeners","rawListeners","eventNames","DIFF_DELETE","DIFF_INSERT","DIFF_EQUAL","diff_main","text1","text2","cursor_pos","_fix_unicode","editdiff","find_cursor_edit_diff","commonlength","diff_commonPrefix","commonprefix","diff_commonSuffix","commonsuffix","diffs","diff_compute_","diff_cleanupMerge","longtext","shorttext","hm","diff_halfMatch_","text1_a","text1_b","text2_a","text2_b","mid_common","diffs_a","diffs_b","diff_bisect_","text1_length","text2_length","max_d","v_offset","v_length","v1","v2","delta","front","k1start","k1end","k2start","k2end","d","k1","k1_offset","x1","y1","k2_offset","x2","diff_bisectSplit_","k2","y2","y","text1a","text2a","text1b","text2b","diffsb","pointermin","pointermax","pointermid","pointerstart","is_surrogate_pair_start","pointerend","is_surrogate_pair_end","diff_halfMatchI_","best_longtext_a","best_longtext_b","best_shorttext_a","best_shorttext_b","seed","best_common","prefixLength","suffixLength","hm1","hm2","fix_unicode","pointer","count_delete","count_insert","text_delete","text_insert","previous_equality","ends_with_pair_start","stray","starts_with_pair_end","changes","charCode","remove_empty_tuples","tuples","make_edit_splice","before","oldMiddle","newMiddle","after","oldText","newText","oldRange","newRange","oldLength","newLength","oldCursor","oldBefore","oldAfter","maybeNewCursor","newCursor","newBefore","newAfter","oldPrefix","newPrefix","cursor","oldSuffix","newSuffix","INSERT","DELETE","EQUAL","autoBom","onload","g","dispatchEvent","MouseEvent","createEvent","initMouseEvent","saveAs","HTMLAnchorElement","URL","webkitURL","download","rel","createObjectURL","revokeObjectURL","msSaveOrOpenBlob","innerText","HTMLElement","safari","FileReader","readAsDataURL","hat","bits","base","digits","pow","rem","rack","expandBy","iters","hats","LARGE_ARRAY_SIZE","HASH_UNDEFINED","promiseTag","reRegExpChar","reFlags","reIsHostCtor","cloneableTags","addMapEntry","addSetEntry","arrayPush","offset","arrayReduce","initAccum","getValue","isHostObject","mapToArray","setToArray","arrayProto","funcProto","coreJsData","maskSrcKey","uid","IE_PROTO","funcToString","reIsNative","getPrototype","objectCreate","nativeGetSymbols","DataView","getNative","Map","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolValueOf","valueOf","Hash","entry","hashClear","__data__","hashDelete","hashGet","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","objValue","eq","baseAssign","copyObject","baseClone","isDeep","isFull","customizer","initCloneArray","copyArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbols","initCloneByTag","stacked","getAllKeys","subValue","baseCreate","baseGetAllKeys","symbolsFunc","baseIsNative","isMasked","cloneArrayBuffer","arrayBuffer","byteLength","cloneDataView","dataView","byteOffset","cloneMap","cloneFunc","cloneRegExp","cloneSet","cloneSymbol","symbol","cloneTypedArray","typedArray","newValue","getSymbols","isKeyable","stubArray","cloneDeep","other","isArrayLikeObject","ctorString","COMPARE_PARTIAL_FLAG","COMPARE_UNORDERED_FLAG","arrayFilter","resIndex","arraySome","cacheHas","SetCache","setCacheAdd","setCacheHas","baseIsEqual","bitmask","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","isPartial","arrLength","othLength","seen","arrValue","othValue","compared","othIndex","convert","objProps","objLength","othProps","skipCtor","objCtor","othCtor","isEqual","parseFloat","fmtShort","msAbs","round","fmtLong","plural","isPlural","long","bootstrapTransform","transformComponent","checkValidOp","transformComponentX","destLeft","destRight","transformX","leftOp","rightOp","newRightOp","rightComponent","newLeftOp","nextC","op","otherOp","clone","json","uri","subtypes","convertFromText","si","sd","convertToText","registerSubtype","subtype","invertComponent","c_","invert","oi","od","li","ld","na","lm","op_","iop","checkList","checkObj","snapshot","container","shatter","incrementalApply","_yield","smallOp","pathMatches","p1","p2","ignoreLast","dest","last","op1","op2","newOp","normalize","commonLengthForOps","alen","blen","canOpAffectPath","otherC","common2","cplength","otherCplength","oc","commonOperand","to","otherFrom","otherTo","text","initial","strInject","s1","pos","s2","checkValidComponent","deleted","_append","transformPosition","transformCursor","side","_tc","newC","intersectStart","intersectEnd","cIntersect","otherIntersect","inBrowser","freeze","_typeof","combinePassengers","transports","slotProps","passengers","transport","temp","newPassengers","stableSort","compareFn","pick","targets","sources","Wormhole","Vue","trackInstances","order","_transport$order","newTransport","currentIndex","$_getTransportIndex","newTransports","force","registerTarget","vm","$set","unregisterTarget","$delete","registerSource","unregisterSource","hasTarget","hasSource","hasContentFor","_ref","wormhole","_id","Portal","disabled","slim","_this","sendUpdate","updated","oldValue","closer","normalizeSlots","$scopedSlots","$slots","normalizeOwnChildren","children","slotContent","_toConsumableArray","Tag","display","PortalTarget","required","transition","firstRender","ownTransports","newVal","oldVal","_this2","noWrapper","_id$1","portalProps","targetProps","MountingPortal","inheritAttrs","bail","mountTo","targetSlim","targetSlotProps","targetTag","$props","portalTarget","mountEl","_props","$parent","propsData","$destroy","manual","$attrs","scopedSlots","install","Vue$$1","portalName","portalTargetName","MountingPortalName","modules","installedModules","__webpack_require__","moduleId","getter","__esModule","property","container_1","format_1","leaf_1","scroll_1","inline_1","block_1","embed_1","text_1","attributor_1","class_1","style_1","store_1","Registry","Parchment","Scope","register","Container","Format","Leaf","Embed","Scroll","Block","Inline","Text","Attributor","Attribute","Class","Style","Store","__extends","extendStatics","setPrototypeOf","__proto__","__","ParchmentError","_super","attributes","tags","BlotClass","Node","TEXT_NODE","bubble","DATA_KEY","blot","scope","ANY","LEVEL","BLOCK","INLINE","getAttribute","TYPE","Definitions","_i","Definition","blotName","attrName","keyName","tagNames","equal","NULL_CHARACTER","fromCharCode","Delta","ops","insert","retain","lastOp","chop","partition","passed","failed","changeLength","delete","iter","hasNext","nextOp","thisIter","otherIter","firstOther","peek","firstLeft","peekType","peekLength","thisOp","rest","strings","prep","diffResult","opLength","eachLine","newline","nextType","hasOwn","toStr","gOPD","getOwnPropertyDescriptor","hasOwnConstructor","hasIsPrototypeOf","setProperty","writable","getProperty","src","copyIsArray","deep","BlockEmbed","bubbleFormats","_createClass","descriptor","Constructor","protoProps","staticProps","_get","_extend","_extend2","_interopRequireDefault","_quillDelta","_quillDelta2","_parchment","_parchment2","_break","_break2","_inline","_inline2","_text","_text2","_classCallCheck","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","NEWLINE_LENGTH","_Parchment$Embed","domNode","formats","attribute","BLOCK_ATTRIBUTE","def","block","insertAt","BLOCK_BLOT","_Parchment$Block","descendants","leaf","lines","child","statics","defaultChild","allowedChildren","overload","expandConfig","_slicedToArray","sliceIterator","_arr","_n","_d","_editor","_editor2","_emitter3","_emitter4","_module","_module2","_selection","_selection2","_logger","_logger2","_theme","_theme2","_defineProperty","Quill","html","__quill","addContainer","scrollingContainer","scroll","whitelist","editor","selection","keyboard","addModule","clipboard","history","EDITOR_CHANGE","TEXT_CHANGE","toggle","isBlank","SCROLL_UPDATE","mutations","range","lastRange","modify","update","contents","setContents","readOnly","level","imports","overwrite","startsWith","refNode","setRange","_this3","_overload","_overload2","deleteText","scrollTop","scrollIntoView","_this4","API","getSelection","change","formatLine","formatText","setSelection","SILENT","_this5","_overload3","_overload4","_this6","_overload5","_overload6","bounds","getBounds","containerBounds","getBoundingClientRect","bottom","top","getLength","_overload7","_overload8","getContents","getFormat","MAX_VALUE","getRange","_overload9","_overload10","getText","hasFocus","embed","_this7","insertEmbed","_this8","_overload11","_overload12","insertText","contains","dangerouslyPasteHTML","_this9","_overload13","_overload14","removeFormat","_this10","applied","applyDelta","_overload15","_overload16","Range","USER","_this11","userConfig","DEFAULTS","import","themeConfig","moduleNames","moduleConfig","moduleClass","toolbar","modifier","strict","isEnabled","oldDelta","shiftRange","_emitter","_emitter2","_map","_map2","_map3","_map4","_Parchment$Inline","compare","BLOT","isolate","moveChildren","selfIndex","otherIndex","TextBlot","_Parchment$Text","_eventemitter","_eventemitter2","EVENTS","eventName","_len","_key","_node$__quill$emitter","handleDOM","Emitter","_EventEmitter","_len2","_key2","SCROLL_BEFORE_UPDATE","SCROLL_OPTIMIZE","SELECTION_CHANGE","Module","quill","levels","_console","ns","logger","newLevel","pSlice","objectKeys","deepEqual","actual","expected","getTime","objEquiv","isUndefinedOrNull","ka","kb","attributeBit","ATTRIBUTE","canAdd","removeAttribute","Code","_block","_block2","_Inline","CodeBlock","_Block","frag","_descendant","descendant","_descendant2","deleteAt","nextNewline","newlineIndex","prevNewline","isolateLength","formatAt","_descendant3","_descendant4","searchIndex","lastIndexOf","optimize","TAB","_op","_op2","_code","_code2","_cursor","_cursor2","_clone","_clone2","_deepEqual","_deepEqual2","ASCII","Editor","getDelta","consumeNextNewline","scrollLength","batchStart","normalizeDelta","_scroll$line","_scroll$line2","_line$descendant","_line$descendant2","batchEnd","lengthRemaining","lineLength","codeIndex","codeLength","leaves","_path","formatsArr","blots","combineFormats","_scroll$line3","_scroll$line4","suffix","cursorIndex","textBlot","CONTENTS","diffDelta","combined","image","bullet","arr2","Selection","composing","mouseDown","savedRange","handleComposition","handleDragging","listenDOM","native","getNativeRange","textNode","setNativeRange","ignored","_context$range","startNode","startOffset","endNode","endOffset","restore","_format","nativeRange","collapsed","attach","_scroll$leaf","_scroll$leaf2","_leaf$position","_leaf$position2","createRange","setStart","_scroll$leaf3","_scroll$leaf4","_leaf$position3","_leaf$position4","setEnd","rect","rangeCount","getRangeAt","normalizeNative","normalized","normalizedToRange","activeElement","positions","_position","startContainer","endContainer","childNodes","lastChild","_scroll$leaf5","_scroll$leaf6","_leaf$position5","_leaf$position6","first","scrollBounds","removeAllRanges","addRange","blur","rangeToNative","_getRange","_getRange2","Break","linked_list_1","shadow_1","ContainerBlot","makeBlot","forEachAt","_a","lengthLeft","detach","childBlot","refBlot","insertInto","targetParent","inclusive","addedNodes","removedNodes","mutation","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_FOLLOWING","nextSibling","replaceChild","FormatBlot","replaceWith","replacement","wrapper","move","LeafBlot","INLINE_BLOT","lib","keepNull","Iterator","retOp","substr","_instanceof","nativeMap","nativeSet","nativePromise","circular","depth","includeNonEnumerable","allParents","allChildren","useBuffer","__isArray","__isRegExp","__getRegExpFlags","__isDate","allocUnsafe","keyChild","valueChild","entryChild","symbols","allPropertyNames","propertyName","__objToStr","re","ignoreCase","multiline","clonePrototype","_container","_container2","isLine","_Parchment$Scroll","batch","_line","_line2","_line3","_line4","_newlineIndex","getLines","observer","takeRecords","SHORTKEY","_quill","_quill2","Keyboard","_Module","bindings","addBinding","ENTER","shiftKey","handleEnter","metaKey","ctrlKey","altKey","BACKSPACE","handleBackspace","handleDelete","prefix","handleDeleteRange","listen","evt","keyCode","defaultPrevented","_quill$getLine","getLine","_quill$getLine2","_quill$getLeaf","getLeaf","_quill$getLeaf2","leafStart","offsetStart","_ref2","leafEnd","offsetEnd","prefixText","suffixText","curContext","prevented","makeEmbedArrowHandler","_ref3","where","LEFT","RIGHT","_quill$getLeaf3","_quill$getLeaf4","_quill$getLine11","_quill$getLine12","_quill$getLine13","_quill$getLine14","curFormats","prevFormats","nextLength","_quill$getLine15","_quill$getLine16","_quill$getLine17","_quill$getLine18","nextFormats","firstFormats","lastFormats","lineFormats","makeCodeBlockHandler","indent","_quill$scroll$descend","_quill$scroll$descend2","scrollIndex","getIndex","makeFormatHandler","shortKey","ESCAPE","UP","DOWN","cutoff","updateContents","_quill$getLine3","_quill$getLine4","_quill$getLine5","_quill$getLine6","header","_quill$getLine7","_quill$getLine8","_quill$getLine9","_quill$getLine10","Cursor","createTextNode","_length","restoreText","_Parchment$Container","ColorStyle","ColorClass","ColorAttributor","_Parchment$Attributor","sanitize","Link","_sanitize","PROTOCOL_WHITELIST","SANITIZED_URL","anchor","_keyboard","_keyboard2","_dropdown","_dropdown2","optionsCounter","toggleAriaAttribute","element","Picker","buildPicker","togglePicker","escape","tabIndex","selectItem","buildItem","buildLabel","buildOptions","trigger","selectedIndex","Event","initEvent","isActive","_embed","_embed2","_scroll","_scroll2","_clipboard","_clipboard2","_history","_history2","ShadowBlot","cloneNode","parentBlot","refDomNode","AttributorStore","styles","attr","ClassAttributor","camelize","parts","part","StyleAttributor","Theme","themes","GUARD_TEXT","contentNode","childNode","leftGuard","rightGuard","prevLength","AlignStyle","AlignClass","AlignAttribute","BackgroundStyle","BackgroundClass","_color","DirectionStyle","DirectionClass","DirectionAttribute","FontClass","FontStyle","FontStyleAttributor","SizeStyle","SizeClass","getLastChangeIndex","History","lastRecorded","ignoreChange","userOnly","record","undo","redo","changeDelta","undoDelta","timestamp","maxStack","endsWithNewlineChange","deleteLength","changeIndex","BaseTooltip","_colorPicker","_colorPicker2","_iconPicker","_iconPicker2","_picker","_picker2","_tooltip","_tooltip2","ALIGNS","COLORS","FONTS","HEADERS","SIZES","BaseTheme","_Theme","tooltip","textbox","hide","pickers","picker","extendToolbar","icons","button","selects","fillSelect","align","formula","edit","fileInput","reader","video","_Tooltip","boundsContainer","mode","preview","linkRange","restoreFocus","extractVideoUrl","LinkedList","nodes","cur","curNode","curIndex","curLength","OBSERVER_CONFIG","characterData","characterDataOldValue","childList","subtree","MAX_OPTIMIZE_ITERATIONS","ScrollBlot","MutationObserver","observe","disconnect","records","mark","markParent","remaining","previousSibling","grandChild","obj1","obj2","InlineBlot","BlockBlot","EmbedBlot","splitText","_toggle","DOMTokenList","subjectString","execCommand","fix_cursor","fix_emoji","cursor_normalize_diff","current_pos","next_pos","split_pos","d_left","d_right","norm","ndiffs","cursor_pointer","d_next","merge_tuples","compact","fixed_diffs","left_d","right_d","shim","supportsArgumentsClass","supported","unsupported","Events","EE","exists","available","ee","a1","a2","a3","a4","a5","prefixed","matchText","matchSpacing","matchNewline","matchBlot","matchAttributor","_extend3","_align","_background","_direction","_font","_size","DOM_KEY","CLIPBOARD_CONFIG","matchBreak","ELEMENT_NODE","matchStyles","matchIndent","matchAlias","matchIgnore","ATTRIBUTE_ATTRIBUTORS","STYLE_ATTRIBUTORS","Clipboard","onPaste","matchers","selector","matcher","matchVisual","addMatcher","_prepareMatching","prepareMatching","_prepareMatching2","elementMatchers","textMatchers","traverse","deltaEndsWith","paste","_pair","applyFormat","computeStyle","getComputedStyle","endText","childrenDelta","nextElementSibling","nodeHeight","offsetHeight","marginTop","marginBottom","offsetTop","fontStyle","italic","fontWeight","bold","textIndent","whiteSpace","replacer","collapse","Bold","addControls","Toolbar","_ret","controls","addHandler","_this$quill$selection","_this$quill$selection2","_quill$selection$getR","_quill$selection$getR2","addButton","groups","control","addSelect","clean","direction","link","ColorPicker","_Picker","backgroundColor","colorLabel","stroke","fill","IconPicker","defaultItem","Tooltip","TEMPLATE","reference","offsetWidth","rootBounds","verticalShift","_base","_base2","_link","_link2","_icons","_icons2","TOOLBAR_CONFIG","SnowTheme","_BaseTheme","buildButtons","buildPickers","SnowTooltip","_BaseTooltip","show","_core","_core2","_indent","_blockquote","_blockquote2","_header","_header2","_list","_list2","_bold","_bold2","_italic","_italic2","_script","_script2","_strike","_strike2","_underline","_underline2","_image","_image2","_video","_video2","_formula","_formula2","_syntax","_syntax2","_toolbar","_toolbar2","_bubble","_bubble2","_snow","_snow2","IndentClass","ListItem","IdentAttributor","Blockquote","Header","List","_Container","listEventHandler","Italic","_Bold","Script","Strike","Underline","ATTRIBUTES","Image","Video","_BlockEmbed","FormulaBlot","_Embed","katex","throwOnError","errorColor","Formula","CodeToken","SyntaxCodeBlock","_CodeBlock","_highlight","cachedText","Syntax","highlight","hljs","highlightAuto","BubbleTooltip","BubbleTheme","lastLine","_bounds","arrow","marginLeft","ReconnectingWebSocket","onopen","onclose","onconnecting","onmessage","debugAll","CONNECTING","WebSocket","OPEN","CLOSING","CLOSED","settings","automaticOpen","reconnectInterval","maxReconnectInterval","reconnectDecay","timeoutInterval","maxReconnectAttempts","reconnectAttempts","ws","forcedClose","eventTarget","generateEvent","initCustomEvent","reconnectAttempt","localWs","isReconnect","wasClean","refresh","delta1","delta2","isOwnOp","deserialize","transformPresence","AttributeMap","lodash_clonedeep_1","__importDefault","lodash_isequal_1","baseInverted","fast_diff_1","AttributeMap_1","Op_1","initialValue","length_1","retDelta","inverted","baseIndex","length_2","baseOp","length_3","length_4","Op","Iterator_1","Doc","Query","Presence","DocPresence","SnapshotVersionRequest","SnapshotTimestampRequest","ShareDBError","ACTIONS","util","DocPresenceEmitter","ERROR_CODE","CODES","connectionState","socket","Connection","collections","nextQueryId","nextSnapshotRequestId","queries","_presences","_docPresenceEmitter","_snapshotRequests","_presenceSeq","agent","bindToSocket","wrapErrorData","errorData","fullMessage","hasPending","hasWritePending","mixin","newState","_setState","canSend","connection","handleMessage","_initializeHandshake","initLegacy","_handleLegacyInit","handshake","_handleHandshake","queryFetch","_handleFetch","extra","querySubscribe","_handleSubscribe","queryUnsubscribe","queryUpdate","_handleError","_handleDiff","_handleExtra","bulkFetch","_handleBulkMessage","bulkSubscribe","bulkUnsubscribe","snapshotFetch","snapshotFetchByTimestamp","_handleSnapshotFetch","fetch","doc","getExisting","_handleOp","presence","_handlePresence","presenceSubscribe","_handlePresenceSubscribe","presenceUnsubscribe","_handlePresenceUnsubscribe","presenceRequest","_handlePresenceRequest","pingPong","_handlePingPong","dataForId","_reset","ERR_CONNECTION_STATE_TRANSITION_INVALID","startBulk","_onConnectionStateChanged","collection","docs","channel","snapshotRequest","endBulk","bulk","actions","_sendBulk","u","action","versionId","ids","versions","versionsCount","_sendActions","_addDoc","isDuplicate","sendFetch","sendSubscribe","sendUnsubscribe","sendOp","del","submitSource","ping","ERR_CANNOT_PING_OFFLINE","_wantsDestroy","_destroyDoc","digAndRemove","_createQuery","_destroyQuery","createFetchQuery","createSubscribeQuery","_firstDoc","_firstQuery","_firstSnapshotRequest","whenNothingPending","_nothingPendingRetry","fetchSnapshot","requestId","fetchSnapshotByTimestamp","_handleResponse","protocolMinor","_initialize","ERR_PROTOCOL_VERSION_NOT_SUPPORTED","defaultType","ERR_DEFAULT_TYPE_MISMATCH","ERR_CLIENT_ID_BADLY_FORMED","getPresence","digOrCreate","getDocPresence","_sendPresenceAction","_addPresence","ch","dig","_handleUnsubscribe","_receiveUpdate","_broadcastAllLocalPresence","inflightFetch","inflightSubscribe","pendingFetch","pendingSubscribe","subscribed","wantSubscribe","inflightOp","pendingOps","applyStack","preventCompose","_dataStateVersion","pushActionCallback","inflight","lastCallback","combineCallbacks","callbacks","truthy","callEach","setNoOp","client","server","ERR_DOC_WAS_DELETED","ERR_DOC_ALREADY_CREATED","clientOp","serverOp","_setType","newType","ERR_DOC_TYPE_NOT_RECOGNIZED","_setData","ingestSnapshot","ERR_INGESTED_SNAPSHOT_HAS_NO_VERSION","ERR_DOC_MISSING_VERSION","_emitNothingPending","_emitResponseError","ERR_SNAPSHOT_READ_SILENT_REJECTION","_flushSubscribe","ERR_OP_SUBMIT_REJECTED","_rollback","_opAcknowledged","transformErr","_hardRollback","_otApply","flush","_resubscribe","willFetch","_queueSubscribe","lastRequest","isDuplicateRequest","_sendOp","ERR_DOC_DOES_NOT_EXIST","stackLength","componentOp","_popApplyStack","createDeserialized","oldData","ERR_INFLIGHT_OP_MISSING","sentAt","retries","ERR_CONNECTION_SEQ_INTEGER_OVERFLOW","_submit","_pushOp","composed","_tryCompose","submitOp","toSnapshot","fixup","fixupOp","_clearInflightOp","allOpsHadCallbacks","called","_docs","_forwarders","_emitters","_registerDoc","_unregisterDoc","alreadyRegistered","forwarder","forwarders","LocalDocPresence","RemoteDocPresence","_createLocalPresence","_createRemotePresence","LocalPresence","presenceId","_doc","_isSending","_docDataVersionByPresenceVersion","_opHandler","_transformAgainstOp","_createOrDelHandler","_handleCreateOrDel","_loadHandler","_handleLoad","_destroyHandler","_registerWithDoc","submit","_callbackOrEmit","presenceVersion","_sendPending","_pendingMessages","docDataVersion","messageDocDataVersion","pv","_transformPresence","_getCallback","_message","supportsPresence","ERR_TYPE_DOES_NOT_SUPPORT_PRESENCE","_callbacksByPresenceVersion","localPresences","_ack","RemotePresence","async","remotePresences","_remotePresenceInstances","_subscriptionCallbacksBySeq","_sendSubscriptionAction","localPresence","localIds","remoteIds","_subscriptionCallback","remotePresence","receiveUpdate","_updateRemotePresence","_removeRemotePresence","_callEachOrEmit","ot","_pending","_opCache","_pendingSetPending","_createDelHandler","_handleCreateDel","_setPendingPresence","_catchUpStalePresence","connectionId","_cacheOp","_startCachingOps","hasCaughtUp","_stopCachingOps","ready","sent","_finishResponse","wait","finish","_ingestSnapshots","snapshots","newDocs","howMany","removed","Snapshot","SnapshotRequest","metadata","meta","isValidTimestamp","ts","isValidVersion","ERR_APPLY_OP_VERSION_DOES_NOT_MATCH_SNAPSHOT","ERR_APPLY_SNAPSHOT_NOT_PROVIDED","ERR_FIXUP_IS_ONLY_VALID_ON_APPLY","ERR_CANNOT_FIXUP_DELETION","ERR_DATABASE_ADAPTER_NOT_FOUND","ERR_DATABASE_DOES_NOT_SUPPORT_SUBSCRIBE","ERR_DATABASE_METHOD_NOT_IMPLEMENTED","ERR_MAX_SUBMIT_RETRIES_EXCEEDED","ERR_MESSAGE_BADLY_FORMED","ERR_MILESTONE_ARGUMENT_INVALID","ERR_OP_ALREADY_SUBMITTED","ERR_OP_NOT_ALLOWED_IN_PROJECTION","ERR_OP_VERSION_MISMATCH_AFTER_TRANSFORM","ERR_OP_VERSION_MISMATCH_DURING_TRANSFORM","ERR_OP_VERSION_NEWER_THAN_CURRENT_SNAPSHOT","ERR_OT_LEGACY_JSON0_OP_CANNOT_BE_NORMALIZED","ERR_OT_OP_BADLY_FORMED","ERR_OT_OP_NOT_APPLIED","ERR_OT_OP_NOT_PROVIDED","ERR_PRESENCE_TRANSFORM_FAILED","ERR_QUERY_CHANNEL_MISSING","ERR_QUERY_EMITTER_LISTENER_NOT_ASSIGNED","ERR_SNAPSHOT_READS_REJECTED","ERR_SUBMIT_TRANSFORM_OPS_NOT_FOUND","ERR_TYPE_CANNOT_BE_PROJECTED","ERR_TYPE_DOES_NOT_SUPPORT_COMPOSE","ERR_UNKNOWN_ERROR","Logger","SUPPORTED_METHODS","defaultMethods","setMethods","overrides","applyOpEdit","normalizeLegacyJson0Ops","json0Op","checkOp","typeName","normalizeType","appliedOp","applyOps","_normalizeLegacyJson0Ops","opError","doNothing","hasKeys","isInteger","createCallback","objects","keyList","hasProp","arrA","arrB","dateA","dateB","regexpA","regexpB","ElementMixin","_$props","setDraggable","newIndex","sortableInfo","isDisabled","removeDraggable","newCollection","oldCollection","manager","classCallCheck","createClass","slicedToArray","toConsumableArray","Manager","refs","active","arrayMove","previousIndex","vendorPrefix","pre","OLink","getCSSPixelValue","stringValue","getElementMargin","marginRight","ContainerMixin","sorting","sortingIndex","handleStart","handleMove","handleEnd","axis","distance","pressDelay","pressThreshold","useDragHandle","useWindowAsScrollContainer","hideSortableGhost","lockToContainerEdges","lockOffset","transitionDuration","appendTo","draggedSettlingDuration","lockAxis","helperClass","contentWindow","shouldCancelStart","disabledElements","getHelperDimensions","provide","ownerDocument","_window","scrollContainer","_loop","passive","_loop2","_touched","_pos","getOffset","nodeIsChild","_node$sortableInfo","sortableHandle","handlePress","pressTimer","_$props2","_delta","cancelTimer","stopPropagation","getActive","_$props3","margin","containerBoundingRect","dimensions","marginOffset","boundingClientRect","_axis","offsetEdge","getEdgeOffset","initialOffset","initialScroll","scrollLeft","initialWindowScroll","pageYOffset","pageXOffset","_helper$classList","fields","clonedNode","clonedFields","helper","boxSizing","pointerEvents","sortableGhost","visibility","opacity","translate","minTranslate","maxTranslate","innerWidth","innerHeight","listenerNode","touches","handleSortMove","handleSortEnd","updatePosition","animateNodes","autoscroll","onEnd","edgeOffset","clearInterval","autoscrollInterval","oldIndex","transitionHelperIntoPlace","deltaScroll","indexNode","newIndexNode","targetX","offsetLeft","targetY","cleanup","cleanupTimer","nodeOffset","pageX","pageY","getLockPixelOffsets","_lockOffset","_lockOffset2","minLockOffset","maxLockOffset","getLockPixelOffset","offsetX","offsetY","unit","_$props4","_getLockPixelOffsets","_getLockPixelOffsets2","minOffset","maxOffset","_$props5","getOrderedRefs","sortingOffset","scrollDifference","prevNode","speed","acceleration","isAutoScrolling","setInterval","HandleDirective","mixins","SlickList","SlickItem","emptyObject","isUndef","isDef","isTrue","isFalse","isPrimitive","_toString","isRegExp","isValidArrayIndex","isPromise","__v_isRef","toNumber","makeMap","expectsLowerCase","isBuiltInTag","isReservedAttribute","remove$2","cached","hit","camelizeRE","capitalize","hyphenateRE","hyphenate","polyfillBind","ctx","boundFn","nativeBind","bind$1","_from","toObject","no","genStaticKeys$1","staticKeys","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysA","keysB","looseIndexOf","hasChanged","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","optionMergeStrategies","silent","productionTip","devtools","performance","errorHandler","warnHandler","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","parsePath","segments","hasProto","UA","isIE","isIE9","isEdge","isIOS","_isServer","isFF","nativeWatch","supportsPassive","isServerRendering","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","isNative","_Set","hasSymbol","currentInstance","getCurrentInstance","proxy","setCurrentInstance","_scope","VNode","elm","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","componentInstance","raw","isStatic","isRootInsert","isComment","isCloned","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","createTextVNode","cloneVNode","vnode","cloned","SuppressedError","uid$2","pendingCleanupDeps","cleanupDeps","dep","subs","Dep","addSub","sub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","arrayMethods","methodsToPatch","original","inserted","ob","__ob__","observeArray","arrayKeys","NO_INITIAL_VALUE","shouldObserve","toggleObserving","mockDep","Observer","shallow","mock","vmCount","defineReactive","ssrMockReactivity","isExtensible","__v_skip","isRef","customSetter","observeEvenIfShallow","setter","childOb","dependArray","isReadonly","_isVue","reactive","makeReactive","shallowReactive","isReactive","isShallow","__v_isShallow","__v_isReadonly","isProxy","toRaw","observed","markRaw","RefFlag","ref$1","createRef","shallowRef","triggerRef","unref","proxyRefs","objectWithRefs","proxyWithRefUnwrap","customRef","toRefs","toRef","rawToReadonlyFlag","rawToShallowReadonlyFlag","readonly","createReadonly","existingFlag","existingProxy","defineReadonlyProperty","shallowReadonly","getterOrOptions","debugOptions","onlyGetter","watcher","Watcher","lazy","effect","dirty","evaluate","normalizeEvent","capture","createFnInvoker","invoker","invokeWithErrorHandling","updateListeners","oldOn","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","extractPropsFromVNodeData","propOptions","checkProp","preserve","simpleNormalizeChildren","normalizeChildren","normalizeArrayChildren","isTextNode","nestedIndex","_isVList","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","createElement$1","normalizationType","alwaysNormalize","_createElement","is","resolveAsset","createComponent","applyNS","registerDeepBindings","renderList","renderSlot","fallbackRender","bindObject","scopedSlotFn","$createElement","resolveFilter","isKeyNotMatch","expect","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","_loop_1","camelizedKey","hyphenatedKey","renderStatic","isInFor","_staticTrees","tree","_renderProxy","markStatic$1","markOnce","markStaticNode","bindObjectListeners","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","$stable","$key","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","_o","_t","_m","_f","_k","_b","_u","_g","_p","resolveSlots","slots","name_1","name_2","isWhitespace","normalizeScopedSlots","ownerVm","normalSlots","prevScopedSlots","hasNormalSlots","isStable","_normalized","$hasNormal","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","initSetup","_setupContext","createSetupContext","setupResult","_setupState","__sfc","_setupProxy","_attrsProxy","syncSetupProxy","_listenersProxy","initSlotsProxy","expose","exposed","changed","defineProxyAttr","_slotsProxy","syncSetupSlots","useSlots","getContext","useAttrs","useListeners","mergeDefaults","initRender","_vnode","parentVnode","_parentVnode","renderContext","_renderChildren","parentData","_parentListeners","target$1","activeEffectScope","currentRenderingInstance","renderMixin","_render","_isMounted","prevInst","prevRenderInst","handleError","ensureCtor","comp","createAsyncPlaceholder","resolveAsyncComponent","baseCtor","errorComp","resolved","owner","owners","loading","loadingComp","owners_1","sync_1","timerLoading_1","timerTimeout_1","$on","forceRender_1","renderCompleted","$forceUpdate","reject_1","res_1","getFirstComponentChild","initEvents","_hasHookEvent","updateComponentListeners","add$1","remove$1","$off","createOnceHandler$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","$once","i_1","cbs","EffectScope","detached","effects","cleanups","scopes","currentEffectScope","stop","fromParent","teardown","effectScope","recordEffectScope","getCurrentScope","onScopeDispose","activeInstance","setActiveInstance","prevActiveInstance","initLifecycle","abstract","$children","_provided","_watcher","_inactive","_directInactive","_isDestroyed","_isBeingDestroyed","lifecycleMixin","_update","hydrating","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","callHook$1","_data","mountComponent","updateComponent","watcherOptions","preWatchers","_preWatchers","updateChildComponent","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","prevVNode","prevListeners","propKeys","_propKeys","validateProp","isInInactiveTree","activateChildComponent","direct","deactivateChildComponent","setContext","prevScope","activatedChildren","waiting","flushing","index$1","resetSchedulerState","currentFlushTimestamp","getNow","performance_1","timeStamp","sortCompareFn","post","flushSchedulerQueue","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueActivatedComponent","queueWatcher","noRecurse","WATCHER","WATCHER_CB","WATCHER_GETTER","WATCHER_CLEANUP","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","immediate","onTrack","onTrigger","forceTrigger","isMultiSource","onCleanup","baseGetter_1","onStop","resolveProvided","parentProvides","treatDefaultAsFactory","provides","hooks","errorCaptured","globalHandleError","_handled","logError","timerFunc","isUsingMicroTask","pending","flushCallbacks","copies","p_1","counter_1","textNode_1","useCssModule","mod","useCssVars","vars","defineAsyncComponent","loader","loadingComponent","errorComponent","userOnError","suspensible","onError","pendingRequest","thisRequest","userRetry","userFail","createLifeCycle","hookName","injectHook","mergeLifecycleHook","onBeforeMount","onMounted","onBeforeUpdate","onUpdated","onBeforeUnmount","onUnmounted","onActivated","onDeactivated","onServerPrefetch","onRenderTracked","onRenderTriggered","injectErrorCapturedHook","onErrorCaptured","defineComponent","seenObjects","_traverse","isA","isFrozen","depId","uid$1","expOrFn","isRenderWatcher","user","deps","newDeps","depIds","newDepIds","tmp","sharedPropertyDefinition","sourceKey","initState","initProps$1","initMethods","initData","initComputed$1","initWatch","propsOptions","isRoot","getData","computedWatcherOptions","watchers","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","$watch","stateMixin","dataDef","propsDef","initProvide","provideOption","provided","initInjections","resolveInject","provideKey","provideDefault","initMixin$1","_init","_uid","_isComponent","initInternalComponent","mergeOptions","resolveConstructorOptions","$mount","vnodeComponentOptions","_componentTag","super","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","modified","latest","sealed","sealedOptions","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","createFunctionalComponent","mergeProps","cloneAndMarkFunctionalResult","vnodes","getComponentName","__name","componentVNodeHooks","keepAlive","mountedNode","prepatch","createComponentInstanceForVnode","oldVnode","hooksToMerge","cid","model","transformModel","installComponentHooks","inlineTemplate","toMerge","_merged","mergeHook","f1","f2","warn$2","strats","mergeData","recursive","toVal","fromVal","mergeDataOrFn","parentVal","childVal","instanceData","defaultData","dedupeHooks","mergeAssets","parent_1","defaultStrat","normalizeProps","normalizeInject","normalizeDirectives$1","dirs","extends","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","stringIndex","getPropDefaultValue","prevShouldObserve","getType","functionTypeCheckRE","isSameType","expectedTypes","initUse","plugin","installedPlugins","_installedPlugins","initMixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps","initComputed","Comp","initAssetRegisters","definition","_getComponentName","pruneCache","keepAliveInstance","pruneCacheEntry","current","patternTypes","KeepAlive","include","exclude","cacheVNode","vnodeToCache","keyToCache","destroyed","builtInComponents","initGlobalAPI","configDef","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","xlinkNS","isXlink","getXlinkProp","genClassForVnode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","math","isHTMLTag","isSVG","isPreTag","unknownElementCache","HTMLUnknownElement","isTextInputType","createElementNS","createComment","referenceNode","setTextContent","setStyleScope","nodeOps","registerRef","isRemoval","refValue","$refsValue","isFor","_isString","_isRef","setSetupRef","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","createChildren","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","innerNode","activate","i_2","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","rm","i_3","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","i_5","hydrate","postpatch","invokeInsertHook","i_6","isRenderedModule","inVPre","hasChildNodes","childrenMatch","i_7","fullInvoke","isInitialPatch","isRealElement","oldElm","_leaveCb","patchable","i_8","i_9","insert_1","i_10","directives$1","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook","componentUpdated","callInsert","emptyModifiers","modifiers","getRawDirName","setupDef","baseModules","updateAttrs","oldAttrs","_v_attr_proxy","setAttr","removeAttributeNS","isInPre","baseSetAttr","setAttributeNS","__ieph","blocker_1","stopImmediatePropagation","updateClass","cls","transitionClass","_transitionClasses","_prevClass","chr","expressionPos","expressionEndPos","klass$1","validDivisionCharRE","parseFilters","exp","filters","inSingle","inDouble","inTemplateString","inRegex","curly","square","paren","lastFilterIndex","pushFilter","wrapFilter","baseWarn","msg","pluckModuleFunction","addProp","dynamic","rangeSetItem","plain","addAttr","dynamicAttrs","addRawAttr","attrsMap","attrsList","addDirective","isDynamicArg","prependModifierMarker","important","middle","nativeEvents","newHandler","getRawBindingAttr","rawAttrsMap","getBindingAttr","getStatic","dynamicValue","getAndRemoveAttr","staticValue","removeFromMap","getAndRemoveAttrByRegex","genComponentModel","baseValueExpression","valueExpression","assignment","genAssignmentCode","parseModel","eof","isStringStart","parseString","parseBracket","inBracket","stringQuote","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","model$1","_warn","genSelect","genCheckboxModel","genRadioModel","genDefaultModel","valueBinding","trueValueBinding","falseValueBinding","selectedVal","needCompositionGuard","normalizeEvents","event_1","useMicrotaskFix","attachedTimestamp_1","original_1","_wrapper","currentTarget","updateDOMListeners","svgContainer","updateDOMProps","oldProps","strCur","shouldUpdateValue","checkVal","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","cssText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","newStyle","style$1","whitespaceRE$1","addClass","removeClass","tar","resolveTransition","css","autoCssTransition","enterClass","enterToClass","enterActiveClass","leaveClass","leaveToClass","leaveActiveClass","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","requestAnimationFrame","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","ended","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","durations","toMs","enter","toggleDisplay","cancelled","_enterCb","appearClass","appearToClass","appearActiveClass","beforeEnter","afterEnter","enterCancelled","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","activeClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","isValidDuration","leave","beforeLeave","afterLeave","leaveCancelled","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","modules$1","patch","vmodel","directive","_vOptions","onCompositionStart","onCompositionEnd","prevOptions_1","curOptions_1","needReset","hasNoMatchingOption","actuallySetSelected","isMultiple","locateNode","originalDisplay","__vOriginalDisplay","unbind","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave_1","moveClass","TransitionGroup","beforeMount","kept","prevChildren","rawChildren","transitionData","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","moved","el_1","WebkitTransform","_moveCb","_hasMove","newPos","oldPos","dx","dy","platformComponents","defaultTagRE","regexEscapeRE","buildRegex","delimiters","parseText","tagRE","tokenValue","tokens","rawTokens","transformNode$1","classBinding","genData$2","klass","transformNode","genData","styleBinding","genData$1","decoder","he","decode","isUnaryTag","canBeLeftOpenTag","isNonPhrasingTag","dynamicArgAttribute","ncname","qnameCapture","startTagOpen","startTagClose","endTag","doctype","comment","conditionalComment","isPlainTextElement","reCache","decodingMap","encodedAttr","encodedAttrWithNewLines","isIgnoreNewlineTag","shouldIgnoreFirstNewline","decodeAttr","shouldDecodeNewlines","parseHTML","lastTag","expectHTML","endTagLength_1","stackedTag_1","reStackedTag","parseEndTag","textEnd","commentEnd","shouldKeepComment","advance","conditionalEnd","doctypeMatch","endTagMatch","startTagMatch","parseStartTag","handleStartTag","state_1","unarySlash","unary","shouldDecodeNewlinesForHref","lowerCasedTag","lowerCasedTagName","transforms","preTransforms","postTransforms","platformIsPreTag","platformMustUseProp","platformGetTagNamespace","onRE","dirRE","forAliasRE","forIteratorRE","stripParensRE","dynamicArgRE","argRE","bindRE","modifierRE","slotRE","lineBreakRE","whitespaceRE","decodeHTMLCached","emptySlotScopeToken","createASTElement","makeAttrsMap","template","currentParent","preserveWhitespace","whitespaceOption","whitespace","inPre","closeElement","trimEndingWhitespace","processed","processElement","if","elseif","else","addIfCondition","forbidden","processIfConditions","slotScope","slotTarget","lastNode","comments","outputSourceRange","guardIESVGBug","isForbiddenTag","processPre","processRawAttrs","processFor","processIf","processOnce","isTextTag","processKey","processRef","processSlotContent","processSlotOutlet","processComponent","processAttrs","checkInFor","parseFor","inMatch","for","alias","iteratorMatch","iterator1","iterator2","findPrevElement","condition","ifConditions","slotTargetDynamic","slotBinding","getSlotName","name_3","slotContainer_1","slotName","syncGen","isDynamic","hasBindings","parseModifiers","camel","argMatch","ret_1","ieNSBug","ieNSPrefix","preTransformNode","typeBinding","ifCondition","ifConditionExtra","hasElse","elseIfCondition","branch0","cloneASTElement","branch1","branch2","isStaticKey","isPlatformReservedTag","baseOptions","genStaticKeysCached","genStaticKeys","markStatic","markStaticRoots","static","staticInFor","staticRoot","isDirectChildOfTemplateFor","fnExpRE","fnInvokeRE","simplePathRE","esc","tab","up","down","keyNames","genGuard","modifierCode","prevent","ctrl","alt","genHandlers","staticHandlers","dynamicHandlers","handlerCode","genHandler","isMethodPath","isFunctionExpression","isFunctionInvocation","genModifierCode","modifiers_1","keyModifier","genKeyFilter","genFilterCode","keyVal","wrapListeners","wrapData","baseDirectives","cloak","CodegenState","dataGenFns","maybeComponent","onceId","generate","ast","genElement","staticProcessed","genStatic","onceProcessed","genOnce","forProcessed","genFor","ifProcessed","genIf","genSlot","genComponent","__isScriptSetup","checkBindingType","genChildren","camelName","PascalName","checkType","fromConst","fromMaybeRef","originalPreState","altGen","altEmpty","genIfConditions","conditions","genTernaryExp","altHelper","genDirectives","genProps","genScopedSlots","genInlineTemplate","needRuntime","hasRuntime","gen","inlineRenderFns","containsSlotChild","needsKey","parent_2","generatedSlots","genScopedSlot","isLegacySyntax","reverseProxy","checkSkip","altGenElement","altGenNode","normalizationType_1","getNormalizationType","gen_1","genNode","needsNormalization","genComment","genText","transformSpecialNewlines","componentName","dynamicProps","createFunction","errors","createCompileToFunctionFn","compile","compiled","fnGenErrors","createCompilerCreator","baseCompile","finalOptions","tips","tip","compileToFunctions","div","createCompiler","getShouldDecode","idToTemplate","mount","getOuterHTML","outerHTML","numberFormatKeys","dateTimeFormatKeys","isBoolean","OBJECT_STRING","isNull","parseArgs","locale","looseClone","arrayFrom","arguments$1","output","escapeHtml","rawText","escapeParams","_i18n","i18n","$i18n","_getMessages","$tc","choice","$te","_te","$d","$n","defineMixin","bridge","__INTLIFY_META__","__i18nBridge","__i18n","VueI18n","localeMessages","messages","resource","mergeLocaleMessage","_i18nWatcher","watchI18nData","rootI18n","fallbackLocale","formatFallbackMessages","silentTranslationWarn","silentFallbackWarn","pluralizationRules","preserveDirectiveContent","localeMessages$1","_i18n$1","sharedMessages","_localeWatcher","watchLocale","onComponentInstanceCreated","subscribeDataChanging","_subscribing","unsubscribeDataChanging","destroyVM","interpolationComponent","places","onlyHasDefaultPlace","useLegacyPlaces","createParamsFromPlaces","everyPlace","vnodeHasPlaceAttribute","assignChildPlace","assignChildIndex","place","numberComponent","_ntp","assert","oldVNode","localeEqual","_localeMessage","getLocaleMessage","_vt","_locale","ref$2","parseValue","tc","makeParams","_Vue","installed","BaseFormatter","_caches","interpolate","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","char","isClosed","APPEND","PUSH","INC_SUB_PATH_DEPTH","PUSH_SUB_PATH","BEFORE_PATH","IN_PATH","BEFORE_IDENT","IN_IDENT","IN_SUB_PATH","IN_SINGLE_QUOTE","IN_DOUBLE_QUOTE","AFTER_PATH","ERROR","pathStateMachine","literalValueRE","isLiteral","stripQuotes","getPathCharType","formatSubPath","trimmed","parse$1","newChar","typeMap","subPathDepth","maybeUnescapeQuote","nextChar","I18nPath","_cache","getPathValue","paths","availabilities","htmlTagMatcher","linkKeyMatcher","linkKeyPrefixMatcher","bracketsMatcher","defaultModifiers","toLocaleUpperCase","toLocaleLowerCase","defaultFormatter","this$1","dateTimeFormats","datetimeFormats","numberFormats","_formatter","_modifiers","_missing","missing","_root","_sync","_fallbackRoot","fallbackRoot","_fallbackRootWithEmptyString","fallbackRootWithEmptyString","_formatFallbackMessages","_silentTranslationWarn","_silentFallbackWarn","_dateTimeFormatters","_numberFormatters","_dataListeners","_componentInstanceCreatedListener","componentInstanceCreatedListener","_preserveDirectiveContent","_warnHtmlInMessage","warnHtmlInMessage","_postTranslation","postTranslation","_escapeParameterHtml","escapeParameterHtml","__VUE_I18N_BRIDGE__","getChoiceIndex","choicesLength","thisPrototype","prototypeGetChoiceIndex","defaultImpl","_choice","_choicesLength","_exist","_checkLocaleMessage","_initVM","prototypeAccessors","availableLocales","__VUE18N__INSTANCE__","composer","newI18n","_getDateTimeFormats","_getNumberFormats","_localeChainCache","orgLevel","_warnDefault","interpolateMode","missingRet","parsedArgs","_isFallbackRoot","_isSilentFallbackWarn","_isSilentFallback","_isSilentTranslationWarn","_interpolate","visitedLinkStack","pathRet","linkKeyPrefixMatches","linkPrefix","formatterName","linkPlaceholder","translated","_translate","_createMessageContext","_named","named","linked","linkedKey","_appendItemToChain","blocks","follow","_appendLocaleToChain","_appendBlockToChain","_getLocaleChain","predefined","fetchChoice","choices","te","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","_clearDateTimeFormat","mergeDateTimeFormat","_localizeDateTime","Intl","DateTimeFormat","dtf","getNumberFormat","setNumberFormat","_clearNumberFormat","mergeNumberFormat","_getNumberFormatter","NumberFormat","numberFormat","nf","formatToParts","intlDefined","dateTimeFormat","changeLocale","findMissingTranslations","lang_settings","localstore_lang","browser_lang_available","language","new_lang","all_translations","lang","all_translations_by_id","all_messages","translation","___CSS_LOADER_URL_IMPORT_0___","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","cssWithMappingToString","needLayer","dedupe","supports","layer","alreadyImportedModules","needQuotes","locals","listToStyles","parentId","newStyles","sourceMap","hasDocument","stylesInDom","singletonElement","singletonCounter","isProduction","ssrIdKey","isOldIE","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","addStyle","createStyleElement","styleElement","styleIndex","applyToSingletonTag","applyToTag","replaceText","textStore","styleSheet","cssNode","ssrId","webpackAsyncContext","req","isCallable","tryToString","$TypeError","argument","isPossiblePrototype","$String","wellKnownSymbol","UNSCOPABLES","ArrayPrototype","isPrototypeOf","it","Prototype","NAME","NATIVE_ARRAY_BUFFER","DESCRIPTORS","classof","createNonEnumerableProperty","defineBuiltIn","defineBuiltInAccessor","InternalStateModule","enforceInternalState","enforce","getInternalState","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","TYPED_ARRAY_CONSTRUCTOR","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","getTypedArrayConstructor","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","forced","ARRAY","TypedArrayConstructor","error2","exportTypedArrayStaticMethod","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","O","IndexedObject","IS_FIND_LAST_INDEX","callbackfn","boundFunction","findLast","findLastIndex","SILENT_ON_NON_WRITABLE_LENGTH_SET","uncurryThis","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tryGet","callee","getOwnPropertyDescriptorModule","definePropertyModule","exceptions","fails","F","createPropertyDescriptor","bitmap","makeBuiltIn","defineGlobalProperty","simple","unsafe","nonConfigurable","nonWritable","P","EXISTS","IndexSizeError","DOMStringSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoDataAllowedError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","ValidationError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","Bun","Deno","v8","$Error","TEST","V8_OR_CHAKRA_STACK_ENTRY","IS_V8_OR_CHAKRA_STACK","dropEntries","prepareStackTrace","clearErrorStack","ERROR_STACK_INSTALLABLE","copyConstructorProperties","isForced","FORCED","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","sham","NATIVE_BIND","FunctionPrototype","aCallable","getDescriptor","PROPER","CONFIGURABLE","uncurryThisWithBind","aFunction","isNullOrUndefined","V","globalThis","getBuiltIn","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","getterFor","facade","STATE","documentAll","feature","detection","POLYFILL","NATIVE","USE_SYMBOL_AS_UID","$Symbol","toLength","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE_LENGTH","arity","trunc","$default","activeXDocument","anObject","definePropertiesModule","enumBugKeys","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","NullProtoObject","ActiveXObject","Properties","V8_PROTOTYPE_DEFINE_BUG","IE8_DOM_DEFINE","toPropertyKey","$defineProperty","$getOwnPropertyDescriptor","ENUMERABLE","WRITABLE","Attributes","propertyIsEnumerableModule","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","$propertyIsEnumerable","NASHORN_BUG","uncurryThisAccessor","requireObjectCoercible","aPossiblePrototype","CORRECT_SETTER","pref","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","Target","Source","hasIndices","dotAll","unicode","unicodeSets","sticky","ENGINE_IS_BUN","USER_AGENT","arraySlice","validateArgumentsLength","WRAP","scheduler","hasTimeArg","firstParamIndex","boundArgs","IS_PURE","SHARED","copyright","license","V8_VERSION","IS_IOS","IS_NODE","clearImmediate","Dispatch","MessageChannel","ONREADYSTATECHANGE","runner","eventListener","globalPostMessageDefer","postMessage","port2","port1","importScripts","toIntegerOrInfinity","integer","toPositiveInteger","$RangeError","BYTES","getMethod","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","NATIVE_SYMBOL","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","proxyAccessor","inheritIfRequired","normalizeStringArgument","installErrorCause","installErrorStack","FULL_NAME","IS_AGGREGATE_ERROR","STACK_TRACE_LIMIT","OPTIONS_POSITION","ERROR_NAME","OriginalError","OriginalErrorPrototype","BaseError","WrappedError","$","addToUnscopables","at","relativeIndex","$includes","BROKEN_ON_SPARSE","setArrayLength","doesNotExceedSafeInteger","INCORRECT_TO_LENGTH","properErrorOnNonWritableLength","argCount","deletePropertyOrThrow","INCORRECT_RESULT","wrapErrorConstructorWithCause","WEB_ASSEMBLY","WebAssembly","exportGlobalErrorCauseWrapper","exportWebAssemblyErrorCauseWrapper","regExpFlags","RegExpPrototype","INDICES_SUPPORT","calls","addGetter","S","ArrayBufferViewCore","$findLastIndex","$findLast","toOffset","WORKS_WITH_OBJECTS_AND_GENERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","anInstance","DOMExceptionConstants","DOM_EXCEPTION","NativeDOMException","$DOMException","DOMExceptionPrototype","argumentsLength","ERROR_HAS_STACK","DOM_EXCEPTION_HAS_STACK","BUGGY_DESCRIPTOR","FORCED_CONSTRUCTOR","DOMException","PolyfilledDOMException","PolyfilledDOMExceptionPrototype","constantName","setTask","schedulersFix","_toPrimitive","hint","prim","_toPropertyKey","methodMap","nativeAPI","unprefixedMethods","returnValue","methodList","exitFullscreenMethod","eventNameMap","fullscreenchange","fullscreenerror","screenfull","onFullScreenEntered","returnPromise","requestFullscreen","exit","isFullscreen","onFullScreenExit","exitFullscreen","onchange","fullscreenElement","fullscreenEnabled","__webpack_module_cache__","cachedModule","loaded","__webpack_modules__","leafPrototypes","getProto","chunkId","inProgress","dataWebpackPrefix","script","needAttach","scripts","charset","nc","onScriptComplete","doneFns","nmd","baseURI","installedChunks","installedChunkData","loadingEnded","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","chunkLoadingGlobal","custom_fonts_css","router_is_loading","$route","Component","show_disconnect_modal","is_loading","show_general_password_modal","show_qr_code_modal","url_to_page","show_lang_modal","current_lang_code","show_credits_modal","showAuthorModal","show_authors_modal","is_closable","current_mode","sorted_authors","authors","logout","is_submitting_signup_password","can_create_author","createAuthor","new_author_name","allow_save","new_author_email","new_cover","new_author_password","users_must_accept_terms_to_signup","terms_accepted","is_creating_author","account_created_notice","error_msg","submitSignupPassword","submitted_signup_password","contactmail","is_first_user","new_author_cover_raw","has_signup_password","signup_password","signup_password_hashed","author_slug","createFolder","additional_meta","requested_slug","$status","$password","loginToFolder","author_page","updateCover","new_cover_data","err_infos","titleInput","is_creating_space","hashed_submitted_pw","hashCode","login","author_to_login_to","input_password","show_recover_instr","author_suggestions","atpath","checkAuthor","search_author_name","setFirstSuggestion","connection_status","$eventHub","matching","twoStringsSearch","nameField","reload","passwordField","CreateAuthor","AuthorCard","LoginAs","show_authors_list","room","suggestLogin","reponse","current_lang","lang_options","lang_option","show_missing_translations","lang_to_find_missing_str","translations_to_share","missing_translations","hide_already_translated","$$a","$$el","$$c","checked","$$v","$$i","isAlreadyTranslated","translateStr","translations","will_translate_str","new_translation_text","submitTranslation","new_translations","loadMissingTranslations","updateLang","is_electron","goBack","instance_logo","show_space_name","show_project_name","DodocLogo","setProject","setSpace","topbar_thumb","back","AuthorList","LangModal","CreditsModal","BreadCrumbs","submitGeneralPassword","password_to_submit","allow_send","password_submit_error","remember_on_this_device","projects_recently_edited","max_items_in_memory","newPathEdited","updateRecentProjectForAuthor","_projects_recently_edited","updateMeta","tasks_tracked","instructions","recipe","progress","openMediaModalToExport","abortTask","removeTask","task_id","date_started","task_index","path_to_project","url_to_project","connected","is_reconnecting","seconds_before_reconnecting","reconnectSocket","countdown","TopBar","GeneralPasswordModal","TrackAuthorChanges","TaskTracker","DisconnectModal","promptGeneralPassword","debug_mode","socketConnected","socketDisconnected","socketConnectError","showDisconnectModal","FullUI","custom_fonts","font","font_files","font_props","font_weight","font_style","relative_path_to_file","encodeReserveRE","encodeReserveReplacer","commaRE","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","param","stringifyQuery","val2","trailingSlashRE","createRoute","redirectedFrom","router","route","getFullPath","matched","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bKey","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","enteredCbs","i$1","View","routerView","_routerViewCache","inactive","_routerRoot","vnodeData","routerViewDepth","cachedData","cachedComponent","configProps","fillPropsinData","registerRouteInstance","propsToPass","resolveProps","resolvePath","relative","firstChar","segment","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","asterisk","partial","repeat","optional","escapeGroup","escapeString","encodeURIComponentPretty","encodeURI","encodeAsterisk","pretty","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","custom","exact","exactPath","exactActiveClass","ariaCurrentValue","this$1$1","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","navigate","isExactActive","findAnchor","aData","handler$1","event$1","aAttrs","registerInstance","callVal","_router","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","redirect","childMatchAs","aliases","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","toFixed","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","replaceState","handlePopState","handleScroll","isPop","app","behavior","scrollBehavior","getScrollPosition","shouldScroll","scrollToPosition","saveScrollPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","normalizeOffset","hashStartsWithNumberRE","getElementById","scrollTo","supportsPushState","ua","pushState","NavigationFailureType","redirected","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","runQueue","resolveAsyncComponents","hasAsync","flatMapComponents","resolvedDef","isESModule","flatten","normalizeBase","readyCbs","readyErrorCbs","errorCbs","baseEl","resolveQueue","activated","deactivated","extractGuards","guards","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","onReady","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","getLocation","expectScroll","supportsScroll","handleRoutingEvent","fromRoute","getCurrentLocation","pathLowerCase","baseLowerCase","HashHistory","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","VueRouter","apps","handleInitialScroll","routeOrError","beforeEach","registerHook","beforeResolve","afterEach","forward","getMatchedComponents","createHref","normalizedTo","VueRouter$1","START_LOCATION","kebab","styleProp","styleList","enumerableOnly","sym","_objectSpread","getOwnPropertyDescriptors","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","isVue3","ALLOWED_FIELDS_IN_DATA","originalExtend","KNOWN_COMPONENTS","originalVModelDynamicCreated","vModelDynamic","originalVModelDynamicBeforeUpdate","beforeUpdate","_assign","__alreadyPatched","patchedH","dataObjOrChildren","rawSlots","isTag","isSecondArgumentDataObject","restData","normalizedData","_ctx$children","_ctx$children$default","patchedCtx","IGNORED_CHILDREN_KEYS","NAME_ICON","NAME_ICON_BASE","PROP_TYPE_ANY","PROP_TYPE_BOOLEAN","PROP_TYPE_NUMBER","PROP_TYPE_STRING","PROP_TYPE_NUMBER_STRING","RX_HYPHENATE","RX_UN_KEBAB","RX_ICON_PREFIX","optionalProps","omit","sortKeys","toType","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","minLen","_arrayLikeToArray","PROP_NAME","DEFAULT_BREAKPOINT","argsKey","VueProto","getConfigValue","bvConfig","getComponentConfig","propKey","getBreakpoints","_getBreakpointsCached","getBreakpointsCached","breakpoints","makeProp","requiredOrValidator","pluckProps","keysToPluck","objToPluck","transformFn","makePropConfigurable","componentKey","makePropsConfigurable","kebabCase","pascalCase","mathMax","toFloat","NaN","float","BASE_ATTRS","viewBox","focusable","role","STACKED_ATTRS","animation","flipH","flipV","fontScale","rotate","scale","shiftH","shiftV","variant","BVIconBase","_class","hasScale","hasTransforms","hasShift","hasContent","$inner","$title","$content","fontSize","xmlns","iconProps","BVIconBaseProps","makeIcon","kebabName","iconName","iconNameClass","iconTitle","svgContent","BIconBlank","BIconAlignCenter","BIconAlignEnd","BIconAlignStart","BIconArchive","BIconArrowClockwise","BIconArrowCounterclockwise","BIconArrowDown","BIconArrowDownShort","BIconArrowLeftCircle","BIconArrowLeftCircleFill","BIconArrowLeftRight","BIconArrowLeftShort","BIconArrowRight","BIconArrowRightCircle","BIconArrowRightCircleFill","BIconArrowRightShort","BIconArrowRightSquare","BIconArrowUp","BIconArrowUpLeftCircleFill","BIconArrowUpShort","BIconAspectRatio","BIconAspectRatioFill","BIconBack","BIconBook","BIconBookmarkStar","BIconBoxArrowInRight","BIconBoxArrowUpRight","BIconBricks","BIconCheck","BIconCheck2Circle","BIconCheckCircle","BIconCheckCircleFill","BIconCheckLg","BIconChevronBarContract","BIconChevronBarExpand","BIconChevronBarLeft","BIconChevronBarRight","BIconChevronDoubleDown","BIconChevronDoubleLeft","BIconChevronDoubleRight","BIconChevronLeft","BIconChevronRight","BIconChevronUp","BIconCircle","BIconCircleFill","BIconClipboard","BIconClipboardCheck","BIconDash","BIconDashLg","BIconDashSquareDotted","BIconDiagram2","BIconDiscFill","BIconDownload","BIconExclamationTriangleFill","BIconEyeSlash","BIconFileEarmark","BIconFileEarmarkArrowDown","BIconFileEarmarkArrowDownFill","BIconFileEarmarkImage","BIconFileLock2Fill","BIconFilePdf","BIconFilePlus","BIconFlagFill","BIconFonts","BIconFront","BIconFullscreen","BIconFullscreenExit","BIconGear","BIconGearWideConnected","BIconGrid3x2GapFill","BIconGridFill","BIconHandIndex","BIconHandIndexThumb","BIconImage","BIconImages","BIconInfoCircle","BIconInfoCircleFill","BIconInfoSquare","BIconIntersect","BIconLink","BIconListOl","BIconLock","BIconMap","BIconMapFill","BIconPatchQuestion","BIconPauseCircle","BIconPauseFill","BIconPen","BIconPencil","BIconPencilFill","BIconPentagon","BIconPeople","BIconPeopleFill","BIconPersonCircle","BIconPin","BIconPinFill","BIconPinMap","BIconPinMapFill","BIconPlayCircleFill","BIconPlayFill","BIconPlus","BIconPlusCircle","BIconPlusCircleDotted","BIconPlusCircleFill","BIconPlusLg","BIconPlusSquare","BIconPlusSquareDotted","BIconPrinter","BIconPuzzle","BIconRecordCircleFill","BIconSave2Fill","BIconSearch","BIconShieldCheck","BIconSlash","BIconSquareFill","BIconSquareHalf","BIconStar","BIconStarFill","BIconStopwatch","BIconTag","BIconTextParagraph","BIconTools","BIconTrash","BIconUnlock","BIconUpload","BIconXCircle","BIconXCircleFill","BIconXLg","BIconXOctagon","BIconXSquare","BIconZoomIn","BIconZoomOut","findIconComponent","iconComponent","icon","BIcon","T","E","A","I","L","N","M","D","U","H","B","z","W","K","Y","G","X","Q","J","Z","ne","ie","noTargetGet","ae","oe","se","le","ce","ue","de","fe","pe","me","ge","ve","ye","be","we","ke","Te","Se","Ee","Ae","xe","Ce","Oe","Pe","Le","Ie","Ne","Me","je","Re","De","Fe","qe","Ue","He","Be","Ve","ze","We","$e","Ke","Ye","Ge","Xe","Qe","Je","Ze","et","tt","nt","rt","st","lt","ct","ut","ht","dt","ft","pt","mt","gt","vt","yt","bt","wt","kt","Tt","St","Et","At","xt","Ct","Pt","Ot","It","Lt","QObject","Nt","findChild","Mt","jt","Rt","Dt","Ht","Ft","qt","Ut","keyFor","useSetter","useSimple","Bt","Vt","zt","Wt","Kt","Yt","Gt","Xt","Qt","foo","Jt","Zt","en","tn","ACCESSORS","nn","rn","an","sn","ln","cn","un","hn","dn","pn","mn","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","gn","vn","yn","bn","wn","kn","Tn","Sn","En","An","xn","Cn","Pn","On","In","Ln","Nn","Mn","jn","Rn","Dn","Fn","qn","Un","Hn","Bn","Vn","zn","Wn","return","Kn","Yn","Gn","Xn","Qn","Jn","Zn","ei","ti","ni","ii","ri","ai","ci","ui","hi","di","fi","pi","mi","gi","vi","yi","bi","wi","ki","Ti","Si","Ei","Ai","xi","Ci","Pi","Oi","Ii","Li","Ni","Mi","ji","Ri","Di","Fi","qi","Ui","Hi","Bi","Vi","zi","Wi","$i","sign","Ki","Yi","Gi","Xi","Qi","Ji","Zi","tr","nr","ir","rr","ar","or","sr","lr","cr","ur","hr","dr","fr","pr","mr","gr","vr","yr","br","wr","kr","Tr","Sr","Er","Ar","xr","Cr","Pr","Or","Ir","UNSUPPORTED_Y","BROKEN_CARET","Lr","Nr","Mr","jr","Rr","_r","Dr","Fr","qr","Ur","Hr","Br","Vr","zr","Wr","$r","Kr","Yr","Gr","Xr","Qr","Jr","Zr","ea","ta","ia","ra","aa","oa","sa","la","ca","codeAt","ha","da","fa","pa","ma","ga","va","IteratorPrototype","BUGGY_SAFARI_ITERATORS","ya","ba","wa","Ta","Sa","Ea","Aa","xa","Ca","Pa","Oa","Ia","La","Na","Ma","ja","Ra","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","Da","Fa","qa","Ua","Ha","Ba","Va","za","Wa","$a","Ka","Ya","Ga","Xa","Qa","Ja","Za","eo","io","preventExtensions","ro","objectID","weakData","REQUIRED","fastKey","getWeakData","onFreeze","ao","stopped","oo","so","lo","co","uo","ho","fo","po","frozen","mo","vo","getConstructor","yo","setStrong","bo","wo","kind","Arguments","ko","To","So","Eo","Ao","xo","Co","Po","Oo","searchParams","Io","Lo","No","Mo","jo","Ro","Do","Fo","qo","Uo","Ho","Bo","Vo","zo","Wo","$o","Ko","Yo","Go","Xo","Qo","Jo","Zo","es","rs","as","os","ss","updateURL","updateSearchParams","ls","getAll","cs","us","getState","hs","ds","fs","ps","gs","vs","ys","bs","ks","Ts","Ss","Es","As","xs","Cs","Ps","Os","Is","Ns","Us","Ls","Fs","js","Ms","Rs","Ds","qs","ftp","http","https","wss","scheme","Hs","Bs","cannotBeABaseURL","Vs","zs","Ws","$s","Ks","Ys","Gs","Xs","Qs","Js","Zs","tl","nl","il","rl","al","ol","sl","ll","cl","ul","hl","dl","fl","pl","fragment","ml","vl","yl","bl","wl","kl","Tl","Sl","El","Al","xl","Cl","Pl","gl","Ol","Il","Ll","Nl","Ml","jl","Rl","Dl","Fl","ql","Hl","Ul","Bl","Vl","zl","Wl","$l","Kl","addCSS","thumbWidth","Yl","Gl","Xl","Ql","Jl","Zl","ec","ic","rc","ac","Element","sc","lc","cc","uc","hc","dc","rangeTouch","userSelect","webKitUserSelect","touchAction","changedTouches","clientX","bubbles","fc","pc","mc","gc","vc","yc","bc","wc","kc","Tc","Sc","Ec","Ac","xc","Cc","Pc","Oc","Ic","Lc","Nc","KeyboardEvent","Mc","TextTrack","jc","Rc","Dc","WebkitTransition","MozTransition","OTransition","Fc","hidden","qc","documentMode","isWebkit","isIPhone","isIos","Uc","Hc","Bc","Vc","zc","Wc","$c","Kc","Yc","Gc","Xc","Qc","Jc","Zc","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","eu","elements","tu","nu","preventScroll","classNames","tabFocus","iu","ru","audio","playsinline","api","rangeInput","pip","webkitSetPresentationMode","pictureInPictureEnabled","disablePictureInPicture","airplay","WebKitPlaybackTargetAvailabilityEvent","mime","isHTML5","canPlayType","textTracks","touch","transitions","reducedMotion","matchMedia","au","ou","eventListeners","su","lu","cu","uu","CustomEvent","detail","plyr","hu","du","fu","pu","mu","gu","ratio","videoWidth","videoHeight","vu","isVideo","paddingBottom","isVimeo","vimeo","premium","fullscreen","videoFixedRatio","padding","yu","getSources","getQualityOptions","quality","onChange","currentTime","preload","playbackRate","play","cancelRequests","blankVideo","bu","wu","ku","Tu","Su","Eu","Au","html5","youtube","xu","seekTime","Cu","Pu","Ou","insertAdjacentElement","Iu","Lu","Nu","Mu","ju","getIconUrl","iconUrl","svg4everybody","cors","findElements","selectors","restart","rewind","fastForward","mute","captions","inputs","seek","volume","seekTooltip","toggleNativeControls","createIcon","iconPrefix","createLabel","createBadge","menu","badge","createButton","labelPressed","iconPressed","autocomplete","updateRangeFill","createProgress","played","createTime","time","bindMenuItemShortcuts","showMenuPanel","firstElementChild","previousElementSibling","lastElementChild","focusFirstMenuItem","createMenuItem","currentTrack","formatTime","updateTimeDisplay","updateVolume","muted","pressed","updateProgress","nodeValue","buffered","updateSeekTooltip","tooltips","timeUpdate","invertTime","seeking","durationUpdate","toggleMenuButton","updateSetting","panels","getLabel","Du","setQualityMenu","checkMenu","setCaptionsMenu","getTracks","toggled","setSpeedMenu","minimumSpeed","maximumSpeed","popup","toggleMenu","composedPath","getMenuSize","scrollWidth","scrollHeight","setDownloadUrl","home","urls","isEmbed","provider","loadSprite","seektime","controlPressed","labels","Ru","isYouTube","languages","userLanguage","currentTrackNode","updateCues","setLanguage","findTrack","enableTextTrack","getCurrentTrack","activeCues","getCueAsHTML","Fu","autoplay","autopause","toggleInvert","clickToPlay","hideControls","resetOnEnd","disableContextMenu","loop","focused","iosNative","seekLabel","unmute","enableCaptions","disableCaptions","enterFullscreen","frameTitle","menuBack","normal","advertisement","qualityBadge","sdk","googleIMA","editable","embedContainer","poster","posterEnabled","ads","playing","hover","cues","isTouch","uiSupported","noTransition","previewThumbnails","thumbContainer","thumbContainerShown","imageContainer","timeContainer","scrubbingContainer","scrubbingContainerShown","publisherId","tagUrl","byline","portrait","transparent","referrerPolicy","noCookie","showinfo","iv_load_policy","modestbranding","qu","Uu","Hu","Bu","Vu","zu","Wu","$u","player","scrollPosition","forceFallback","parentElement","trapFocus","scrollX","scrollY","overflow","cleanupViewport","webkitEnterFullscreen","toggleFallback","navigationUI","webkitExitFullscreen","cancelFullScreen","getRootNode","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","Ku","naturalWidth","Yu","addStyleHook","checkPlaying","setTitle","setPoster","togglePoster","backgroundImage","backgroundSize","toggleControls","checkLoading","timers","lastSeekTime","migrateStyles","getPropertyValue","removeProperty","Gu","lastKey","focusTimer","lastKeyDown","handleKey","setTabFocus","firstTouch","togglePlay","increaseVolume","decreaseVolume","toggleCaptions","usingNative","resized","maxWidth","isAudio","startMove","endMove","startScrubbing","endScrubbing","webkitDirectionInvertedFromDevice","deltaX","deltaY","Xu","numRetries","relList","onbeforeload","sheet","isDefined","Qu","Ju","hasPlayed","Zu","Vimeo","sidedock","gesture","$2","thumbnail_large","Player","disableTextTrack","setVolume","setCurrentTime","setPlaybackRate","setLoop","getVideoUrl","getVideoWidth","getVideoHeight","setAutopause","getVideoTitle","getCurrentTime","getDuration","getTextTracks","createDocumentFragment","getPaused","seconds","percent","eh","th","nh","YT","onYouTubeIframeAPIReady","getTitle","videoId","playerVars","disablekb","cc_load_policy","cc_lang_pref","widget_referrer","onPlaybackRateChange","getPlaybackRate","playVideo","pauseVideo","stopVideo","seekTo","getAvailablePlaybackRates","buffering","getVideoLoadedFraction","lastBuffered","onStateChange","unMute","ih","rh","initialized","displayContainer","cuePoints","safetyTimer","countdownTimer","managerPromise","google","ima","startSafetyTimer","clearSafetyTimer","setupIMA","setVpaidMode","ImaSdkSettings","VpaidMode","ENABLED","setLocale","setDisableCustomPlaybackForIOS10Plus","AdDisplayContainer","AdsLoader","AdsManagerLoadedEvent","Type","ADS_MANAGER_LOADED","onAdsManagerLoaded","AdErrorEvent","AD_ERROR","onAdError","requestAds","AdsRequest","adTagUrl","linearAdSlotWidth","linearAdSlotHeight","nonLinearAdSlotWidth","nonLinearAdSlotHeight","forceNonLinearFullSlot","setAdWillPlayMuted","getRemainingTime","AdsRenderingSettings","restoreCustomPlaybackStateOnAdBreakComplete","enablePreloading","getAdsManager","getCuePoints","AdEvent","onAdEvent","getAd","getAdData","LOADED","pollCountdown","isLinear","STARTED","ALL_ADS_COMPLETED","loadAds","contentComplete","CONTENT_PAUSE_REQUESTED","pauseContent","CONTENT_RESUME_REQUESTED","resumeContent","LOG","adError","getMessage","addCuePoints","discardAdBreak","resize","ViewMode","NORMAL","initialize","zIndex","AV_PUBLISHERID","AV_CHANNELID","AV_URL","AV_WIDTH","AV_HEIGHT","AV_CDIM2","ah","startTime","endTime","oh","sh","thumbnails","lastMouseMoveTime","loadedImages","thumb","scrubbing","getThumbnails","determineContainerAutoSizing","getThumbnail","frames","urlPrefix","naturalHeight","mousePosX","showImageAtCurrentTime","toggleThumbContainer","toggleScrubbingContainer","lastTime","setScrubbingContainerSize","setThumbContainerSizeAndPos","showingThumb","loadImage","currentImageElement","dataset","showImage","removeOldImages","loadingImage","usingSprites","showingThumbFilename","setImageSizeAndOffset","currentImageContainer","preloadNearby","getHigherQuality","deleting","thumbContainerHeight","clientHeight","clientWidth","sizeSpecifiedInCSS","thumbAspectRatio","setThumbContainerPos","currentScrubbingImageElement","currentThumbnailImageElement","lh","insertElements","crossorigin","tracks","jQuery","tabindex","webkitShowPlaybackTargetPicker","unload","mozHasAudio","webkitAudioDecodedByteCount","audioTracks","currentSrc","requestPictureInPicture","exitPictureInPicture","webkitPresentationMode","pictureInPictureElement","uh","hideYouTubeDOMError","beforeUnmount","PACKET_TYPES","PACKET_TYPES_REVERSE","ERROR_PACKET","withNativeBlob","withNativeArrayBuffer","encodePacket","supportsBinary","encodeBlobAsBase64","fileReader","TEXT_ENCODER","encodePacketToBinary","packet","encoded","TextEncoder","lookup","base64","encoded1","encoded2","encoded3","encoded4","bufferLength","arraybuffer","bytes","decodePacket","encodedPacket","binaryType","mapBinary","decodeBase64Packet","packetType","decoded","SEPARATOR","encodePayload","packets","encodedPackets","decodePayload","encodedPayload","decodedPacket","createPacketEncoderStream","TransformStream","controller","payloadLength","setUint8","view","setUint16","setBigUint64","BigInt","enqueue","TEXT_DECODER","totalLength","chunks","chunk","concatChunks","createPacketDecoderStream","maxPayload","TextDecoder","expectedLength","isBinary","headerArray","getUint16","getUint32","_callbacks","emitReserved","hasListeners","globalThisShim","NATIVE_SET_TIMEOUT","NATIVE_CLEAR_TIMEOUT","installTimerFunctions","useNativeTimers","setTimeoutFn","clearTimeoutFn","BASE64_OVERHEAD","utf8Length","qry","TransportError","Transport","doOpen","doClose","onClose","onOpen","onData","onPacket","details","onPause","createUri","_hostname","_port","_query","encodedQuery","alphabet","yeast","hasCORS","XHR","xdomain","createCookieJar","hasXHR2","xhr","Polling","polling","isSSL","xd","forceBase64","cookieJar","poll","total","doPoll","doWrite","timestampRequests","timestampParam","sid","b64","Request","xhrStatus","pollXhr","extraHeaders","setDisableHeaderCheck","addCookies","requestTimeout","parseCookies","onLoad","requestsCount","requests","fromError","attachEvent","unloadHandler","terminationEvent","isPromiseAvailable","MozWebSocket","usingBrowserWebSocket","defaultBinaryType","isReactNative","WS","addEventListeners","autoUnref","_socket","closeEvent","ev","lastPacket","compress","perMessageDeflate","threshold","WT","WebTransport","transportOptions","closed","createBidirectionalStream","stream","decoderStream","readable","pipeThrough","getReader","encoderStream","pipeTo","writer","getWriter","websocket","webtransport","authority","ipv6uri","pathNames","queryKey","regx","$0","Socket","writeBuffer","prevBufferLen","upgrade","rememberUpgrade","addTrailingSlash","rejectUnauthorized","closeOnBeforeunload","upgrades","pingInterval","pingTimeout","pingTimeoutTimer","beforeunloadEventListener","offlineEventListener","createTransport","EIO","priorWebsocketSuccess","setTransport","onDrain","probe","onTransportOpen","upgrading","freezeTransport","onTransportClose","onupgrade","resetPingTimeout","onHandshake","sendPacket","filterUpgrades","getWritablePackets","shouldCheckPayloadSize","payloadSize","cleanupAndClose","waitForUpgrade","filteredUpgrades","loc","ipv6","withNativeFile","File","hasBinary","deconstructPacket","buffers","packetData","pack","_deconstructPacket","attachments","_placeholder","newData","reconstructPacket","_reconstructPacket","isIndexValid","RESERVED_EVENTS","PacketType","Encoder","EVENT","ACK","encodeAsString","encodeAsBinary","BINARY_EVENT","BINARY_ACK","nsp","deconstruction","Decoder","reviver","reconstructor","decodeString","isBinaryEvent","BinaryReconstructor","takeBinaryData","buf","tryParse","isPayloadValid","CONNECT","DISCONNECT","CONNECT_ERROR","finishedReconstruction","reconPack","binData","connect","connect_error","disconnecting","recovered","receiveBuffer","sendBuffer","_queue","_queueSeq","acks","_opts","_autoConnect","disconnected","subEvents","onpacket","_readyState","fromQueue","volatile","_addToQueue","ack","_registerAckCallback","isTransportWritable","engine","discardPacket","notifyOutgoingListeners","ackTimeout","withError","emitWithAck","arg1","arg2","tryCount","responseArgs","_drainQueue","_packet","_sendConnectPacket","_pid","pid","_lastOffset","_clearAcks","isBuffered","sameNamespace","onconnect","onevent","onack","ondisconnect","emitEvent","_anyListeners","emitBuffered","subDestroy","onAny","prependAny","offAny","listenersAny","onAnyOutgoing","_anyOutgoingListeners","prependAnyOutgoing","offAnyOutgoing","listenersAnyOutgoing","Backoff","factor","jitter","attempts","rand","deviation","setMin","setMax","setJitter","nsps","reconnection","reconnectionAttempts","reconnectionDelay","reconnectionDelayMax","randomizationFactor","backoff","_parser","autoConnect","_reconnection","_reconnectionAttempts","_reconnectionDelay","_randomizationFactor","_reconnectionDelayMax","_timeout","maybeReconnectOnOpen","_reconnecting","reconnect","Engine","skipReconnect","openSubDestroy","errorSub","onping","ondata","ondecoded","_destroy","_close","onreconnect","newConnection","forceNew","multiplex","tokenpath","token_path","general_password","rooms_joined","is_correctly_logged_in","initSocketio","sessionID","_setAuthFromStorage","setAuthorizationHeader","getCurrentAuthor","trackCurrentAuthor","socketid","userID","emptyStore","rejoinRooms","_args","changed_data","$thumbs","folderCreated","folderUpdated","folderRemoved","fileCreated","fileUpdated","fileRemoved","taskStatus","taskEnded","disconnectSocket","apiJoinRoom","index_to_remove","rj","updateStore","infos","has_general_password","search_params","token_and_tokenpath","submitFolderToken","$axios","getFolder","updateProps","folder_to_update","parent_folder_path","folder_index","path_to_folder","path_to_meta","getStoragePath","storage_path","pathToUserContent","restartDodoc","processError","folders","detailed_infos","getPublicFolder","superadmintoken","getArchives","getLocalNetworkInfos","new_folder_slug","auth_infos","resetToken","disconnectFromGeneralPassword","uploadText","uploadFile","onProgress","progressEvent","copyFolder","path_to_destination_type","copy_folder_path","downloadFolder","importFolder","new_folder_meta","remixFolder","remix_folder_path","exportFolder","optimizeFile","generatePreviewForPublication","original_filename","edit_mode","new_content","input_type","minlength","maxlength","enableEditMode","is_saving","updateText","field_name","current_character_count","cleanUpString","TextInput","new_path","changeStorage","updatePath","openInFinder","absolute_path","path_to_storage","electronAPI","receive","path_to_content","authors_paths","show_image_only","radio_mode","editing_options","new_authors_paths","addAuthor","updateAuthors","no_options","new_editing_mode","initAuthorPaths","_new_authors_paths","can_be_toggled","is_open_initially","toggleDetails","has_items","currently_open","animateDetails","animate","easing","onfinish","oncancel","can_be_dragged","startMediaDrag","endMediaDrag","fileCanBeDragged","setData","effectAllowed","dragfileSuccess","dropup","show_dropdown","mouseLeave","mouseOver","mouseEnter","startTimer","stopTimer","hover_time","hover_timeout","interactive","closeOnClickOutside","hovering","closeMenu","hoverOpenTimer","hoverTimer","dropdown","window_height","show_labels","custom_label","all_participants_path","admins_path","contributors_path","admin_label","admin_instructions","contrib_instructions","$admins","$contributors","closeModal","require_signup_to_contribute","canLoggedinContributeToFolder","tag_type","new_status","status_options","show_label","toggleFav","local_fav","shorten_if_too_long","new_tags","removeTag","create_new_tag","new_tag_name","newTag","allow_save_newkeyword","onEnter","new_tag_name_already_exists","updateTags","never_shorten_list","TagsSuggestion","cancelNewTag","cover_thumb","preview_format","show_cover_fullscreen","cover_full","label_title","existing_preview","cover","selected_file","coverMakeRelativeURLFromThumbs","cover_thumb_srcset","makeRelativeURLFromThumbs","resolution","grouped_options","updateSelect","new_opt","instruction","new_value","hide_validation","current_instruction","explanations","ToggleInput","current_option","thumb_src","current_options","setNewContent","adjusted_options","optionIsSelected","checkOption","listed_files","removeFile","show_picker","$getMetaFilenamesAlreadyPresent","getMediaInFolder","lf","path_to_source_media_metas","new_files","path_to_source_media_meta","new_files_list","updateFiles","_files","showDownloadModal","show_download_modal","folder_size","download_started","is_downloading","startDownload","archive_name","getFolderSize","tags_list","tagMode","shorten_tag_list","show_subset","toggleSubset","show_at_first","tags_active","tag_str","icon_to_show","tag_name","isTranslated","translated_prefix","translatedPrefix","local_items","updateOrder","change_order","save_status","show_remove_modal","store_type","show_index","active_item_path","active_item_meta","handle","getMetaFilenames","previous_sections_list","sections_list","urls_to_page","current_opt","network_options","qr_urls","qr_url","url_to_access","QRCodeWithLink","network_infos","local_network","current_url","_urls_to_page","local","isIP","local_ips","ip","canvas_dataurl","qrCode","toDataURL","address","has_nofooter","modal","show_dropzone","media_types_allowed","dz","allowed_types","registerDropzone","showDropzone","hideDropzone","unregisterDropzone","dropEffect","droppedFiles","droppedMediaInDodoc","current_value","updateValue","label_str","field_input_type_prop","validity","show_password_in_clear","toggleInputType","autofocus","initInput","focusSpanAtEnd","placeCaretAtEnd","selectNodeContents","sel","createTextRange","textRange","moveToElementText","originalEvent","queryCommandSupported","deleteContents","insertNode","local_value","default_value","pins","map_key","zoom","newPositionClicked","zoomUpdated","latitude","longitude","removePosition","updateLongLatZoom","DisplayOnMap","initLongLatZoom","location_infos","can_toggle","show_color_input","default_colors","is_custom_color","live_editing","saveColor","cancelColor","previous_value","col","search_placeholder","show_toggle","show_range_input","steplist_id","ticks","tick","filtered_authors","current_authors","all_authors","all_authors_except_current","modal_name","new_folder_title","new_folder_is_private","is_creating_folder","default_folder_status","setDefaultContentAdmins","transfer_percent","folder_to_import","err_message","imported_project_path","imported_project_title","importProject","save_text","autofocus_save","show_detail","formatDateTimeToPrecise","date","formatDateToHuman","show_detail_initially","formatBytes","formatDurationToHoursMinutesSecondsDeciseconds","local_date","format_date","formatDateTimeToHuman","files_to_upload","cssStatus","files_to_upload_meta","upload_percentages","getImgPreview","sendThisFile","sendAllFiles","lastModified","$date_created","img_loading","zoom_on_click","full_thumb","file_full_path","img_width","img_ratio","volumeChanged","videoTimeUpdated","start_iframe","is_loading_iframe","failed_to_load_iframe","iframeLoaded","url_to_site","loadIframe","publicPath","show_fs_button","show_fullscreen","ThreeDPreview","ImageZoom","path_to_parent","makeMediaFilePath","transformURL","vol","closeFs","image_src","show_img","openFs","editor_is_enabled","editorClick","show_archives","restoreVersion","quill_styles","is_disabling_editor","is_loading_or_saving","show_saved_icon","field_to_edit","disableEditor","toggleEdit","archives","archive_shown_index","newerVersion","selected_archive_filename","archive","olderVersion","archive_shown","current_content","getAllArchives","$archives","onHide","fonts","fontSizeArr","lineHeightArr","MediaBlot","caption_tag","btnRow","captionInput","__onSelect","removeButton","ratioButton","inline","__onDeselect","img","figcaption","blockquote","CardEditableModule","deselectCard","__blot","handleClick","handleDrag","ShareDB","lineHeightConfig","lineHeightClass","lineHeightStyle","Size","FontAttributor","custom_fonts_titles","cf","all_fonts","default_fonts","DividerBlot","sharedb_id","custom_formats","line_selected","edit_on_mounted","is_collaborative","TextVersioning","text_deltas","toolbar_el","tooltip_el","rtc","connection_state","debounce_textUpdate","collaborative_is_loaded","autosave","currently_selected_eles","editor_id","initEditor","enableEditor","selected_line","newEles","makeToolbar","cardEditable","default_formats","setStatusButton","updateSelectedLines","reference_formats","lineheight","formatting_opt","basic_formatting","bf","background","divider","line_height_select","new_line_height","getEditorContent","cleanEditorContent","editBtn","bloc_height","startCollaborative","fontLastUsed","$toolbar","$tooltip","endCollaborative","saveText","getToolbarBack","line_number","requested_resource_url","submitOPAndSave","updateTextMedia","addMediaAtTheEnd","addMediaAtIndex","addMediaAtCaretPosition","mediaURL","folder_slug","media_filename","thumb_path","_blot","getBlockFromElement","removeDragoverFromBlots","component_tag","toggleInstructions","for_input","icon_styles","show_instructions","file_url","makeMediaFileURL","$optimized","modal_width","is_optimizing","optimized_file","keepBoth","replaceOriginal","resolution_preset_picked","presets","optimizeMedia","suggested_file_name","getFilenameWithoutExt","quality_preset","base_media_path","current_task_id","checkIfEnded","old_source_file","new_source_file","removeImage","available_options","onFileChange","_instructions","addMediaFromLib","enable_capture_mode","tempMedia","CaptureView","show_medias_from_project","setNewPreview","createImage","getParent","blob","rawData","mediasImagesPreviewURL","thumbs","small_thumb","pathToSmallestThumb","selectThisImageForPreview","metaFileName","slugFolderName","getPreviewFromMedias","getProjectsImages","source_project_path","is_loading_project","source_project","pick_from_type","MediaLibrary","loadProjects","fetchSelectedProject","is_unfolded","btn_styles","label_position","btn_props","btn_type","toLocaleTimeString","formatDate","toLocaleDateString","weekday","year","month","day","hour","minute","second","formatDateToHoursMinutesOnly","formatDurationToHoursMinutesSeconds","datetimeLocal","datetime","setMinutes","getMinutes","getTimezoneOffset","toLocaleString","extractArr","folder_arr","roundToDec","expo","EPSILON","constrainVal","getFromCache","waveform","getFirstThumbURLForMedia","path_to_parent_folder","full_path","getSourceMedia","source_media","source_path","_media","meta_filename_in_project","og_url","addhttp","cleaned_up_url","urlContains","getPeertubeEmbedFromUrl","getYoutubeEmbedURLFromURL","getVimeoEmbedURLFromURL","getSoundcloudEmbedURLFromURL","autoplay_value","video_id","getTweetIdFromURL","tweetRegex","getId","group_by","grouped","date_field_to_use","dateObj","getUTCMonth","getUTCDate","getUTCFullYear","ordered","date_label","ext","is_instance_contributor","canLoggedinEditFolder","canPublicSeeFolder","$public","calculateZoomToFit","desired_largest_dimension","magnification","largest_dimension","findModuleFromMetaFilename","_meta_name","getModulesForPage","page_id","getModulesForSection","publication","section","modules_list","makeStoryStyles","story_width","story_is_not_responsive","setPaginationFromPublication","enable_pagination","pagn_right","pagn_bottom","pagination_start_on_page","pagn_starts_on_page","makeSpread","pages","number_of_spreads","spreads","left_page","right_page","firstMedia","page_module","source_medias","publication_path","duplicateModuleWithSourceMedias","og_module","addtl_meta_to_module","new_source_medias","new_media_obj","og_file_path","copy_file_path","getSectionsList","getSectionsWithProps","section_module","createSection2","section_type","section_title","section_meta_filename","removeSection2","insertModuleMetaFilenamesToList2","meta_filenames","section_modules_list","moveModuleTo2","new_position","target_meta_index","duplicatePublicationMedia2","source_meta_filename","copy_meta_filename","position_of_original_media","_mf","removeModule2","getMediasAlreadyPresentInPublication","sections","opened_section_meta_filename","is_current_section","prepareMediaForPublication","import_mode","parent_project_path_for_media","parent_project_path_for_publi","getModuleType","path_without_space","createURLToSpace","path_items","event_slug","page_slug","getRandomString","twoStringsMatch","normalizeStringForSearch","_input","updatePageQuery","alertify","PortalVue","VuePlyr","TitleField","PickNativePath","AuthorField","DetailsPane","DragFile","DropDown","AdminsAndContributorsField","EditAdminsAndContributorsField","StatusTag","FavSwitch","TagsField","CoverField","SelectField","SelectField2","ToggleField","RadioCheckboxField","RadioCheckboxInput","FilesModule","DebugBtn","DownloadFolder","RemoveMenu","TagsList","SingleTag","ReorderedList","QRModal","BaseModal2","RadioSwitch","DropZone","AnimatedCounter","NumberInput","PositionPicker","ColorInput","SearchInput","ToggledSection","RangeValueInput","AuthorPicker","CreateFolder","ImportFolder","SaveCancelButtons","DateDisplay","SizeDisplay","ResolutionDisplay","DurationDisplay","DateField","UploadFiles","MediaContent","FullscreenView","CollaborativeEditor2","AuthorTag","DLabel","DownloadFile","OptimizeMedia","ImageSelect","PickMediaFromProjects","EditBtn","FormatDates","FormatBytes","Props","Cache","Medias","Authors","Capture","Publications","Paths","Strings","Queries","Tags","Electron","App","current_time","default_new_module_width","default_new_module_height","default_new_module_left","default_new_module_top","set_new_module_offset_left","set_new_module_offset_top","zoom_offset","page_magnification","dropzones","publication_include_mode","debounce_dragover","modalIsOpened","modalIsClosed","id_to_unregister"],"sourceRoot":""} \ No newline at end of file diff --git a/client/dist/context-filter-polyfill.min.js b/client/dist/context-filter-polyfill.min.js deleted file mode 100644 index c7ce1b8e1..000000000 --- a/client/dist/context-filter-polyfill.min.js +++ /dev/null @@ -1,8 +0,0 @@ -/** - * Skipped minification because the original files appears to be already minified. - * Original file: /npm/context-filter-polyfill@0.3.13/dist/index.js - * - * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files - */ -var P=new Map;var B=()=>"filter"in CanvasRenderingContext2D.prototype,L=e=>{let t=document.createElement("canvas");return t.height=e.canvas.height,t.width=e.canvas.width,Object.defineProperty(t,"__skipFilterPatch",{value:!0}),t.getContext("2d")};function H(e,t){Object.defineProperty(e.prototype,"__skipFilterPatch",{writable:!0,value:!1}),Object.defineProperty(e.prototype,"__currentPathMirror",{writable:!0,value:void 0}),Object.defineProperty(t.prototype,"filter",{writable:!0,value:"none"})}var x=["__skipFilterPatch","__currentPathMirror","canvas","clearRect","filter","getImageData","globalCompositeOperation"];function U(e){Object.keys(e.prototype).filter(t=>x.indexOf(t)<0).map(t=>({member:t,descriptor:Object.getOwnPropertyDescriptor(e.prototype,t)})).filter(({descriptor:t})=>t.set).forEach(({member:t,descriptor:o})=>{let n=o;Object.defineProperty(e.prototype,t,{get:function(){return this.canvas.__skipFilterPatch?n.get.call(this):this.canvas.__currentPathMirror[t]},set:function(i){if(this.canvas.__skipFilterPatch)return n.set.call(this,i);this.canvas.__currentPathMirror||(this.canvas.__currentPathMirror=L(this)),this.canvas.__currentPathMirror[t]=i}})})}var G=["clearRect","drawImage","fill","fillRect","fillText","stroke","strokeRect","strokeText"];var Y=(e,t)=>{var o;(o=t.match(/([-a-z]+)(?:\(([\w\d\s\.%-]*)\))?/gim))==null||o.map(n=>{var i;return(i=n.match(/([-a-z]+)(?:\((.*)\))?/i))==null?void 0:i.slice(1,3)}).reduce((n,[i,r])=>P.has(i)?P.get(i)(n,...(r||"").split(" ")):n,e)},C=e=>{let t=parseFloat(e);return/%\s*?$/i.test(e)&&(t/=100),t},K=e=>{let t=parseFloat(e);switch(e.slice(t.toString().length)){case"deg":t/=360;break;case"grad":t/=400;break;case"rad":t/=2*Math.PI;break}return t},j=e=>parseFloat(e);function W(e){Object.keys(e.prototype).filter(t=>x.indexOf(t)<0).map(t=>({member:t,descriptor:Object.getOwnPropertyDescriptor(e.prototype,t)})).filter(({descriptor:t})=>t.value&&typeof t.value=="function").forEach(({member:t,descriptor:o})=>{let n=o.value;Object.defineProperty(e.prototype,t,{value:function(...i){if(this.canvas.__skipFilterPatch)return n.call(this,...i);this.canvas.__currentPathMirror||(this.canvas.__currentPathMirror=L(this));let r=this.canvas.__currentPathMirror[t](...i);if(G.includes(t)){Y(this.canvas.__currentPathMirror,this.filter),this.canvas.__skipFilterPatch=!0;let s;"getTransform"in this&&(s=this.getTransform(),this.setTransform(1,0,0,1,0,0)),this.drawImage(this.canvas.__currentPathMirror.canvas,0,0),s&&this.setTransform(s),this.canvas.__skipFilterPatch=!1,this.canvas.__currentPathMirror=L(this)}return r}})})}var X=e=>e;var $=(e,t="0")=>{let o=j(t);if(o<=0)return e;let{height:n,width:i}=e.canvas,r=e.getImageData(0,0,i,n),{data:s}=r,a=i-1,l=n-1,p=o+1,m=[1,57,41,21,203,34,97,73,227,91,149,62,105,45,39,137,241,107,3,173,39,71,65,238,219,101,187,87,81,151,141,133,249,117,221,209,197,187,177,169,5,153,73,139,133,127,243,233,223,107,103,99,191,23,177,171,165,159,77,149,9,139,135,131,253,245,119,231,224,109,211,103,25,195,189,23,45,175,171,83,81,79,155,151,147,9,141,137,67,131,129,251,123,30,235,115,113,221,217,53,13,51,50,49,193,189,185,91,179,175,43,169,83,163,5,79,155,19,75,147,145,143,35,69,17,67,33,65,255,251,247,243,239,59,29,229,113,111,219,27,213,105,207,51,201,199,49,193,191,47,93,183,181,179,11,87,43,85,167,165,163,161,159,157,155,77,19,75,37,73,145,143,141,35,138,137,135,67,33,131,129,255,63,250,247,61,121,239,237,117,29,229,227,225,111,55,109,216,213,211,209,207,205,203,201,199,197,195,193,48,190,47,93,185,183,181,179,178,176,175,173,171,85,21,167,165,41,163,161,5,79,157,78,154,153,19,75,149,74,147,73,144,143,71,141,140,139,137,17,135,134,133,66,131,65,129,1][o],D=[0,9,10,10,14,12,14,14,16,15,16,15,16,15,15,17,18,17,12,18,16,17,17,19,19,18,19,18,18,19,19,19,20,19,20,20,20,20,20,20,15,20,19,20,20,20,21,21,21,20,20,20,21,18,21,21,21,21,20,21,17,21,21,21,22,22,21,22,22,21,22,21,19,22,22,19,20,22,22,21,21,21,22,22,22,18,22,22,21,22,22,23,22,20,23,22,22,23,23,21,19,21,21,21,23,23,23,22,23,23,21,23,22,23,18,22,23,20,22,23,23,23,21,22,20,22,21,22,24,24,24,24,24,22,21,24,23,23,24,21,24,23,24,22,24,24,22,24,24,22,23,24,24,24,20,23,22,23,24,24,24,24,24,24,24,23,21,23,22,23,24,24,24,22,24,24,24,23,22,24,24,25,23,25,25,23,24,25,25,24,22,25,25,25,24,23,24,25,25,25,25,25,25,25,25,25,25,25,25,23,25,23,24,25,25,25,25,25,25,25,25,25,24,22,25,25,23,25,25,20,24,25,24,25,25,22,24,25,24,25,24,25,25,24,25,25,25,25,22,25,25,25,24,25,24,25,18][o],h=[],y=[],d=[],v=[],T=[],M=[],E=3,c,_,w,R;for(;E-- >0;){let F=0,g=0;for(let O=0;Oa?a:u)<<2),b+=s[c++],k+=s[c++],z+=s[c++],N+=s[c];for(let u=0;u0?c<<2:0),_=F+T[u],w=F+M[u],b+=s[_++]-s[w++],k+=s[_++]-s[w++],z+=s[_++]-s[w++],N+=s[_]-s[w],g++;F+=i<<2}for(let O=0;Ol?0:i,k+=h[b],z+=y[b],N+=d[b],u+=v[b];g=O<<2;for(let I=0;I>>D,R>0?(R=255/R,s[g]=(k*m>>>D)*R,s[g+1]=(z*m>>>D)*R,s[g+2]=(N*m>>>D)*R):s[g]=s[g+1]=s[g+2]=0,O===0&&(T[I]=((c=I+p)0?c*i:0),_=O+T[I],w=O+M[I],k+=h[_]-h[w],z+=y[_]-y[w],N+=d[_]-d[w],u+=v[_]-v[w],g+=i<<2}}return e.putImageData(r,0,0),e};var q=(e,t="1")=>{if(t=C(t),t===1)return e;t<0&&(t=0);let{height:o,width:n}=e.canvas,i=e.getImageData(0,0,n,o),{data:r}=i,{length:s}=r;for(let a=0;a{if(t=C(t),t===1)return e;t<0&&(t=0);let{height:o,width:n}=e.canvas,i=e.getImageData(0,0,n,o),{data:r}=i,{length:s}=r;for(let a=0;a{let r=document.createElement("canvas").getContext("2d"),{width:s,height:a}=e.canvas;return r.canvas.width=s,r.canvas.height=a,r.shadowOffsetX=j(t),r.shadowOffsetY=j(o),r.shadowBlur=i?j(n||"0"):0,r.shadowColor=i||n||"transparent",r.drawImage(e.canvas,0,0),e.putImageData(r.getImageData(0,0,s,a),0,0),e};var V=(e,t="0")=>{if(t=C(t),t<=0)return e;t>1&&(t=1);let{height:o,width:n}=e.canvas,i=e.getImageData(0,0,n,o),{data:r}=i,{length:s}=r;for(let a=0;a{let o=K(t);if(o<=0)return e;let{height:n,width:i}=e.canvas,r=e.getImageData(0,0,i,n),{data:s}=r,l=(o%1+1)%1*3,p=Math.floor(l),f=l-p,m=1-f,S,D,h,y,d,v,T,M,E;switch(p){default:S=D=h=y=d=v=T=M=E=0;break;case 0:S=m,D=0,h=f,y=f,d=m,v=0,T=0,M=f,E=m;break;case 1:S=0,D=f,h=m,y=m,d=0,v=f,T=f,M=m,E=0;break;case 2:S=f,D=m,h=0,y=0,d=f,v=m,T=m,M=0,E=f;break}let c=0;for(let _=0;_{if(t=C(t),t<=0)return e;t>1&&(t=1);let{height:o,width:n}=e.canvas,i=e.getImageData(0,0,n,o),{data:r}=i,{length:s}=r;for(let a=0;a{if(t=C(t),t<0)return e;t>1&&(t=1);let{height:o,width:n}=e.canvas,i=e.getImageData(0,0,n,o),{data:r}=i,{length:s}=r;for(let a=3;a{let o=C(t);if(o===1)return e;o<0&&(o=0);let{height:n,width:i}=e.canvas,r=e.getImageData(0,0,i,n),{data:s}=r,a=(1-o)*.3086,l=(1-o)*.6094,p=(1-o)*.082,f=i<<2;for(let m=0;m{if(t=C(t),t<=0)return e;t>1&&(t=1);let{height:o,width:n}=e.canvas,i=e.getImageData(0,0,n,o),{data:r}=i,{length:s}=r;for(let a=0;a - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/client/dist/fonts/nanook/nanook-webfont.ttf b/client/dist/fonts/nanook/nanook-webfont.ttf deleted file mode 100644 index 81a44d964..000000000 Binary files a/client/dist/fonts/nanook/nanook-webfont.ttf and /dev/null differ diff --git a/client/dist/fonts/nanook/nanook-webfont.woff b/client/dist/fonts/nanook/nanook-webfont.woff deleted file mode 100644 index 2dd8e8605..000000000 Binary files a/client/dist/fonts/nanook/nanook-webfont.woff and /dev/null differ diff --git a/client/dist/fonts/nanook/nanook-webfont.woff2 b/client/dist/fonts/nanook/nanook-webfont.woff2 deleted file mode 100644 index 4ea0873fe..000000000 Binary files a/client/dist/fonts/nanook/nanook-webfont.woff2 and /dev/null differ diff --git a/client/dist/fonts/nanook/nanook_bold-webfont.eot b/client/dist/fonts/nanook/nanook_bold-webfont.eot deleted file mode 100644 index bf6f2be20..000000000 Binary files a/client/dist/fonts/nanook/nanook_bold-webfont.eot and /dev/null differ diff --git a/client/dist/fonts/nanook/nanook_bold-webfont.svg b/client/dist/fonts/nanook/nanook_bold-webfont.svg deleted file mode 100644 index 113513eb2..000000000 --- a/client/dist/fonts/nanook/nanook_bold-webfont.svg +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/client/dist/fonts/nanook/nanook_bold-webfont.ttf b/client/dist/fonts/nanook/nanook_bold-webfont.ttf deleted file mode 100644 index afb664cc1..000000000 Binary files a/client/dist/fonts/nanook/nanook_bold-webfont.ttf and /dev/null differ diff --git a/client/dist/fonts/nanook/nanook_bold-webfont.woff b/client/dist/fonts/nanook/nanook_bold-webfont.woff deleted file mode 100644 index 8149470b5..000000000 Binary files a/client/dist/fonts/nanook/nanook_bold-webfont.woff and /dev/null differ diff --git a/client/dist/fonts/nanook/nanook_bold-webfont.woff2 b/client/dist/fonts/nanook/nanook_bold-webfont.woff2 deleted file mode 100644 index c38e04490..000000000 Binary files a/client/dist/fonts/nanook/nanook_bold-webfont.woff2 and /dev/null differ diff --git a/client/dist/fonts/pt-serif/pt-serif-v17-latin-700.woff b/client/dist/fonts/pt-serif/pt-serif-v17-latin-700.woff deleted file mode 100644 index b83563d92..000000000 Binary files a/client/dist/fonts/pt-serif/pt-serif-v17-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/pt-serif/pt-serif-v17-latin-700.woff2 b/client/dist/fonts/pt-serif/pt-serif-v17-latin-700.woff2 deleted file mode 100644 index 0b309cc6e..000000000 Binary files a/client/dist/fonts/pt-serif/pt-serif-v17-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/pt-serif/pt-serif-v17-latin-700italic.woff b/client/dist/fonts/pt-serif/pt-serif-v17-latin-700italic.woff deleted file mode 100644 index 81aa6a378..000000000 Binary files a/client/dist/fonts/pt-serif/pt-serif-v17-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/pt-serif/pt-serif-v17-latin-700italic.woff2 b/client/dist/fonts/pt-serif/pt-serif-v17-latin-700italic.woff2 deleted file mode 100644 index 6442bbb70..000000000 Binary files a/client/dist/fonts/pt-serif/pt-serif-v17-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/pt-serif/pt-serif-v17-latin-italic.woff b/client/dist/fonts/pt-serif/pt-serif-v17-latin-italic.woff deleted file mode 100644 index aa351fd36..000000000 Binary files a/client/dist/fonts/pt-serif/pt-serif-v17-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/pt-serif/pt-serif-v17-latin-italic.woff2 b/client/dist/fonts/pt-serif/pt-serif-v17-latin-italic.woff2 deleted file mode 100644 index 24cac5f1b..000000000 Binary files a/client/dist/fonts/pt-serif/pt-serif-v17-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/pt-serif/pt-serif-v17-latin-regular.woff b/client/dist/fonts/pt-serif/pt-serif-v17-latin-regular.woff deleted file mode 100644 index c973e3173..000000000 Binary files a/client/dist/fonts/pt-serif/pt-serif-v17-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/pt-serif/pt-serif-v17-latin-regular.woff2 b/client/dist/fonts/pt-serif/pt-serif-v17-latin-regular.woff2 deleted file mode 100644 index a87e39ba7..000000000 Binary files a/client/dist/fonts/pt-serif/pt-serif-v17-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/fonts/raleway/raleway-v27-latin-700.woff b/client/dist/fonts/raleway/raleway-v27-latin-700.woff deleted file mode 100644 index 3301d0352..000000000 Binary files a/client/dist/fonts/raleway/raleway-v27-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/raleway/raleway-v27-latin-700.woff2 b/client/dist/fonts/raleway/raleway-v27-latin-700.woff2 deleted file mode 100644 index efb900d41..000000000 Binary files a/client/dist/fonts/raleway/raleway-v27-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/raleway/raleway-v27-latin-700italic.woff b/client/dist/fonts/raleway/raleway-v27-latin-700italic.woff deleted file mode 100644 index 6a5d988b7..000000000 Binary files a/client/dist/fonts/raleway/raleway-v27-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/raleway/raleway-v27-latin-700italic.woff2 b/client/dist/fonts/raleway/raleway-v27-latin-700italic.woff2 deleted file mode 100644 index 4159c33c5..000000000 Binary files a/client/dist/fonts/raleway/raleway-v27-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/raleway/raleway-v27-latin-italic.woff b/client/dist/fonts/raleway/raleway-v27-latin-italic.woff deleted file mode 100644 index f56508d48..000000000 Binary files a/client/dist/fonts/raleway/raleway-v27-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/raleway/raleway-v27-latin-italic.woff2 b/client/dist/fonts/raleway/raleway-v27-latin-italic.woff2 deleted file mode 100644 index 75879a9ae..000000000 Binary files a/client/dist/fonts/raleway/raleway-v27-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/raleway/raleway-v27-latin-regular.woff b/client/dist/fonts/raleway/raleway-v27-latin-regular.woff deleted file mode 100644 index 04bd7dcfc..000000000 Binary files a/client/dist/fonts/raleway/raleway-v27-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/raleway/raleway-v27-latin-regular.woff2 b/client/dist/fonts/raleway/raleway-v27-latin-regular.woff2 deleted file mode 100644 index d5176047c..000000000 Binary files a/client/dist/fonts/raleway/raleway-v27-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700.woff b/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700.woff deleted file mode 100644 index ca550c033..000000000 Binary files a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700.woff2 b/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700.woff2 deleted file mode 100644 index c89a6eb38..000000000 Binary files a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700italic.woff b/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700italic.woff deleted file mode 100644 index 5f06e40e4..000000000 Binary files a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700italic.woff2 b/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700italic.woff2 deleted file mode 100644 index 837c3dc50..000000000 Binary files a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-italic.woff b/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-italic.woff deleted file mode 100644 index 22621fe22..000000000 Binary files a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-italic.woff2 b/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-italic.woff2 deleted file mode 100644 index 721ca2e93..000000000 Binary files a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-regular.woff b/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-regular.woff deleted file mode 100644 index f319fbfa4..000000000 Binary files a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-regular.woff2 b/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-regular.woff2 deleted file mode 100644 index ed384d22f..000000000 Binary files a/client/dist/fonts/roboto-mono/roboto-mono-v21-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/fonts/roboto/roboto-v30-latin-700.woff b/client/dist/fonts/roboto/roboto-v30-latin-700.woff deleted file mode 100644 index db0012d1b..000000000 Binary files a/client/dist/fonts/roboto/roboto-v30-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/roboto/roboto-v30-latin-700.woff2 b/client/dist/fonts/roboto/roboto-v30-latin-700.woff2 deleted file mode 100644 index 771fbeccc..000000000 Binary files a/client/dist/fonts/roboto/roboto-v30-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/roboto/roboto-v30-latin-700italic.woff b/client/dist/fonts/roboto/roboto-v30-latin-700italic.woff deleted file mode 100644 index 17efecc1b..000000000 Binary files a/client/dist/fonts/roboto/roboto-v30-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/roboto/roboto-v30-latin-700italic.woff2 b/client/dist/fonts/roboto/roboto-v30-latin-700italic.woff2 deleted file mode 100644 index a56a6edef..000000000 Binary files a/client/dist/fonts/roboto/roboto-v30-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/roboto/roboto-v30-latin-italic.woff b/client/dist/fonts/roboto/roboto-v30-latin-italic.woff deleted file mode 100644 index ebee16b9e..000000000 Binary files a/client/dist/fonts/roboto/roboto-v30-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/roboto/roboto-v30-latin-italic.woff2 b/client/dist/fonts/roboto/roboto-v30-latin-italic.woff2 deleted file mode 100644 index e1b7a79f9..000000000 Binary files a/client/dist/fonts/roboto/roboto-v30-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/roboto/roboto-v30-latin-regular.woff b/client/dist/fonts/roboto/roboto-v30-latin-regular.woff deleted file mode 100644 index 9eaa94f9b..000000000 Binary files a/client/dist/fonts/roboto/roboto-v30-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/roboto/roboto-v30-latin-regular.woff2 b/client/dist/fonts/roboto/roboto-v30-latin-regular.woff2 deleted file mode 100644 index 020729ef8..000000000 Binary files a/client/dist/fonts/roboto/roboto-v30-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700.woff b/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700.woff deleted file mode 100644 index a6786d1f4..000000000 Binary files a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700.woff2 b/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700.woff2 deleted file mode 100644 index cd6bfd0f4..000000000 Binary files a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700italic.woff b/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700italic.woff deleted file mode 100644 index 729bdee92..000000000 Binary files a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700italic.woff2 b/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700italic.woff2 deleted file mode 100644 index b413356f7..000000000 Binary files a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-italic.woff b/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-italic.woff deleted file mode 100644 index f927419cb..000000000 Binary files a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-italic.woff2 b/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-italic.woff2 deleted file mode 100644 index 9448cd526..000000000 Binary files a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-regular.woff b/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-regular.woff deleted file mode 100644 index db90a83e0..000000000 Binary files a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-regular.woff2 b/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-regular.woff2 deleted file mode 100644 index e49928e82..000000000 Binary files a/client/dist/fonts/source-sans-pro/source-sans-pro-v21-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700.woff b/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700.woff deleted file mode 100644 index 78c51f521..000000000 Binary files a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700.woff2 b/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700.woff2 deleted file mode 100644 index 9171b74ec..000000000 Binary files a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700italic.woff b/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700italic.woff deleted file mode 100644 index d35e22087..000000000 Binary files a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700italic.woff2 b/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700italic.woff2 deleted file mode 100644 index d43b3630a..000000000 Binary files a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-italic.woff b/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-italic.woff deleted file mode 100644 index 1d860eacf..000000000 Binary files a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-italic.woff2 b/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-italic.woff2 deleted file mode 100644 index 223fb7d3b..000000000 Binary files a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-regular.woff b/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-regular.woff deleted file mode 100644 index 41d024771..000000000 Binary files a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-regular.woff2 b/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-regular.woff2 deleted file mode 100644 index 9fa1f71e9..000000000 Binary files a/client/dist/fonts/source-serif-pro/source-serif-pro-v15-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/fonts/spectral/spectral-v12-latin-700.woff b/client/dist/fonts/spectral/spectral-v12-latin-700.woff deleted file mode 100644 index 0f6d94dd4..000000000 Binary files a/client/dist/fonts/spectral/spectral-v12-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/spectral/spectral-v12-latin-700.woff2 b/client/dist/fonts/spectral/spectral-v12-latin-700.woff2 deleted file mode 100644 index df09d0103..000000000 Binary files a/client/dist/fonts/spectral/spectral-v12-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/spectral/spectral-v12-latin-700italic.woff b/client/dist/fonts/spectral/spectral-v12-latin-700italic.woff deleted file mode 100644 index 1dc63b6f6..000000000 Binary files a/client/dist/fonts/spectral/spectral-v12-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/spectral/spectral-v12-latin-700italic.woff2 b/client/dist/fonts/spectral/spectral-v12-latin-700italic.woff2 deleted file mode 100644 index 069db6782..000000000 Binary files a/client/dist/fonts/spectral/spectral-v12-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/spectral/spectral-v12-latin-italic.woff b/client/dist/fonts/spectral/spectral-v12-latin-italic.woff deleted file mode 100644 index 1c7f4051b..000000000 Binary files a/client/dist/fonts/spectral/spectral-v12-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/spectral/spectral-v12-latin-italic.woff2 b/client/dist/fonts/spectral/spectral-v12-latin-italic.woff2 deleted file mode 100644 index 052d22f1e..000000000 Binary files a/client/dist/fonts/spectral/spectral-v12-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/spectral/spectral-v12-latin-regular.woff b/client/dist/fonts/spectral/spectral-v12-latin-regular.woff deleted file mode 100644 index e363c48e2..000000000 Binary files a/client/dist/fonts/spectral/spectral-v12-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/spectral/spectral-v12-latin-regular.woff2 b/client/dist/fonts/spectral/spectral-v12-latin-regular.woff2 deleted file mode 100644 index 192907322..000000000 Binary files a/client/dist/fonts/spectral/spectral-v12-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/fonts/volkhov/volkhov-v17-latin-700.woff b/client/dist/fonts/volkhov/volkhov-v17-latin-700.woff deleted file mode 100644 index 69902387a..000000000 Binary files a/client/dist/fonts/volkhov/volkhov-v17-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/volkhov/volkhov-v17-latin-700.woff2 b/client/dist/fonts/volkhov/volkhov-v17-latin-700.woff2 deleted file mode 100644 index 5a5563092..000000000 Binary files a/client/dist/fonts/volkhov/volkhov-v17-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/volkhov/volkhov-v17-latin-700italic.woff b/client/dist/fonts/volkhov/volkhov-v17-latin-700italic.woff deleted file mode 100644 index 26cb89e61..000000000 Binary files a/client/dist/fonts/volkhov/volkhov-v17-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/volkhov/volkhov-v17-latin-700italic.woff2 b/client/dist/fonts/volkhov/volkhov-v17-latin-700italic.woff2 deleted file mode 100644 index 2e3b34dd0..000000000 Binary files a/client/dist/fonts/volkhov/volkhov-v17-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/volkhov/volkhov-v17-latin-italic.woff b/client/dist/fonts/volkhov/volkhov-v17-latin-italic.woff deleted file mode 100644 index 7d9039308..000000000 Binary files a/client/dist/fonts/volkhov/volkhov-v17-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/volkhov/volkhov-v17-latin-italic.woff2 b/client/dist/fonts/volkhov/volkhov-v17-latin-italic.woff2 deleted file mode 100644 index 0d287e263..000000000 Binary files a/client/dist/fonts/volkhov/volkhov-v17-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/volkhov/volkhov-v17-latin-regular.woff b/client/dist/fonts/volkhov/volkhov-v17-latin-regular.woff deleted file mode 100644 index 811fee970..000000000 Binary files a/client/dist/fonts/volkhov/volkhov-v17-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/volkhov/volkhov-v17-latin-regular.woff2 b/client/dist/fonts/volkhov/volkhov-v17-latin-regular.woff2 deleted file mode 100644 index db5215002..000000000 Binary files a/client/dist/fonts/volkhov/volkhov-v17-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/fonts/work-sans/work-sans-v17-latin-700.woff b/client/dist/fonts/work-sans/work-sans-v17-latin-700.woff deleted file mode 100644 index 5b344760f..000000000 Binary files a/client/dist/fonts/work-sans/work-sans-v17-latin-700.woff and /dev/null differ diff --git a/client/dist/fonts/work-sans/work-sans-v17-latin-700.woff2 b/client/dist/fonts/work-sans/work-sans-v17-latin-700.woff2 deleted file mode 100644 index a91f8a2a0..000000000 Binary files a/client/dist/fonts/work-sans/work-sans-v17-latin-700.woff2 and /dev/null differ diff --git a/client/dist/fonts/work-sans/work-sans-v17-latin-700italic.woff b/client/dist/fonts/work-sans/work-sans-v17-latin-700italic.woff deleted file mode 100644 index 098cebeb9..000000000 Binary files a/client/dist/fonts/work-sans/work-sans-v17-latin-700italic.woff and /dev/null differ diff --git a/client/dist/fonts/work-sans/work-sans-v17-latin-700italic.woff2 b/client/dist/fonts/work-sans/work-sans-v17-latin-700italic.woff2 deleted file mode 100644 index 5e05a86e0..000000000 Binary files a/client/dist/fonts/work-sans/work-sans-v17-latin-700italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/work-sans/work-sans-v17-latin-italic.woff b/client/dist/fonts/work-sans/work-sans-v17-latin-italic.woff deleted file mode 100644 index bb9178a28..000000000 Binary files a/client/dist/fonts/work-sans/work-sans-v17-latin-italic.woff and /dev/null differ diff --git a/client/dist/fonts/work-sans/work-sans-v17-latin-italic.woff2 b/client/dist/fonts/work-sans/work-sans-v17-latin-italic.woff2 deleted file mode 100644 index 63e388714..000000000 Binary files a/client/dist/fonts/work-sans/work-sans-v17-latin-italic.woff2 and /dev/null differ diff --git a/client/dist/fonts/work-sans/work-sans-v17-latin-regular.woff b/client/dist/fonts/work-sans/work-sans-v17-latin-regular.woff deleted file mode 100644 index 7530a37ff..000000000 Binary files a/client/dist/fonts/work-sans/work-sans-v17-latin-regular.woff and /dev/null differ diff --git a/client/dist/fonts/work-sans/work-sans-v17-latin-regular.woff2 b/client/dist/fonts/work-sans/work-sans-v17-latin-regular.woff2 deleted file mode 100644 index f7d73c7db..000000000 Binary files a/client/dist/fonts/work-sans/work-sans-v17-latin-regular.woff2 and /dev/null differ diff --git a/client/dist/images/grip_vertical.png b/client/dist/images/grip_vertical.png deleted file mode 100644 index 0ac8fa1e0..000000000 Binary files a/client/dist/images/grip_vertical.png and /dev/null differ diff --git a/client/dist/images/i_add.svg b/client/dist/images/i_add.svg deleted file mode 100644 index b9130d99e..000000000 --- a/client/dist/images/i_add.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_add_channel.svg b/client/dist/images/i_add_channel.svg deleted file mode 100644 index c59534737..000000000 --- a/client/dist/images/i_add_channel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_add_publi.svg b/client/dist/images/i_add_publi.svg deleted file mode 100644 index cf49878e7..000000000 --- a/client/dist/images/i_add_publi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_arrow_left.svg b/client/dist/images/i_arrow_left.svg deleted file mode 100644 index cd6ff70c4..000000000 --- a/client/dist/images/i_arrow_left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_arrow_right.svg b/client/dist/images/i_arrow_right.svg deleted file mode 100644 index 659f79374..000000000 --- a/client/dist/images/i_arrow_right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_back.svg b/client/dist/images/i_back.svg deleted file mode 100644 index ca7752155..000000000 --- a/client/dist/images/i_back.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_bibli.svg b/client/dist/images/i_bibli.svg deleted file mode 100644 index cc24a775e..000000000 --- a/client/dist/images/i_bibli.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_chat.svg b/client/dist/images/i_chat.svg deleted file mode 100644 index 46e450e6d..000000000 --- a/client/dist/images/i_chat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_clear.svg b/client/dist/images/i_clear.svg deleted file mode 100644 index d24af0df9..000000000 --- a/client/dist/images/i_clear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_close.svg b/client/dist/images/i_close.svg deleted file mode 100644 index 9c5782f42..000000000 --- a/client/dist/images/i_close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_close_sansfond.svg b/client/dist/images/i_close_sansfond.svg deleted file mode 100644 index 9739495dd..000000000 --- a/client/dist/images/i_close_sansfond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_cog.svg b/client/dist/images/i_cog.svg deleted file mode 100644 index af96d0773..000000000 --- a/client/dist/images/i_cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_contributeurs.svg b/client/dist/images/i_contributeurs.svg deleted file mode 100644 index a8eab4027..000000000 --- a/client/dist/images/i_contributeurs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_dossier.svg b/client/dist/images/i_dossier.svg deleted file mode 100644 index 67201fab2..000000000 --- a/client/dist/images/i_dossier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_enregistre.svg b/client/dist/images/i_enregistre.svg deleted file mode 100644 index 260f0049e..000000000 --- a/client/dist/images/i_enregistre.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_flag.svg b/client/dist/images/i_flag.svg deleted file mode 100644 index 5fc1bea7a..000000000 --- a/client/dist/images/i_flag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_fullscreen.svg b/client/dist/images/i_fullscreen.svg deleted file mode 100644 index a5d6c6c87..000000000 --- a/client/dist/images/i_fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_help.svg b/client/dist/images/i_help.svg deleted file mode 100644 index 8d2acdd6b..000000000 --- a/client/dist/images/i_help.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_icone-dodoc_anim.svg b/client/dist/images/i_icone-dodoc_anim.svg deleted file mode 100644 index 10e38a2be..000000000 --- a/client/dist/images/i_icone-dodoc_anim.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_icone-dodoc_audio.svg b/client/dist/images/i_icone-dodoc_audio.svg deleted file mode 100644 index aba86a8c6..000000000 --- a/client/dist/images/i_icone-dodoc_audio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_icone-dodoc_image.svg b/client/dist/images/i_icone-dodoc_image.svg deleted file mode 100644 index 548da1181..000000000 --- a/client/dist/images/i_icone-dodoc_image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_icone-dodoc_lines.svg b/client/dist/images/i_icone-dodoc_lines.svg deleted file mode 100644 index d474c6a37..000000000 --- a/client/dist/images/i_icone-dodoc_lines.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_icone-dodoc_vecto.svg b/client/dist/images/i_icone-dodoc_vecto.svg deleted file mode 100644 index e06f2498a..000000000 --- a/client/dist/images/i_icone-dodoc_vecto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_icone-dodoc_video.svg b/client/dist/images/i_icone-dodoc_video.svg deleted file mode 100644 index 99f48ab2e..000000000 --- a/client/dist/images/i_icone-dodoc_video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_importer.svg b/client/dist/images/i_importer.svg deleted file mode 100644 index 0a949b645..000000000 --- a/client/dist/images/i_importer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_mail.svg b/client/dist/images/i_mail.svg deleted file mode 100644 index fc4582143..000000000 --- a/client/dist/images/i_mail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_marmite.svg b/client/dist/images/i_marmite.svg deleted file mode 100644 index ae5fbd7d0..000000000 --- a/client/dist/images/i_marmite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_minimize.svg b/client/dist/images/i_minimize.svg deleted file mode 100644 index ed10df15a..000000000 --- a/client/dist/images/i_minimize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_nofullscreen.svg b/client/dist/images/i_nofullscreen.svg deleted file mode 100644 index d83d2284b..000000000 --- a/client/dist/images/i_nofullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_pause.svg b/client/dist/images/i_pause.svg deleted file mode 100644 index 33fc20471..000000000 --- a/client/dist/images/i_pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_pen.svg b/client/dist/images/i_pen.svg deleted file mode 100644 index d99fbde47..000000000 --- a/client/dist/images/i_pen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_placeholder.svg b/client/dist/images/i_placeholder.svg deleted file mode 100644 index 0bdc2d597..000000000 --- a/client/dist/images/i_placeholder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_play.svg b/client/dist/images/i_play.svg deleted file mode 100644 index 1ff60f742..000000000 --- a/client/dist/images/i_play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_publi.svg b/client/dist/images/i_publi.svg deleted file mode 100644 index 57f83525e..000000000 --- a/client/dist/images/i_publi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_qr_code.svg b/client/dist/images/i_qr_code.svg deleted file mode 100644 index 5eeebf99b..000000000 --- a/client/dist/images/i_qr_code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_recipes.svg b/client/dist/images/i_recipes.svg deleted file mode 100644 index 76777bf1c..000000000 --- a/client/dist/images/i_recipes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_record.svg b/client/dist/images/i_record.svg deleted file mode 100644 index b6c60c149..000000000 --- a/client/dist/images/i_record.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_stop.svg b/client/dist/images/i_stop.svg deleted file mode 100644 index 62e3bb3bb..000000000 --- a/client/dist/images/i_stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_text.svg b/client/dist/images/i_text.svg deleted file mode 100644 index fb81aa9e6..000000000 --- a/client/dist/images/i_text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/images/i_view.svg b/client/dist/images/i_view.svg deleted file mode 100644 index 18e8162c7..000000000 --- a/client/dist/images/i_view.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/client/dist/js/AuthorView.js b/client/dist/js/AuthorView.js deleted file mode 100644 index 4a7e09006..000000000 --- a/client/dist/js/AuthorView.js +++ /dev/null @@ -1,2 +0,0 @@ -(self["webpackChunkapp"]=self["webpackChunkapp"]||[]).push([[317],{1761:function(t,a,s){"use strict";s.r(a),s.d(a,{default:function(){return l}});var r=function(){var t=this,a=t._self._c;return a("div",{staticClass:"_authorView"},[a("div",{staticClass:"_backBtn"},[a("router-link",{staticClass:"u-buttonLink",attrs:{to:"/"}},[a("b-icon",{attrs:{icon:"arrow-left-short"}}),t._v(" "+t._s(t.$t("home"))+" ")],1),a("router-link",{staticClass:"u-buttonLink",attrs:{to:"/@"}},[a("b-icon",{attrs:{icon:"slash"}}),t._v(" "+t._s(t.$t("list_of_accounts"))+" ")],1)],1),t.is_loading?a("div",{key:"loader",staticClass:"_spinner"},[a("LoaderSpinner")],1):[a("div",{staticClass:"_card"},[a("AuthorCard",{key:t.author.$path,staticClass:"u-spacingBottom",attrs:{author:t.author,context:"full"}})],1)]],2)},o=[],i=s(77724),u={props:{},components:{AuthorCard:i.A},data(){return{author:void 0,is_loading:!0,fetch_author_error:!1}},created(){},async mounted(){await this.listAuthor(),this.$api.join({room:this.author.$path})},beforeDestroy(){this.$api.leave({room:this.author.$path})},watch:{},computed:{},methods:{async listAuthor(){const t=this.createPath({author_slug:this.$route.params.author_slug}),a=await this.$api.getFolder({path:t}).catch((t=>{this.fetch_author_error=t.response,this.is_loading=!1}));this.is_loading=!1,this.author=a}}},n=u,e=(s(34444),s(81656)),c=(0,e.A)(n,r,o,!1,null,"08a3038a",null),l=c.exports},61796:function(t,a,s){"use strict";s.r(a),s.d(a,{default:function(){return c}});var r=function(){var t=this,a=t._self._c;return a("div",{staticClass:"_notFound"},[a("h2",[t._v(t._s(t.$t("page_not_found")))]),a("router-link",{staticClass:"u-buttonLink",attrs:{to:"/"}},[t._v(" "+t._s(t.$t("go_home"))+" ")])],1)},o=[],i={props:{},components:{},data(){return{}},created(){},mounted(){},beforeDestroy(){},watch:{},computed:{},methods:{}},u=i,n=(s(87),s(81656)),e=(0,n.A)(u,r,o,!1,null,"352da5ea",null),c=e.exports},10697:function(t,a,s){"use strict";s.r(a),s.d(a,{default:function(){return c}});var r=function(){var t=this,a=t._self._c;return a("div",{staticClass:"_uiView"},[a("div",{staticClass:"_authors"},t._l(t.authors_sublist,(function({$path:t}){return a("AuthorTag",{key:t,attrs:{path:t}})})),1),a("hr"),a("div",{staticClass:"_authors"},t._l(t.authors_sublist,(function({$path:s}){return a("AuthorTag",{key:s,attrs:{path:s},on:{click:t.dummy}})})),1),a("hr"),a("div",{staticClass:"_authors"},t._l(t.authors_sublist,(function({$path:s}){return a("AuthorTag",{key:s,attrs:{path:s,mode:"select"},on:{click:t.dummy}})})),1),a("hr"),a("div",{staticClass:"_authors"},t._l(t.authors_sublist,(function({$path:s}){return a("AuthorTag",{key:s,attrs:{path:s,mode:"add"},on:{click:t.dummy}})})),1),a("hr"),a("div",{staticClass:"_authors"},t._l(t.authors_sublist,(function({$path:s}){return a("AuthorTag",{key:s,attrs:{path:s,mode:"remove"},on:{click:t.dummy}})})),1),a("hr"),a("div",{staticClass:"_authors"},t._l(t.authors_sublist,(function({$path:t}){return a("AuthorTag",{key:t,attrs:{path:t,mode:"link"}})})),1),a("hr"),a("div",{staticClass:"_authors"},t._l(t.authors_sublist,(function({$path:t}){return a("AuthorTag",{key:t,attrs:{path:t,show_image_only:!0,mode:"link"}})})),1),a("hr"),a("div",{key:"list",staticClass:"u-listOfAvatars"},t._l(t.authors_sublist,(function({$path:t}){return a("AuthorTag",{key:t,attrs:{path:t,show_image_only:!0,mode:"link"}})})),1)])},o=[],i={props:{},components:{},data(){return{authors:[]}},created(){},async mounted(){this.authors=await this.$api.getFolders({path:"authors"})},beforeDestroy(){},watch:{},computed:{authors_sublist(){return this.authors.slice(0,5)}},methods:{dummy(){}}},u=i,n=(s(79305),s(81656)),e=(0,n.A)(u,r,o,!1,null,"750139a6",null),c=e.exports},48852:function(t,a,s){"use strict";s.r(a);var r=s(31601),o=s.n(r),i=s(76314),u=s.n(i),n=u()(o());n.push([t.id,"._authorView[data-v-08a3038a]{padding:calc(var(--spacing)*1);padding-bottom:calc(var(--spacing)*6)}._card[data-v-08a3038a]{max-width:400px;margin:0 auto}._backBtn[data-v-08a3038a]{margin-bottom:calc(var(--spacing)*2)}",""]),a["default"]=n},15823:function(t,a,s){"use strict";s.r(a);var r=s(31601),o=s.n(r),i=s(76314),u=s.n(i),n=u()(o());n.push([t.id,"._notFound[data-v-352da5ea]{width:100%;min-height:60vh;margin:0 auto;max-width:var(--max-column-width);padding:calc(var(--spacing)*1);display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;gap:calc(var(--spacing)/2)}",""]),a["default"]=n},59089:function(t,a,s){"use strict";s.r(a);var r=s(31601),o=s.n(r),i=s(76314),u=s.n(i),n=u()(o());n.push([t.id,"._uiView[data-v-750139a6]{max-width:600px;margin:calc(var(--spacing)/1) auto;width:100%}._authors[data-v-750139a6]{display:flex;flex-flow:row wrap;align-items:center;gap:calc(var(--spacing)/4)}",""]),a["default"]=n},34444:function(t,a,s){var r=s(48852);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var o=s(3825).A;o("3944254e",r,!0,{sourceMap:!1,shadowMode:!1})},87:function(t,a,s){var r=s(15823);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var o=s(3825).A;o("5e6a44b7",r,!0,{sourceMap:!1,shadowMode:!1})},79305:function(t,a,s){var r=s(59089);r.__esModule&&(r=r.default),"string"===typeof r&&(r=[[t.id,r,""]]),r.locals&&(t.exports=r.locals);var o=s(3825).A;o("39bd364d",r,!0,{sourceMap:!1,shadowMode:!1})}}]); -//# sourceMappingURL=AuthorView.js.map \ No newline at end of file diff --git a/client/dist/js/AuthorView.js.map b/client/dist/js/AuthorView.js.map deleted file mode 100644 index dfa7a9c2c..000000000 --- a/client/dist/js/AuthorView.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"js/AuthorView.js","mappings":"kJAAA,IAAIA,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,cAAc,CAACE,YAAY,eAAeC,MAAM,CAAC,GAAK,MAAM,CAACH,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,sBAAsBL,EAAIM,GAAG,IAAIN,EAAIO,GAAGP,EAAIQ,GAAG,SAAS,MAAM,GAAGN,EAAG,cAAc,CAACE,YAAY,eAAeC,MAAM,CAAC,GAAK,OAAO,CAACH,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,WAAWL,EAAIM,GAAG,IAAIN,EAAIO,GAAGP,EAAIQ,GAAG,qBAAqB,MAAM,IAAI,GAAIR,EAAIS,WAAYP,EAAG,MAAM,CAACQ,IAAI,SAASN,YAAY,YAAY,CAACF,EAAG,kBAAkB,GAAG,CAACA,EAAG,MAAM,CAACE,YAAY,SAAS,CAACF,EAAG,aAAa,CAACQ,IAAIV,EAAIW,OAAOC,MAAMR,YAAY,kBAAkBC,MAAM,CAAC,OAASL,EAAIW,OAAO,QAAU,WAAW,KAAK,EAC7rB,EACIE,EAAkB,G,WCuCtB,GACAC,MAAA,GACAC,WAAA,CACAC,WAAAA,EAAAA,GAEAC,IAAAA,GACA,OACAN,YAAAO,EACAT,YAAA,EACAU,oBAAA,EAEA,EACAC,OAAAA,GAAA,EACA,aAAAC,SACA,KAAAC,aACA,KAAAC,KAAAC,KAAA,CAAAC,KAAA,KAAAd,OAAAC,OACA,EACAc,aAAAA,GACA,KAAAH,KAAAI,MAAA,CAAAF,KAAA,KAAAd,OAAAC,OACA,EACAgB,MAAA,GACAC,SAAA,GACAC,QAAA,CACA,gBAAAR,GACA,MAAAS,EAAA,KAAAC,WAAA,CACAC,YAAA,KAAAC,OAAAC,OAAAF,cAEAtB,QAAA,KAAAY,KACAa,UAAA,CACAL,SAEAM,OAAAC,IACA,KAAAnB,mBAAAmB,EAAAC,SACA,KAAA9B,YAAA,KAGA,KAAAA,YAAA,EACA,KAAAE,OAAAA,CACA,IC/EyP,I,sBCQrP6B,GAAY,OACd,EACAzC,EACAc,GACA,EACA,KACA,WACA,MAIF,EAAe2B,EAAiB,O,kFCnBhC,IAAIzC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,aAAa,CAACF,EAAG,KAAK,CAACF,EAAIM,GAAGN,EAAIO,GAAGP,EAAIQ,GAAG,sBAAsBN,EAAG,cAAc,CAACE,YAAY,eAAeC,MAAM,CAAC,GAAK,MAAM,CAACL,EAAIM,GAAG,IAAIN,EAAIO,GAAGP,EAAIQ,GAAG,YAAY,QAAQ,EACxQ,EACIK,EAAkB,GCOtB,GACAC,MAAA,GACAC,WAAA,GACAE,IAAAA,GACA,QACA,EACAG,OAAAA,GAAA,EACAC,OAAAA,GAAA,EACAK,aAAAA,GAAA,EACAE,MAAA,GACAC,SAAA,GACAC,QAAA,ICpBuP,I,mBCQnPU,GAAY,OACd,EACAzC,EACAc,GACA,EACA,KACA,WACA,MAIF,EAAe2B,EAAiB,O,kFCnBhC,IAAIzC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,WAAW,CAACF,EAAG,MAAM,CAACE,YAAY,YAAYJ,EAAIyC,GAAIzC,EAAI0C,iBAAiB,UAAS,MAAE9B,IAAS,OAAOV,EAAG,YAAY,CAACQ,IAAIE,EAAMP,MAAM,CAAC,KAAOO,IAAQ,IAAG,GAAGV,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,YAAYJ,EAAIyC,GAAIzC,EAAI0C,iBAAiB,UAAS,MAAE9B,IAAS,OAAOV,EAAG,YAAY,CAACQ,IAAIE,EAAMP,MAAM,CAAC,KAAOO,GAAO+B,GAAG,CAAC,MAAQ3C,EAAI4C,QAAQ,IAAG,GAAG1C,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,YAAYJ,EAAIyC,GAAIzC,EAAI0C,iBAAiB,UAAS,MAAE9B,IAAS,OAAOV,EAAG,YAAY,CAACQ,IAAIE,EAAMP,MAAM,CAAC,KAAOO,EAAM,KAAO,UAAU+B,GAAG,CAAC,MAAQ3C,EAAI4C,QAAQ,IAAG,GAAG1C,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,YAAYJ,EAAIyC,GAAIzC,EAAI0C,iBAAiB,UAAS,MAAE9B,IAAS,OAAOV,EAAG,YAAY,CAACQ,IAAIE,EAAMP,MAAM,CAAC,KAAOO,EAAM,KAAO,OAAO+B,GAAG,CAAC,MAAQ3C,EAAI4C,QAAQ,IAAG,GAAG1C,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,YAAYJ,EAAIyC,GAAIzC,EAAI0C,iBAAiB,UAAS,MAAE9B,IAAS,OAAOV,EAAG,YAAY,CAACQ,IAAIE,EAAMP,MAAM,CAAC,KAAOO,EAAM,KAAO,UAAU+B,GAAG,CAAC,MAAQ3C,EAAI4C,QAAQ,IAAG,GAAG1C,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,YAAYJ,EAAIyC,GAAIzC,EAAI0C,iBAAiB,UAAS,MAAE9B,IAAS,OAAOV,EAAG,YAAY,CAACQ,IAAIE,EAAMP,MAAM,CAAC,KAAOO,EAAM,KAAO,SAAS,IAAG,GAAGV,EAAG,MAAMA,EAAG,MAAM,CAACE,YAAY,YAAYJ,EAAIyC,GAAIzC,EAAI0C,iBAAiB,UAAS,MAAE9B,IAAS,OAAOV,EAAG,YAAY,CAACQ,IAAIE,EAAMP,MAAM,CAAC,KAAOO,EAAM,iBAAkB,EAAK,KAAO,SAAS,IAAG,GAAGV,EAAG,MAAMA,EAAG,MAAM,CAACQ,IAAI,OAAON,YAAY,mBAAmBJ,EAAIyC,GAAIzC,EAAI0C,iBAAiB,UAAS,MAAE9B,IAAS,OAAOV,EAAG,YAAY,CAACQ,IAAIE,EAAMP,MAAM,CAAC,KAAOO,EAAM,iBAAkB,EAAK,KAAO,SAAS,IAAG,IACphD,EACIC,EAAkB,GC8EtB,GACAC,MAAA,GACAC,WAAA,GACAE,IAAAA,GACA,OACA4B,QAAA,GAEA,EACAzB,OAAAA,GAAA,EACA,aAAAC,GACA,KAAAwB,cAAA,KAAAtB,KAAAuB,WAAA,CACAf,KAAA,WAEA,EACAL,aAAAA,GAAA,EACAE,MAAA,GACAC,SAAA,CACAa,eAAAA,GACA,YAAAG,QAAAE,MAAA,IACA,GAEAjB,QAAA,CAAAc,KAAAA,GAAA,ICrGqP,I,sBCQjPJ,GAAY,OACd,EACAzC,EACAc,GACA,EACA,KACA,WACA,MAIF,EAAe2B,EAAiB,O,wFChB5BQ,EAA0B,IAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,4NAA6N,KAEtQ,c,wFCJIH,EAA0B,IAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,mPAAoP,KAE7R,c,wFCJIH,EAA0B,IAA4B,KAE1DA,EAAwBC,KAAK,CAACC,EAAOC,GAAI,oMAAqM,KAE9O,c,wBCJA,IAAIC,EAAU,EAAQ,OACnBA,EAAQC,aAAYD,EAAUA,EAAQE,SACnB,kBAAZF,IAAsBA,EAAU,CAAC,CAACF,EAAOC,GAAIC,EAAS,MAC7DA,EAAQG,SAAQL,EAAOM,QAAUJ,EAAQG,QAE5C,IAAIE,EAAM,UACGA,EAAI,WAAYL,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa,G,qBCN5E,IAAIA,EAAU,EAAQ,OACnBA,EAAQC,aAAYD,EAAUA,EAAQE,SACnB,kBAAZF,IAAsBA,EAAU,CAAC,CAACF,EAAOC,GAAIC,EAAS,MAC7DA,EAAQG,SAAQL,EAAOM,QAAUJ,EAAQG,QAE5C,IAAIE,EAAM,UACGA,EAAI,WAAYL,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa,G,wBCN5E,IAAIA,EAAU,EAAQ,OACnBA,EAAQC,aAAYD,EAAUA,EAAQE,SACnB,kBAAZF,IAAsBA,EAAU,CAAC,CAACF,EAAOC,GAAIC,EAAS,MAC7DA,EAAQG,SAAQL,EAAOM,QAAUJ,EAAQG,QAE5C,IAAIE,EAAM,UACGA,EAAI,WAAYL,GAAS,EAAM,CAAC,WAAY,EAAM,YAAa,G","sources":["webpack://app/./src/views/AuthorView.vue","webpack://app/src/views/AuthorView.vue","webpack://app/./src/views/AuthorView.vue?299d","webpack://app/./src/views/AuthorView.vue?fc48","webpack://app/./src/views/NotFound.vue","webpack://app/src/views/NotFound.vue","webpack://app/./src/views/NotFound.vue?afa6","webpack://app/./src/views/NotFound.vue?9931","webpack://app/./src/views/UIView.vue","webpack://app/src/views/UIView.vue","webpack://app/./src/views/UIView.vue?af4b","webpack://app/./src/views/UIView.vue?9b11","webpack://app/./src/views/AuthorView.vue?64cc","webpack://app/./src/views/NotFound.vue?bb7e","webpack://app/./src/views/UIView.vue?8b0d","webpack://app/./src/views/AuthorView.vue?a095","webpack://app/./src/views/NotFound.vue?4ec5","webpack://app/./src/views/UIView.vue?3bf6"],"sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_authorView\"},[_c('div',{staticClass:\"_backBtn\"},[_c('router-link',{staticClass:\"u-buttonLink\",attrs:{\"to\":'/'}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-short\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"home\"))+\" \")],1),_c('router-link',{staticClass:\"u-buttonLink\",attrs:{\"to\":'/@'}},[_c('b-icon',{attrs:{\"icon\":\"slash\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"list_of_accounts\"))+\" \")],1)],1),(_vm.is_loading)?_c('div',{key:\"loader\",staticClass:\"_spinner\"},[_c('LoaderSpinner')],1):[_c('div',{staticClass:\"_card\"},[_c('AuthorCard',{key:_vm.author.$path,staticClass:\"u-spacingBottom\",attrs:{\"author\":_vm.author,\"context\":'full'}})],1)]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AuthorView.vue?vue&type=template&id=08a3038a&scoped=true\"\nimport script from \"./AuthorView.vue?vue&type=script&lang=js\"\nexport * from \"./AuthorView.vue?vue&type=script&lang=js\"\nimport style0 from \"./AuthorView.vue?vue&type=style&index=0&id=08a3038a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"08a3038a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_notFound\"},[_c('h2',[_vm._v(_vm._s(_vm.$t(\"page_not_found\")))]),_c('router-link',{staticClass:\"u-buttonLink\",attrs:{\"to\":'/'}},[_vm._v(\" \"+_vm._s(_vm.$t(\"go_home\"))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NotFound.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./NotFound.vue?vue&type=template&id=352da5ea&scoped=true\"\nimport script from \"./NotFound.vue?vue&type=script&lang=js\"\nexport * from \"./NotFound.vue?vue&type=script&lang=js\"\nimport style0 from \"./NotFound.vue?vue&type=style&index=0&id=352da5ea&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"352da5ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_uiView\"},[_c('div',{staticClass:\"_authors\"},_vm._l((_vm.authors_sublist),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path}})}),1),_c('hr'),_c('div',{staticClass:\"_authors\"},_vm._l((_vm.authors_sublist),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path},on:{\"click\":_vm.dummy}})}),1),_c('hr'),_c('div',{staticClass:\"_authors\"},_vm._l((_vm.authors_sublist),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path,\"mode\":'select'},on:{\"click\":_vm.dummy}})}),1),_c('hr'),_c('div',{staticClass:\"_authors\"},_vm._l((_vm.authors_sublist),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path,\"mode\":'add'},on:{\"click\":_vm.dummy}})}),1),_c('hr'),_c('div',{staticClass:\"_authors\"},_vm._l((_vm.authors_sublist),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path,\"mode\":'remove'},on:{\"click\":_vm.dummy}})}),1),_c('hr'),_c('div',{staticClass:\"_authors\"},_vm._l((_vm.authors_sublist),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path,\"mode\":'link'}})}),1),_c('hr'),_c('div',{staticClass:\"_authors\"},_vm._l((_vm.authors_sublist),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path,\"show_image_only\":true,\"mode\":'link'}})}),1),_c('hr'),_c('div',{key:\"list\",staticClass:\"u-listOfAvatars\"},_vm._l((_vm.authors_sublist),function({ $path }){return _c('AuthorTag',{key:$path,attrs:{\"path\":$path,\"show_image_only\":true,\"mode\":'link'}})}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UIView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./UIView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./UIView.vue?vue&type=template&id=750139a6&scoped=true\"\nimport script from \"./UIView.vue?vue&type=script&lang=js\"\nexport * from \"./UIView.vue?vue&type=script&lang=js\"\nimport style0 from \"./UIView.vue?vue&type=style&index=0&id=750139a6&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"750139a6\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._authorView[data-v-08a3038a]{padding:calc(var(--spacing)*1);padding-bottom:calc(var(--spacing)*6)}._card[data-v-08a3038a]{max-width:400px;margin:0 auto}._backBtn[data-v-08a3038a]{margin-bottom:calc(var(--spacing)*2)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._notFound[data-v-352da5ea]{width:100%;min-height:60vh;margin:0 auto;max-width:var(--max-column-width);padding:calc(var(--spacing)*1);display:flex;flex-flow:column nowrap;justify-content:center;align-items:center;gap:calc(var(--spacing)/2)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._uiView[data-v-750139a6]{max-width:600px;margin:calc(var(--spacing)/1) auto;width:100%}._authors[data-v-750139a6]{display:flex;flex-flow:row wrap;align-items:center;gap:calc(var(--spacing)/4)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorsView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AuthorsView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AuthorsView.vue?vue&type=template&id=4c58e91f&scoped=true\"\nimport script from \"./AuthorsView.vue?vue&type=script&lang=js\"\nexport * from \"./AuthorsView.vue?vue&type=script&lang=js\"\nimport style0 from \"./AuthorsView.vue?vue&type=style&index=0&id=4c58e91f&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4c58e91f\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._backBtn[data-v-4c58e91f]{margin-bottom:calc(var(--spacing)*2)}._authorsView[data-v-4c58e91f]{padding:calc(var(--spacing)*1);max-width:calc(var(--max-column-width));margin:0 auto}._allAuthors[data-v-4c58e91f]{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:calc(var(--spacing)/1)}._title[data-v-4c58e91f]{margin-bottom:calc(var(--spacing)*1)}._searchField[data-v-4c58e91f]{max-width:30ch}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./flickity.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./flickity.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./flickity.vue?vue&type=template&id=42695eab\"\nimport script from \"./flickity.vue?vue&type=script&lang=js\"\nexport * from \"./flickity.vue?vue&type=script&lang=js\"\nimport style0 from \"flickity/dist/flickity.css?vue&type=style&index=0&prod&lang=css&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.pinned_folders.length > 0 || _vm.can_edit)?_c('div',{staticClass:\"_pinned\"},[_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.label}}),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[(_vm.pinned_folders.length === 0 && _vm.can_edit)?_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"click_to_pin\"))+\" \")]):_c('transition-group',{staticClass:\"_list _list_pinned\",attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},_vm._l((_vm.pinned_folders),function(folder,index){return _c('div',{key:folder.$path,staticClass:\"_item\"},[_vm._t(\"default\",null,{\"item\":folder}),(_vm.can_edit)?_c('div',{staticClass:\"_pinSpace\"},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"disabled\":['alone', 'first'].includes(_vm.positionInPinned(folder.$path))},on:{\"click\":function($event){return _vm.movePin(index, -1)}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-circle-fill\",\"aria-label\":_vm.$t('move_left')}})],1),_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.removeFromPins(folder.$path)}}},[_c('b-icon',{attrs:{\"icon\":\"pin-fill\",\"aria-label\":_vm.$t('unpin')}})],1),_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"disabled\":['alone', 'last'].includes(_vm.positionInPinned(folder.$path))},on:{\"click\":function($event){return _vm.movePin(index, +1)}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-right-circle-fill\",\"aria-label\":_vm.$t('move_right')}})],1)]):_c('div',{staticClass:\"_pinSpace _pinSpace_indicator\"},[_c('b-icon',{attrs:{\"icon\":\"pin-fill\",\"aria-label\":_vm.$t('pinned')}})],1)],2)}),0)],1)],1)]):_vm._e(),_c('transition-group',{staticClass:\"_nonpinned _list\",attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},_vm._l((_vm.non_pinned_folders),function(folder){return _c('div',{key:folder.$path,staticClass:\"_item\"},[_vm._t(\"default\",null,{\"item\":folder}),(_vm.can_edit)?_c('div',{staticClass:\"_pinSpace\"},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.addSpaceToPins(folder.$path)}}},[_c('b-icon',{attrs:{\"icon\":\"pin\",\"aria-label\":_vm.$t('pin')}})],1)]):_vm._e()],2)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PinnedNonpinnedFolder.vue?vue&type=template&id=06cbf20b&scoped=true\"\nimport script from \"./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"\nexport * from \"./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"\nimport style0 from \"./PinnedNonpinnedFolder.vue?vue&type=style&index=0&id=06cbf20b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06cbf20b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_projectInfos\",class:{\n 'is--list': ['list', 'tiny'].includes(_vm.context),\n 'is--own': _vm.is_own_project,\n 'u-card2': _vm.context !== 'full',\n },attrs:{\"data-context\":_vm.context}},[_c('div',{staticClass:\"_projectInfos--topContent\"},[_c('div',{staticClass:\"_projectInfos--cover\"},[_c('CoverField',{staticClass:\"_cover\",attrs:{\"context\":_vm.context,\"cover\":_vm.project.$cover,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}),_c('transition',{attrs:{\"name\":\"toggleLock\",\"mode\":\"out-in\"}},[(\n _vm.project.$status === 'finished' || _vm.project.$status === 'private'\n )?_c('StatusTag',{key:_vm.project.$status,staticClass:\"_icon\",attrs:{\"show_label\":false,\"status\":_vm.project.$status,\"can_edit\":false,\"mode\":_vm.context === 'list' ? 'active' : 'inactive'},on:{\"click\":function($event){return _vm.$emit('toggleFilter', {\n filter_type: '$status',\n value: _vm.project.$status,\n })}}}):_vm._e()],1),(_vm.display_original_space)?_c('div',{staticClass:\"_originalSpace\"},[_vm._v(\" + \"+_vm._s(_vm.original_space_name)+\" \")]):_vm._e()],1),_c('div',{staticClass:\"_projectInfos--infos\",class:{\n 'is--short': _vm.is_compacted,\n }},[(_vm.context === 'full')?_c('div',{staticClass:\"_projectInfos--infos--settings\"},[_c('StatusTag',{attrs:{\"status\":_vm.project.$status,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}),(_vm.can_edit)?_c('DropDown',{attrs:{\"right\":true}},[_c('DownloadFolder',{attrs:{\"path\":_vm.project.$path}}),_c('div',{},[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_dup_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"file-plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate_or_move_project\"))+\" \")],1),(_vm.show_dup_modal)?_c('DuplicateOrRemixProject',{attrs:{\"path\":_vm.project.$path,\"proposed_title\":`${_vm.$t('copy_of')} ${_vm.project.title}`},on:{\"close\":function($event){_vm.show_dup_modal = false}}}):_vm._e()],1),_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove_project')},on:{\"remove\":_vm.removeProject}})],1):_vm._e()],1):_vm._e(),_c('TitleField',{staticClass:\"_title\",attrs:{\"field_name\":'title',\"label\":_vm.context === 'full' ? _vm.$t('title') : '',\"content\":_vm.project.title,\"path\":_vm.project.$path,\"required\":true,\"maxlength\":40,\"tag\":_vm.context === 'full' ? 'h1' : _vm.context === 'list' ? 'h3' : 'h5',\"can_edit\":_vm.can_edit,\"instructions\":_vm.can_edit ? _vm.$t('project_title_instructions') : undefined}}),(\n (_vm.context === 'list' && _vm.project.description) ||\n (_vm.context === 'full' && (_vm.project.description || _vm.can_edit))\n )?_c('CollaborativeEditor2',{attrs:{\"label\":_vm.context === 'full' ? _vm.$t('description') : '',\"field_to_edit\":'description',\"content\":_vm.project.description,\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"maxlength\":1280,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.context === 'full')?_c('AdminsAndContributorsField',{attrs:{\"folder\":_vm.project,\"can_edit\":_vm.can_edit,\"admin_label\":_vm.$t('referent'),\"admin_instructions\":_vm.$t('project_admin_instructions'),\"contrib_instructions\":_vm.$t('project_contrib_instructions')}}):_vm._e(),(_vm.context !== 'tiny' && _vm.context !== 'full' && _vm.all_tags.length > 0)?_c('div',{staticClass:\"_allTags\"},[_vm._l((_vm.all_tags),function(tags){return _vm._l((tags.list),function(tag){return _c('SingleTag',{key:tag,attrs:{\"tag_type\":tags.type,\"tag_str\":tag,\"mode\":'active'},on:{\"tagClick\":function($event){return _vm.$emit('toggleFilter', { filter_type: tags.type, value: tag })}}})})})],2):_vm._e(),(_vm.is_compacted)?_c('div',{staticClass:\"_compactExpandButton\",on:{\"click\":_vm.toggleCompacted}},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"tabindex\":\"-1\"}},[(_vm.short_project_view)?_c('b-icon',{attrs:{\"icon\":\"arrow-down-short\"}}):_c('b-icon',{attrs:{\"icon\":\"arrow-up-short\"}})],1)]):_vm._e()],1)]),(_vm.context === 'full')?_c('flickity',{staticClass:\"_projectInfos--meta\",class:{\n 'is--hidden': !_vm.show_meta,\n },attrs:{\"options\":_vm.flickityOptions}},[_c('CardCompetences',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardMachinesMaterials',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardKeywords',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardLicense',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardFiles',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}})],1):_vm._e(),(['list', 'tiny'].includes(_vm.context))?_c('router-link',{staticClass:\"_projectInfos--open\",attrs:{\"to\":{ path: _vm.createURLFromPath(_vm.project.$path) },\"title\":_vm.$t('open') + ' ' + _vm.project.title}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.keywords_title,\"icon\":'tag',\"has_items\":!!_vm.project.keywords,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{},[_c('TagsField',{attrs:{\"label\":_vm.$t('keywords'),\"field_name\":'keywords',\"tag_type\":'keywords',\"content\":_vm.project.keywords,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardKeywords.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardKeywords.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardKeywords.vue?vue&type=template&id=1560151b&scoped=true\"\nimport script from \"./CardKeywords.vue?vue&type=script&lang=js\"\nexport * from \"./CardKeywords.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1560151b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('levels_and_competences'),\"icon\":'bookmark-star',\"has_items\":!!_vm.project.level,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('skill_level'),\"field_name\":'level',\"input_type\":'radio',\"content\":_vm.project.level,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.basic_competences},scopedSlots:_vm._u([{key:\"preview\",fn:function({ item }){return [(item && !!item.key)?_c('div',{staticClass:\"_list\"},[_c('SingleTag',{attrs:{\"tag_type\":'level',\"tag_str\":item.label,\"mode\":'inactive'}})],1):_vm._e()]}}])})],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('target_audience'),\"field_name\":'target_audience',\"input_type\":'checkbox',\"content\":_vm.project.target_audience,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.target_audience_options},scopedSlots:_vm._u([{key:\"preview\",fn:function({ items }){return [(items)?_c('TagsList',{attrs:{\"tags\":items.map(({ key }) => key),\"tag_type\":'target_audience'}}):_vm._e()]}}])})],1),_c('div',{},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('disciplines'),\"field_name\":'disciplines',\"input_type\":'checkbox',\"content\":_vm.project.disciplines,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.discipline_options},scopedSlots:_vm._u([{key:\"preview\",fn:function({ items }){return [(items)?_c('TagsList',{attrs:{\"tags\":items.map(({ key }) => key),\"tag_type\":'disciplines'}}):_vm._e()]}}])})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardCompetences.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardCompetences.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardCompetences.vue?vue&type=template&id=59d6e751&scoped=true\"\nimport script from \"./CardCompetences.vue?vue&type=script&lang=js\"\nexport * from \"./CardCompetences.vue?vue&type=script&lang=js\"\nimport style0 from \"./CardCompetences.vue?vue&type=style&index=0&id=59d6e751&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59d6e751\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('machines_and_materials'),\"icon\":'tools',\"has_items\":_vm.machines_materials_items_length > 0\n ? _vm.machines_materials_items_length\n : false,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('TagsField',{attrs:{\"label\":_vm.$t('materials'),\"field_name\":'materials',\"tag_type\":'materials',\"content\":_vm.project.materials,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1),_c('div',{},[_c('TagsField',{attrs:{\"label\":_vm.$t('machines'),\"field_name\":'machines',\"tag_type\":'machines',\"content\":_vm.project.machines,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardMachinesMaterials.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardMachinesMaterials.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardMachinesMaterials.vue?vue&type=template&id=36844aa4&scoped=true\"\nimport script from \"./CardMachinesMaterials.vue?vue&type=script&lang=js\"\nexport * from \"./CardMachinesMaterials.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36844aa4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('authors_and_license'),\"icon\":'people',\"has_items\":!!_vm.project.license,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('CollaborativeEditor2',{attrs:{\"label\":_vm.$t('authors'),\"field_to_edit\":'authors_list',\"content\":_vm.project.authors_list,\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"can_edit\":_vm.can_edit}})],1),_c('div',{},[(_vm.$root.app_infos.instance_meta.enable_events)?_c('EventField',{staticClass:\"u-spacingBottom\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}):_vm._e(),_c('RemixField',{staticClass:\"u-spacingBottom\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),(_vm.can_edit || (!_vm.can_edit && _vm.project.license !== 'custom_license'))?_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('license'),\"instructions\":_vm.$t('licence_instructions'),\"field_name\":'license',\"input_type\":'radio',\"content\":_vm.project.license,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.license_options}}):_vm._e(),(_vm.project.license === 'custom_license')?_c('CollaborativeEditor2',{attrs:{\"label\":_vm.can_edit ? _vm.$t('custom_license') : undefined,\"field_to_edit\":'custom_license',\"content\":_vm.project.custom_license || _vm.$t('fill_out_your_license'),\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"can_edit\":_vm.can_edit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{},[(_vm.can_edit || _vm.project.event_linked_slug)?_c('DLabel',{attrs:{\"str\":_vm.$t('created_during')}}):_vm._e(),(!_vm.is_loading)?[_c('RadioCheckboxField',{attrs:{\"field_name\":'event_linked_slug',\"input_type\":'radio',\"content\":_vm.project.event_linked_slug,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.events_options}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EventField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EventField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EventField.vue?vue&type=template&id=47466f98&scoped=true\"\nimport script from \"./EventField.vue?vue&type=script&lang=js\"\nexport * from \"./EventField.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47466f98\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_remixField\"},[(_vm.can_edit)?_c('ToggleField',{attrs:{\"label\":_vm.$t('project_can_be_remixed'),\"field_name\":'$can_be_remixed',\"content\":_vm.project.$can_be_remixed === true,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.project.$can_be_remixed)?_c('button',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_remix_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"intersect\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"remix_this_project\"))+\" \")],1):_vm._e(),(_vm.show_remix_modal)?_c('DuplicateOrRemixProject',{attrs:{\"path\":_vm.project.$path,\"mode\":'remix',\"proposed_title\":`${_vm.$t('remix_of')} ${_vm.project.title}`,\"source_title\":_vm.project.title},on:{\"close\":function($event){_vm.show_remix_modal = false}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.modal_title},on:{\"close\":function($event){return _vm.$emit('close')}}},[(!_vm.url_to_copy)?[_c('div',{},[_c('div',{staticClass:\"u-spacingBottom u-instructions\"},[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"dm_instr\"))+\" \")])]),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.destination_space_label}}),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.destination_space_path),expression:\"destination_space_path\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.destination_space_path=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.sorted_spaces),function(space){return _c('option',{key:space.$path,domProps:{\"value\":space.$path,\"textContent\":_vm._s(space.title)}})}),0)],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.new_title_label}}),_c('TextInput',{ref:\"titleInput\",attrs:{\"content\":_vm.new_title,\"maxlength\":40,\"required\":true},on:{\"update:content\":function($event){_vm.new_title=$event}}})],1),(_vm.mode === 'duplicate')?_c('div',{staticClass:\"u-spacingBottom\"},[_c('ToggleInput',{attrs:{\"content\":_vm.remove_original,\"label\":_vm.$t('remove_original'),\"options\":{\n true: _vm.$t('remove_original_after_copy'),\n false: _vm.$t('keep_original_after_copy'),\n }},on:{\"update:content\":function($event){_vm.remove_original=$event}}})],1):_vm._e()]),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(!_vm.is_copying)?[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\",\"autofocus\":\"\"},on:{\"click\":_vm.confirm}},[(_vm.remove_original)?[_vm._v(\" \"+_vm._s(_vm.$t(\"move\"))+\" \")]:[(_vm.mode === 'remix')?[_vm._v(\" \"+_vm._s(_vm.$t(\"remix\"))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate\"))+\" \")]]],2)]:_c('LoaderSpinner')],2)]:[_c('router-link',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"to\":_vm.url_to_copy}},[_vm._v(\" \"+_vm._s(_vm.$t(\"open_copy\"))+\" \")])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DuplicateOrRemixProject.vue?vue&type=template&id=9cd5ad06&scoped=true\"\nimport script from \"./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"\nexport * from \"./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9cd5ad06\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RemixField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RemixField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RemixField.vue?vue&type=template&id=54c250a9&scoped=true\"\nimport script from \"./RemixField.vue?vue&type=script&lang=js\"\nexport * from \"./RemixField.vue?vue&type=script&lang=js\"\nimport style0 from \"./RemixField.vue?vue&type=style&index=0&id=54c250a9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54c250a9\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardLicense.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardLicense.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardLicense.vue?vue&type=template&id=3fb44220&scoped=true\"\nimport script from \"./CardLicense.vue?vue&type=script&lang=js\"\nexport * from \"./CardLicense.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fb44220\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('files'),\"icon\":'file-earmark-arrow-down',\"has_items\":_vm.downloadable_files.length > 0 ? _vm.downloadable_files.length : false,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('FilesModule',{attrs:{\"field_name\":'downloadable_files',\"path\":_vm.project.$path,\"content\":_vm.downloadable_files,\"project_path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardFiles.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardFiles.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardFiles.vue?vue&type=template&id=1ad3ce9e&scoped=true\"\nimport script from \"./CardFiles.vue?vue&type=script&lang=js\"\nexport * from \"./CardFiles.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ad3ce9e\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectPresentation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectPresentation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectPresentation.vue?vue&type=template&id=8e32e7a0&scoped=true\"\nimport script from \"./ProjectPresentation.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectPresentation.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectPresentation.vue?vue&type=style&index=0&id=8e32e7a0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8e32e7a0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"_projectsListWithFilter\"},[_c('div',{staticClass:\"_filterSortBar\"},[_c('div',{staticClass:\"u-sameRow\"},[_vm._t(\"default\"),(_vm.sorted_projects.length > 0)?[_c('div',{},[_c('button',{staticClass:\"u-button u-button_small u-button_bleumarine\",class:{\n 'is--active': _vm.show_sidebar,\n },attrs:{\"type\":\"button\",\"size\":\"small\"},domProps:{\"textContent\":_vm._s(!_vm.show_sidebar ? _vm.$t('filter') : _vm.$t('hide'))},on:{\"click\":function($event){_vm.show_sidebar = !_vm.show_sidebar}}})]),_c('div',{},[_c('SearchInput',{attrs:{\"search_placeholder\":_vm.$t('search_in_title_desc_kw'),\"name\":'search_project'},model:{value:(_vm.search_project),callback:function ($$v) {_vm.search_project=$$v},expression:\"search_project\"}})],1)]:_vm._e()],2),_c('div',{},[(_vm.sorted_projects.length > 0)?[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.order_key),expression:\"order_key\"}],staticClass:\"_orderSelect\",attrs:{\"size\":\"small\",\"name\":'order_projects',\"disabled\":_vm.filtered_projects.length <= 1},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.order_key=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.order_options),function(opt){return _c('option',{key:opt.key,domProps:{\"value\":opt.key,\"textContent\":_vm._s(opt.text)}})}),0)]:_vm._e()],2)]),_c('div',{staticClass:\"_cont\"},[(_vm.show_sidebar)?_c('div',{staticClass:\"_sidebar\"},[_c('div',[_c('DLabel',{attrs:{\"str\":_vm.$t('status')}}),_c('div',{staticClass:\"_statusList\"},_vm._l((_vm.extractAll('$status')),function(status){return _c('StatusTag',{key:status,attrs:{\"status\":status,\"can_edit\":false,\"mode\":_vm.getActiveTags('$status').includes(status) ? 'disable' : 'active'},on:{\"click\":function($event){return _vm.toggleFilter({ filter_type: '$status', value: status })}}})}),1)],1),(_vm.$root.app_infos.instance_meta.enable_events)?_c('div',[_c('DLabel',{attrs:{\"str\":_vm.$t('events')}})],1):_vm._e(),_vm._l(([\n 'target_audience',\n 'disciplines',\n 'level',\n 'keywords',\n 'machines',\n 'materials',\n ]),function(filter){return [(_vm.extractAll(filter).length > 0)?_c('div',{key:filter},[(filter === 'level')?[_c('DLabel',{attrs:{\"str\":_vm.$t('levels_and_competences')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('level'),\"tag_type\":'level',\"tags_active\":_vm.getActiveTags('level')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'level', value: $event })}}})]:(filter === 'keywords')?[_c('DLabel',{attrs:{\"str\":_vm.$t('keywords')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('keywords'),\"tag_type\":'keywords',\"tags_active\":_vm.getActiveTags('keywords')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'keywords', value: $event })}}})]:(filter === 'materials')?[_c('DLabel',{attrs:{\"str\":_vm.$t('materials')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('materials'),\"tag_type\":'materials',\"tags_active\":_vm.getActiveTags('materials')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'materials', value: $event })}}})]:(filter === 'machines')?[_c('DLabel',{attrs:{\"str\":_vm.$t('machines')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('machines'),\"tag_type\":'machines',\"tags_active\":_vm.getActiveTags('machines')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'machines', value: $event })}}})]:(filter === 'disciplines')?[_c('DLabel',{attrs:{\"str\":_vm.$t('disciplines')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('disciplines'),\"tag_type\":'disciplines',\"tags_active\":_vm.getActiveTags('disciplines')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'disciplines', value: $event })}}})]:(filter === 'target_audience')?[_c('DLabel',{attrs:{\"str\":_vm.$t('target_audience')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('target_audience'),\"tag_type\":'target_audience',\"tags_active\":_vm.getActiveTags('target_audience')},on:{\"tagClick\":function($event){return _vm.toggleFilter({\n filter_type: 'target_audience',\n value: $event,\n })}}})]:_vm._e()],2):_vm._e()]})],2):_vm._e(),_c('div',{staticClass:\"_listOfProjects\"},[_c('transition',{attrs:{\"name\":\"scaleInFade\",\"mode\":\"out-in\"}},[(_vm.active_filters.length > 0)?_c('transition-group',{staticClass:\"_tagList\",attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},[_vm._l((_vm.active_filters),function(af){return [(af.filter_type === '$status')?_c('StatusTag',{key:af.value,attrs:{\"status\":af.value,\"can_edit\":false,\"mode\":'disable'},on:{\"click\":function($event){return _vm.toggleFilter({\n filter_type: '$status',\n value: af.value,\n })}}}):_c('SingleTag',{key:af.value,attrs:{\"tag_type\":af.filter_type,\"tag_str\":af.value,\"mode\":'disable'},on:{\"tagClick\":function($event){return _vm.toggleFilter({\n filter_type: af.filter_type,\n value: af.value,\n })}}})]}),(_vm.active_filters.length > 1)?_c('button',{key:'reset_all',staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.resetFilters}},[_vm._v(\" \"+_vm._s(_vm.$t(\"reset_all\"))+\" \")]):_vm._e()],2):_vm._e()],1),_c('ProjectsList',{attrs:{\"projects\":_vm.filtered_projects,\"projects_pinned\":_vm.projects_pinned,\"path\":_vm.space_path,\"display_original_space\":_vm.display_original_space,\"can_edit\":_vm.can_edit},on:{\"toggleFilter\":function($event){return _vm.toggleFilter($event)}}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_projectsList\"},[(_vm.projects.length === 0)?_c('div',{key:'noprojects',staticClass:\"u-instructions _noProjects\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"no_projects\"))+\" \")]):[_c('PinnedNonpinnedFolder',{attrs:{\"field_name\":'projects_pinned',\"label\":_vm.$t('projects_pinned'),\"content\":_vm.projects_pinned,\"path\":_vm.path,\"folders\":_vm.projects,\"can_edit\":_vm.can_edit},scopedSlots:_vm._u([{key:\"default\",fn:function(slotProps){return [_c('ProjectPresentation',{attrs:{\"project\":slotProps.item,\"context\":'list',\"display_original_space\":_vm.display_original_space,\"can_edit\":false},on:{\"toggleFilter\":function($event){return _vm.$emit('toggleFilter', $event)}}})]}}])})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectsList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectsList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectsList.vue?vue&type=template&id=715c75cc&scoped=true\"\nimport script from \"./ProjectsList.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectsList.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectsList.vue?vue&type=style&index=0&id=715c75cc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"715c75cc\",\n null\n \n)\n\nexport default component.exports","\n
\n\n
\n \n 0\"\n tag=\"section\"\n name=\"listComplete\"\n appear\n >\n \n 1\"\n class=\"u-buttonLink\"\n @click=\"resetFilters\"\n :key=\"'reset_all'\"\n >\n {{ $t(\"reset_all\") }}\n \n \n \n \n
\n \n \n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectsListWithFilter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectsListWithFilter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectsListWithFilter.vue?vue&type=template&id=62a09424&scoped=true\"\nimport script from \"./ProjectsListWithFilter.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectsListWithFilter.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectsListWithFilter.vue?vue&type=style&index=0&id=62a09424&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62a09424\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_spacePresentation\",class:{\n 'is--own': _vm.is_own_space,\n 'u-card2': _vm.context === 'list',\n },attrs:{\"data-context\":_vm.context}},[_c('div',{staticClass:\"_spaceCover\"},[_c('CoverField',{attrs:{\"context\":_vm.context,\"cover\":_vm.space.$cover,\"path\":_vm.space.$path,\"can_edit\":_vm.can_edit}}),_c('transition',{attrs:{\"name\":\"toggleLock\",\"mode\":\"out-in\"}},[(_vm.space.$status === 'private')?_c('StatusTag',{key:_vm.space.$status,staticClass:\"_icon\",attrs:{\"show_label\":false,\"status\":_vm.space.$status,\"can_edit\":false,\"mode\":'inactive'}}):_vm._e()],1)],1),_c('div',{staticClass:\"_textBloc\"},[(_vm.can_edit)?_c('div',{staticClass:\"_statusOptions\"},[_c('StatusTag',{attrs:{\"status\":_vm.space.$status || 'public',\"status_options\":['public', 'private'],\"path\":_vm.space.$path,\"can_edit\":_vm.can_edit}}),_c('DropDown',{attrs:{\"right\":true}},[_c('DownloadFolder',{attrs:{\"path\":_vm.space.$path}}),_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove_space')},on:{\"remove\":_vm.removeSpace}})],1)],1):_vm._e(),_c('div',{},[_c('TitleField',{staticClass:\"_title\",attrs:{\"field_name\":'title',\"label\":_vm.context === 'full' ? _vm.$t('title') : '',\"tag\":_vm.context === 'full' ? 'h1' : 'h2',\"content\":_vm.space.title,\"path\":_vm.space.$path,\"maxlength\":280,\"can_edit\":_vm.can_edit}}),(_vm.can_edit || _vm.space.subtitle)?_c('TitleField',{staticClass:\"_subtitle\",attrs:{\"field_name\":'subtitle',\"label\":_vm.context === 'full' && _vm.can_edit && !_vm.space.subtitle\n ? _vm.$t('subtitle')\n : '',\"content\":_vm.space.subtitle,\"path\":_vm.space.$path,\"maxlength\":280,\"can_edit\":_vm.can_edit}}):_vm._e()],1),(_vm.context === 'full' && (_vm.space.description || _vm.can_edit))?_c('CollaborativeEditor2',{staticClass:\"_description\",attrs:{\"label\":_vm.context === 'full' ? _vm.$t('description') : '',\"path\":_vm.space.$path,\"field_to_edit\":'description',\"custom_formats\":['bold', 'italic', 'link'],\"content\":_vm.space.description,\"is_collaborative\":false,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.context === 'full')?[_c('AdminsAndContributorsField',{attrs:{\"folder\":_vm.space,\"can_edit\":_vm.can_edit,\"admin_label\":_vm.$t('referent'),\"admin_instructions\":_vm.$t('space_admin_instructions'),\"contrib_instructions\":_vm.$t('space_contrib_instructions')}})]:_vm._e()],2),(_vm.context === 'list')?_c('router-link',{staticClass:\"_openSpace\",attrs:{\"to\":{ path: _vm.createURLFromPath(_vm.space.$path) },\"title\":_vm.$t('open') + ' ' + _vm.space.title}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpacePresentation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpacePresentation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SpacePresentation.vue?vue&type=template&id=e8b60a36&scoped=true\"\nimport script from \"./SpacePresentation.vue?vue&type=script&lang=js\"\nexport * from \"./SpacePresentation.vue?vue&type=script&lang=js\"\nimport style0 from \"./SpacePresentation.vue?vue&type=style&index=0&id=e8b60a36&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8b60a36\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_homeView\",style:(_vm.customStyling)},[_c('section',{staticClass:\"_homeView--container\"},[_c('div',{staticClass:\"_homeView--content\",attrs:{\"data-layout\":_vm.text_image_layout}},[_vm._l((_vm.custom_layout),function(layout){return [(layout === 'text')?_c('div',{key:layout,staticClass:\"_textBlock\"},[_c('h1',{staticClass:\"_sessionTitle\",domProps:{\"textContent\":_vm._s(_vm.name || _vm.$t('welcome_to_dodoc'))}}),_c('div',{},[(_vm.description)?_c('CollaborativeEditor2',{attrs:{\"content\":_vm.description}}):[(!_vm.is_instance_admin)?[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('admins_edit_text_here'))}})]:[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('admins_edit_text_below'))}})]]],2),(_vm.$root.app_infos.instance_meta.contactmail)?[_c('div',{staticClass:\"u-spacingBottom\"}),_c('p',[_c('b',[_vm._v(_vm._s(_vm.$t(\"contactmail_of_instance\")))]),_vm._v(\"  \"),_c('a',{attrs:{\"href\":'mailto:' + _vm.$root.app_infos.instance_meta.contactmail,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$root.app_infos.instance_meta.contactmail))])])]:_vm._e()],2):_vm._e(),(layout === 'image' && _vm.hero_thumb)?_c('div',{key:layout,staticClass:\"_imageBlock\"},[_c('img',{attrs:{\"src\":_vm.hero_thumb,\"role\":\"presentation\"}})]):_vm._e()]})],2)]),(_vm.load_whole_page === true)?[(_vm.connected_as)?_c('RecentlyEdited',{staticClass:\"_recentlyEdited\"}):_vm._e(),(_vm.$root.app_infos.instance_meta.enable_events)?_c('section',[_c('EventsSection')],1):_vm._e(),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[_c('div',{key:_vm.opened_event,staticClass:\"_bottomCont\"},[(!_vm.opened_event)?_c('RadioSwitch',{staticClass:\"_switch\",attrs:{\"content\":_vm.current_mode,\"options\":_vm.available_radioswitch_modes},on:{\"update:content\":function($event){_vm.current_mode=$event}}}):_vm._e(),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[_c('div',{key:_vm.current_mode},[(_vm.current_mode === 'spaces')?[_c('div',{staticClass:\"u-instructions _content\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.$t('spaces_instr'))}})]),_c('SpacesList')]:(_vm.current_mode === 'projects')?[_c('div',{staticClass:\"u-instructions _content\"},[(_vm.opened_event)?[_c('h2',[_vm._v(_vm._s(_vm.$t(\"list_of_projects\")))])]:_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.$t('all_projects_instr'))}})],2),_c('AllProjects')]:(_vm.current_mode === 'my_projects')?[_c('div',{staticClass:\"u-instructions _content\"},[_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.$t('my_projects_instr'))}})]),_c('AllProjects',{attrs:{\"show_only_my_projects\":true}})]:_vm._e()],2)])],1)]),_c('footer',{staticClass:\"_bottomFooter\"},[_c('div',{staticClass:\"_bottomFooter--cont\"},[(_vm.$root.app_infos.instance_meta.terms_in_footer)?_c('div',{staticClass:\"u-spacingBottom\"},[_c('router-link',{staticClass:\"u-buttonLink\",attrs:{\"to\":_vm.createURLFromPath('pages/terms')}},[_vm._v(\" \"+_vm._s(_vm.$t(\"terms\"))+\" \")])],1):_vm._e(),_c('div',{staticClass:\"_logoText\"},[_c('DodocLogo',{staticClass:\"_logo\"}),_c('div',{staticClass:\"_version\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"version\"))+\" \"+_vm._s(_vm.$root.app_infos.version)+\" \")])],1),_vm._v(\" \"+_vm._s(_vm.$t(\"a_foss_made_by\"))+\" \"),_c('br'),_vm._v(\" \"+_vm._s(_vm.$t(\"more_informations\"))+\" : \"),_c('a',{attrs:{\"href\":\"https://dodoc.fr\",\"title\":\"Site de do•doc\",\"target\":\"_blank\"}},[_vm._v(\"dodoc.fr\")])])])]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_spacesList\"},[_c('div',{staticClass:\"_filterSortBar\"},[_c('div',{staticClass:\"u-sameRow\"},[(_vm.is_instance_admin || _vm.is_instance_contributor)?_c('button',{staticClass:\"u-button u-button_red u-button_small\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_create_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"plus\",\"label\":_vm.$t('create')}}),_vm._v(\" \"+_vm._s(_vm.$t(\"create\"))+\" \")],1):_vm._e(),(_vm.sorted_spaces.length > 0)?_c('div',{staticClass:\"_searchField\"},[_c('SearchInput',{attrs:{\"search_placeholder\":_vm.$t('search_by_title_or_subtitle'),\"name\":'search_space'},model:{value:(_vm.search_space),callback:function ($$v) {_vm.search_space=$$v},expression:\"search_space\"}})],1):_vm._e()]),_c('div',{},[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.order_key),expression:\"order_key\"}],staticClass:\"_orderSelect\",attrs:{\"size\":\"small\",\"aria-label\":\"$t('sort')\",\"name\":\"order_spaces\",\"disabled\":_vm.filtered_spaces.length <= 1},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.order_key=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.order_options),function(opt){return _c('option',{key:opt.key,domProps:{\"value\":opt.key,\"textContent\":_vm._s(opt.text)}})}),0)])]),(_vm.show_create_modal)?_c('CreateFolder',{attrs:{\"modal_name\":_vm.$t('create_a_space'),\"path\":'spaces'},on:{\"close\":function($event){_vm.show_create_modal = false},\"openNew\":_vm.openNewSpace}}):_vm._e(),(!_vm.is_loading)?_c('PinnedNonpinnedFolder',{attrs:{\"field_name\":'spaces_pinned',\"label\":_vm.$t('spaces_pinned'),\"content\":_vm.settings.spaces_pinned,\"path\":'',\"folders\":_vm.filtered_spaces,\"can_edit\":_vm.is_instance_admin},scopedSlots:_vm._u([{key:\"default\",fn:function(slotProps){return [_c('SpacePresentation',{attrs:{\"space\":slotProps.item,\"context\":'list',\"can_edit\":false}})]}}],null,false,3865280801)}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpacesList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpacesList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SpacesList.vue?vue&type=template&id=663aeb10&scoped=true\"\nimport script from \"./SpacesList.vue?vue&type=script&lang=js\"\nexport * from \"./SpacesList.vue?vue&type=script&lang=js\"\nimport style0 from \"./SpacesList.vue?vue&type=style&index=0&id=663aeb10&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"663aeb10\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_allProjects\"},[_c('transition',{attrs:{\"name\":\"fade_fast\",\"duration\":150,\"mode\":\"out-in\"}},[(_vm.is_loading)?_c('LoaderSpinner'):_c('ProjectsListWithFilter',{attrs:{\"projects\":_vm.filtered_projects,\"display_original_space\":true}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AllProjects.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AllProjects.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AllProjects.vue?vue&type=template&id=60476200&scoped=true\"\nimport script from \"./AllProjects.vue?vue&type=script&lang=js\"\nexport * from \"./AllProjects.vue?vue&type=script&lang=js\"\nimport style0 from \"./AllProjects.vue?vue&type=style&index=0&id=60476200&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"60476200\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./HomeView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./HomeView.vue?vue&type=template&id=003aa044&scoped=true\"\nimport script from \"./HomeView.vue?vue&type=script&lang=js\"\nexport * from \"./HomeView.vue?vue&type=script&lang=js\"\nimport style0 from \"./HomeView.vue?vue&type=style&index=0&id=003aa044&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"003aa044\",\n null\n \n)\n\nexport default component.exports","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n var endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( function( cell ) {\n cell.remove();\n var index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n }, this );\n\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n for ( var i = 0; i < cells.length; i++ ) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift( cellShift );\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n this.element.style.position = 'absolute';\n this.element.setAttribute( 'aria-hidden', 'true' );\n this.x = 0;\n this.shift = 0;\n this.element.style[ this.parent.originSide ] = 0;\n};\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[ side ] = '';\n this.element.style.transform = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n // render position of cell with in slider\n var sideOffset = this.parent.originSide === 'left' ? 1 : -1;\n\n var adjustedX = this.parent.options.percentPosition ?\n x * sideOffset * ( this.parent.size.innerWidth / this.size.width ) :\n x * sideOffset;\n\n this.element.style.transform = 'translateX(' +\n this.parent.getPositionValue( adjustedX ) + ')';\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unidragger, utils ) {\n return factory( window, Flickity, Unidragger, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nproto._createDrag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n // TODO updateDraggable on resize? if groupCells & slides change\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable == '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.options.wrapAround && this.slides.length ) {\n // slow drag\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if ( this.options.freeScroll && !this.options.wrapAround ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\n };\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n var delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell( event.target );\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( var eventName in this.options.on ) {\n var listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n Flickity.createMethods.forEach( function( method ) {\n this[ method ]();\n }, this );\n\n if ( this.options.watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[ this.originSide ] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for ( var i = index; i < len; i++ ) {\n var cell = this.cells[i];\n cell.setPosition( cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) {\n return;\n }\n\n var slide = new Slide( this );\n this.slides.push( slide );\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach( function( cell, i ) {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n if ( canCellFit.call( this, i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\n if ( !groupCells ) {\n return function() {\n return false;\n };\n } else if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt( groupCells, 10 );\n return function( i ) {\n return ( i % number ) !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\n this.slides.forEach( function( slide ) {\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n }\n }, this );\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\n var delta = Math.abs( wrapIndex - this.selectedIndex );\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slides that has cell\n for ( var i = 0; i < this.slides.length; i++ ) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf( cell );\n if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( var i = 0; i < this.cells.length; i++ ) {\n var cell = this.cells[i];\n if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n var slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n // #1177 disable resize behavior when animating or dragging for iOS 15\n if ( !this.isActive || this.isAnimating || this.isDragging ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[ leftMethod ]();\n },\n // right arrow\n 39: function() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v2.3.0\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.nodeName == 'IMG' ) {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for ( var i = length; i < max; i++ ) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n fragment.appendChild( dot );\n newDots.push( dot );\n }\n\n this.holder.appendChild( fragment );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\n }\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\n if ( target.nodeName != 'LI' ) {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf( target );\n this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], function( EvEmitter, utils, Flickity ) {\n return factory( EvEmitter, utils, Flickity );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state != 'playing' ) {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n var svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n var path = document.createElementNS( svgURI, 'path' );\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n if ( !this.options.prevNextButtons ) {\n return;\n }\n\n this.prevButton = new PrevNextButton( -1, this );\n this.nextButton = new PrevNextButton( 1, this );\n\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._nonpinned[data-v-06cbf20b],._pinned[data-v-06cbf20b]{padding:0;margin:calc(var(--spacing)/1) 0}._item[data-v-06cbf20b]{position:relative;z-index:1}._pinSpace[data-v-06cbf20b]{position:absolute;top:0;left:0;margin:calc(var(--spacing)/2);z-index:100;color:var(--c-orange);display:flex;flex-flow:row nowrap;gap:calc(var(--spacing)/8)}._pinSpace>button[data-v-06cbf20b]{display:block;pointer-events:auto}._pinSpace_indicator[data-v-06cbf20b]{pointer-events:none}._list[data-v-06cbf20b]{display:grid;grid-auto-rows:max-content;grid-gap:calc(var(--spacing)/1);align-items:stretch;grid-template-columns:repeat(auto-fill,minmax(var(--item-width,320px),1fr))}._list_pinned[data-v-06cbf20b]{background-image:radial-gradient(rgba(51,51,51,.2) 2px,transparent 0);background-size:calc(var(--spacing)/1) calc(var(--spacing)/1);padding:calc(var(--spacing)/1)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._projectInfos[data-v-8e32e7a0]{position:relative;width:100%;background:#fff;transition:all .4s cubic-bezier(.19,1,.22,1)}._projectInfos.is--list[data-v-8e32e7a0]{background-color:#fff;border-radius:4px;transition:all .25s cubic-bezier(.19,1,.22,1)}._projectInfos.is--list.is--own[data-v-8e32e7a0]{border-bottom-color:var(--c-bleumarine)}._projectInfos.is--list ._projectInfos--topContent[data-v-8e32e7a0]{padding:0;margin:0;gap:0;max-width:none}._projectInfos.is--list ._title h3[data-v-8e32e7a0]{font-size:var(--sl-font-size-medium)}._projectInfos.is--list ._description[data-v-8e32e7a0]{font-size:var(--sl-font-size-small)}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content{display:block;width:100%}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content p:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content p:not(:first-child){display:none}._projectInfos.is--list[data-v-8e32e7a0]{display:block}._projectInfos.is--list ._projectInfos--infos[data-v-8e32e7a0]{padding:calc(var(--spacing)/2);width:100%;place-content:flex-start}._projectInfos[data-context=tiny] ._projectInfos--infos[data-v-8e32e7a0]{padding:calc(var(--spacing)/4) calc(var(--spacing)/2)}._projectInfos>*[data-v-8e32e7a0]{flex:10 1 320px;transition:all .4s cubic-bezier(.19,1,.22,1)}._projectInfos>._projectInfos--meta[data-v-8e32e7a0]{flex:1 0 260px}._projectInfos>._projectInfos--meta.is--hidden[data-v-8e32e7a0]{flex:0 0 0;opacity:0}._projectInfos--topContent[data-v-8e32e7a0]{max-width:min(var(--max-column-width),1180px);margin:calc(var(--spacing)/2) auto 0;overflow:hidden;display:flex;flex-flow:row wrap;justify-content:center;align-items:center;gap:calc(var(--spacing)*1)}._projectInfos--topContent>*[data-v-8e32e7a0]{flex:1 1 320px}._projectInfos--infos[data-v-8e32e7a0]{--short-project-height:8rem;position:relative;display:flex;flex-flow:column nowrap;place-content:center;gap:calc(var(--spacing)/2);transition:all .4s}.is--list ._projectInfos--infos[data-v-8e32e7a0]{gap:calc(var(--spacing)/4);order:0;padding-top:calc(var(--spacing)/2)}.is--list ._projectInfos--infos ._showDescription[data-v-8e32e7a0]{pointer-events:auto}._projectInfos--infos.is--short[data-v-8e32e7a0]{max-height:var(--short-project-height)}._projectInfos--infos>*[data-v-8e32e7a0]{max-width:56ch}._projectInfos--infos--settings[data-v-8e32e7a0]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:flex-end}._imageSelect[data-v-8e32e7a0]{background:#fff;position:relative}._projectInfos--cover[data-v-8e32e7a0]{position:relative;width:100%}.is--list ._projectInfos--cover[data-v-8e32e7a0]{width:100%;height:auto}.is--mobileView ._projectInfos--cover[data-v-8e32e7a0]{flex:1 1 auto;max-width:none;max-height:none;height:auto}._projectInfos--cover ._cover[data-v-8e32e7a0]{position:relative;aspect-ratio:3/2;border-radius:4px;overflow:hidden;margin-right:0;margin-left:auto}.is--list ._projectInfos--cover ._cover[data-v-8e32e7a0]{border-bottom-left-radius:0;border-bottom-right-radius:0}._projectInfos--cover ._icon[data-v-8e32e7a0]{position:absolute;z-index:1;top:0;right:0;margin:calc(var(--spacing)/1)}._projectInfos--cover ._private[data-v-8e32e7a0]{font-size:125%}._projectInfos--cover ._private[data-v-8e32e7a0]:before{content:\\\"\\\";position:absolute;width:60%;margin-left:20%;height:100%;background:#fff;z-index:-1;border-radius:5px}._projectInfos--cover ._originalSpace[data-v-8e32e7a0]{position:absolute;bottom:0;left:0;margin:calc(var(--spacing)/4);padding:calc(var(--spacing)/16) calc(var(--spacing)/2);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:rgba(0,0,0,.2);color:#fff;font-weight:700;border-radius:15px;font-size:var(--sl-font-size-small);max-width:calc(100% - var(--spacing)/2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._projectInfos--meta[data-v-8e32e7a0]{margin:0 auto;padding:0}.is--mobileView ._projectInfos--meta[data-v-8e32e7a0]{height:auto}._projectInfos--meta ._card[data-v-8e32e7a0]{width:240px;height:240px;overflow:auto;margin:calc(var(--spacing)/2)}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar{height:18px;width:18px;background-color:transparent}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb,._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-track{border:6px solid hsla(0,0%,100%,0);border-radius:24px;background-clip:padding-box;-webkit-transition:all .4s;transition:all .4s}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-track{background-color:transparent}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb{background-color:var(--c-noir)}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb:hover{background-color:var(--c-gris);border:6px solid hsla(0,0%,100%,0)}._projectInfos--open[data-v-8e32e7a0]{position:absolute;top:0;left:0;width:100%;height:100%}._showMeta[data-v-8e32e7a0]{position:absolute;top:0;right:0;z-index:100;background:#fff;margin:calc(var(--spacing)/4)}._showDescription[data-v-8e32e7a0]{position:relative;z-index:100;padding:0;text-align:left}._allTags[data-v-8e32e7a0]{position:relative;z-index:1;display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/4)}._compactExpandButton[data-v-8e32e7a0]{--expand-button-height:2rem;position:absolute;z-index:2;top:calc(var(--short-project-height) - var(--expand-button-height));height:var(--expand-button-height);left:0;right:0;padding:calc(var(--spacing)/4);background:linear-gradient(transparent,#fff);text-align:right;pointer-events:none}._compactExpandButton>button[data-v-8e32e7a0]{pointer-events:auto;border-radius:50%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._noProjects[data-v-715c75cc]{margin:calc(var(--spacing)/2) 0 calc(var(--spacing)/2);text-align:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._projectsListWithFilter[data-v-62a09424]{--item-width:240px;width:100%;min-height:70vh}._cont[data-v-62a09424]{flex-flow:row wrap;gap:calc(var(--spacing)*2)}._cont[data-v-62a09424],._sidebar[data-v-62a09424]{display:flex;align-items:flex-start}._sidebar[data-v-62a09424]{flex:0 0 240px;position:sticky;overflow:auto;max-height:100vh;top:0;flex-flow:column nowrap;justify-content:flex-start;gap:calc(var(--spacing)/2);padding:calc(var(--spacing)/2);padding-left:0;margin-top:0}._sidebar[data-v-62a09424] button{white-space:nowrap;overflow:hidden;text-overflow:\\\" [..]\\\"}._listOfProjects[data-v-62a09424]{flex:1 1 0;margin-top:0}._tagList[data-v-62a09424]{display:flex;gap:calc(var(--spacing)/8);margin:calc(var(--spacing)/1) 0}._orderSelect[data-v-62a09424]{max-width:22ch}._filterSortBar[data-v-62a09424]{display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center;gap:calc(var(--spacing)/2)}._statusList[data-v-62a09424]{display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/8)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._allProjects[data-v-60476200]{position:relative;width:100%;margin:0 auto;padding:calc(var(--spacing)*1)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._list[data-v-59d6e751]{display:flex;flex-flow:row wrap}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._spacePresentation[data-v-e8b60a36]{position:relative;display:flex;flex-flow:row wrap;align-items:center;gap:calc(var(--spacing)/1);padding:calc(var(--spacing)/4);border-radius:6px;border-bottom:2px solid var(--c-gris);background:#fff;transition:all .25s cubic-bezier(.19,1,.22,1)}._spacePresentation[data-context=full][data-v-e8b60a36]{margin:calc(var(--spacing)*2) auto}._spacePresentation[data-context=list][data-v-e8b60a36]{flex-flow:row nowrap}._spaceCover[data-v-e8b60a36]{position:relative;aspect-ratio:1/1;align-self:flex-start;border-radius:4px;overflow:hidden;flex:1 2 240px}._textBloc[data-v-e8b60a36]{flex:3 1 240px;overflow:hidden;display:flex;flex-flow:column nowrap;gap:calc(var(--spacing)/1)}._subtitle[data-v-e8b60a36]{color:var(--c-gris_fonce);font-size:var(--sl-font-size-medium)}._description[data-v-e8b60a36]{display:block;max-width:88ch;font-size:var(--sl-font-size-small)}._openSpace[data-v-e8b60a36]{left:0;width:100%;height:100%}._icon[data-v-e8b60a36],._openSpace[data-v-e8b60a36]{position:absolute;top:0}._icon[data-v-e8b60a36]{right:0;margin:calc(var(--spacing)/1)}._statusOptions[data-v-e8b60a36]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._spacesList[data-v-663aeb10]{--item-width:300px;width:100%;min-height:60vh}._createSearch[data-v-663aeb10]{display:flex;flex-flow:row wrap;align-items:flex-end;gap:calc(var(--spacing)/2);margin:calc(var(--spacing)/2) 0}._pinDropzone[data-v-663aeb10]{border:2px dotted var(--c-noir);border-radius:10px;box-shadow:0 1px 10px rgba(0,0,0,.2);padding:calc(var(--spacing)/2)}._searchField[data-v-663aeb10] ._searchInput{max-width:35ch}._filterSortBar[data-v-663aeb10]{display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center;gap:calc(var(--spacing)/2)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._homeView[data-v-003aa044]{position:relative;min-height:calc(100vh - 60px);max-height:-webkit-fill-available}._homeView--container[data-v-003aa044]{width:100%;background:var(--hero-bg,var(--c-gris_clair))}._homeView--container ._homeCover[data-v-003aa044]{background:#fff}._homeView--container ._homeCover[data-v-003aa044] img{-o-object-fit:scale-down!important;object-fit:scale-down!important}._homeView--content[data-v-003aa044]{position:relative;width:100%;margin:0 auto;display:flex;flex-flow:row wrap;justify-content:center;align-items:center;overflow:hidden;border-bottom:1px solid var(--c-gris)}._homeView--content>*[data-v-003aa044]{flex:1 1 320px}._homeView--content[data-layout=image_text_overlay][data-v-003aa044]{min-height:50vh;justify-content:flex-start}._homeView--content ._textBlock[data-v-003aa044]{position:relative;z-index:1;flex:1 1 250px;max-width:350px;margin:0 auto;border-radius:var(--panel-radius);box-shadow:var(--panel-shadows);padding:calc(var(--spacing)/1);margin:5%;background:var(--text-bg,#fff)}._homeView--content ._imageBlock[data-v-003aa044]{position:relative;flex:4 1 620px;width:100%}._homeView--content ._imageBlock img[data-v-003aa044]{width:auto;max-height:90vh}._homeView--content[data-layout=image_text_overlay] ._imageBlock[data-v-003aa044]{position:absolute;height:100%}._homeView--content[data-layout=image_text_overlay] ._imageBlock img[data-v-003aa044]{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;max-height:none}._content[data-v-003aa044]{max-width:86ch;margin:0 auto;width:100%;padding:0 calc(var(--spacing)*1);text-align:center}._bottomFooter[data-v-003aa044]{display:block;text-align:center;padding:calc(var(--spacing)*2) 0 calc(var(--spacing)*3);font-size:var(--sl-font-size-x-small)}._bottomFooter--cont[data-v-003aa044]{max-width:65ch;margin:0 auto}._floatinProjectBtn[data-v-003aa044]{position:fixed;bottom:0;left:0;width:100%;padding:10vh 20vw;pointer-events:none;display:flex;justify-content:center}._floatinProjectBtn>*[data-v-003aa044]{pointer-events:auto}._logoText[data-v-003aa044]{display:flex;flex-flow:row nowrap;align-items:flex-end;max-width:240px;margin:0 auto;padding:0 calc(var(--spacing)*1)}._logoText>*[data-v-003aa044]{flex:0 0 50%}._logoText>._version[data-v-003aa044]{text-align:left;font-weight:500;padding-bottom:3px}._sessionTitle[data-v-003aa044]{display:block;font-weight:500;letter-spacing:-.015em;margin-bottom:calc(var(--spacing)*1)}._bottomCont[data-v-003aa044]{position:relative;z-index:1;flex:1;max-width:var(--max-column-width);margin:calc(var(--spacing)*2) auto;min-height:80vh}._switch[data-v-003aa044]{margin-bottom:calc(var(--spacing)*1)}._recentlyEdited[data-v-003aa044]{max-width:var(--max-column-width);margin:calc(var(--spacing)*2) auto}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*! Flickity v2.3.0\\nhttps://flickity.metafizzy.co\\n---------------------------------------------- */.flickity-enabled{position:relative}.flickity-enabled:focus{outline:none}.flickity-viewport{overflow:hidden;position:relative;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:grabbing}.flickity-button{position:absolute;background:hsla(0,0%,100%,.75);border:none;color:#333}.flickity-button:hover{background:#fff;cursor:pointer}.flickity-button:focus{outline:none;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}.flickity-page-dots .dot.is-selected{opacity:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PageView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PageView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PageView.vue?vue&type=template&id=2f7189fb&scoped=true\"\nimport script from \"./PageView.vue?vue&type=script&lang=js\"\nexport * from \"./PageView.vue?vue&type=script&lang=js\"\nimport style0 from \"./PageView.vue?vue&type=style&index=0&id=2f7189fb&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f7189fb\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._pageView[data-v-2f7189fb]{width:90%;max-width:560px;margin:0 auto;padding:calc(var(--spacing)*2) 0}._topbar[data-v-2f7189fb]{display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./flickity.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./flickity.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./flickity.vue?vue&type=template&id=42695eab\"\nimport script from \"./flickity.vue?vue&type=script&lang=js\"\nexport * from \"./flickity.vue?vue&type=script&lang=js\"\nimport style0 from \"flickity/dist/flickity.css?vue&type=style&index=0&prod&lang=css&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.pinned_folders.length > 0 || _vm.can_edit)?_c('div',{staticClass:\"_pinned\"},[_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.label}}),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[(_vm.pinned_folders.length === 0 && _vm.can_edit)?_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"click_to_pin\"))+\" \")]):_c('transition-group',{staticClass:\"_list _list_pinned\",attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},_vm._l((_vm.pinned_folders),function(folder,index){return _c('div',{key:folder.$path,staticClass:\"_item\"},[_vm._t(\"default\",null,{\"item\":folder}),(_vm.can_edit)?_c('div',{staticClass:\"_pinSpace\"},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"disabled\":['alone', 'first'].includes(_vm.positionInPinned(folder.$path))},on:{\"click\":function($event){return _vm.movePin(index, -1)}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-circle-fill\",\"aria-label\":_vm.$t('move_left')}})],1),_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.removeFromPins(folder.$path)}}},[_c('b-icon',{attrs:{\"icon\":\"pin-fill\",\"aria-label\":_vm.$t('unpin')}})],1),_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"disabled\":['alone', 'last'].includes(_vm.positionInPinned(folder.$path))},on:{\"click\":function($event){return _vm.movePin(index, +1)}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-right-circle-fill\",\"aria-label\":_vm.$t('move_right')}})],1)]):_c('div',{staticClass:\"_pinSpace _pinSpace_indicator\"},[_c('b-icon',{attrs:{\"icon\":\"pin-fill\",\"aria-label\":_vm.$t('pinned')}})],1)],2)}),0)],1)],1)]):_vm._e(),_c('transition-group',{staticClass:\"_nonpinned _list\",attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},_vm._l((_vm.non_pinned_folders),function(folder){return _c('div',{key:folder.$path,staticClass:\"_item\"},[_vm._t(\"default\",null,{\"item\":folder}),(_vm.can_edit)?_c('div',{staticClass:\"_pinSpace\"},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.addSpaceToPins(folder.$path)}}},[_c('b-icon',{attrs:{\"icon\":\"pin\",\"aria-label\":_vm.$t('pin')}})],1)]):_vm._e()],2)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PinnedNonpinnedFolder.vue?vue&type=template&id=06cbf20b&scoped=true\"\nimport script from \"./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"\nexport * from \"./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"\nimport style0 from \"./PinnedNonpinnedFolder.vue?vue&type=style&index=0&id=06cbf20b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06cbf20b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_projectInfos\",class:{\n 'is--list': ['list', 'tiny'].includes(_vm.context),\n 'is--own': _vm.is_own_project,\n 'u-card2': _vm.context !== 'full',\n },attrs:{\"data-context\":_vm.context}},[_c('div',{staticClass:\"_projectInfos--topContent\"},[_c('div',{staticClass:\"_projectInfos--cover\"},[_c('CoverField',{staticClass:\"_cover\",attrs:{\"context\":_vm.context,\"cover\":_vm.project.$cover,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}),_c('transition',{attrs:{\"name\":\"toggleLock\",\"mode\":\"out-in\"}},[(\n _vm.project.$status === 'finished' || _vm.project.$status === 'private'\n )?_c('StatusTag',{key:_vm.project.$status,staticClass:\"_icon\",attrs:{\"show_label\":false,\"status\":_vm.project.$status,\"can_edit\":false,\"mode\":_vm.context === 'list' ? 'active' : 'inactive'},on:{\"click\":function($event){return _vm.$emit('toggleFilter', {\n filter_type: '$status',\n value: _vm.project.$status,\n })}}}):_vm._e()],1),(_vm.display_original_space)?_c('div',{staticClass:\"_originalSpace\"},[_vm._v(\" + \"+_vm._s(_vm.original_space_name)+\" \")]):_vm._e()],1),_c('div',{staticClass:\"_projectInfos--infos\",class:{\n 'is--short': _vm.is_compacted,\n }},[(_vm.context === 'full')?_c('div',{staticClass:\"_projectInfos--infos--settings\"},[_c('StatusTag',{attrs:{\"status\":_vm.project.$status,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}),(_vm.can_edit)?_c('DropDown',{attrs:{\"right\":true}},[_c('DownloadFolder',{attrs:{\"path\":_vm.project.$path}}),_c('div',{},[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_dup_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"file-plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate_or_move_project\"))+\" \")],1),(_vm.show_dup_modal)?_c('DuplicateOrRemixProject',{attrs:{\"path\":_vm.project.$path,\"proposed_title\":`${_vm.$t('copy_of')} ${_vm.project.title}`},on:{\"close\":function($event){_vm.show_dup_modal = false}}}):_vm._e()],1),_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove_project')},on:{\"remove\":_vm.removeProject}})],1):_vm._e()],1):_vm._e(),_c('TitleField',{staticClass:\"_title\",attrs:{\"field_name\":'title',\"label\":_vm.context === 'full' ? _vm.$t('title') : '',\"content\":_vm.project.title,\"path\":_vm.project.$path,\"required\":true,\"maxlength\":40,\"tag\":_vm.context === 'full' ? 'h1' : _vm.context === 'list' ? 'h3' : 'h5',\"can_edit\":_vm.can_edit,\"instructions\":_vm.can_edit ? _vm.$t('project_title_instructions') : undefined}}),(\n (_vm.context === 'list' && _vm.project.description) ||\n (_vm.context === 'full' && (_vm.project.description || _vm.can_edit))\n )?_c('CollaborativeEditor2',{attrs:{\"label\":_vm.context === 'full' ? _vm.$t('description') : '',\"field_to_edit\":'description',\"content\":_vm.project.description,\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"maxlength\":1280,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.context === 'full')?_c('AdminsAndContributorsField',{attrs:{\"folder\":_vm.project,\"can_edit\":_vm.can_edit,\"admin_label\":_vm.$t('referent'),\"admin_instructions\":_vm.$t('project_admin_instructions'),\"contrib_instructions\":_vm.$t('project_contrib_instructions')}}):_vm._e(),(_vm.context !== 'tiny' && _vm.context !== 'full' && _vm.all_tags.length > 0)?_c('div',{staticClass:\"_allTags\"},[_vm._l((_vm.all_tags),function(tags){return _vm._l((tags.list),function(tag){return _c('SingleTag',{key:tag,attrs:{\"tag_type\":tags.type,\"tag_str\":tag,\"mode\":'active'},on:{\"tagClick\":function($event){return _vm.$emit('toggleFilter', { filter_type: tags.type, value: tag })}}})})})],2):_vm._e(),(_vm.is_compacted)?_c('div',{staticClass:\"_compactExpandButton\",on:{\"click\":_vm.toggleCompacted}},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"tabindex\":\"-1\"}},[(_vm.short_project_view)?_c('b-icon',{attrs:{\"icon\":\"arrow-down-short\"}}):_c('b-icon',{attrs:{\"icon\":\"arrow-up-short\"}})],1)]):_vm._e()],1)]),(_vm.context === 'full')?_c('flickity',{staticClass:\"_projectInfos--meta\",class:{\n 'is--hidden': !_vm.show_meta,\n },attrs:{\"options\":_vm.flickityOptions}},[_c('CardCompetences',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardMachinesMaterials',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardKeywords',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardLicense',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardFiles',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}})],1):_vm._e(),(['list', 'tiny'].includes(_vm.context))?_c('router-link',{staticClass:\"_projectInfos--open\",attrs:{\"to\":{ path: _vm.createURLFromPath(_vm.project.$path) },\"title\":_vm.$t('open') + ' ' + _vm.project.title}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.keywords_title,\"icon\":'tag',\"has_items\":!!_vm.project.keywords,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{},[_c('TagsField',{attrs:{\"label\":_vm.$t('keywords'),\"field_name\":'keywords',\"tag_type\":'keywords',\"content\":_vm.project.keywords,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardKeywords.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardKeywords.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardKeywords.vue?vue&type=template&id=1560151b&scoped=true\"\nimport script from \"./CardKeywords.vue?vue&type=script&lang=js\"\nexport * from \"./CardKeywords.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1560151b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('levels_and_competences'),\"icon\":'bookmark-star',\"has_items\":!!_vm.project.level,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('skill_level'),\"field_name\":'level',\"input_type\":'radio',\"content\":_vm.project.level,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.basic_competences},scopedSlots:_vm._u([{key:\"preview\",fn:function({ item }){return [(item && !!item.key)?_c('div',{staticClass:\"_list\"},[_c('SingleTag',{attrs:{\"tag_type\":'level',\"tag_str\":item.label,\"mode\":'inactive'}})],1):_vm._e()]}}])})],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('target_audience'),\"field_name\":'target_audience',\"input_type\":'checkbox',\"content\":_vm.project.target_audience,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.target_audience_options},scopedSlots:_vm._u([{key:\"preview\",fn:function({ items }){return [(items)?_c('TagsList',{attrs:{\"tags\":items.map(({ key }) => key),\"tag_type\":'target_audience'}}):_vm._e()]}}])})],1),_c('div',{},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('disciplines'),\"field_name\":'disciplines',\"input_type\":'checkbox',\"content\":_vm.project.disciplines,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.discipline_options},scopedSlots:_vm._u([{key:\"preview\",fn:function({ items }){return [(items)?_c('TagsList',{attrs:{\"tags\":items.map(({ key }) => key),\"tag_type\":'disciplines'}}):_vm._e()]}}])})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardCompetences.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardCompetences.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardCompetences.vue?vue&type=template&id=59d6e751&scoped=true\"\nimport script from \"./CardCompetences.vue?vue&type=script&lang=js\"\nexport * from \"./CardCompetences.vue?vue&type=script&lang=js\"\nimport style0 from \"./CardCompetences.vue?vue&type=style&index=0&id=59d6e751&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59d6e751\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('machines_and_materials'),\"icon\":'tools',\"has_items\":_vm.machines_materials_items_length > 0\n ? _vm.machines_materials_items_length\n : false,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('TagsField',{attrs:{\"label\":_vm.$t('materials'),\"field_name\":'materials',\"tag_type\":'materials',\"content\":_vm.project.materials,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1),_c('div',{},[_c('TagsField',{attrs:{\"label\":_vm.$t('machines'),\"field_name\":'machines',\"tag_type\":'machines',\"content\":_vm.project.machines,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardMachinesMaterials.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardMachinesMaterials.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardMachinesMaterials.vue?vue&type=template&id=36844aa4&scoped=true\"\nimport script from \"./CardMachinesMaterials.vue?vue&type=script&lang=js\"\nexport * from \"./CardMachinesMaterials.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36844aa4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('authors_and_license'),\"icon\":'people',\"has_items\":!!_vm.project.license,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('CollaborativeEditor2',{attrs:{\"label\":_vm.$t('authors'),\"field_to_edit\":'authors_list',\"content\":_vm.project.authors_list,\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"can_edit\":_vm.can_edit}})],1),_c('div',{},[(_vm.$root.app_infos.instance_meta.enable_events)?_c('EventField',{staticClass:\"u-spacingBottom\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}):_vm._e(),_c('RemixField',{staticClass:\"u-spacingBottom\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),(_vm.can_edit || (!_vm.can_edit && _vm.project.license !== 'custom_license'))?_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('license'),\"instructions\":_vm.$t('licence_instructions'),\"field_name\":'license',\"input_type\":'radio',\"content\":_vm.project.license,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.license_options}}):_vm._e(),(_vm.project.license === 'custom_license')?_c('CollaborativeEditor2',{attrs:{\"label\":_vm.can_edit ? _vm.$t('custom_license') : undefined,\"field_to_edit\":'custom_license',\"content\":_vm.project.custom_license || _vm.$t('fill_out_your_license'),\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"can_edit\":_vm.can_edit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{},[(_vm.can_edit || _vm.project.event_linked_slug)?_c('DLabel',{attrs:{\"str\":_vm.$t('created_during')}}):_vm._e(),(!_vm.is_loading)?[_c('RadioCheckboxField',{attrs:{\"field_name\":'event_linked_slug',\"input_type\":'radio',\"content\":_vm.project.event_linked_slug,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.events_options}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EventField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EventField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EventField.vue?vue&type=template&id=47466f98&scoped=true\"\nimport script from \"./EventField.vue?vue&type=script&lang=js\"\nexport * from \"./EventField.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47466f98\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_remixField\"},[(_vm.can_edit)?_c('ToggleField',{attrs:{\"label\":_vm.$t('project_can_be_remixed'),\"field_name\":'$can_be_remixed',\"content\":_vm.project.$can_be_remixed === true,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.project.$can_be_remixed)?_c('button',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_remix_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"intersect\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"remix_this_project\"))+\" \")],1):_vm._e(),(_vm.show_remix_modal)?_c('DuplicateOrRemixProject',{attrs:{\"path\":_vm.project.$path,\"mode\":'remix',\"proposed_title\":`${_vm.$t('remix_of')} ${_vm.project.title}`,\"source_title\":_vm.project.title},on:{\"close\":function($event){_vm.show_remix_modal = false}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.modal_title},on:{\"close\":function($event){return _vm.$emit('close')}}},[(!_vm.url_to_copy)?[_c('div',{},[_c('div',{staticClass:\"u-spacingBottom u-instructions\"},[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"dm_instr\"))+\" \")])]),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.destination_space_label}}),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.destination_space_path),expression:\"destination_space_path\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.destination_space_path=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.sorted_spaces),function(space){return _c('option',{key:space.$path,domProps:{\"value\":space.$path,\"textContent\":_vm._s(space.title)}})}),0)],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.new_title_label}}),_c('TextInput',{ref:\"titleInput\",attrs:{\"content\":_vm.new_title,\"maxlength\":40,\"required\":true},on:{\"update:content\":function($event){_vm.new_title=$event}}})],1),(_vm.mode === 'duplicate')?_c('div',{staticClass:\"u-spacingBottom\"},[_c('ToggleInput',{attrs:{\"content\":_vm.remove_original,\"label\":_vm.$t('remove_original'),\"options\":{\n true: _vm.$t('remove_original_after_copy'),\n false: _vm.$t('keep_original_after_copy'),\n }},on:{\"update:content\":function($event){_vm.remove_original=$event}}})],1):_vm._e()]),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(!_vm.is_copying)?[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\",\"autofocus\":\"\"},on:{\"click\":_vm.confirm}},[(_vm.remove_original)?[_vm._v(\" \"+_vm._s(_vm.$t(\"move\"))+\" \")]:[(_vm.mode === 'remix')?[_vm._v(\" \"+_vm._s(_vm.$t(\"remix\"))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate\"))+\" \")]]],2)]:_c('LoaderSpinner')],2)]:[_c('router-link',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"to\":_vm.url_to_copy}},[_vm._v(\" \"+_vm._s(_vm.$t(\"open_copy\"))+\" \")])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DuplicateOrRemixProject.vue?vue&type=template&id=9cd5ad06&scoped=true\"\nimport script from \"./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"\nexport * from \"./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9cd5ad06\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RemixField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RemixField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RemixField.vue?vue&type=template&id=54c250a9&scoped=true\"\nimport script from \"./RemixField.vue?vue&type=script&lang=js\"\nexport * from \"./RemixField.vue?vue&type=script&lang=js\"\nimport style0 from \"./RemixField.vue?vue&type=style&index=0&id=54c250a9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54c250a9\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardLicense.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardLicense.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardLicense.vue?vue&type=template&id=3fb44220&scoped=true\"\nimport script from \"./CardLicense.vue?vue&type=script&lang=js\"\nexport * from \"./CardLicense.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fb44220\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('files'),\"icon\":'file-earmark-arrow-down',\"has_items\":_vm.downloadable_files.length > 0 ? _vm.downloadable_files.length : false,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('FilesModule',{attrs:{\"field_name\":'downloadable_files',\"path\":_vm.project.$path,\"content\":_vm.downloadable_files,\"project_path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardFiles.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardFiles.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardFiles.vue?vue&type=template&id=1ad3ce9e&scoped=true\"\nimport script from \"./CardFiles.vue?vue&type=script&lang=js\"\nexport * from \"./CardFiles.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ad3ce9e\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectPresentation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectPresentation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectPresentation.vue?vue&type=template&id=8e32e7a0&scoped=true\"\nimport script from \"./ProjectPresentation.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectPresentation.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectPresentation.vue?vue&type=style&index=0&id=8e32e7a0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8e32e7a0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_singleBaseMediaPicker\",attrs:{\"data-context\":_vm.context}},[_c('div',{staticClass:\"_mpContent\"},[(_vm.selected_media)?_c('MediaContent',{attrs:{\"file\":_vm.selected_media,\"resolution\":220,\"context\":_vm.context}}):(_vm.content)?_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"media_not_found\"))+\" \")]):_vm._e(),_c('div',{staticClass:\"_changeBtn\"},[(!_vm.content)?_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_media_picker = true}}},[_c('b-icon',{attrs:{\"icon\":\"image\"}}),_vm._v(\" \"+_vm._s(_vm.title)+\" \")],1):_c('button',{staticClass:\"u-button u-button_small u-button_red\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_media_picker = true}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-right\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"change\"))+\" \")],1),(_vm.show_media_picker)?_c('PickMediaFromProjects',{attrs:{\"title\":_vm.title,\"path\":_vm.path,\"select_mode\":'single',\"pick_from_type\":_vm.media_type_to_pick},on:{\"addMedias\":_vm.pickMedia,\"close\":function($event){_vm.show_media_picker = false}}}):_vm._e()],1),_c('DropZone',{attrs:{\"media_types_allowed\":_vm.media_type_to_pick ? [_vm.media_type_to_pick] : undefined},on:{\"mediaDropped\":_vm.pickMedia}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SingleBaseMediaPicker.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SingleBaseMediaPicker.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SingleBaseMediaPicker.vue?vue&type=template&id=482db883&scoped=true\"\nimport script from \"./SingleBaseMediaPicker.vue?vue&type=script&lang=js\"\nexport * from \"./SingleBaseMediaPicker.vue?vue&type=script&lang=js\"\nimport style0 from \"./SingleBaseMediaPicker.vue?vue&type=style&index=0&id=482db883&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"482db883\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_topbar\"},[(_vm.no_back_button !== true)?_c('button',{staticClass:\"u-button u-button_icon _backPubli\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-circle-fill\",\"aria-label\":_vm.$t('back_to_publications')}})],1):_vm._e(),_c('div',{staticClass:\"_publiTitle\"},[_c('TitleField',{attrs:{\"field_name\":'title',\"tag\":'h2',\"maxlength\":40,\"required\":true,\"content\":_vm.publication.title,\"path\":_vm.publication.$path,\"can_edit\":_vm.can_edit}})],1),_c('div',{staticClass:\"_buttonRow\"},[(_vm.can_edit && _vm.publication.$admins !== 'parent_contributors')?_c('div',{},[_c('small',[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.setCorrectPermForAdmins}},[_vm._v(\" set perm to parent \")]),_vm._v(\" \"+_vm._s(_vm.publication.$admins)+\" \")])]):_vm._e(),(_vm.can_edit)?_c('StatusTag',{attrs:{\"status\":_vm.publication.$status || 'public',\"status_options\":['public', 'private'],\"path\":_vm.publication.$path,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.can_edit && _vm.publication.template !== 'cartography')?_c('button',{staticClass:\"u-button u-button_small u-button_transparent\",attrs:{\"type\":\"button\",\"caret\":\"\"},on:{\"click\":_vm.openSettings}},[_c('b-icon',{attrs:{\"slot\":\"prefix\",\"icon\":\"gear\",\"aria-label\":_vm.$t('settings')},slot:\"prefix\"}),_vm._v(\" \"+_vm._s(_vm.$t(\"settings\"))+\" \")],1):_vm._e(),(_vm.can_edit)?_c('DropDown',{on:{\"show\":_vm.closeSettings}},[_c('DuplicatePublication',{attrs:{\"path\":_vm.publication.$path,\"source_title\":_vm.publication.title,\"publication\":_vm.publication},on:{\"close\":function($event){return _vm.$emit('close')}}}),_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove')},on:{\"remove\":_vm.removePublication}})],1):_vm._e(),_c('DropDown',{on:{\"show\":_vm.closeSettings}},[_c('template',{slot:\"trigger\"},[_c('b-icon',{attrs:{\"icon\":\"box-arrow-up-right\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"share\"))+\" \")],1),(_vm.can_edit)?_c('div',[_c('button',{staticClass:\"u-buttonLink _exportBtn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_export_pdf_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"file-pdf\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"to_export\"))+\" \")],1)]):_vm._e(),(_vm.show_export_pdf_modal)?_c('ExportPubliModal',{attrs:{\"publication\":_vm.publication,\"page_opened_id\":_vm.page_opened_id},on:{\"close\":function($event){_vm.show_export_pdf_modal = false}}}):_vm._e(),_c('div',[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_qr_code_modal = true}}},[_c('div',{staticClass:\"icon\",attrs:{\"part\":\"base\",\"aria-hidden\":\"true\"}},[_c('svg',{staticClass:\"bi bi-qr-code\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M2 2h2v2H2V2Z\"}}),_c('path',{attrs:{\"d\":\"M6 0v6H0V0h6ZM5 1H1v4h4V1ZM4 12H2v2h2v-2Z\"}}),_c('path',{attrs:{\"d\":\"M6 10v6H0v-6h6Zm-5 1v4h4v-4H1Zm11-9h2v2h-2V2Z\"}}),_c('path',{attrs:{\"d\":\"M10 0v6h6V0h-6Zm5 1v4h-4V1h4ZM8 1V0h1v2H8v2H7V1h1Zm0 5V4h1v2H8ZM6 8V7h1V6h1v2h1V7h5v1h-4v1H7V8H6Zm0 0v1H2V8H1v1H0V7h3v1h3Zm10 1h-1V7h1v2Zm-1 0h-1v2h2v-1h-1V9Zm-4 0h2v1h-1v1h-1V9Zm2 3v-1h-1v1h-1v1H9v1h3v-2h1Zm0 0h3v1h-2v1h-1v-2Zm-4-1v1h1v-2H7v1h2Z\"}}),_c('path',{attrs:{\"d\":\"M7 12h1v3h4v1H7v-4Zm9 2v2h-3v-1h2v-1h1Z\"}})])]),_vm._v(\" \"+_vm._s(_vm.$t(\"direct_link\"))+\" \")])]),(_vm.show_qr_code_modal)?_c('QRModal',{attrs:{\"url_to_access\":_vm.share_url},on:{\"close\":function($event){_vm.show_qr_code_modal = false}}},[_c('ToggleField',{attrs:{\"label\":_vm.$t('make_publication_public'),\"field_name\":'$public',\"content\":_vm.publication.$public === true,\"path\":_vm.publication.$path,\"can_edit\":_vm.can_edit}})],1):_vm._e()],2)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"file-plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate_or_move\"))+\" \")],1),(_vm.show_modal)?_c('BaseModal2',{attrs:{\"title\":_vm.$t('duplicate_or_move')},on:{\"close\":function($event){_vm.show_modal = false}}},[(!_vm.navigation_to_copy)?[_c('div',{staticClass:\"u-spacingBottom\"},[_c('div',{staticClass:\"u-instructions\"},[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"dmp_instr\"))+\" \")])]),_c('br'),_c('SpaceProjectPicker',{staticClass:\"u-spacingBottom\",attrs:{\"path\":_vm.path},on:{\"newProjectSelected\":function($event){_vm.destination_project_path = $event}}}),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('title_of_copy')}}),_c('TextInput',{ref:\"titleInput\",attrs:{\"content\":_vm.new_title,\"maxlength\":40,\"required\":true},on:{\"update:content\":function($event){_vm.new_title=$event}}})],1),_c('div',{},[_c('ToggleInput',{attrs:{\"content\":_vm.remove_original,\"label\":_vm.$t('remove_original'),\"options\":{\n true: _vm.$t('remove_original_after_copy'),\n false: _vm.$t('keep_original_after_copy'),\n }},on:{\"update:content\":function($event){_vm.remove_original=$event}}})],1)],1),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(!_vm.is_copying)?[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_modal = false}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\",\"autofocus\":\"\",\"disabled\":!_vm.destination_project_path},on:{\"click\":_vm.confirm}},[(_vm.remove_original)?[_vm._v(\" \"+_vm._s(_vm.$t(\"move\"))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate\"))+\" \")]],2)]:_c('LoaderSpinner')],2)]:[_c('a',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"href\":_vm.navigation_to_copy}},[_vm._v(\" \"+_vm._s(_vm.$t(\"open_copy\"))+\" \")])]],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicatePublication.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicatePublication.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DuplicatePublication.vue?vue&type=template&id=19fcccef&scoped=true\"\nimport script from \"./DuplicatePublication.vue?vue&type=script&lang=js\"\nexport * from \"./DuplicatePublication.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19fcccef\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.$t('export_publi')},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.$t('document_type')}}),_c('RadioCheckboxInput',{attrs:{\"value\":_vm.export_mode,\"options\":_vm.export_options,\"can_edit\":true},on:{\"update:value\":function($event){_vm.export_mode=$event}}})],1),(_vm.export_mode === 'pdf')?[_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.exportPublication('pdf')}}},[_c('b-icon',{attrs:{\"icon\":\"file-pdf\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"create\"))+\" \")],1)])]:(_vm.export_mode === 'png')?[(_vm.publication.template === 'page_by_page')?[_c('div',{staticClass:\"u-spacingBottom\"}),_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.$t('page_to_export')}}),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.page_to_export_as_image),expression:\"page_to_export_as_image\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.page_to_export_as_image=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((new Array(_vm.page_count)),function(a,i){return _c('option',{key:i + 1,domProps:{\"textContent\":_vm._s(i + 1)}})}),0)],1)]:_vm._e(),_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.exportPublication('png')}}},[_c('b-icon',{attrs:{\"icon\":\"file-earmark-image\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"create\"))+\" \")],1)])]:_vm._e(),(_vm.task_instructions)?_c('ExportItemAndSaveOrDownload',{attrs:{\"publication_path\":_vm.publication.$path,\"instructions\":_vm.task_instructions},on:{\"close\":function($event){_vm.task_instructions = false}}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.$t('export_publi')},on:{\"close\":function($event){return _vm.$emit('close')}}},[(_vm.is_exporting)?[_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"export_in_progress\"))+\" \")]),_c('div',{},[_c('b',[_c('AnimatedCounter',{attrs:{\"value\":_vm.task_progress}})],1)])]:[(_vm.created_doc)?_c('MediaContent',{staticClass:\"_preview\",attrs:{\"file\":_vm.created_doc,\"resolution\":1600,\"context\":'full'}}):_vm._e(),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('a',{staticClass:\"u-buttonLink\",attrs:{\"disabled\":!_vm.export_href,\"download\":_vm.export_name,\"href\":_vm.export_href,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"download\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.saveToProject}},[_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 168 168\"},attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 168 168\",\"xml:space\":\"preserve\"}},[_c('path',{staticStyle:{\"fill\":\"var(--c-rouge)\"},attrs:{\"d\":\"M84,0C37.6,0,0,37.6,0,84c0,46.4,37.6,84,84,84c46.4,0,84-37.6,84-84 C168,37.6,130.4,0,84,0z\"}}),_c('g',{staticStyle:{\"fill\":\"var(--c-orange)\"}},[_c('path',{attrs:{\"d\":\"m42 42h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m73.2 42h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m104.4 42h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m42 73.5h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m73.2 73.5h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m104.4 73.5h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m42 105h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m73.2 105h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m104.4 105h21.6v21h-21.6z\"}})])]),_vm._v(\" \"+_vm._s(_vm.$t(\"save_to_project\"))+\" \")])]),(_vm.finished_saving_to_project)?_c('div',{staticClass:\"_saveNotice\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"media_was_saved_to_project\"))+\" \")]):_vm._e()]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ExportItemAndSaveOrDownload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ExportItemAndSaveOrDownload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ExportItemAndSaveOrDownload.vue?vue&type=template&id=2d915ad8&scoped=true\"\nimport script from \"./ExportItemAndSaveOrDownload.vue?vue&type=script&lang=js\"\nexport * from \"./ExportItemAndSaveOrDownload.vue?vue&type=script&lang=js\"\nimport style0 from \"./ExportItemAndSaveOrDownload.vue?vue&type=style&index=0&id=2d915ad8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d915ad8\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ExportPubliModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ExportPubliModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ExportPubliModal.vue?vue&type=template&id=076f2f40&scoped=true\"\nimport script from \"./ExportPubliModal.vue?vue&type=script&lang=js\"\nexport * from \"./ExportPubliModal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"076f2f40\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationTopbar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationTopbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PublicationTopbar.vue?vue&type=template&id=8a773402&scoped=true\"\nimport script from \"./PublicationTopbar.vue?vue&type=script&lang=js\"\nexport * from \"./PublicationTopbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./PublicationTopbar.vue?vue&type=style&index=0&id=8a773402&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8a773402\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_projectView\"},[_c('transition',{attrs:{\"name\":\"fade_fast\",\"mode\":\"out-in\"}},[(_vm.is_loading)?_c('div',{key:\"loader\",staticClass:\"u-divCentered\"},[_c('LoaderSpinner')],1):(_vm.fetch_project_error_message)?_c('div',{key:\"err\"},[_c('div',{staticClass:\"u-instructions _errNotice\"},[_vm._v(\" \"+_vm._s(_vm.fetch_project_error_message)+\" \")])]):_c('div',{key:\"project\"},[_c('div',{staticClass:\"_topContent\"},[(_vm.can_contribute_to_project)?_c('div',{staticClass:\"u-displayAsPublic\"},[_c('div',{staticClass:\"_sticky\"},[_c('div',{staticClass:\"_content\"},[_c('ToggleInput',{attrs:{\"content\":_vm.display_as_public,\"label\":_vm.$t('display_as_public')},on:{\"update:content\":function($event){_vm.display_as_public=$event}}})],1)])]):_vm._e(),_c('ProjectPresentation',{attrs:{\"project\":_vm.project,\"context\":\"full\",\"can_edit\":_vm.can_edit_project && !_vm.display_as_public}})],1),_c('div',{staticClass:\"_projectPanesAndList\"},[(_vm.can_contribute_to_project && !_vm.display_as_public)?_c('PaneList2',{staticClass:\"_paneList\",attrs:{\"can_edit\":_vm.can_contribute_to_project && !_vm.display_as_public,\"project\":_vm.project,\"panes\":_vm.projectpanes},on:{\"update:panes\":function($event){_vm.projectpanes=$event}}}):_c('hr',{staticClass:\"_separator\"}),_c('div',{staticClass:\"_panes\"},[_c('ProjectPanes',{attrs:{\"projectpanes\":_vm.projectpanes,\"project\":_vm.project,\"can_edit_project\":_vm.can_contribute_to_project && !_vm.display_as_public},on:{\"update:projectpanes\":function($event){_vm.projectpanes = $event}}})],1)],1)])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_paneList\",class:{\n 'is--mobile': _vm.$root.is_mobile_view,\n 'has--noPanes': _vm.project_panes.length === 0,\n }},[_c('span',{staticClass:\"_paneList2\",attrs:{\"label\":\"Panneaux\"}},[(!_vm.$root.is_mobile_view)?_c('div',{staticClass:\"_projectTitle\",class:{\n 'is--shown': _vm.is_stickied_to_top,\n }},[_c('button',{staticClass:\"u-button u-button_transparent\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.scrollToTop}},[_c('b-icon',{attrs:{\"icon\":\"arrow-up\"}}),_c('span',[_vm._v(\" \"+_vm._s(_vm.project.title)+\" \")])],1)]):_vm._e(),_c('span',{ref:\"drawer\",staticClass:\"_projectPanes\",attrs:{\"placement\":\"top\"}},[(_vm.can_edit)?_c('SlickList',{staticClass:\"_paneList--list\",attrs:{\"axis\":\"x\",\"useDragHandle\":true},model:{value:(_vm.project_panes),callback:function ($$v) {_vm.project_panes=$$v},expression:\"project_panes\"}},_vm._l((_vm.possible_project_panes),function(pane,index){return _c('SlickItem',{key:pane.type,staticClass:\"_paneItem\",class:{\n 'is--enabled': _vm.paneIsEnabled(pane.type),\n },style:(`--color-active: var(--color-${pane.type});`),attrs:{\"index\":index}},[_c('div',{ref:`pane_${pane.type}`,refInFor:true,staticClass:\"_btn\",on:{\"click\":function($event){return _vm.replacePane($event, pane)}}},[(_vm.getIcon(pane.type))?_c('span',{staticClass:\"_icon\",domProps:{\"innerHTML\":_vm._s(_vm.getIcon(pane.type))}}):_vm._e(),(_vm.paneIsEnabled(pane.type) || !_vm.$root.is_mobile_view)?_c('span',{staticClass:\"_name\"},[_vm._v(\" \"+_vm._s(index + 1)+\" • \"+_vm._s(_vm.$t(pane.type))+\" \")]):_vm._e(),(_vm.project_panes.some((p) => p.type === pane.type))?_c('div',{staticClass:\"_inlineBtn _removePaneBtn\"},[_c('b-icon',{attrs:{\"icon\":\"x-circle-fill\",\"label\":_vm.$t('close')},on:{\"click\":function($event){$event.stopPropagation();return _vm.removePane(pane.type)}}})],1):(_vm.project_panes.length > 0 && !_vm.$root.is_mobile_view)?_c('div',{staticClass:\"_inlineBtn _addPaneBtn\"},[_c('b-icon',{attrs:{\"icon\":\"plus-circle-fill\",\"label\":_vm.$t('add')},on:{\"click\":function($event){$event.stopPropagation();return _vm.addPane($event, pane)}}})],1):_vm._e()])])}),1):_vm._e()],1),(!_vm.$root.is_mobile_view)?_c('span'):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PaneList2.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PaneList2.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PaneList2.vue?vue&type=template&id=2f3ef4ea&scoped=true\"\nimport script from \"./PaneList2.vue?vue&type=script&lang=js\"\nexport * from \"./PaneList2.vue?vue&type=script&lang=js\"\nimport style0 from \"./PaneList2.vue?vue&type=style&index=0&id=2f3ef4ea&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2f3ef4ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_projetPanes\",class:{\n 'has--multiplePanes': _vm.can_edit_project,\n 'is--editable': _vm.can_edit_project,\n },on:{\"click\":_vm.scrollToPanes}},[_c('splitpanes',{attrs:{\"watch-slots\":\"\",\"dbl-click-splitter\":false},on:{\"resized\":_vm.resized}},[(_vm.projectpanes.length === 0)?[_c('pane',[_c('div',{staticClass:\"_msg\"},[_c('div',{staticClass:\"u-sameRow u-instructions\"},[_c('b-icon',{attrs:{\"icon\":\"arrow-up-short\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"choose_a_pane\"))+\" \"),_c('b-icon',{attrs:{\"icon\":\"arrow-up-short\"}})],1),_c('br'),_c('br'),_c('br'),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DateDisplay',{attrs:{\"title\":_vm.$t('date_created'),\"date\":_vm.project.$date_created}}),_c('DateDisplay',{attrs:{\"title\":_vm.$t('date_modified'),\"date\":_vm.project.$date_modified}})],1),(_vm.$root.app_infos.is_electron && _vm.is_instance_admin)?_c('div',{},[_c('div',{staticClass:\"u-spacingBottom\"}),_c('DLabel',{attrs:{\"str\":_vm.$t('open_in_finder')}}),_c('button',{staticClass:\"u-button u-button_bleumarine u-button_small\",attrs:{\"type\":\"button\"},domProps:{\"innerHTML\":_vm._s(_vm.project_path_wrappable)},on:{\"click\":function($event){return _vm.openInFinder({ path: _vm.project.$path })}}})],1):_vm._e(),_c('br'),_c('DLabel',{attrs:{\"str\":_vm.$t('latest_changes_to_project')}}),_c('div',{staticClass:\"u-instructions\"},[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"waiting\"))+\" \")])])],1)])]:_vm._e(),_vm._l((_vm.projectpanes),function(pane){return _c('pane',{key:pane.type,staticClass:\"_pane\",style:(`--color-type: var(--color-${pane.type});`),attrs:{\"min-size\":\"5\",\"size\":pane.size,\"data-size\":pane.size}},[(_vm.can_edit_project && false)?_c('InstructionsWindow',{key:pane.type,attrs:{\"type\":pane.type,\"path\":_vm.project.$path},on:{\"close\":_vm.scrollToPanes}}):_vm._e(),(pane.type === 'capture')?_c('CapturePane',{attrs:{\"project\":_vm.project,\"selected_mode\":pane.mode,\"stopmotion_slug\":pane.stopmotion},on:{\"update:selected_mode\":function($event){return _vm.setItem(pane, 'mode', $event)},\"update:stopmotion_slug\":function($event){return _vm.setItem(pane, 'stopmotion', $event)}}}):(pane.type === 'collect')?_c('MediaLibrary',{key:pane.key,attrs:{\"project\":_vm.project,\"media_focused\":pane.focus},on:{\"update:media_focused\":function($event){return _vm.setItem(pane, 'focus', $event)}}}):_vm._e(),(pane.type === 'make')?_c('MakePane',{attrs:{\"project\":_vm.project,\"opened_make_slug\":pane.make,\"can_edit\":_vm.can_edit_project},on:{\"update:opened_make_slug\":function($event){return _vm.setItem(pane, 'make', $event)}}}):_vm._e(),(pane.type === 'publish')?_c('PublierPane',{attrs:{\"project\":_vm.project,\"publication_opened\":pane.folder,\"page_opened_id\":pane.page_id,\"can_edit\":_vm.can_edit_project},on:{\"update:publication_opened\":function($event){return _vm.setItem(pane, 'folder', $event)},\"update:page_opened_id\":function($event){return _vm.setItem(pane, 'page_id', $event)}}}):_vm._e()],1)})],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_capturePane\"},[_c('CaptureView',{attrs:{\"path\":_vm.project.$path,\"selected_mode\":_vm.selected_mode,\"stopmotion_slug\":_vm.stopmotion_slug},on:{\"changeMode\":function($event){return _vm.$emit('update:selected_mode', $event)},\"openStopmotion\":function($event){return _vm.$emit('update:stopmotion_slug', $event)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CapturePane.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CapturePane.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CapturePane.vue?vue&type=template&id=64693681&scoped=true\"\nimport script from \"./CapturePane.vue?vue&type=script&lang=js\"\nexport * from \"./CapturePane.vue?vue&type=script&lang=js\"\nimport style0 from \"./CapturePane.vue?vue&type=style&index=0&id=64693681&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"64693681\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_makePane\"},[_c('div',{staticClass:\"_makePane--content\"},[(!_vm.opened_make_slug)?_c('div',[(_vm.can_edit)?_c('RadioSwitch',{attrs:{\"content\":_vm.current_view,\"options\":[\n {\n label: _vm.$t('create'),\n value: 'create',\n },\n {\n label: _vm.$t('existing'),\n value: 'existing',\n },\n ]},on:{\"update:content\":function($event){_vm.current_view=$event}}}):_vm._e(),_c('div',{staticClass:\"u-spacingBottom\"}),(_vm.current_view === 'create')?_c('section',_vm._l((_vm.recipe_types),function(recipe_type){return _c('div',{key:recipe_type.key,staticClass:\"m_recipes--type\"},[_c('div',{staticClass:\"u-label u-colorWhite\"},[_vm._v(\" \"+_vm._s(_vm.$t(recipe_type.label))+\" \")]),_c('div',{staticClass:\"m_recipes--type--grid\"},_vm._l((recipe_type.recipes),function(recipe){return _c('div',{key:recipe.key,staticClass:\"u-card2 m_recipe\",class:{\n 'u-disabled': !recipe.enabled,\n }},[_c('div',{staticClass:\"m_recipe--icon\",domProps:{\"innerHTML\":_vm._s(recipe.icon)}}),_c('div',{staticClass:\"m_recipe--text\"},[_c('h2',{},[_vm._v(_vm._s(_vm.$t(recipe.key)))]),_c('p',{staticClass:\"margin-vert-small\"},[_c('span',{staticClass:\"margin-vert-verysmall\",domProps:{\"innerHTML\":_vm._s(_vm.$t(recipe.summary))}}),_c('br')]),(recipe.instructions)?_c('button',{staticClass:\"u-buttonLink\",class:{\n 'is--active': recipe.show_instructions,\n },attrs:{\"type\":\"button\"},on:{\"click\":function($event){recipe.show_instructions = !recipe.show_instructions}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"more_informations\"))+\" \")]):_vm._e(),(recipe.show_instructions)?[_c('p',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t(recipe.instructions))}})])]:_vm._e()],2),_c('div',{staticClass:\"m_recipe--buttons\"},[(recipe.enabled !== true)?_c('div',[_c('hr'),_vm._m(0,true)]):_c('button',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.createMake(recipe.key)}}},[_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 168 168\"},attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 168 168\",\"xml:space\":\"preserve\"}},[_c('polygon',{staticStyle:{\"fill\":\"white\"},attrs:{\"points\":\"132.3,73.4 132.3,94.4 94.6,94.4 94.6,132.1 73.6,132.1 73.6,94.4 35.9,94.4 35.9,73.4 \\n\\t\\t73.6,73.4 73.6,35.7 94.6,35.7 94.6,73.4 \\t\\t\"}})]),_c('span',[_vm._v(_vm._s(_vm.$t(\"create\")))])])])])}),0)])}),0):(_vm.current_view === 'existing')?_c('section',[_c('MakesList',{attrs:{\"project_path\":_vm.project.$path,\"can_edit\":_vm.can_edit},on:{\"open\":_vm.openMakes}})],1):_vm._e()],1):_c('div',[_c('MakeOpen',{attrs:{\"project_path\":_vm.project.$path,\"make_slug\":_vm.opened_make_slug,\"can_edit\":_vm.can_edit},on:{\"remove\":_vm.removeMake,\"close\":function($event){return _vm.$emit('update:opened_make_slug', false)}}})],1)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('small',[_vm._v(\" Pas encore disponible sur do•doc 10 / vous pouvez utiliser \"),_c('a',{attrs:{\"href\":\"https://dodoc.fr/\"}},[_vm._v(\"do•doc 9\")]),_vm._v(\" en attendant. \")])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"_makesList\"},[_c('label',{staticClass:\"u-label u-colorWhite\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"makes_list\"))+\" \")]),_c('div',{staticClass:\"_makes\"},[(_vm.sorted_makes.length === 0)?_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"none_f\"))+\" \")]):_vm._l((_vm.sorted_makes),function(make){return _c('div',{key:make.$path,staticClass:\"_makes--item\"},[_c('span',[_c('b',[_vm._v(\" \"+_vm._s(make.title)+\" \")]),_c('br'),_c('span',[_c('i',[_vm._v(\" \"+_vm._s(_vm.$t(make.type).toLowerCase())+\" \")])])]),_c('DateDisplay',{attrs:{\"title\":_vm.$t('date_created'),\"date\":make.$date_created}}),_c('button',{staticClass:\"u-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.$emit('open', make.$path.split('/').at(-1))}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"open\"))+\" \")])],1)})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MakesList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MakesList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MakesList.vue?vue&type=template&id=6970721e&scoped=true\"\nimport script from \"./MakesList.vue?vue&type=script&lang=js\"\nexport * from \"./MakesList.vue?vue&type=script&lang=js\"\nimport style0 from \"./MakesList.vue?vue&type=style&index=0&id=6970721e&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6970721e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_make\"},[_c('button',{staticClass:\"u-buttonLink u-buttonLink_white\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-short\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"back_to_makes_list\"))+\" \")],1),(_vm.fetch_make_error)?_c('div',[_vm._v(\" \"+_vm._s(_vm.fetch_make_error)+\" \")]):_vm._e(),(_vm.make)?_c('div',[_c('div',{staticClass:\"_topbar\"},[_c('TitleField',{attrs:{\"field_name\":'title',\"tag\":'h2',\"content\":_vm.make.title,\"path\":_vm.make.$path,\"required\":true,\"minlength\":3,\"maxlength\":40,\"can_edit\":_vm.can_edit}}),(_vm.can_edit)?_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove')},on:{\"remove\":_vm.removeMake}}):_vm._e()],1),(['edit_image', 'trim_video', 'trim_audio'].includes(_vm.make.type))?_c('div',[_c('div',{staticClass:\"_mediaPicker\"},[_c('SingleBaseMediaPicker',{attrs:{\"title\":_vm.picker_title,\"field_name\":'base_media_filename',\"open_modal_if_empty\":true,\"content\":_vm.make.base_media_filename,\"path\":_vm.make.$path,\"media_type_to_pick\":_vm.media_type_to_pick}})],1),(_vm.base_media)?_c('div',{key:_vm.base_media.$path},[(_vm.make.type === 'edit_image')?_c('EditImage',{attrs:{\"make\":_vm.make,\"project_path\":_vm.project_path,\"base_media\":_vm.base_media}}):(_vm.make.type === 'trim_video')?_c('TrimAudioVideo',{attrs:{\"make\":_vm.make,\"project_path\":_vm.project_path,\"base_media\":_vm.base_media}}):(_vm.make.type === 'trim_audio')?_c('TrimAudioVideo',{attrs:{\"make\":_vm.make,\"project_path\":_vm.project_path,\"base_media\":_vm.base_media}}):_vm._e()],1):_vm._e()]):(\n ['mix_audio_and_image', 'mix_audio_and_video'].includes(_vm.make.type)\n )?_c('MixAudioAndImageOrVideo',{attrs:{\"make\":_vm.make}}):(_vm.make.type === 'video_assemblage')?_c('ImageAndVideoMontage',{attrs:{\"make\":_vm.make}}):_vm._e()],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MakeOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MakeOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MakeOpen.vue?vue&type=template&id=5dcb0608&scoped=true\"\nimport script from \"./MakeOpen.vue?vue&type=script&lang=js\"\nexport * from \"./MakeOpen.vue?vue&type=script&lang=js\"\nimport style0 from \"./MakeOpen.vue?vue&type=style&index=0&id=5dcb0608&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5dcb0608\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MakePane.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./MakePane.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MakePane.vue?vue&type=template&id=38f93a6b&scoped=true\"\nimport script from \"./MakePane.vue?vue&type=script&lang=js\"\nexport * from \"./MakePane.vue?vue&type=script&lang=js\"\nimport style0 from \"./MakePane.vue?vue&type=style&index=0&id=38f93a6b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"38f93a6b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_publierPane\",class:{\n 'is--editable': _vm.can_edit,\n }},[(!_vm.publication_opened)?_c('PublicationsList',{attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit},on:{\"togglePubli\":function($event){return _vm.$emit('update:publication_opened', $event)}}}):_c('PublicationOpen',{attrs:{\"project_path\":_vm.project.$path,\"publication_slug\":_vm.publication_opened,\"page_opened_id\":_vm.page_opened_id,\"can_edit\":_vm.can_edit},on:{\"togglePage\":function($event){return _vm.$emit('update:page_opened_id', $event)},\"close\":function($event){_vm.$emit('update:publication_opened', false);\n _vm.$emit('update:page_opened_id', false);}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_publicationsList\"},[_c('div',{staticClass:\"_topBtn\"},[_c('div',{staticClass:\"u-sameRow\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('publications'),\"tag\":'h2'}}),(_vm.can_edit)?_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_create_publication = true}}},[_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 168 168\"},attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 168 168\",\"xml:space\":\"preserve\"}},[_c('path',{staticStyle:{\"fill\":\"var(--color-publish)\"},attrs:{\"d\":\"M24.6,24.4c-32.8,32.8-32.8,86.1,0,119c32.8,32.8,85.9,32.8,118.7,0c32.8-32.8,32.8-85.9,0-118.7\\n\\t\\tC110.5-8.2,57.5-8.2,24.6,24.4z\"}}),_c('polygon',{staticStyle:{\"fill\":\"#ffffff\"},attrs:{\"points\":\"132.3,73.4 132.3,94.4 94.6,94.4 94.6,132.1 73.6,132.1 73.6,94.4 35.9,94.4 35.9,73.4 \\n\\t\\t73.6,73.4 73.6,35.7 94.6,35.7 94.6,73.4 \\t\\t\"}})]),_vm._v(\"   \"+_vm._s(_vm.$t(\"create\"))+\" \")]):_vm._e()],1)]),(_vm.show_create_publication)?_c('CreatePublication',{attrs:{\"project_path\":_vm.project.$path,\"template_options\":_vm.template_options},on:{\"close\":function($event){_vm.show_create_publication = false},\"openPubli\":function($event){return _vm.$emit('togglePubli', $event)}}}):_vm._e(),_c('br'),_c('div',{staticClass:\"_publications\"},[(_vm.sorted_publications.length === 0)?_c('div',{key:'nopublis',staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"no_publications\"))+\" \")]):_c('PinnedNonpinnedFolder',{attrs:{\"field_name\":'publications_pinned',\"label\":_vm.$t('publications_pinned'),\"content\":_vm.project.publications_pinned,\"path\":_vm.project.$path,\"folders\":_vm.sorted_publications,\"can_edit\":_vm.can_edit},scopedSlots:_vm._u([{key:\"default\",fn:function(slotProps){return [_c('PublicationPreview',{attrs:{\"publication\":slotProps.item,\"template_options\":_vm.template_options,\"can_edit\":_vm.can_edit},on:{\"open\":function($event){return _vm.openEntry(slotProps.item.$path)}}})]}}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.$t('create_a_publication')},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('form',{staticClass:\"input-validation-required\",on:{\"submit\":function($event){$event.preventDefault();return _vm.createPublication.apply(null, arguments)}}},[_c('DLabel',{attrs:{\"str\":_vm.$t('title')}}),_c('TextInput',{ref:\"titleInput\",attrs:{\"content\":_vm.new_publication_title,\"maxlength\":40,\"required\":true,\"autofocus\":true},on:{\"update:content\":function($event){_vm.new_publication_title=$event},\"toggleValidity\":($event) => (_vm.allow_save = $event)}}),_c('br'),_c('div',{},[_c('ToggleInput',{attrs:{\"content\":_vm.new_publication_is_private,\"label\":_vm.$t('private'),\"options\":{\n true: _vm.$t('private_status_explanations'),\n false: _vm.$t('public_status_explanations'),\n }},on:{\"update:content\":function($event){_vm.new_publication_is_private=$event}}})],1),_c('br'),_c('div',{staticClass:\"_templates\"},_vm._l((_vm.template_options),function(template){return _c('div',{key:template.key,staticClass:\"_templates--item\",class:{\n 'is--active': _vm.new_publication_template === template.key,\n }},[_c('strong',[_vm._v(_vm._s(template.label))]),_c('div',{domProps:{\"innerHTML\":_vm._s(template.icon)}}),_c('button',{staticClass:\"u-button u-button_bleuvert_fonce\",attrs:{\"type\":\"submit\",\"name\":\"action\",\"disabled\":template.disabled === true},on:{\"click\":function($event){_vm.new_publication_template = template.key}}},[_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 168 168\"},attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 168 168\",\"xml:space\":\"preserve\"}},[_c('polygon',{staticStyle:{\"fill\":\"white\"},attrs:{\"points\":\"132.3,73.4 132.3,94.4 94.6,94.4 94.6,132.1 73.6,132.1 73.6,94.4 35.9,94.4 35.9,73.4 \\n\\t\\t73.6,73.4 73.6,35.7 94.6,35.7 94.6,73.4 \\t\\t\"}})]),_c('span',[_vm._v(\" \"+_vm._s(_vm.$t(\"create\"))+\" \")])])])}),0),(_vm.error_msg)?[_c('br'),_c('br'),_c('div',{staticClass:\"u-errorMsg\",domProps:{\"textContent\":_vm._s(_vm.error_msg)}})]:_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreatePublication.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CreatePublication.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CreatePublication.vue?vue&type=template&id=aa1ebffc&scoped=true\"\nimport script from \"./CreatePublication.vue?vue&type=script&lang=js\"\nexport * from \"./CreatePublication.vue?vue&type=script&lang=js\"\nimport style0 from \"./CreatePublication.vue?vue&type=style&index=0&id=aa1ebffc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aa1ebffc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_publicationPreview\"},[_c('div',{staticClass:\"_publicationPreview--cover\"},[(_vm.cover_thumb)?_c('div',[_c('img',{attrs:{\"src\":_vm.cover_thumb}}),(_vm.template_icon)?_c('span',{staticClass:\"_iconPreview\",domProps:{\"innerHTML\":_vm._s(_vm.template_icon)}}):_vm._e()]):_c('div',{staticClass:\"_noPreview\"},[(_vm.template_icon)?_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.template_icon)}}):_vm._e()]),_c('transition',{attrs:{\"name\":\"toggleLock\",\"mode\":\"out-in\"}},[(\n _vm.publication.$status === 'finished' ||\n _vm.publication.$status === 'private'\n )?_c('StatusTag',{key:_vm.publication.$status,staticClass:\"_icon\",attrs:{\"show_label\":false,\"status\":_vm.publication.$status,\"can_edit\":false,\"mode\":'inactive'}}):_vm._e()],1),_c('transition',{attrs:{\"name\":\"fade_fast\"}},[(_vm.is_making_preview)?_c('div',{staticClass:\"_previewProgress\"},[_c('AnimatedCounter',{attrs:{\"value\":_vm.preview_progress}})],1):_vm._e()]),(_vm.can_edit && !_vm.is_making_preview)?_c('button',{staticClass:\"u-button u-button_small u-button_icon u-button_black _generatePreviewBtn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.generatePreview.apply(null, arguments)}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-clockwise\"}})],1):_vm._e()],1),_c('header',{staticClass:\"_header\",on:{\"click\":function($event){return _vm.$emit('open')}}},[(_vm.publication.template)?_c('small',{domProps:{\"innerHTML\":_vm._s(_vm.$t(_vm.publication.template))}}):_vm._e(),_c('h3',[_vm._v(\" \"+_vm._s(_vm.publication.title)+\" \")])]),_c('button',{staticClass:\"_openPublication\",attrs:{\"type\":\"button\",\"title\":_vm.$t('open') + ' ' + _vm.publication.title},on:{\"click\":function($event){return _vm.$emit('open')}}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationPreview.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationPreview.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PublicationPreview.vue?vue&type=template&id=93e33046&scoped=true\"\nimport script from \"./PublicationPreview.vue?vue&type=script&lang=js\"\nexport * from \"./PublicationPreview.vue?vue&type=script&lang=js\"\nimport style0 from \"./PublicationPreview.vue?vue&type=style&index=0&id=93e33046&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"93e33046\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationsList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationsList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PublicationsList.vue?vue&type=template&id=487252e4&scoped=true\"\nimport script from \"./PublicationsList.vue?vue&type=script&lang=js\"\nexport * from \"./PublicationsList.vue?vue&type=script&lang=js\"\nimport style0 from \"./PublicationsList.vue?vue&type=style&index=0&id=487252e4&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"487252e4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_publicationOpen\"},[(!_vm.publication)?_c('LoaderSpinner'):(_vm.fetch_publication_error)?_c('div',[_vm._v(\" \"+_vm._s(_vm.fetch_publication_error)+\" \")]):(_vm.publication)?[_c('PublicationTopbar',{staticClass:\"_publicationOpen--topbar\",attrs:{\"publication\":_vm.publication,\"page_opened_id\":_vm.page_opened_id,\"can_edit\":_vm.can_edit},on:{\"close\":function($event){return _vm.$emit('close')}}}),(_vm.publication.template === 'story')?_c('StoryTemplate',{staticClass:\"_publicationOpen--content\",attrs:{\"publication\":_vm.publication,\"can_edit\":_vm.can_edit}}):(_vm.publication.template === 'story_with_sections')?_c('StorySectionTemplate',{staticClass:\"_publicationOpen--content\",attrs:{\"publication\":_vm.publication,\"opened_section_meta_filename\":_vm.page_opened_id,\"can_edit\":_vm.can_edit},on:{\"toggleSection\":function($event){return _vm.$emit('togglePage', $event)}}}):(_vm.publication.template === 'page_by_page')?_c('PageTemplate',{staticClass:\"_publicationOpen--content\",attrs:{\"publication\":_vm.publication,\"can_edit\":_vm.can_edit,\"page_opened_id\":_vm.page_opened_id},on:{\"togglePage\":function($event){return _vm.$emit('togglePage', $event)}}}):(_vm.publication.template === 'cartography')?_c('MapTemplate',{staticClass:\"_publicationOpen--content\",attrs:{\"publication\":_vm.publication,\"opened_view_meta_filename\":_vm.page_opened_id,\"can_edit\":_vm.can_edit},on:{\"toggleView\":function($event){return _vm.$emit('togglePage', $event)}}}):_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationOpen.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationOpen.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PublicationOpen.vue?vue&type=template&id=191ede3d&scoped=true\"\nimport script from \"./PublicationOpen.vue?vue&type=script&lang=js\"\nexport * from \"./PublicationOpen.vue?vue&type=script&lang=js\"\nimport style0 from \"./PublicationOpen.vue?vue&type=style&index=0&id=191ede3d&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"191ede3d\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublierPane.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublierPane.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PublierPane.vue?vue&type=template&id=b76c5f84&scoped=true\"\nimport script from \"./PublierPane.vue?vue&type=script&lang=js\"\nexport * from \"./PublierPane.vue?vue&type=script&lang=js\"\nimport style0 from \"./PublierPane.vue?vue&type=style&index=0&id=b76c5f84&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b76c5f84\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"fade\"}},[(_vm.show_instructions)?_c('div',{key:`${_vm.type}`,staticClass:\"_floatingMsg\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.closeInstructions.apply(null, arguments)}}},[_c('div',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t(`instructions.pane.${_vm.type}`))}}),_c('b-icon',{attrs:{\"icon\":\"x-circle-fill\",\"label\":\"Fermer\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.closeInstructions.apply(null, arguments)}}})],1)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InstructionsWindow.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./InstructionsWindow.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./InstructionsWindow.vue?vue&type=template&id=86f27f16&scoped=true\"\nimport script from \"./InstructionsWindow.vue?vue&type=script&lang=js\"\nexport * from \"./InstructionsWindow.vue?vue&type=script&lang=js\"\nimport style0 from \"./InstructionsWindow.vue?vue&type=style&index=0&id=86f27f16&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"86f27f16\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectPanes.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectPanes.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectPanes.vue?vue&type=template&id=7c6f4148&scoped=true\"\nimport script from \"./ProjectPanes.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectPanes.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectPanes.vue?vue&type=style&index=0&id=7c6f4148&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7c6f4148\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectView.vue?vue&type=template&id=2e948e37&scoped=true\"\nimport script from \"./ProjectView.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectView.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectView.vue?vue&type=style&index=0&id=2e948e37&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2e948e37\",\n null\n \n)\n\nexport default component.exports","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar splitpanes_vue_vue_type_style_index_0_lang = \"\";\nfunction normalizeComponent(scriptExports, render2, staticRenderFns2, functionalTemplate, injectStyles, scopeId, moduleIdentifier, shadowMode) {\n var options = typeof scriptExports === \"function\" ? scriptExports.options : scriptExports;\n if (render2) {\n options.render = render2;\n options.staticRenderFns = staticRenderFns2;\n options._compiled = true;\n }\n if (functionalTemplate) {\n options.functional = true;\n }\n if (scopeId) {\n options._scopeId = \"data-v-\" + scopeId;\n }\n var hook;\n if (moduleIdentifier) {\n hook = function(context) {\n context = context || this.$vnode && this.$vnode.ssrContext || this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext;\n if (!context && typeof __VUE_SSR_CONTEXT__ !== \"undefined\") {\n context = __VUE_SSR_CONTEXT__;\n }\n if (injectStyles) {\n injectStyles.call(this, context);\n }\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier);\n }\n };\n options._ssrRegister = hook;\n } else if (injectStyles) {\n hook = shadowMode ? function() {\n injectStyles.call(this, (options.functional ? this.parent : this).$root.$options.shadowRoot);\n } : injectStyles;\n }\n if (hook) {\n if (options.functional) {\n options._injectStyles = hook;\n var originalRender = options.render;\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context);\n return originalRender(h, context);\n };\n } else {\n var existing = options.beforeCreate;\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook];\n }\n }\n return {\n exports: scriptExports,\n options\n };\n}\nconst __vue2_script$1 = {\n name: \"splitpanes\",\n props: {\n horizontal: { type: Boolean },\n pushOtherPanes: { type: Boolean, default: true },\n dblClickSplitter: { type: Boolean, default: true },\n rtl: { type: Boolean, default: false },\n firstSplitter: { type: Boolean }\n },\n provide() {\n return {\n requestUpdate: this.requestUpdate,\n onPaneAdd: this.onPaneAdd,\n onPaneRemove: this.onPaneRemove,\n onPaneClick: this.onPaneClick\n };\n },\n data: () => ({\n container: null,\n ready: false,\n panes: [],\n touch: {\n mouseDown: false,\n dragging: false,\n activeSplitter: null\n },\n splitterTaps: {\n splitter: null,\n timeoutId: null\n }\n }),\n computed: {\n panesCount() {\n return this.panes.length;\n },\n indexedPanes() {\n return this.panes.reduce((obj, pane2) => (obj[pane2.id] = pane2) && obj, {});\n }\n },\n methods: {\n updatePaneComponents() {\n this.panes.forEach((pane2) => {\n pane2.update && pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n },\n bindEvents() {\n document.addEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.addEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.addEventListener(\"touchend\", this.onMouseUp);\n }\n },\n unbindEvents() {\n document.removeEventListener(\"mousemove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"mouseup\", this.onMouseUp);\n if (\"ontouchstart\" in window) {\n document.removeEventListener(\"touchmove\", this.onMouseMove, { passive: false });\n document.removeEventListener(\"touchend\", this.onMouseUp);\n }\n },\n onMouseDown(event, splitterIndex) {\n this.bindEvents();\n this.touch.mouseDown = true;\n this.touch.activeSplitter = splitterIndex;\n },\n onMouseMove(event) {\n if (this.touch.mouseDown) {\n event.preventDefault();\n this.touch.dragging = true;\n this.calculatePanesSize(this.getCurrentMouseDrag(event));\n this.$emit(\"resize\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n },\n onMouseUp() {\n if (this.touch.dragging) {\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n }\n this.touch.mouseDown = false;\n setTimeout(() => {\n this.touch.dragging = false;\n this.unbindEvents();\n }, 100);\n },\n onSplitterClick(event, splitterIndex) {\n if (\"ontouchstart\" in window) {\n event.preventDefault();\n if (this.dblClickSplitter) {\n if (this.splitterTaps.splitter === splitterIndex) {\n clearTimeout(this.splitterTaps.timeoutId);\n this.splitterTaps.timeoutId = null;\n this.onSplitterDblClick(event, splitterIndex);\n this.splitterTaps.splitter = null;\n } else {\n this.splitterTaps.splitter = splitterIndex;\n this.splitterTaps.timeoutId = setTimeout(() => {\n this.splitterTaps.splitter = null;\n }, 500);\n }\n }\n }\n if (!this.touch.dragging)\n this.$emit(\"splitter-click\", this.panes[splitterIndex]);\n },\n onSplitterDblClick(event, splitterIndex) {\n let totalMinSizes = 0;\n this.panes = this.panes.map((pane2, i) => {\n pane2.size = i === splitterIndex ? pane2.max : pane2.min;\n if (i !== splitterIndex)\n totalMinSizes += pane2.min;\n return pane2;\n });\n this.panes[splitterIndex].size -= totalMinSizes;\n this.$emit(\"pane-maximize\", this.panes[splitterIndex]);\n },\n onPaneClick(event, paneId) {\n this.$emit(\"pane-click\", this.indexedPanes[paneId]);\n },\n getCurrentMouseDrag(event) {\n const rect = this.container.getBoundingClientRect();\n const { clientX, clientY } = \"ontouchstart\" in window && event.touches ? event.touches[0] : event;\n return {\n x: clientX - rect.left,\n y: clientY - rect.top\n };\n },\n getCurrentDragPercentage(drag) {\n drag = drag[this.horizontal ? \"y\" : \"x\"];\n const containerSize = this.container[this.horizontal ? \"clientHeight\" : \"clientWidth\"];\n if (this.rtl && !this.horizontal)\n drag = containerSize - drag;\n return drag * 100 / containerSize;\n },\n calculatePanesSize(drag) {\n const splitterIndex = this.touch.activeSplitter;\n let sums = {\n prevPanesSize: this.sumPrevPanesSize(splitterIndex),\n nextPanesSize: this.sumNextPanesSize(splitterIndex),\n prevReachedMinPanes: 0,\n nextReachedMinPanes: 0\n };\n const minDrag = 0 + (this.pushOtherPanes ? 0 : sums.prevPanesSize);\n const maxDrag = 100 - (this.pushOtherPanes ? 0 : sums.nextPanesSize);\n const dragPercentage = Math.max(Math.min(this.getCurrentDragPercentage(drag), maxDrag), minDrag);\n let panesToResize = [splitterIndex, splitterIndex + 1];\n let paneBefore = this.panes[panesToResize[0]] || null;\n let paneAfter = this.panes[panesToResize[1]] || null;\n const paneBeforeMaxReached = paneBefore.max < 100 && dragPercentage >= paneBefore.max + sums.prevPanesSize;\n const paneAfterMaxReached = paneAfter.max < 100 && dragPercentage <= 100 - (paneAfter.max + this.sumNextPanesSize(splitterIndex + 1));\n if (paneBeforeMaxReached || paneAfterMaxReached) {\n if (paneBeforeMaxReached) {\n paneBefore.size = paneBefore.max;\n paneAfter.size = Math.max(100 - paneBefore.max - sums.prevPanesSize - sums.nextPanesSize, 0);\n } else {\n paneBefore.size = Math.max(100 - paneAfter.max - sums.prevPanesSize - this.sumNextPanesSize(splitterIndex + 1), 0);\n paneAfter.size = paneAfter.max;\n }\n return;\n }\n if (this.pushOtherPanes) {\n const vars = this.doPushOtherPanes(sums, dragPercentage);\n if (!vars)\n return;\n ({ sums, panesToResize } = vars);\n paneBefore = this.panes[panesToResize[0]] || null;\n paneAfter = this.panes[panesToResize[1]] || null;\n }\n if (paneBefore !== null) {\n paneBefore.size = Math.min(Math.max(dragPercentage - sums.prevPanesSize - sums.prevReachedMinPanes, paneBefore.min), paneBefore.max);\n }\n if (paneAfter !== null) {\n paneAfter.size = Math.min(Math.max(100 - dragPercentage - sums.nextPanesSize - sums.nextReachedMinPanes, paneAfter.min), paneAfter.max);\n }\n },\n doPushOtherPanes(sums, dragPercentage) {\n const splitterIndex = this.touch.activeSplitter;\n const panesToResize = [splitterIndex, splitterIndex + 1];\n if (dragPercentage < sums.prevPanesSize + this.panes[panesToResize[0]].min) {\n panesToResize[0] = this.findPrevExpandedPane(splitterIndex).index;\n sums.prevReachedMinPanes = 0;\n if (panesToResize[0] < splitterIndex) {\n this.panes.forEach((pane2, i) => {\n if (i > panesToResize[0] && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n }\n sums.prevPanesSize = this.sumPrevPanesSize(panesToResize[0]);\n if (panesToResize[0] === void 0) {\n sums.prevReachedMinPanes = 0;\n this.panes[0].size = this.panes[0].min;\n this.panes.forEach((pane2, i) => {\n if (i > 0 && i <= splitterIndex) {\n pane2.size = pane2.min;\n sums.prevReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[1]].size = 100 - sums.prevReachedMinPanes - this.panes[0].min - sums.prevPanesSize - sums.nextPanesSize;\n return null;\n }\n }\n if (dragPercentage > 100 - sums.nextPanesSize - this.panes[panesToResize[1]].min) {\n panesToResize[1] = this.findNextExpandedPane(splitterIndex).index;\n sums.nextReachedMinPanes = 0;\n if (panesToResize[1] > splitterIndex + 1) {\n this.panes.forEach((pane2, i) => {\n if (i > splitterIndex && i < panesToResize[1]) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n }\n sums.nextPanesSize = this.sumNextPanesSize(panesToResize[1] - 1);\n if (panesToResize[1] === void 0) {\n sums.nextReachedMinPanes = 0;\n this.panes[this.panesCount - 1].size = this.panes[this.panesCount - 1].min;\n this.panes.forEach((pane2, i) => {\n if (i < this.panesCount - 1 && i >= splitterIndex + 1) {\n pane2.size = pane2.min;\n sums.nextReachedMinPanes += pane2.min;\n }\n });\n this.panes[panesToResize[0]].size = 100 - sums.prevPanesSize - sums.nextReachedMinPanes - this.panes[this.panesCount - 1].min - sums.nextPanesSize;\n return null;\n }\n }\n return { sums, panesToResize };\n },\n sumPrevPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i < splitterIndex ? pane2.size : 0), 0);\n },\n sumNextPanesSize(splitterIndex) {\n return this.panes.reduce((total, pane2, i) => total + (i > splitterIndex + 1 ? pane2.size : 0), 0);\n },\n findPrevExpandedPane(splitterIndex) {\n const pane2 = [...this.panes].reverse().find((p) => p.index < splitterIndex && p.size > p.min);\n return pane2 || {};\n },\n findNextExpandedPane(splitterIndex) {\n const pane2 = this.panes.find((p) => p.index > splitterIndex + 1 && p.size > p.min);\n return pane2 || {};\n },\n checkSplitpanesNodes() {\n const children = Array.from(this.container.children);\n children.forEach((child) => {\n const isPane = child.classList.contains(\"splitpanes__pane\");\n const isSplitter = child.classList.contains(\"splitpanes__splitter\");\n if (!isPane && !isSplitter) {\n child.parentNode.removeChild(child);\n console.warn(\"Splitpanes: Only elements are allowed at the root of . One of your DOM nodes was removed.\");\n return;\n }\n });\n },\n addSplitter(paneIndex, nextPaneNode, isVeryFirst = false) {\n const splitterIndex = paneIndex - 1;\n const elm = document.createElement(\"div\");\n elm.classList.add(\"splitpanes__splitter\");\n if (!isVeryFirst) {\n elm.onmousedown = (event) => this.onMouseDown(event, splitterIndex);\n if (typeof window !== \"undefined\" && \"ontouchstart\" in window) {\n elm.ontouchstart = (event) => this.onMouseDown(event, splitterIndex);\n }\n elm.onclick = (event) => this.onSplitterClick(event, splitterIndex + 1);\n }\n if (this.dblClickSplitter) {\n elm.ondblclick = (event) => this.onSplitterDblClick(event, splitterIndex + 1);\n }\n nextPaneNode.parentNode.insertBefore(elm, nextPaneNode);\n },\n removeSplitter(node) {\n node.onmousedown = void 0;\n node.onclick = void 0;\n node.ondblclick = void 0;\n node.parentNode.removeChild(node);\n },\n redoSplitters() {\n const children = Array.from(this.container.children);\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__splitter\"))\n this.removeSplitter(el);\n });\n let paneIndex = 0;\n children.forEach((el) => {\n if (el.className.includes(\"splitpanes__pane\")) {\n if (!paneIndex && this.firstSplitter)\n this.addSplitter(paneIndex, el, true);\n else if (paneIndex)\n this.addSplitter(paneIndex, el);\n paneIndex++;\n }\n });\n },\n requestUpdate(_a) {\n var _b = _a, { target } = _b, args = __objRest(_b, [\"target\"]);\n const pane2 = this.indexedPanes[target._uid];\n Object.entries(args).forEach(([key, value]) => pane2[key] = value);\n },\n onPaneAdd(pane2) {\n let index = -1;\n Array.from(pane2.$el.parentNode.children).some((el) => {\n if (el.className.includes(\"splitpanes__pane\"))\n index++;\n return el === pane2.$el;\n });\n const min = parseFloat(pane2.minSize);\n const max = parseFloat(pane2.maxSize);\n this.panes.splice(index, 0, {\n id: pane2._uid,\n index,\n min: isNaN(min) ? 0 : min,\n max: isNaN(max) ? 100 : max,\n size: pane2.size === null ? null : parseFloat(pane2.size),\n givenSize: pane2.size,\n update: pane2.update\n });\n this.panes.forEach((p, i) => p.index = i);\n if (this.ready) {\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ addedPane: this.panes[index] });\n this.$emit(\"pane-add\", { index, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n }\n },\n onPaneRemove(pane2) {\n const index = this.panes.findIndex((p) => p.id === pane2._uid);\n const removed = this.panes.splice(index, 1)[0];\n this.panes.forEach((p, i) => p.index = i);\n this.$nextTick(() => {\n this.redoSplitters();\n this.resetPaneSizes({ removedPane: __spreadProps(__spreadValues({}, removed), { index }) });\n this.$emit(\"pane-remove\", { removed, panes: this.panes.map((pane3) => ({ min: pane3.min, max: pane3.max, size: pane3.size })) });\n });\n },\n resetPaneSizes(changedPanes = {}) {\n if (!changedPanes.addedPane && !changedPanes.removedPane)\n this.initialPanesSizing();\n else if (this.panes.some((pane2) => pane2.givenSize !== null || pane2.min || pane2.max < 100))\n this.equalizeAfterAddOrRemove(changedPanes);\n else\n this.equalize();\n if (this.ready)\n this.$emit(\"resized\", this.panes.map((pane2) => ({ min: pane2.min, max: pane2.max, size: pane2.size })));\n },\n equalize() {\n const equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n this.panes.forEach((pane2) => {\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n initialPanesSizing() {\n 100 / this.panesCount;\n let leftToAllocate = 100;\n let ungrowable = [];\n let unshrinkable = [];\n let definedSizes = 0;\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size !== null)\n definedSizes++;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n let leftToAllocate2 = 100;\n if (leftToAllocate > 0.1) {\n this.panes.forEach((pane2) => {\n if (pane2.size === null) {\n pane2.size = Math.max(Math.min(leftToAllocate / (this.panesCount - definedSizes), pane2.max), pane2.min);\n }\n leftToAllocate2 -= pane2.size;\n });\n if (leftToAllocate2 > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n }\n },\n equalizeAfterAddOrRemove({ addedPane, removedPane } = {}) {\n let equalSpace = 100 / this.panesCount;\n let leftToAllocate = 0;\n let ungrowable = [];\n let unshrinkable = [];\n if (addedPane && addedPane.givenSize !== null) {\n equalSpace = (100 - addedPane.givenSize) / (this.panesCount - 1);\n }\n this.panes.forEach((pane2) => {\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (Math.abs(leftToAllocate) < 0.1)\n return;\n this.panes.forEach((pane2) => {\n if (addedPane && addedPane.givenSize !== null && addedPane.id === pane2.id)\n ;\n else\n pane2.size = Math.max(Math.min(equalSpace, pane2.max), pane2.min);\n leftToAllocate -= pane2.size;\n if (pane2.size >= pane2.max)\n ungrowable.push(pane2.id);\n if (pane2.size <= pane2.min)\n unshrinkable.push(pane2.id);\n });\n if (leftToAllocate > 0.1)\n this.readjustSizes(leftToAllocate, ungrowable, unshrinkable);\n },\n readjustSizes(leftToAllocate, ungrowable, unshrinkable) {\n let equalSpaceToAllocate;\n if (leftToAllocate > 0)\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - ungrowable.length);\n else\n equalSpaceToAllocate = leftToAllocate / (this.panesCount - unshrinkable.length);\n this.panes.forEach((pane2, i) => {\n if (leftToAllocate > 0 && !ungrowable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n } else if (!unshrinkable.includes(pane2.id)) {\n const newPaneSize = Math.max(Math.min(pane2.size + equalSpaceToAllocate, pane2.max), pane2.min);\n const allocated = newPaneSize - pane2.size;\n leftToAllocate -= allocated;\n pane2.size = newPaneSize;\n }\n pane2.update({\n [this.horizontal ? \"height\" : \"width\"]: `${this.indexedPanes[pane2.id].size}%`\n });\n });\n if (Math.abs(leftToAllocate) > 0.1) {\n this.$nextTick(() => {\n if (this.ready) {\n console.warn(\"Splitpanes: Could not resize panes correctly due to their constraints.\");\n }\n });\n }\n }\n },\n watch: {\n panes: {\n deep: true,\n immediate: false,\n handler() {\n this.updatePaneComponents();\n }\n },\n horizontal() {\n this.updatePaneComponents();\n },\n firstSplitter() {\n this.redoSplitters();\n },\n dblClickSplitter(enable) {\n const splitters = [...this.container.querySelectorAll(\".splitpanes__splitter\")];\n splitters.forEach((splitter, i) => {\n splitter.ondblclick = enable ? (event) => this.onSplitterDblClick(event, i) : void 0;\n });\n }\n },\n beforeDestroy() {\n this.ready = false;\n },\n mounted() {\n this.container = this.$refs.container;\n this.checkSplitpanesNodes();\n this.redoSplitters();\n this.resetPaneSizes();\n this.$emit(\"ready\");\n this.ready = true;\n },\n render(h) {\n return h(\"div\", {\n ref: \"container\",\n class: [\n \"splitpanes\",\n `splitpanes--${this.horizontal ? \"horizontal\" : \"vertical\"}`,\n {\n \"splitpanes--dragging\": this.touch.dragging\n }\n ]\n }, this.$slots.default);\n }\n};\nlet __vue2_render, __vue2_staticRenderFns;\nconst __cssModules$1 = {};\nvar __component__$1 = /* @__PURE__ */ normalizeComponent(__vue2_script$1, __vue2_render, __vue2_staticRenderFns, false, __vue2_injectStyles$1, null, null, null);\nfunction __vue2_injectStyles$1(context) {\n for (let o in __cssModules$1) {\n this[o] = __cssModules$1[o];\n }\n}\nvar splitpanes = /* @__PURE__ */ function() {\n return __component__$1.exports;\n}();\nvar render = function() {\n var _vm = this;\n var _h = _vm.$createElement;\n var _c = _vm._self._c || _h;\n return _c(\"div\", { staticClass: \"splitpanes__pane\", style: _vm.style, on: { \"click\": function($event) {\n return _vm.onPaneClick($event, _vm._uid);\n } } }, [_vm._t(\"default\")], 2);\n};\nvar staticRenderFns = [];\nconst __vue2_script = {\n name: \"pane\",\n inject: [\"requestUpdate\", \"onPaneAdd\", \"onPaneRemove\", \"onPaneClick\"],\n props: {\n size: { type: [Number, String], default: null },\n minSize: { type: [Number, String], default: 0 },\n maxSize: { type: [Number, String], default: 100 }\n },\n data: () => ({\n style: {}\n }),\n mounted() {\n this.onPaneAdd(this);\n },\n beforeDestroy() {\n this.onPaneRemove(this);\n },\n methods: {\n update(style) {\n this.style = style;\n }\n },\n computed: {\n sizeNumber() {\n return this.size || this.size === 0 ? parseFloat(this.size) : null;\n },\n minSizeNumber() {\n return parseFloat(this.minSize);\n },\n maxSizeNumber() {\n return parseFloat(this.maxSize);\n }\n },\n watch: {\n sizeNumber(size) {\n this.requestUpdate({ target: this, size });\n },\n minSizeNumber(min) {\n this.requestUpdate({ target: this, min });\n },\n maxSizeNumber(max) {\n this.requestUpdate({ target: this, max });\n }\n }\n};\nconst __cssModules = {};\nvar __component__ = /* @__PURE__ */ normalizeComponent(__vue2_script, render, staticRenderFns, false, __vue2_injectStyles, null, null, null);\nfunction __vue2_injectStyles(context) {\n for (let o in __cssModules) {\n this[o] = __cssModules[o];\n }\n}\nvar pane = /* @__PURE__ */ function() {\n return __component__.exports;\n}();\nexport { pane as Pane, splitpanes as Splitpanes };\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n var endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( function( cell ) {\n cell.remove();\n var index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n }, this );\n\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n for ( var i = 0; i < cells.length; i++ ) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift( cellShift );\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n this.element.style.position = 'absolute';\n this.element.setAttribute( 'aria-hidden', 'true' );\n this.x = 0;\n this.shift = 0;\n this.element.style[ this.parent.originSide ] = 0;\n};\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[ side ] = '';\n this.element.style.transform = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n // render position of cell with in slider\n var sideOffset = this.parent.originSide === 'left' ? 1 : -1;\n\n var adjustedX = this.parent.options.percentPosition ?\n x * sideOffset * ( this.parent.size.innerWidth / this.size.width ) :\n x * sideOffset;\n\n this.element.style.transform = 'translateX(' +\n this.parent.getPositionValue( adjustedX ) + ')';\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unidragger, utils ) {\n return factory( window, Flickity, Unidragger, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nproto._createDrag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n // TODO updateDraggable on resize? if groupCells & slides change\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable == '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.options.wrapAround && this.slides.length ) {\n // slow drag\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if ( this.options.freeScroll && !this.options.wrapAround ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\n };\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n var delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell( event.target );\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( var eventName in this.options.on ) {\n var listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n Flickity.createMethods.forEach( function( method ) {\n this[ method ]();\n }, this );\n\n if ( this.options.watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[ this.originSide ] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for ( var i = index; i < len; i++ ) {\n var cell = this.cells[i];\n cell.setPosition( cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) {\n return;\n }\n\n var slide = new Slide( this );\n this.slides.push( slide );\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach( function( cell, i ) {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n if ( canCellFit.call( this, i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\n if ( !groupCells ) {\n return function() {\n return false;\n };\n } else if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt( groupCells, 10 );\n return function( i ) {\n return ( i % number ) !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\n this.slides.forEach( function( slide ) {\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n }\n }, this );\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\n var delta = Math.abs( wrapIndex - this.selectedIndex );\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slides that has cell\n for ( var i = 0; i < this.slides.length; i++ ) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf( cell );\n if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( var i = 0; i < this.cells.length; i++ ) {\n var cell = this.cells[i];\n if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n var slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n // #1177 disable resize behavior when animating or dragging for iOS 15\n if ( !this.isActive || this.isAnimating || this.isDragging ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[ leftMethod ]();\n },\n // right arrow\n 39: function() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v2.3.0\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.nodeName == 'IMG' ) {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for ( var i = length; i < max; i++ ) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n fragment.appendChild( dot );\n newDots.push( dot );\n }\n\n this.holder.appendChild( fragment );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\n }\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\n if ( target.nodeName != 'LI' ) {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf( target );\n this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], function( EvEmitter, utils, Flickity ) {\n return factory( EvEmitter, utils, Flickity );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state != 'playing' ) {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n var svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n var path = document.createElementNS( svgURI, 'path' );\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n if ( !this.options.prevNextButtons ) {\n return;\n }\n\n this.prevButton = new PrevNextButton( -1, this );\n this.nextButton = new PrevNextButton( 1, this );\n\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._nonpinned[data-v-06cbf20b],._pinned[data-v-06cbf20b]{padding:0;margin:calc(var(--spacing)/1) 0}._item[data-v-06cbf20b]{position:relative;z-index:1}._pinSpace[data-v-06cbf20b]{position:absolute;top:0;left:0;margin:calc(var(--spacing)/2);z-index:100;color:var(--c-orange);display:flex;flex-flow:row nowrap;gap:calc(var(--spacing)/8)}._pinSpace>button[data-v-06cbf20b]{display:block;pointer-events:auto}._pinSpace_indicator[data-v-06cbf20b]{pointer-events:none}._list[data-v-06cbf20b]{display:grid;grid-auto-rows:max-content;grid-gap:calc(var(--spacing)/1);align-items:stretch;grid-template-columns:repeat(auto-fill,minmax(var(--item-width,320px),1fr))}._list_pinned[data-v-06cbf20b]{background-image:radial-gradient(rgba(51,51,51,.2) 2px,transparent 0);background-size:calc(var(--spacing)/1) calc(var(--spacing)/1);padding:calc(var(--spacing)/1)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._projetPanes[data-v-7c6f4148]{position:relative}._projetPanes[data-v-7c6f4148]:not(.is--editable) ._pane>*{min-height:100vh}._projetPanes.is--editable[data-v-7c6f4148] ._pane>*{min-height:calc(100vh - 44px)}._projetPanes.has--multiplePanes[data-v-7c6f4148] ._pane{height:calc(100vh - 44px);overflow:auto}._msg[data-v-7c6f4148]{text-align:center;max-width:70ch;margin:0 auto;padding:calc(var(--spacing)*2)}._msg[data-v-7c6f4148] ._labelLine{justify-content:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._projectInfos[data-v-8e32e7a0]{position:relative;width:100%;background:#fff;transition:all .4s cubic-bezier(.19,1,.22,1)}._projectInfos.is--list[data-v-8e32e7a0]{background-color:#fff;border-radius:4px;transition:all .25s cubic-bezier(.19,1,.22,1)}._projectInfos.is--list.is--own[data-v-8e32e7a0]{border-bottom-color:var(--c-bleumarine)}._projectInfos.is--list ._projectInfos--topContent[data-v-8e32e7a0]{padding:0;margin:0;gap:0;max-width:none}._projectInfos.is--list ._title h3[data-v-8e32e7a0]{font-size:var(--sl-font-size-medium)}._projectInfos.is--list ._description[data-v-8e32e7a0]{font-size:var(--sl-font-size-small)}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content{display:block;width:100%}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content p:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content p:not(:first-child){display:none}._projectInfos.is--list[data-v-8e32e7a0]{display:block}._projectInfos.is--list ._projectInfos--infos[data-v-8e32e7a0]{padding:calc(var(--spacing)/2);width:100%;place-content:flex-start}._projectInfos[data-context=tiny] ._projectInfos--infos[data-v-8e32e7a0]{padding:calc(var(--spacing)/4) calc(var(--spacing)/2)}._projectInfos>*[data-v-8e32e7a0]{flex:10 1 320px;transition:all .4s cubic-bezier(.19,1,.22,1)}._projectInfos>._projectInfos--meta[data-v-8e32e7a0]{flex:1 0 260px}._projectInfos>._projectInfos--meta.is--hidden[data-v-8e32e7a0]{flex:0 0 0;opacity:0}._projectInfos--topContent[data-v-8e32e7a0]{max-width:min(var(--max-column-width),1180px);margin:calc(var(--spacing)/2) auto 0;overflow:hidden;display:flex;flex-flow:row wrap;justify-content:center;align-items:center;gap:calc(var(--spacing)*1)}._projectInfos--topContent>*[data-v-8e32e7a0]{flex:1 1 320px}._projectInfos--infos[data-v-8e32e7a0]{--short-project-height:8rem;position:relative;display:flex;flex-flow:column nowrap;place-content:center;gap:calc(var(--spacing)/2);transition:all .4s}.is--list ._projectInfos--infos[data-v-8e32e7a0]{gap:calc(var(--spacing)/4);order:0;padding-top:calc(var(--spacing)/2)}.is--list ._projectInfos--infos ._showDescription[data-v-8e32e7a0]{pointer-events:auto}._projectInfos--infos.is--short[data-v-8e32e7a0]{max-height:var(--short-project-height)}._projectInfos--infos>*[data-v-8e32e7a0]{max-width:56ch}._projectInfos--infos--settings[data-v-8e32e7a0]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:flex-end}._imageSelect[data-v-8e32e7a0]{background:#fff;position:relative}._projectInfos--cover[data-v-8e32e7a0]{position:relative;width:100%}.is--list ._projectInfos--cover[data-v-8e32e7a0]{width:100%;height:auto}.is--mobileView ._projectInfos--cover[data-v-8e32e7a0]{flex:1 1 auto;max-width:none;max-height:none;height:auto}._projectInfos--cover ._cover[data-v-8e32e7a0]{position:relative;aspect-ratio:3/2;border-radius:4px;overflow:hidden;margin-right:0;margin-left:auto}.is--list ._projectInfos--cover ._cover[data-v-8e32e7a0]{border-bottom-left-radius:0;border-bottom-right-radius:0}._projectInfos--cover ._icon[data-v-8e32e7a0]{position:absolute;z-index:1;top:0;right:0;margin:calc(var(--spacing)/1)}._projectInfos--cover ._private[data-v-8e32e7a0]{font-size:125%}._projectInfos--cover ._private[data-v-8e32e7a0]:before{content:\\\"\\\";position:absolute;width:60%;margin-left:20%;height:100%;background:#fff;z-index:-1;border-radius:5px}._projectInfos--cover ._originalSpace[data-v-8e32e7a0]{position:absolute;bottom:0;left:0;margin:calc(var(--spacing)/4);padding:calc(var(--spacing)/16) calc(var(--spacing)/2);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:rgba(0,0,0,.2);color:#fff;font-weight:700;border-radius:15px;font-size:var(--sl-font-size-small);max-width:calc(100% - var(--spacing)/2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._projectInfos--meta[data-v-8e32e7a0]{margin:0 auto;padding:0}.is--mobileView ._projectInfos--meta[data-v-8e32e7a0]{height:auto}._projectInfos--meta ._card[data-v-8e32e7a0]{width:240px;height:240px;overflow:auto;margin:calc(var(--spacing)/2)}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar{height:18px;width:18px;background-color:transparent}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb,._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-track{border:6px solid hsla(0,0%,100%,0);border-radius:24px;background-clip:padding-box;-webkit-transition:all .4s;transition:all .4s}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-track{background-color:transparent}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb{background-color:var(--c-noir)}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb:hover{background-color:var(--c-gris);border:6px solid hsla(0,0%,100%,0)}._projectInfos--open[data-v-8e32e7a0]{position:absolute;top:0;left:0;width:100%;height:100%}._showMeta[data-v-8e32e7a0]{position:absolute;top:0;right:0;z-index:100;background:#fff;margin:calc(var(--spacing)/4)}._showDescription[data-v-8e32e7a0]{position:relative;z-index:100;padding:0;text-align:left}._allTags[data-v-8e32e7a0]{position:relative;z-index:1;display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/4)}._compactExpandButton[data-v-8e32e7a0]{--expand-button-height:2rem;position:absolute;z-index:2;top:calc(var(--short-project-height) - var(--expand-button-height));height:var(--expand-button-height);left:0;right:0;padding:calc(var(--spacing)/4);background:linear-gradient(transparent,#fff);text-align:right;pointer-events:none}._compactExpandButton>button[data-v-8e32e7a0]{pointer-events:auto;border-radius:50%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._make[data-v-5dcb0608]{padding:calc(var(--spacing)/4)}._topbar[data-v-5dcb0608]{display:flex;flex-flow:row wrap;justify-content:space-between;gap:calc(var(--spacing)*1);align-items:center;width:100%;background:#fff;padding:calc(var(--spacing)/2) calc(var(--spacing)*1);margin:calc(var(--spacing)/2) auto 0;box-shadow:0 1px 4px rgba(0,0,0,.1)}._mediaPicker[data-v-5dcb0608]{padding:calc(var(--spacing)/2)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._makes--item[data-v-6970721e]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:center;background:#fff;margin-bottom:2px;padding:calc(var(--spacing)/2) calc(var(--spacing)*1);gap:calc(var(--spacing)*1)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._singleBaseMediaPicker[data-v-482db883]{display:flex}._singleBaseMediaPicker>._mpContent[data-v-482db883]{position:relative;display:flex;flex-flow:row wrap;align-items:center;margin:0 auto;width:100%;max-width:320px;color:#fff;background:var(--c-bleumarine_fonce);gap:calc(var(--spacing)/4);padding:calc(var(--spacing)/4);border-radius:4px}._singleBaseMediaPicker>._mpContent[data-v-482db883] ._mediaContent ._mediaContent--image{position:absolute;width:100%;height:100%;-o-object-fit:cover;object-fit:cover;max-width:none;border-radius:1px}._singleBaseMediaPicker[data-context=full][data-v-482db883] ._mediaContent{width:320px;height:auto;aspect-ratio:1/1}._singleBaseMediaPicker[data-context=full][data-v-482db883] ._mediaContent ._mediaContent--image{-o-object-fit:scale-down;object-fit:scale-down}._singleBaseMediaPicker[data-context=preview][data-v-482db883] ._mediaContent{width:50px;height:50px}._changeBtn[data-v-482db883]{line-height:1;flex:1 0 auto;text-align:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._paneList[data-v-2f3ef4ea]{position:relative;top:0;overflow:visible;z-index:100;width:100%;min-height:44px;padding:calc(var(--spacing)/4) 0;padding:0;margin:0 auto;background-color:#fff;border-top:1px solid var(--c-gris);background:var(--panel-color)}._paneList.has--noPanes[data-v-2f3ef4ea]{border-bottom:1px solid var(--c-gris)}._paneList2[data-v-2f3ef4ea]{display:flex;flex-flow:row nowrap;align-items:center;overflow:hidden;min-height:44px}._paneList2>*[data-v-2f3ef4ea]{flex:1 1 0}._paneList2>._projectPanes[data-v-2f3ef4ea]{flex:0 0 auto}._paneList.is--mobile ._paneList2>._projectPanes[data-v-2f3ef4ea]{flex:1 0 auto}._paneList--list[data-v-2f3ef4ea]{display:flex;flex-flow:row wrap;justify-content:center;gap:calc(var(--spacing)/4);white-space:nowrap;height:auto;overflow:auto}._paneList--list>*[data-v-2f3ef4ea]{flex:0 0 0;justify-content:center;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .2s cubic-bezier(.19,1,.22,1)}._paneItem[data-v-2f3ef4ea],._paneList--list>*[data-v-2f3ef4ea]{display:flex;align-items:center}._paneItem[data-v-2f3ef4ea]{flex-flow:row nowrap;border-radius:44px;text-decoration:none;text-transform:uppercase;font-weight:500;letter-spacing:.03em;color:var(--color-active)}._paneItem.is--enabled[data-v-2f3ef4ea],._paneItem[data-v-2f3ef4ea]:focus,._paneItem[data-v-2f3ef4ea]:hover{color:#fff;background-color:var(--color-active)}._inlineBtn[data-v-2f3ef4ea]{position:relative;display:block;--sl-transition-medium:0;line-height:0;padding:calc(var(--spacing)/4);border-radius:50%;transition:all .1s cubic-bezier(.19,1,.22,1)}._addPaneBtn[data-v-2f3ef4ea]:focus,._addPaneBtn[data-v-2f3ef4ea]:hover,._removePaneBtn[data-v-2f3ef4ea]:focus,._removePaneBtn[data-v-2f3ef4ea]:hover{background:#fff;color:var(--color-active)}._btn[data-v-2f3ef4ea]{display:flex;justify-content:center;align-items:center;padding:calc(var(--spacing)/4);transition:all .2s cubic-bezier(.19,1,.22,1);cursor:pointer;width:100%;height:100%}._icon[data-v-2f3ef4ea]{width:2rem;height:2rem}._name[data-v-2f3ef4ea]{padding:0 calc(var(--spacing)/2)}._projectTitle[data-v-2f3ef4ea]{padding:calc(var(--spacing)/4);font-weight:700;opacity:0;transform:translateY(-100%);transition:.25s cubic-bezier(.19,1,.22,1)}._projectTitle.is--shown[data-v-2f3ef4ea]{opacity:1;transform:translateY(0)}._projectTitle>button[data-v-2f3ef4ea]{padding:calc(var(--spacing)/4) calc(var(--spacing)/4);display:flex;justify-content:flex-start;align-items:center;gap:calc(var(--spacing)/2)}._projectTitle img[data-v-2f3ef4ea]{width:2rem;height:2rem;-o-object-fit:cover;object-fit:cover}._projectTitle span[data-v-2f3ef4ea]{min-height:2rem;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:flex;align-items:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._capturePane[data-v-64693681]{height:100%;overflow:auto}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._makePane[data-v-38f93a6b]{background:var(--color-make);height:100%;overflow:auto}._makePane--content[data-v-38f93a6b]{width:100%;margin:0 auto;padding-top:calc(var(--spacing)*1);padding-bottom:calc(var(--spacing)*10)}.m_recipes--type[data-v-38f93a6b]{margin-bottom:calc(var(--spacing)*1)}.m_recipes--type--grid[data-v-38f93a6b]{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-auto-rows:max-content;grid-gap:calc(var(--spacing)/2);align-items:stretch}.m_recipe[data-v-38f93a6b]{border-radius:8px;background:#fff;padding:calc(var(--spacing)/2);border-radius:10px}.m_recipe[data-v-38f93a6b]>:not(:last-child){margin-bottom:calc(var(--spacing)/2)}.m_recipe--icon[data-v-38f93a6b]{border-radius:6px;background:var(--c-bleumarine);flex:0 1 160px;min-width:120px;height:160px;margin:0;padding:0}.m_recipe--icon[data-v-38f93a6b] svg{width:100%;max-width:160px;margin:0 auto}.m_recipe--text[data-v-38f93a6b]{flex-basis:50%;max-width:44ch;color:#000}.m_recipe--text p[data-v-38f93a6b]{line-height:1.4}.m_recipe--text hr[data-v-38f93a6b]{border:none;border-top:2px solid #000;width:1em}.m_recipe--buttons[data-v-38f93a6b]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:center}.u-buttonLink.is--active[data-v-38f93a6b]{color:var(--c-bleumarine)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._publierPane[data-v-b76c5f84]{background:#fff;background:var(--c-gris_clair);background-color:var(--c-bodybg)}._publierPane.is--editable[data-v-b76c5f84]{background:var(--color-publish)}._editMediaModal[data-v-b76c5f84]{position:fixed;z-index:100}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._floatingMsg[data-v-86f27f16]{position:absolute;left:0;top:0;width:100%;height:100%;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1000;text-align:center;padding:calc(var(--spacing)*2);cursor:pointer}._floatingMsg>div[data-v-86f27f16]{position:relative;background:var(--color-type);background:#fff;max-width:54ch;padding:calc(var(--spacing)/2);margin:0 auto;border:2px solid var(--c-gris);border-radius:4px;pointer-events:auto;cursor:default}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._list[data-v-59d6e751]{display:flex;flex-flow:row wrap}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._templates[data-v-aa1ebffc]{display:grid;grid-auto-rows:max-content;grid-gap:calc(var(--spacing)/4);align-items:stretch;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}._templates--item[data-v-aa1ebffc]{display:flex;flex-flow:column nowrap;justify-content:space-between;text-align:center;align-items:center;background:var(--c-bleuvert);border-radius:4px;padding:calc(var(--spacing)/2)}._templates--item.is--active[data-v-aa1ebffc]{border:2px solid #fff;outline:2px solid var(--c-bleuvert_fonce)}._label[data-v-aa1ebffc] label{color:#000!important}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._preview[data-v-2d915ad8]{border:2px solid var(--c-gris);aspect-ratio:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._publicationOpen[data-v-191ede3d]{position:relative;min-height:calc(100vh - 45px);display:flex;flex-flow:column nowrap;background-color:var(--c-bodybg);background-color:#fff}._publicationOpen--topbar[data-v-191ede3d]{flex:0 0 auto}._publicationOpen--content[data-v-191ede3d]{flex:1 1 auto}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._publicationPreview[data-v-93e33046]{display:flex;flex-flow:column nowrap;gap:calc(var(--spacing)/2);padding:calc(var(--spacing)/2)}._publicationPreview--cover[data-v-93e33046]{position:relative;overflow:hidden;background:#fff}._header[data-v-93e33046]{cursor:pointer;overflow:hidden}._generatePreviewBtn[data-v-93e33046]{position:absolute;bottom:0;right:0;z-index:1;margin:calc(var(--spacing)/2)}._previewProgress[data-v-93e33046]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2;display:flex;justify-content:center;align-items:center;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);padding:calc(var(--spacing)*1);font-family:Fira Code}._iconPreview[data-v-93e33046]{width:30px;height:30px;position:absolute;bottom:0;left:0;z-index:1;background:var(--c-bleuvert);margin:calc(var(--spacing)/4);padding:calc(var(--spacing)/4);border-radius:4px}._noPreview[data-v-93e33046]{display:flex;justify-content:center;align-content:center;align-items:center;padding:calc(var(--spacing)/1);width:100%;aspect-ratio:1;min-height:50px}._icon[data-v-93e33046]{position:absolute;top:0;right:0;margin:calc(var(--spacing)/1);font-size:125%}._check[data-v-93e33046]{color:var(--c-bleuvert)}._openPublication[data-v-93e33046]{position:absolute;top:0;left:0;width:100%;height:100%;background:transparent}._openPublication[data-v-93e33046]:focus-visible{outline:2px solid var(--active-color)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._topbar[data-v-8a773402]{display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/2);align-items:center;width:100%;background:#fff;padding:calc(var(--spacing)/2);margin:0;border-bottom:1px solid var(--c-gris)}._publiTitle[data-v-8a773402]{flex:10 1 auto}._buttonRow[data-v-8a773402]{display:flex;flex-flow:row wrap;flex:1 1 auto;justify-content:flex-end;gap:calc(var(--spacing)/2)}._exportBtn[data-v-8a773402]{position:relative}._backPubli[data-v-8a773402]{font-size:1.1rem}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._publicationsList[data-v-487252e4]{--item-width:140px;width:100%;max-width:var(--max-column-width);margin:0 auto;padding-top:calc(var(--spacing)*1)}._publications--list[data-v-487252e4]{display:grid;grid-auto-rows:max-content;grid-gap:calc(var(--spacing)*1);align-items:end;grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._projectView[data-v-2e948e37]{position:relative;min-height:calc(100vh - 60px)}._projectPanesAndList[data-v-2e948e37]{position:relative;z-index:6;display:flex;flex-flow:column nowrap}._projectPanesAndList ._paneList[data-v-2e948e37]{flex:0 0 auto}._projectPanesAndList ._panes[data-v-2e948e37]{flex:1 1 auto}._topContent[data-v-2e948e37]{position:relative}._tabButton[data-v-2e948e37]{text-align:center;background:var(--c-gris);padding:calc(var(--spacing)/2)}._tabButton>*[data-v-2e948e37]{background:#fff;border-radius:4px}._separator[data-v-2e948e37]{margin:0}._errNotice[data-v-2e948e37]{padding:calc(var(--spacing)/2)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*! Flickity v2.3.0\\nhttps://flickity.metafizzy.co\\n---------------------------------------------- */.flickity-enabled{position:relative}.flickity-enabled:focus{outline:none}.flickity-viewport{overflow:hidden;position:relative;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:grabbing}.flickity-button{position:absolute;background:hsla(0,0%,100%,.75);border:none;color:#333}.flickity-button:hover{background:#fff;cursor:pointer}.flickity-button:focus{outline:none;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}.flickity-page-dots .dot.is-selected{opacity:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicatePublication.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicatePublication.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DuplicatePublication.vue?vue&type=template&id=19fcccef&scoped=true\"\nimport script from \"./DuplicatePublication.vue?vue&type=script&lang=js\"\nexport * from \"./DuplicatePublication.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"19fcccef\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.$t('export_publi')},on:{\"close\":function($event){return _vm.$emit('close')}}},[_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.$t('document_type')}}),_c('RadioCheckboxInput',{attrs:{\"value\":_vm.export_mode,\"options\":_vm.export_options,\"can_edit\":true},on:{\"update:value\":function($event){_vm.export_mode=$event}}})],1),(_vm.export_mode === 'pdf')?[_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.exportPublication('pdf')}}},[_c('b-icon',{attrs:{\"icon\":\"file-pdf\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"create\"))+\" \")],1)])]:(_vm.export_mode === 'png')?[(_vm.publication.template === 'page_by_page')?[_c('div',{staticClass:\"u-spacingBottom\"}),_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.$t('page_to_export')}}),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.page_to_export_as_image),expression:\"page_to_export_as_image\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.page_to_export_as_image=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((new Array(_vm.page_count)),function(a,i){return _c('option',{key:i + 1,domProps:{\"textContent\":_vm._s(i + 1)}})}),0)],1)]:_vm._e(),_c('div',{attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('button',{staticClass:\"u-button u-button_bleuvert\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.exportPublication('png')}}},[_c('b-icon',{attrs:{\"icon\":\"file-earmark-image\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"create\"))+\" \")],1)])]:_vm._e(),(_vm.task_instructions)?_c('ExportItemAndSaveOrDownload',{attrs:{\"publication_path\":_vm.publication.$path,\"instructions\":_vm.task_instructions},on:{\"close\":function($event){_vm.task_instructions = false}}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.$t('export_publi')},on:{\"close\":function($event){return _vm.$emit('close')}}},[(_vm.is_exporting)?[_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"export_in_progress\"))+\" \")]),_c('div',{},[_c('b',[_c('AnimatedCounter',{attrs:{\"value\":_vm.task_progress}})],1)])]:[(_vm.created_doc)?_c('MediaContent',{staticClass:\"_preview\",attrs:{\"file\":_vm.created_doc,\"resolution\":1600,\"context\":'full'}}):_vm._e(),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('a',{staticClass:\"u-buttonLink\",attrs:{\"disabled\":!_vm.export_href,\"download\":_vm.export_name,\"href\":_vm.export_href,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"download\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.saveToProject}},[_c('svg',{staticStyle:{\"enable-background\":\"new 0 0 168 168\"},attrs:{\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"0 0 168 168\",\"xml:space\":\"preserve\"}},[_c('path',{staticStyle:{\"fill\":\"var(--c-rouge)\"},attrs:{\"d\":\"M84,0C37.6,0,0,37.6,0,84c0,46.4,37.6,84,84,84c46.4,0,84-37.6,84-84 C168,37.6,130.4,0,84,0z\"}}),_c('g',{staticStyle:{\"fill\":\"var(--c-orange)\"}},[_c('path',{attrs:{\"d\":\"m42 42h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m73.2 42h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m104.4 42h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m42 73.5h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m73.2 73.5h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m104.4 73.5h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m42 105h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m73.2 105h21.6v21h-21.6z\"}}),_c('path',{attrs:{\"d\":\"m104.4 105h21.6v21h-21.6z\"}})])]),_vm._v(\" \"+_vm._s(_vm.$t(\"save_to_project\"))+\" \")])]),(_vm.finished_saving_to_project)?_c('div',{staticClass:\"_saveNotice\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"media_was_saved_to_project\"))+\" \")]):_vm._e()]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ExportItemAndSaveOrDownload.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ExportItemAndSaveOrDownload.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ExportItemAndSaveOrDownload.vue?vue&type=template&id=2d915ad8&scoped=true\"\nimport script from \"./ExportItemAndSaveOrDownload.vue?vue&type=script&lang=js\"\nexport * from \"./ExportItemAndSaveOrDownload.vue?vue&type=script&lang=js\"\nimport style0 from \"./ExportItemAndSaveOrDownload.vue?vue&type=style&index=0&id=2d915ad8&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2d915ad8\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ExportPubliModal.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ExportPubliModal.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ExportPubliModal.vue?vue&type=template&id=076f2f40&scoped=true\"\nimport script from \"./ExportPubliModal.vue?vue&type=script&lang=js\"\nexport * from \"./ExportPubliModal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"076f2f40\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationTopbar.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationTopbar.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PublicationTopbar.vue?vue&type=template&id=8a773402&scoped=true\"\nimport script from \"./PublicationTopbar.vue?vue&type=script&lang=js\"\nexport * from \"./PublicationTopbar.vue?vue&type=script&lang=js\"\nimport style0 from \"./PublicationTopbar.vue?vue&type=style&index=0&id=8a773402&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8a773402\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_publicationView\",class:{\n 'is--serversidepreview': _vm.is_serversidepreview,\n }},[_c('style',{tag:\"component\"},[_vm._v(\" \"+_vm._s(_vm.set_print_margins)+\" \")]),_c('transition',{attrs:{\"name\":\"fade_fast\",\"mode\":\"out-in\"}},[(_vm.$root.is_loading)?_c('div',{key:\"loader\",staticClass:\"u-divCentered\"},[_c('LoaderSpinner')],1):(_vm.fetch_publication_error)?_c('div',[_vm._v(\" \"+_vm._s(_vm.fetch_publication_error)+\" \")]):(_vm.publication)?_c('div',{key:\"publication\",ref:\"fsContainer\"},[_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[(!_vm.is_serversidepreview && !_vm.is_fullscreen && _vm.show_topbar)?_c('div',{staticClass:\"_pubTopbar\"},[_c('PublicationTopbar',{attrs:{\"publication\":_vm.publication,\"no_back_button\":true,\"can_edit\":false}})],1):_vm._e()]),_c('div',{staticClass:\"_toggleTopbar\"},[_c('button',{staticClass:\"u-button u-button_small u-button_icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_topbar = !_vm.show_topbar}}},[_c('b-icon',{attrs:{\"icon\":\"chevron-up\",\"rotate\":_vm.show_topbar ? 0 : 180}})],1)]),(_vm.publication.template === 'page_by_page')?[_c('PageSlides',{attrs:{\"publication\":_vm.publication,\"is_serversidepreview\":_vm.is_serversidepreview},on:{\"toggleFs\":_vm.toggleFs}})]:(_vm.publication.template === 'story')?_c('div',[_c('StoryTemplate',{staticClass:\"_storyTemplate\",attrs:{\"publication\":_vm.publication,\"can_edit\":false}})],1):(_vm.publication.template === 'story_with_sections')?_c('div',[_c('SectionWithPrint',{attrs:{\"publication\":_vm.publication}})],1):(_vm.publication.template === 'cartography')?_c('div',[_c('MapForPrint',{attrs:{\"publication\":_vm.publication}})],1):_vm._e()],2):_vm._e()])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PublicationView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PublicationView.vue?vue&type=template&id=78d7f968&scoped=true\"\nimport script from \"./PublicationView.vue?vue&type=script&lang=js\"\nexport * from \"./PublicationView.vue?vue&type=script&lang=js\"\nimport style0 from \"./PublicationView.vue?vue&type=style&index=0&id=78d7f968&prod&lang=scss&scoped=true\"\nimport style1 from \"./PublicationView.vue?vue&type=style&index=1&id=78d7f968&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"78d7f968\",\n null\n \n)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._preview[data-v-2d915ad8]{border:2px solid var(--c-gris);aspect-ratio:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._topbar[data-v-8a773402]{display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/2);align-items:center;width:100%;background:#fff;padding:calc(var(--spacing)/2);margin:0;border-bottom:1px solid var(--c-gris)}._publiTitle[data-v-8a773402]{flex:10 1 auto}._buttonRow[data-v-8a773402]{display:flex;flex-flow:row wrap;flex:1 1 auto;justify-content:flex-end;gap:calc(var(--spacing)/2)}._exportBtn[data-v-8a773402]{position:relative}._backPubli[data-v-8a773402]{font-size:1.1rem}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._publicationView[data-v-78d7f968]{background:#fff}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".alertify-logs{display:none!important}body,html{background:#fff!important}._storyTemplate{padding:calc(var(--spacing)/1)}@media print{._pubTopbar{display:none}}._toggleTopbar{position:absolute;width:100%;text-align:center;z-index:1;pointer-events:none}._toggleTopbar button{pointer-events:auto}@media print{._sectionsSummary,._toggleTopbar{display:none}._storyContent{box-shadow:none!important}}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a \n","import mod from \"-!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./flickity.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../thread-loader/dist/cjs.js!../../babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../@vue/vue-loader-v15/lib/index.js??vue-loader-options!./flickity.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./flickity.vue?vue&type=template&id=42695eab\"\nimport script from \"./flickity.vue?vue&type=script&lang=js\"\nexport * from \"./flickity.vue?vue&type=script&lang=js\"\nimport style0 from \"flickity/dist/flickity.css?vue&type=style&index=0&prod&lang=css&external\"\n\n\n/* normalize component */\nimport normalizer from \"!../../@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.pinned_folders.length > 0 || _vm.can_edit)?_c('div',{staticClass:\"_pinned\"},[_c('div',{},[_c('DLabel',{attrs:{\"str\":_vm.label}}),_c('transition',{attrs:{\"name\":\"pagechange\",\"mode\":\"out-in\"}},[(_vm.pinned_folders.length === 0 && _vm.can_edit)?_c('div',{staticClass:\"u-instructions\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"click_to_pin\"))+\" \")]):_c('transition-group',{staticClass:\"_list _list_pinned\",attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},_vm._l((_vm.pinned_folders),function(folder,index){return _c('div',{key:folder.$path,staticClass:\"_item\"},[_vm._t(\"default\",null,{\"item\":folder}),(_vm.can_edit)?_c('div',{staticClass:\"_pinSpace\"},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"disabled\":['alone', 'first'].includes(_vm.positionInPinned(folder.$path))},on:{\"click\":function($event){return _vm.movePin(index, -1)}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-left-circle-fill\",\"aria-label\":_vm.$t('move_left')}})],1),_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.removeFromPins(folder.$path)}}},[_c('b-icon',{attrs:{\"icon\":\"pin-fill\",\"aria-label\":_vm.$t('unpin')}})],1),_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"disabled\":['alone', 'last'].includes(_vm.positionInPinned(folder.$path))},on:{\"click\":function($event){return _vm.movePin(index, +1)}}},[_c('b-icon',{attrs:{\"icon\":\"arrow-right-circle-fill\",\"aria-label\":_vm.$t('move_right')}})],1)]):_c('div',{staticClass:\"_pinSpace _pinSpace_indicator\"},[_c('b-icon',{attrs:{\"icon\":\"pin-fill\",\"aria-label\":_vm.$t('pinned')}})],1)],2)}),0)],1)],1)]):_vm._e(),_c('transition-group',{staticClass:\"_nonpinned _list\",attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},_vm._l((_vm.non_pinned_folders),function(folder){return _c('div',{key:folder.$path,staticClass:\"_item\"},[_vm._t(\"default\",null,{\"item\":folder}),(_vm.can_edit)?_c('div',{staticClass:\"_pinSpace\"},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.addSpaceToPins(folder.$path)}}},[_c('b-icon',{attrs:{\"icon\":\"pin\",\"aria-label\":_vm.$t('pin')}})],1)]):_vm._e()],2)}),0)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PinnedNonpinnedFolder.vue?vue&type=template&id=06cbf20b&scoped=true\"\nimport script from \"./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"\nexport * from \"./PinnedNonpinnedFolder.vue?vue&type=script&lang=js\"\nimport style0 from \"./PinnedNonpinnedFolder.vue?vue&type=style&index=0&id=06cbf20b&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"06cbf20b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_projectInfos\",class:{\n 'is--list': ['list', 'tiny'].includes(_vm.context),\n 'is--own': _vm.is_own_project,\n 'u-card2': _vm.context !== 'full',\n },attrs:{\"data-context\":_vm.context}},[_c('div',{staticClass:\"_projectInfos--topContent\"},[_c('div',{staticClass:\"_projectInfos--cover\"},[_c('CoverField',{staticClass:\"_cover\",attrs:{\"context\":_vm.context,\"cover\":_vm.project.$cover,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}),_c('transition',{attrs:{\"name\":\"toggleLock\",\"mode\":\"out-in\"}},[(\n _vm.project.$status === 'finished' || _vm.project.$status === 'private'\n )?_c('StatusTag',{key:_vm.project.$status,staticClass:\"_icon\",attrs:{\"show_label\":false,\"status\":_vm.project.$status,\"can_edit\":false,\"mode\":_vm.context === 'list' ? 'active' : 'inactive'},on:{\"click\":function($event){return _vm.$emit('toggleFilter', {\n filter_type: '$status',\n value: _vm.project.$status,\n })}}}):_vm._e()],1),(_vm.display_original_space)?_c('div',{staticClass:\"_originalSpace\"},[_vm._v(\" + \"+_vm._s(_vm.original_space_name)+\" \")]):_vm._e()],1),_c('div',{staticClass:\"_projectInfos--infos\",class:{\n 'is--short': _vm.is_compacted,\n }},[(_vm.context === 'full')?_c('div',{staticClass:\"_projectInfos--infos--settings\"},[_c('StatusTag',{attrs:{\"status\":_vm.project.$status,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}),(_vm.can_edit)?_c('DropDown',{attrs:{\"right\":true}},[_c('DownloadFolder',{attrs:{\"path\":_vm.project.$path}}),_c('div',{},[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_dup_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"file-plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate_or_move_project\"))+\" \")],1),(_vm.show_dup_modal)?_c('DuplicateOrRemixProject',{attrs:{\"path\":_vm.project.$path,\"proposed_title\":`${_vm.$t('copy_of')} ${_vm.project.title}`},on:{\"close\":function($event){_vm.show_dup_modal = false}}}):_vm._e()],1),_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove_project')},on:{\"remove\":_vm.removeProject}})],1):_vm._e()],1):_vm._e(),_c('TitleField',{staticClass:\"_title\",attrs:{\"field_name\":'title',\"label\":_vm.context === 'full' ? _vm.$t('title') : '',\"content\":_vm.project.title,\"path\":_vm.project.$path,\"required\":true,\"maxlength\":40,\"tag\":_vm.context === 'full' ? 'h1' : _vm.context === 'list' ? 'h3' : 'h5',\"can_edit\":_vm.can_edit,\"instructions\":_vm.can_edit ? _vm.$t('project_title_instructions') : undefined}}),(\n (_vm.context === 'list' && _vm.project.description) ||\n (_vm.context === 'full' && (_vm.project.description || _vm.can_edit))\n )?_c('CollaborativeEditor2',{attrs:{\"label\":_vm.context === 'full' ? _vm.$t('description') : '',\"field_to_edit\":'description',\"content\":_vm.project.description,\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"maxlength\":1280,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.context === 'full')?_c('AdminsAndContributorsField',{attrs:{\"folder\":_vm.project,\"can_edit\":_vm.can_edit,\"admin_label\":_vm.$t('referent'),\"admin_instructions\":_vm.$t('project_admin_instructions'),\"contrib_instructions\":_vm.$t('project_contrib_instructions')}}):_vm._e(),(_vm.context !== 'tiny' && _vm.context !== 'full' && _vm.all_tags.length > 0)?_c('div',{staticClass:\"_allTags\"},[_vm._l((_vm.all_tags),function(tags){return _vm._l((tags.list),function(tag){return _c('SingleTag',{key:tag,attrs:{\"tag_type\":tags.type,\"tag_str\":tag,\"mode\":'active'},on:{\"tagClick\":function($event){return _vm.$emit('toggleFilter', { filter_type: tags.type, value: tag })}}})})})],2):_vm._e(),(_vm.is_compacted)?_c('div',{staticClass:\"_compactExpandButton\",on:{\"click\":_vm.toggleCompacted}},[_c('button',{staticClass:\"u-button u-button_icon\",attrs:{\"type\":\"button\",\"tabindex\":\"-1\"}},[(_vm.short_project_view)?_c('b-icon',{attrs:{\"icon\":\"arrow-down-short\"}}):_c('b-icon',{attrs:{\"icon\":\"arrow-up-short\"}})],1)]):_vm._e()],1)]),(_vm.context === 'full')?_c('flickity',{staticClass:\"_projectInfos--meta\",class:{\n 'is--hidden': !_vm.show_meta,\n },attrs:{\"options\":_vm.flickityOptions}},[_c('CardCompetences',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardMachinesMaterials',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardKeywords',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardLicense',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),_c('CardFiles',{staticClass:\"_card\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}})],1):_vm._e(),(['list', 'tiny'].includes(_vm.context))?_c('router-link',{staticClass:\"_projectInfos--open\",attrs:{\"to\":{ path: _vm.createURLFromPath(_vm.project.$path) },\"title\":_vm.$t('open') + ' ' + _vm.project.title}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.keywords_title,\"icon\":'tag',\"has_items\":!!_vm.project.keywords,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{},[_c('TagsField',{attrs:{\"label\":_vm.$t('keywords'),\"field_name\":'keywords',\"tag_type\":'keywords',\"content\":_vm.project.keywords,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardKeywords.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardKeywords.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardKeywords.vue?vue&type=template&id=1560151b&scoped=true\"\nimport script from \"./CardKeywords.vue?vue&type=script&lang=js\"\nexport * from \"./CardKeywords.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1560151b\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('levels_and_competences'),\"icon\":'bookmark-star',\"has_items\":!!_vm.project.level,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('skill_level'),\"field_name\":'level',\"input_type\":'radio',\"content\":_vm.project.level,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.basic_competences},scopedSlots:_vm._u([{key:\"preview\",fn:function({ item }){return [(item && !!item.key)?_c('div',{staticClass:\"_list\"},[_c('SingleTag',{attrs:{\"tag_type\":'level',\"tag_str\":item.label,\"mode\":'inactive'}})],1):_vm._e()]}}])})],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('target_audience'),\"field_name\":'target_audience',\"input_type\":'checkbox',\"content\":_vm.project.target_audience,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.target_audience_options},scopedSlots:_vm._u([{key:\"preview\",fn:function({ items }){return [(items)?_c('TagsList',{attrs:{\"tags\":items.map(({ key }) => key),\"tag_type\":'target_audience'}}):_vm._e()]}}])})],1),_c('div',{},[_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('disciplines'),\"field_name\":'disciplines',\"input_type\":'checkbox',\"content\":_vm.project.disciplines,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.discipline_options},scopedSlots:_vm._u([{key:\"preview\",fn:function({ items }){return [(items)?_c('TagsList',{attrs:{\"tags\":items.map(({ key }) => key),\"tag_type\":'disciplines'}}):_vm._e()]}}])})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardCompetences.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardCompetences.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardCompetences.vue?vue&type=template&id=59d6e751&scoped=true\"\nimport script from \"./CardCompetences.vue?vue&type=script&lang=js\"\nexport * from \"./CardCompetences.vue?vue&type=script&lang=js\"\nimport style0 from \"./CardCompetences.vue?vue&type=style&index=0&id=59d6e751&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"59d6e751\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('machines_and_materials'),\"icon\":'tools',\"has_items\":_vm.machines_materials_items_length > 0\n ? _vm.machines_materials_items_length\n : false,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('TagsField',{attrs:{\"label\":_vm.$t('materials'),\"field_name\":'materials',\"tag_type\":'materials',\"content\":_vm.project.materials,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1),_c('div',{},[_c('TagsField',{attrs:{\"label\":_vm.$t('machines'),\"field_name\":'machines',\"tag_type\":'machines',\"content\":_vm.project.machines,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardMachinesMaterials.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardMachinesMaterials.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardMachinesMaterials.vue?vue&type=template&id=36844aa4&scoped=true\"\nimport script from \"./CardMachinesMaterials.vue?vue&type=script&lang=js\"\nexport * from \"./CardMachinesMaterials.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"36844aa4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('authors_and_license'),\"icon\":'people',\"has_items\":!!_vm.project.license,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('div',{staticClass:\"u-spacingBottom\"},[_c('CollaborativeEditor2',{attrs:{\"label\":_vm.$t('authors'),\"field_to_edit\":'authors_list',\"content\":_vm.project.authors_list,\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"can_edit\":_vm.can_edit}})],1),_c('div',{},[(_vm.$root.app_infos.instance_meta.enable_events)?_c('EventField',{staticClass:\"u-spacingBottom\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}):_vm._e(),_c('RemixField',{staticClass:\"u-spacingBottom\",attrs:{\"project\":_vm.project,\"can_edit\":_vm.can_edit}}),(_vm.can_edit || (!_vm.can_edit && _vm.project.license !== 'custom_license'))?_c('RadioCheckboxField',{attrs:{\"label\":_vm.$t('license'),\"instructions\":_vm.$t('licence_instructions'),\"field_name\":'license',\"input_type\":'radio',\"content\":_vm.project.license,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.license_options}}):_vm._e(),(_vm.project.license === 'custom_license')?_c('CollaborativeEditor2',{attrs:{\"label\":_vm.can_edit ? _vm.$t('custom_license') : undefined,\"field_to_edit\":'custom_license',\"content\":_vm.project.custom_license || _vm.$t('fill_out_your_license'),\"path\":_vm.project.$path,\"custom_formats\":['bold', 'italic', 'link'],\"is_collaborative\":false,\"can_edit\":_vm.can_edit}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{},[(_vm.can_edit || _vm.project.event_linked_slug)?_c('DLabel',{attrs:{\"str\":_vm.$t('created_during')}}):_vm._e(),(!_vm.is_loading)?[_c('RadioCheckboxField',{attrs:{\"field_name\":'event_linked_slug',\"input_type\":'radio',\"content\":_vm.project.event_linked_slug,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit,\"options\":_vm.events_options}})]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EventField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./EventField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./EventField.vue?vue&type=template&id=47466f98&scoped=true\"\nimport script from \"./EventField.vue?vue&type=script&lang=js\"\nexport * from \"./EventField.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"47466f98\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_remixField\"},[(_vm.can_edit)?_c('ToggleField',{attrs:{\"label\":_vm.$t('project_can_be_remixed'),\"field_name\":'$can_be_remixed',\"content\":_vm.project.$can_be_remixed === true,\"path\":_vm.project.$path,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.project.$can_be_remixed)?_c('button',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_remix_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"intersect\"}}),_vm._v(\" \"+_vm._s(_vm.$t(\"remix_this_project\"))+\" \")],1):_vm._e(),(_vm.show_remix_modal)?_c('DuplicateOrRemixProject',{attrs:{\"path\":_vm.project.$path,\"mode\":'remix',\"proposed_title\":`${_vm.$t('remix_of')} ${_vm.project.title}`,\"source_title\":_vm.project.title},on:{\"close\":function($event){_vm.show_remix_modal = false}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('BaseModal2',{attrs:{\"title\":_vm.modal_title},on:{\"close\":function($event){return _vm.$emit('close')}}},[(!_vm.url_to_copy)?[_c('div',{},[_c('div',{staticClass:\"u-spacingBottom u-instructions\"},[_c('small',[_vm._v(\" \"+_vm._s(_vm.$t(\"dm_instr\"))+\" \")])]),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.destination_space_label}}),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.destination_space_path),expression:\"destination_space_path\"}],on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.destination_space_path=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.sorted_spaces),function(space){return _c('option',{key:space.$path,domProps:{\"value\":space.$path,\"textContent\":_vm._s(space.title)}})}),0)],1),_c('div',{staticClass:\"u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.new_title_label}}),_c('TextInput',{ref:\"titleInput\",attrs:{\"content\":_vm.new_title,\"maxlength\":40,\"required\":true},on:{\"update:content\":function($event){_vm.new_title=$event}}})],1),(_vm.mode === 'duplicate')?_c('div',{staticClass:\"u-spacingBottom\"},[_c('ToggleInput',{attrs:{\"content\":_vm.remove_original,\"label\":_vm.$t('remove_original'),\"options\":{\n true: _vm.$t('remove_original_after_copy'),\n false: _vm.$t('keep_original_after_copy'),\n }},on:{\"update:content\":function($event){_vm.remove_original=$event}}})],1):_vm._e()]),_c('div',{staticClass:\"u-sameRow\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[(!_vm.is_copying)?[_c('button',{staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.$emit('close')}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"cancel\"))+\" \")]),_c('button',{staticClass:\"u-button u-button_red\",attrs:{\"type\":\"button\",\"autofocus\":\"\"},on:{\"click\":_vm.confirm}},[(_vm.remove_original)?[_vm._v(\" \"+_vm._s(_vm.$t(\"move\"))+\" \")]:[(_vm.mode === 'remix')?[_vm._v(\" \"+_vm._s(_vm.$t(\"remix\"))+\" \")]:[_vm._v(\" \"+_vm._s(_vm.$t(\"duplicate\"))+\" \")]]],2)]:_c('LoaderSpinner')],2)]:[_c('router-link',{staticClass:\"u-button u-button_bleumarine\",attrs:{\"to\":_vm.url_to_copy}},[_vm._v(\" \"+_vm._s(_vm.$t(\"open_copy\"))+\" \")])]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./DuplicateOrRemixProject.vue?vue&type=template&id=9cd5ad06&scoped=true\"\nimport script from \"./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"\nexport * from \"./DuplicateOrRemixProject.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"9cd5ad06\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RemixField.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./RemixField.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./RemixField.vue?vue&type=template&id=54c250a9&scoped=true\"\nimport script from \"./RemixField.vue?vue&type=script&lang=js\"\nexport * from \"./RemixField.vue?vue&type=script&lang=js\"\nimport style0 from \"./RemixField.vue?vue&type=style&index=0&id=54c250a9&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"54c250a9\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardLicense.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardLicense.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardLicense.vue?vue&type=template&id=3fb44220&scoped=true\"\nimport script from \"./CardLicense.vue?vue&type=script&lang=js\"\nexport * from \"./CardLicense.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3fb44220\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DetailsPane',{attrs:{\"header\":_vm.$t('files'),\"icon\":'file-earmark-arrow-down',\"has_items\":_vm.downloadable_files.length > 0 ? _vm.downloadable_files.length : false,\"is_open_initially\":true,\"can_be_toggled\":false}},[_c('FilesModule',{attrs:{\"field_name\":'downloadable_files',\"path\":_vm.project.$path,\"content\":_vm.downloadable_files,\"project_path\":_vm.project.$path,\"can_edit\":_vm.can_edit}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardFiles.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CardFiles.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./CardFiles.vue?vue&type=template&id=1ad3ce9e&scoped=true\"\nimport script from \"./CardFiles.vue?vue&type=script&lang=js\"\nexport * from \"./CardFiles.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1ad3ce9e\",\n null\n \n)\n\nexport default component.exports","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectPresentation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectPresentation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectPresentation.vue?vue&type=template&id=8e32e7a0&scoped=true\"\nimport script from \"./ProjectPresentation.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectPresentation.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectPresentation.vue?vue&type=style&index=0&id=8e32e7a0&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"8e32e7a0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('section',{staticClass:\"_projectsListWithFilter\"},[_c('div',{staticClass:\"_filterSortBar\"},[_c('div',{staticClass:\"u-sameRow\"},[_vm._t(\"default\"),(_vm.sorted_projects.length > 0)?[_c('div',{},[_c('button',{staticClass:\"u-button u-button_small u-button_bleumarine\",class:{\n 'is--active': _vm.show_sidebar,\n },attrs:{\"type\":\"button\",\"size\":\"small\"},domProps:{\"textContent\":_vm._s(!_vm.show_sidebar ? _vm.$t('filter') : _vm.$t('hide'))},on:{\"click\":function($event){_vm.show_sidebar = !_vm.show_sidebar}}})]),_c('div',{},[_c('SearchInput',{attrs:{\"search_placeholder\":_vm.$t('search_in_title_desc_kw'),\"name\":'search_project'},model:{value:(_vm.search_project),callback:function ($$v) {_vm.search_project=$$v},expression:\"search_project\"}})],1)]:_vm._e()],2),_c('div',{},[(_vm.sorted_projects.length > 0)?[_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.order_key),expression:\"order_key\"}],staticClass:\"_orderSelect\",attrs:{\"size\":\"small\",\"name\":'order_projects',\"disabled\":_vm.filtered_projects.length <= 1},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.order_key=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},_vm._l((_vm.order_options),function(opt){return _c('option',{key:opt.key,domProps:{\"value\":opt.key,\"textContent\":_vm._s(opt.text)}})}),0)]:_vm._e()],2)]),_c('div',{staticClass:\"_cont\"},[(_vm.show_sidebar)?_c('div',{staticClass:\"_sidebar\"},[_c('div',[_c('DLabel',{attrs:{\"str\":_vm.$t('status')}}),_c('div',{staticClass:\"_statusList\"},_vm._l((_vm.extractAll('$status')),function(status){return _c('StatusTag',{key:status,attrs:{\"status\":status,\"can_edit\":false,\"mode\":_vm.getActiveTags('$status').includes(status) ? 'disable' : 'active'},on:{\"click\":function($event){return _vm.toggleFilter({ filter_type: '$status', value: status })}}})}),1)],1),(_vm.$root.app_infos.instance_meta.enable_events)?_c('div',[_c('DLabel',{attrs:{\"str\":_vm.$t('events')}})],1):_vm._e(),_vm._l(([\n 'target_audience',\n 'disciplines',\n 'level',\n 'keywords',\n 'machines',\n 'materials',\n ]),function(filter){return [(_vm.extractAll(filter).length > 0)?_c('div',{key:filter},[(filter === 'level')?[_c('DLabel',{attrs:{\"str\":_vm.$t('levels_and_competences')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('level'),\"tag_type\":'level',\"tags_active\":_vm.getActiveTags('level')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'level', value: $event })}}})]:(filter === 'keywords')?[_c('DLabel',{attrs:{\"str\":_vm.$t('keywords')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('keywords'),\"tag_type\":'keywords',\"tags_active\":_vm.getActiveTags('keywords')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'keywords', value: $event })}}})]:(filter === 'materials')?[_c('DLabel',{attrs:{\"str\":_vm.$t('materials')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('materials'),\"tag_type\":'materials',\"tags_active\":_vm.getActiveTags('materials')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'materials', value: $event })}}})]:(filter === 'machines')?[_c('DLabel',{attrs:{\"str\":_vm.$t('machines')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('machines'),\"tag_type\":'machines',\"tags_active\":_vm.getActiveTags('machines')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'machines', value: $event })}}})]:(filter === 'disciplines')?[_c('DLabel',{attrs:{\"str\":_vm.$t('disciplines')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('disciplines'),\"tag_type\":'disciplines',\"tags_active\":_vm.getActiveTags('disciplines')},on:{\"tagClick\":function($event){return _vm.toggleFilter({ filter_type: 'disciplines', value: $event })}}})]:(filter === 'target_audience')?[_c('DLabel',{attrs:{\"str\":_vm.$t('target_audience')}}),_c('TagsList',{attrs:{\"tags\":_vm.extractAll('target_audience'),\"tag_type\":'target_audience',\"tags_active\":_vm.getActiveTags('target_audience')},on:{\"tagClick\":function($event){return _vm.toggleFilter({\n filter_type: 'target_audience',\n value: $event,\n })}}})]:_vm._e()],2):_vm._e()]})],2):_vm._e(),_c('div',{staticClass:\"_listOfProjects\"},[_c('transition',{attrs:{\"name\":\"scaleInFade\",\"mode\":\"out-in\"}},[(_vm.active_filters.length > 0)?_c('transition-group',{staticClass:\"_tagList\",attrs:{\"tag\":\"section\",\"name\":\"listComplete\",\"appear\":\"\"}},[_vm._l((_vm.active_filters),function(af){return [(af.filter_type === '$status')?_c('StatusTag',{key:af.value,attrs:{\"status\":af.value,\"can_edit\":false,\"mode\":'disable'},on:{\"click\":function($event){return _vm.toggleFilter({\n filter_type: '$status',\n value: af.value,\n })}}}):_c('SingleTag',{key:af.value,attrs:{\"tag_type\":af.filter_type,\"tag_str\":af.value,\"mode\":'disable'},on:{\"tagClick\":function($event){return _vm.toggleFilter({\n filter_type: af.filter_type,\n value: af.value,\n })}}})]}),(_vm.active_filters.length > 1)?_c('button',{key:'reset_all',staticClass:\"u-buttonLink\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.resetFilters}},[_vm._v(\" \"+_vm._s(_vm.$t(\"reset_all\"))+\" \")]):_vm._e()],2):_vm._e()],1),_c('ProjectsList',{attrs:{\"projects\":_vm.filtered_projects,\"projects_pinned\":_vm.projects_pinned,\"path\":_vm.space_path,\"display_original_space\":_vm.display_original_space,\"can_edit\":_vm.can_edit},on:{\"toggleFilter\":function($event){return _vm.toggleFilter($event)}}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_projectsList\"},[(_vm.projects.length === 0)?_c('div',{key:'noprojects',staticClass:\"u-instructions _noProjects\"},[_vm._v(\" \"+_vm._s(_vm.$t(\"no_projects\"))+\" \")]):[_c('PinnedNonpinnedFolder',{attrs:{\"field_name\":'projects_pinned',\"label\":_vm.$t('projects_pinned'),\"content\":_vm.projects_pinned,\"path\":_vm.path,\"folders\":_vm.projects,\"can_edit\":_vm.can_edit},scopedSlots:_vm._u([{key:\"default\",fn:function(slotProps){return [_c('ProjectPresentation',{attrs:{\"project\":slotProps.item,\"context\":'list',\"display_original_space\":_vm.display_original_space,\"can_edit\":false},on:{\"toggleFilter\":function($event){return _vm.$emit('toggleFilter', $event)}}})]}}])})]],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectsList.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectsList.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectsList.vue?vue&type=template&id=715c75cc&scoped=true\"\nimport script from \"./ProjectsList.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectsList.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectsList.vue?vue&type=style&index=0&id=715c75cc&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"715c75cc\",\n null\n \n)\n\nexport default component.exports","\n \n\n
\n \n 0\"\n tag=\"section\"\n name=\"listComplete\"\n appear\n >\n \n 1\"\n class=\"u-buttonLink\"\n @click=\"resetFilters\"\n :key=\"'reset_all'\"\n >\n {{ $t(\"reset_all\") }}\n \n \n \n \n
\n \n \n\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectsListWithFilter.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProjectsListWithFilter.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ProjectsListWithFilter.vue?vue&type=template&id=62a09424&scoped=true\"\nimport script from \"./ProjectsListWithFilter.vue?vue&type=script&lang=js\"\nexport * from \"./ProjectsListWithFilter.vue?vue&type=script&lang=js\"\nimport style0 from \"./ProjectsListWithFilter.vue?vue&type=style&index=0&id=62a09424&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"62a09424\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_spacePresentation\",class:{\n 'is--own': _vm.is_own_space,\n 'u-card2': _vm.context === 'list',\n },attrs:{\"data-context\":_vm.context}},[_c('div',{staticClass:\"_spaceCover\"},[_c('CoverField',{attrs:{\"context\":_vm.context,\"cover\":_vm.space.$cover,\"path\":_vm.space.$path,\"can_edit\":_vm.can_edit}}),_c('transition',{attrs:{\"name\":\"toggleLock\",\"mode\":\"out-in\"}},[(_vm.space.$status === 'private')?_c('StatusTag',{key:_vm.space.$status,staticClass:\"_icon\",attrs:{\"show_label\":false,\"status\":_vm.space.$status,\"can_edit\":false,\"mode\":'inactive'}}):_vm._e()],1)],1),_c('div',{staticClass:\"_textBloc\"},[(_vm.can_edit)?_c('div',{staticClass:\"_statusOptions\"},[_c('StatusTag',{attrs:{\"status\":_vm.space.$status || 'public',\"status_options\":['public', 'private'],\"path\":_vm.space.$path,\"can_edit\":_vm.can_edit}}),_c('DropDown',{attrs:{\"right\":true}},[_c('DownloadFolder',{attrs:{\"path\":_vm.space.$path}}),_c('RemoveMenu',{attrs:{\"remove_text\":_vm.$t('remove_space')},on:{\"remove\":_vm.removeSpace}})],1)],1):_vm._e(),_c('div',{},[_c('TitleField',{staticClass:\"_title\",attrs:{\"field_name\":'title',\"label\":_vm.context === 'full' ? _vm.$t('title') : '',\"tag\":_vm.context === 'full' ? 'h1' : 'h2',\"content\":_vm.space.title,\"path\":_vm.space.$path,\"maxlength\":280,\"can_edit\":_vm.can_edit}}),(_vm.can_edit || _vm.space.subtitle)?_c('TitleField',{staticClass:\"_subtitle\",attrs:{\"field_name\":'subtitle',\"label\":_vm.context === 'full' && _vm.can_edit && !_vm.space.subtitle\n ? _vm.$t('subtitle')\n : '',\"content\":_vm.space.subtitle,\"path\":_vm.space.$path,\"maxlength\":280,\"can_edit\":_vm.can_edit}}):_vm._e()],1),(_vm.context === 'full' && (_vm.space.description || _vm.can_edit))?_c('CollaborativeEditor2',{staticClass:\"_description\",attrs:{\"label\":_vm.context === 'full' ? _vm.$t('description') : '',\"path\":_vm.space.$path,\"field_to_edit\":'description',\"custom_formats\":['bold', 'italic', 'link'],\"content\":_vm.space.description,\"is_collaborative\":false,\"can_edit\":_vm.can_edit}}):_vm._e(),(_vm.context === 'full')?[_c('AdminsAndContributorsField',{attrs:{\"folder\":_vm.space,\"can_edit\":_vm.can_edit,\"admin_label\":_vm.$t('referent'),\"admin_instructions\":_vm.$t('space_admin_instructions'),\"contrib_instructions\":_vm.$t('space_contrib_instructions')}})]:_vm._e()],2),(_vm.context === 'list')?_c('router-link',{staticClass:\"_openSpace\",attrs:{\"to\":{ path: _vm.createURLFromPath(_vm.space.$path) },\"title\":_vm.$t('open') + ' ' + _vm.space.title}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpacePresentation.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpacePresentation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SpacePresentation.vue?vue&type=template&id=e8b60a36&scoped=true\"\nimport script from \"./SpacePresentation.vue?vue&type=script&lang=js\"\nexport * from \"./SpacePresentation.vue?vue&type=script&lang=js\"\nimport style0 from \"./SpacePresentation.vue?vue&type=style&index=0&id=e8b60a36&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e8b60a36\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"_spaceView\"},[(_vm.is_loading)?_c('div',{key:\"loader\",staticClass:\"u-divCentered\"},[_c('LoaderSpinner')],1):(_vm.fetch_space_error_message)?_c('div',{key:\"err\"},[_c('div',{staticClass:\"u-instructions _errNotice\"},[_vm._v(\" \"+_vm._s(_vm.fetch_space_error_message)+\" \")])]):(_vm.space)?_c('div',[_c('div',{staticClass:\"_topSpace\"},[_c('SpacePresentation',{attrs:{\"space\":_vm.space,\"context\":'full',\"can_edit\":_vm.can_edit_space}})],1),(false)?_c('ProjectsTester',{attrs:{\"path\":_vm.projects_path}}):_vm._e(),_c('div',{staticClass:\"_projectsList\"},[_c('div',{staticClass:\"u-sameRow u-spacingBottom\"},[_c('DLabel',{attrs:{\"str\":_vm.$t('list_of_projects'),\"tag\":'h2'}})],1),(_vm.projects !== undefined)?_c('ProjectsListWithFilter',{attrs:{\"projects_pinned\":_vm.space.projects_pinned,\"space_path\":_vm.space.$path,\"projects\":_vm.projects,\"can_edit\":_vm.can_edit_space}},[(_vm.can_contribute_to_space)?_c('button',{staticClass:\"u-button u-button_red u-button_small\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_create_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"plus\",\"label\":_vm.$t('create')}}),_vm._v(\" \"+_vm._s(_vm.$t(\"create\"))+\" \")],1):_vm._e(),(_vm.can_contribute_to_space)?_c('button',{staticClass:\"u-button u-button_red u-button_small\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.show_import_modal = true}}},[_c('b-icon',{attrs:{\"icon\":\"upload\",\"label\":_vm.$t('import')}}),_vm._v(\" \"+_vm._s(_vm.$t(\"import_a_project\"))+\" \")],1):_vm._e()]):_vm._e(),(_vm.show_create_modal)?_c('CreateFolder',{attrs:{\"modal_name\":_vm.$t('create_a_project'),\"path\":_vm.projects_path,\"default_folder_status\":'draft'},on:{\"close\":function($event){_vm.show_create_modal = false},\"openNew\":_vm.openNewProject}}):_vm._e(),(_vm.show_import_modal)?_c('ImportFolder',{attrs:{\"modal_name\":_vm.$t('import_a_project'),\"path\":_vm.projects_path},on:{\"close\":function($event){_vm.show_import_modal = false},\"openNew\":_vm.openNewProject}}):_vm._e()],1)],1):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpaceView.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js??clonedRuleSet-37.use[1]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./SpaceView.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./SpaceView.vue?vue&type=template&id=4396fb69&scoped=true\"\nimport script from \"./SpaceView.vue?vue&type=script&lang=js\"\nexport * from \"./SpaceView.vue?vue&type=script&lang=js\"\nimport style0 from \"./SpaceView.vue?vue&type=style&index=0&id=4396fb69&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4396fb69\",\n null\n \n)\n\nexport default component.exports","/**\n * matchesSelector v2.0.2\n * matchesSelector( element, '.selector' )\n * MIT license\n */\n\n/*jshint browser: true, strict: true, undef: true, unused: true */\n\n( function( window, factory ) {\n /*global define: false, module: false */\n 'use strict';\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.matchesSelector = factory();\n }\n\n}( window, function factory() {\n 'use strict';\n\n var matchesMethod = ( function() {\n var ElemProto = window.Element.prototype;\n // check for the standard method name first\n if ( ElemProto.matches ) {\n return 'matches';\n }\n // check un-prefixed\n if ( ElemProto.matchesSelector ) {\n return 'matchesSelector';\n }\n // check vendor prefixes\n var prefixes = [ 'webkit', 'moz', 'ms', 'o' ];\n\n for ( var i=0; i < prefixes.length; i++ ) {\n var prefix = prefixes[i];\n var method = prefix + 'MatchesSelector';\n if ( ElemProto[ method ] ) {\n return method;\n }\n }\n })();\n\n return function matchesSelector( elem, selector ) {\n return elem[ matchesMethod ]( selector );\n };\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/*!\n * Unipointer v2.4.0\n * base class for doing one thing with pointer event\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /* jshint strict: false */ /*global define, module, require */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.Unipointer = factory(\n window,\n window.EvEmitter\n );\n }\n\n}( window, function factory( window, EvEmitter ) {\n\n'use strict';\n\nfunction noop() {}\n\nfunction Unipointer() {}\n\n// inherit EvEmitter\nvar proto = Unipointer.prototype = Object.create( EvEmitter.prototype );\n\nproto.bindStartEvent = function( elem ) {\n this._bindStartEvent( elem, true );\n};\n\nproto.unbindStartEvent = function( elem ) {\n this._bindStartEvent( elem, false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd - remove if falsey\n */\nproto._bindStartEvent = function( elem, isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n\n // default to mouse events\n var startEvent = 'mousedown';\n if ( 'ontouchstart' in window ) {\n // HACK prefer Touch Events as you can preventDefault on touchstart to\n // disable scroll in iOS & mobile Chrome metafizzy/flickity#1177\n startEvent = 'touchstart';\n } else if ( window.PointerEvent ) {\n // Pointer Events\n startEvent = 'pointerdown';\n }\n elem[ bindMethod ]( startEvent, this );\n};\n\n// trigger handler methods for events\nproto.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// returns the touch that we're keeping track of\nproto.getTouch = function( touches ) {\n for ( var i=0; i < touches.length; i++ ) {\n var touch = touches[i];\n if ( touch.identifier == this.pointerIdentifier ) {\n return touch;\n }\n }\n};\n\n// ----- start event ----- //\n\nproto.onmousedown = function( event ) {\n // dismiss clicks from right or middle buttons\n var button = event.button;\n if ( button && ( button !== 0 && button !== 1 ) ) {\n return;\n }\n this._pointerDown( event, event );\n};\n\nproto.ontouchstart = function( event ) {\n this._pointerDown( event, event.changedTouches[0] );\n};\n\nproto.onpointerdown = function( event ) {\n this._pointerDown( event, event );\n};\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto._pointerDown = function( event, pointer ) {\n // dismiss right click and other pointers\n // button = 0 is okay, 1-4 not\n if ( event.button || this.isPointerDown ) {\n return;\n }\n\n this.isPointerDown = true;\n // save pointer identifier to match up touch events\n this.pointerIdentifier = pointer.pointerId !== undefined ?\n // pointerId for pointer events, touch.indentifier for touch events\n pointer.pointerId : pointer.identifier;\n\n this.pointerDown( event, pointer );\n};\n\nproto.pointerDown = function( event, pointer ) {\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// hash of events to be bound after start event\nvar postStartEvents = {\n mousedown: [ 'mousemove', 'mouseup' ],\n touchstart: [ 'touchmove', 'touchend', 'touchcancel' ],\n pointerdown: [ 'pointermove', 'pointerup', 'pointercancel' ],\n};\n\nproto._bindPostStartEvents = function( event ) {\n if ( !event ) {\n return;\n }\n // get proper events to match start event\n var events = postStartEvents[ event.type ];\n // bind events to node\n events.forEach( function( eventName ) {\n window.addEventListener( eventName, this );\n }, this );\n // save these arguments\n this._boundPointerEvents = events;\n};\n\nproto._unbindPostStartEvents = function() {\n // check for _boundEvents, in case dragEnd triggered twice (old IE8 bug)\n if ( !this._boundPointerEvents ) {\n return;\n }\n this._boundPointerEvents.forEach( function( eventName ) {\n window.removeEventListener( eventName, this );\n }, this );\n\n delete this._boundPointerEvents;\n};\n\n// ----- move event ----- //\n\nproto.onmousemove = function( event ) {\n this._pointerMove( event, event );\n};\n\nproto.onpointermove = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerMove( event, event );\n }\n};\n\nproto.ontouchmove = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerMove( event, touch );\n }\n};\n\n/**\n * pointer move\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerMove = function( event, pointer ) {\n this.pointerMove( event, pointer );\n};\n\n// public\nproto.pointerMove = function( event, pointer ) {\n this.emitEvent( 'pointerMove', [ event, pointer ] );\n};\n\n// ----- end event ----- //\n\n\nproto.onmouseup = function( event ) {\n this._pointerUp( event, event );\n};\n\nproto.onpointerup = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerUp( event, event );\n }\n};\n\nproto.ontouchend = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerUp( event, touch );\n }\n};\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerUp = function( event, pointer ) {\n this._pointerDone();\n this.pointerUp( event, pointer );\n};\n\n// public\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n};\n\n// ----- pointer done ----- //\n\n// triggered on pointer up & pointer cancel\nproto._pointerDone = function() {\n this._pointerReset();\n this._unbindPostStartEvents();\n this.pointerDone();\n};\n\nproto._pointerReset = function() {\n // reset properties\n this.isPointerDown = false;\n delete this.pointerIdentifier;\n};\n\nproto.pointerDone = noop;\n\n// ----- pointer cancel ----- //\n\nproto.onpointercancel = function( event ) {\n if ( event.pointerId == this.pointerIdentifier ) {\n this._pointerCancel( event, event );\n }\n};\n\nproto.ontouchcancel = function( event ) {\n var touch = this.getTouch( event.changedTouches );\n if ( touch ) {\n this._pointerCancel( event, touch );\n }\n};\n\n/**\n * pointer cancel\n * @param {Event} event\n * @param {Event or Touch} pointer\n * @private\n */\nproto._pointerCancel = function( event, pointer ) {\n this._pointerDone();\n this.pointerCancel( event, pointer );\n};\n\n// public\nproto.pointerCancel = function( event, pointer ) {\n this.emitEvent( 'pointerCancel', [ event, pointer ] );\n};\n\n// ----- ----- //\n\n// utility function for getting x/y coords from event\nUnipointer.getPointerPoint = function( pointer ) {\n return {\n x: pointer.pageX,\n y: pointer.pageY\n };\n};\n\n// ----- ----- //\n\nreturn Unipointer;\n\n}));\n","/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/**\n * Fizzy UI utils v2.0.7\n * MIT license\n */\n\n/*jshint browser: true, undef: true, unused: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'desandro-matches-selector/matches-selector'\n ], function( matchesSelector ) {\n return factory( window, matchesSelector );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('desandro-matches-selector')\n );\n } else {\n // browser global\n window.fizzyUIUtils = factory(\n window,\n window.matchesSelector\n );\n }\n\n}( window, function factory( window, matchesSelector ) {\n\n'use strict';\n\nvar utils = {};\n\n// ----- extend ----- //\n\n// extends objects\nutils.extend = function( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n};\n\n// ----- modulo ----- //\n\nutils.modulo = function( num, div ) {\n return ( ( num % div ) + div ) % div;\n};\n\n// ----- makeArray ----- //\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nutils.makeArray = function( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n // return empty array if undefined or null. #6\n if ( obj === null || obj === undefined ) {\n return [];\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n};\n\n// ----- removeFrom ----- //\n\nutils.removeFrom = function( ary, obj ) {\n var index = ary.indexOf( obj );\n if ( index != -1 ) {\n ary.splice( index, 1 );\n }\n};\n\n// ----- getParent ----- //\n\nutils.getParent = function( elem, selector ) {\n while ( elem.parentNode && elem != document.body ) {\n elem = elem.parentNode;\n if ( matchesSelector( elem, selector ) ) {\n return elem;\n }\n }\n};\n\n// ----- getQueryElement ----- //\n\n// use element as selector string\nutils.getQueryElement = function( elem ) {\n if ( typeof elem == 'string' ) {\n return document.querySelector( elem );\n }\n return elem;\n};\n\n// ----- handleEvent ----- //\n\n// enable .ontype to trigger from .addEventListener( elem, 'type' )\nutils.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\n// ----- filterFindElements ----- //\n\nutils.filterFindElements = function( elems, selector ) {\n // make array of elems\n elems = utils.makeArray( elems );\n var ffElems = [];\n\n elems.forEach( function( elem ) {\n // check that elem is an actual element\n if ( !( elem instanceof HTMLElement ) ) {\n return;\n }\n // add elem if no selector\n if ( !selector ) {\n ffElems.push( elem );\n return;\n }\n // filter & find items if we have a selector\n // filter\n if ( matchesSelector( elem, selector ) ) {\n ffElems.push( elem );\n }\n // find children\n var childElems = elem.querySelectorAll( selector );\n // concat childElems to filterFound array\n for ( var i=0; i < childElems.length; i++ ) {\n ffElems.push( childElems[i] );\n }\n });\n\n return ffElems;\n};\n\n// ----- debounceMethod ----- //\n\nutils.debounceMethod = function( _class, methodName, threshold ) {\n threshold = threshold || 100;\n // original method\n var method = _class.prototype[ methodName ];\n var timeoutName = methodName + 'Timeout';\n\n _class.prototype[ methodName ] = function() {\n var timeout = this[ timeoutName ];\n clearTimeout( timeout );\n\n var args = arguments;\n var _this = this;\n this[ timeoutName ] = setTimeout( function() {\n method.apply( _this, args );\n delete _this[ timeoutName ];\n }, threshold );\n };\n};\n\n// ----- docReady ----- //\n\nutils.docReady = function( callback ) {\n var readyState = document.readyState;\n if ( readyState == 'complete' || readyState == 'interactive' ) {\n // do async to allow for other scripts to run. metafizzy/flickity#441\n setTimeout( callback );\n } else {\n document.addEventListener( 'DOMContentLoaded', callback );\n }\n};\n\n// ----- htmlInit ----- //\n\n// http://jamesroberts.name/blog/2010/02/22/string-functions-for-javascript-trim-to-camel-case-to-dashed-and-to-underscore/\nutils.toDashed = function( str ) {\n return str.replace( /(.)([A-Z])/g, function( match, $1, $2 ) {\n return $1 + '-' + $2;\n }).toLowerCase();\n};\n\nvar console = window.console;\n/**\n * allow user to initialize classes via [data-namespace] or .js-namespace class\n * htmlInit( Widget, 'widgetName' )\n * options are parsed from data-namespace-options\n */\nutils.htmlInit = function( WidgetClass, namespace ) {\n utils.docReady( function() {\n var dashedNamespace = utils.toDashed( namespace );\n var dataAttr = 'data-' + dashedNamespace;\n var dataAttrElems = document.querySelectorAll( '[' + dataAttr + ']' );\n var jsDashElems = document.querySelectorAll( '.js-' + dashedNamespace );\n var elems = utils.makeArray( dataAttrElems )\n .concat( utils.makeArray( jsDashElems ) );\n var dataOptionsAttr = dataAttr + '-options';\n var jQuery = window.jQuery;\n\n elems.forEach( function( elem ) {\n var attr = elem.getAttribute( dataAttr ) ||\n elem.getAttribute( dataOptionsAttr );\n var options;\n try {\n options = attr && JSON.parse( attr );\n } catch ( error ) {\n // log error, do not initialize\n if ( console ) {\n console.error( 'Error parsing ' + dataAttr + ' on ' + elem.className +\n ': ' + error );\n }\n return;\n }\n // initialize\n var instance = new WidgetClass( elem, options );\n // make available via $().data('namespace')\n if ( jQuery ) {\n jQuery.data( elem, namespace, instance );\n }\n });\n\n });\n};\n\n// ----- ----- //\n\nreturn utils;\n\n}));\n","// add, remove cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n\n'use strict';\n\n// append cells to a document fragment\nfunction getCellsFragment( cells ) {\n var fragment = document.createDocumentFragment();\n cells.forEach( function( cell ) {\n fragment.appendChild( cell.element );\n } );\n return fragment;\n}\n\n// -------------------------- add/remove cell prototype -------------------------- //\n\nvar proto = Flickity.prototype;\n\n/**\n * Insert, prepend, or append cells\n * @param {[Element, Array, NodeList]} elems - Elements to insert\n * @param {Integer} index - Zero-based number to insert\n */\nproto.insert = function( elems, index ) {\n var cells = this._makeCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n var len = this.cells.length;\n // default to append\n index = index === undefined ? len : index;\n // add cells with document fragment\n var fragment = getCellsFragment( cells );\n // append to slider\n var isAppend = index == len;\n if ( isAppend ) {\n this.slider.appendChild( fragment );\n } else {\n var insertCellElement = this.cells[ index ].element;\n this.slider.insertBefore( fragment, insertCellElement );\n }\n // add to this.cells\n if ( index === 0 ) {\n // prepend, add to start\n this.cells = cells.concat( this.cells );\n } else if ( isAppend ) {\n // append, add to end\n this.cells = this.cells.concat( cells );\n } else {\n // insert in this.cells\n var endCells = this.cells.splice( index, len - index );\n this.cells = this.cells.concat( cells ).concat( endCells );\n }\n\n this._sizeCells( cells );\n this.cellChange( index, true );\n};\n\nproto.append = function( elems ) {\n this.insert( elems, this.cells.length );\n};\n\nproto.prepend = function( elems ) {\n this.insert( elems, 0 );\n};\n\n/**\n * Remove cells\n * @param {[Element, Array, NodeList]} elems - ELements to remove\n */\nproto.remove = function( elems ) {\n var cells = this.getCells( elems );\n if ( !cells || !cells.length ) {\n return;\n }\n\n var minCellIndex = this.cells.length - 1;\n // remove cells from collection & DOM\n cells.forEach( function( cell ) {\n cell.remove();\n var index = this.cells.indexOf( cell );\n minCellIndex = Math.min( index, minCellIndex );\n utils.removeFrom( this.cells, cell );\n }, this );\n\n this.cellChange( minCellIndex, true );\n};\n\n/**\n * logic to be run after a cell's size changes\n * @param {Element} elem - cell's element\n */\nproto.cellSizeChange = function( elem ) {\n var cell = this.getCell( elem );\n if ( !cell ) {\n return;\n }\n cell.getSize();\n\n var index = this.cells.indexOf( cell );\n this.cellChange( index );\n};\n\n/**\n * logic any time a cell is changed: added, removed, or size changed\n * @param {Integer} changedCellIndex - index of the changed cell, optional\n * @param {Boolean} isPositioningSlider - Positions slider after selection\n */\nproto.cellChange = function( changedCellIndex, isPositioningSlider ) {\n var prevSelectedElem = this.selectedElement;\n this._positionCells( changedCellIndex );\n this._getWrapShiftCells();\n this.setGallerySize();\n // update selectedIndex\n // try to maintain position & select previous selected element\n var cell = this.getCell( prevSelectedElem );\n if ( cell ) {\n this.selectedIndex = this.getCellSlideIndex( cell );\n }\n this.selectedIndex = Math.min( this.slides.length - 1, this.selectedIndex );\n\n this.emitEvent( 'cellChange', [ changedCellIndex ] );\n // position slider\n this.select( this.selectedIndex );\n // do not position slider after lazy load\n if ( isPositioningSlider ) {\n this.positionSliderAtSelected();\n }\n};\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// animate\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'fizzy-ui-utils/utils',\n ], function( utils ) {\n return factory( window, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.animatePrototype = factory(\n window,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, utils ) {\n\n'use strict';\n\n// -------------------------- animate -------------------------- //\n\nvar proto = {};\n\nproto.startAnimation = function() {\n if ( this.isAnimating ) {\n return;\n }\n\n this.isAnimating = true;\n this.restingFrames = 0;\n this.animate();\n};\n\nproto.animate = function() {\n this.applyDragForce();\n this.applySelectedAttraction();\n\n var previousX = this.x;\n\n this.integratePhysics();\n this.positionSlider();\n this.settle( previousX );\n // animate next frame\n if ( this.isAnimating ) {\n var _this = this;\n requestAnimationFrame( function animateFrame() {\n _this.animate();\n } );\n }\n};\n\nproto.positionSlider = function() {\n var x = this.x;\n // wrap position around\n if ( this.options.wrapAround && this.cells.length > 1 ) {\n x = utils.modulo( x, this.slideableWidth );\n x -= this.slideableWidth;\n this.shiftWrapCells( x );\n }\n\n this.setTranslateX( x, this.isAnimating );\n this.dispatchScrollEvent();\n};\n\nproto.setTranslateX = function( x, is3d ) {\n x += this.cursorPosition;\n // reverse if right-to-left and using transform\n x = this.options.rightToLeft ? -x : x;\n var translateX = this.getPositionValue( x );\n // use 3D transforms for hardware acceleration on iOS\n // but use 2D when settled, for better font-rendering\n this.slider.style.transform = is3d ?\n 'translate3d(' + translateX + ',0,0)' : 'translateX(' + translateX + ')';\n};\n\nproto.dispatchScrollEvent = function() {\n var firstSlide = this.slides[0];\n if ( !firstSlide ) {\n return;\n }\n var positionX = -this.x - firstSlide.target;\n var progress = positionX / this.slidesWidth;\n this.dispatchEvent( 'scroll', null, [ progress, positionX ] );\n};\n\nproto.positionSliderAtSelected = function() {\n if ( !this.cells.length ) {\n return;\n }\n this.x = -this.selectedSlide.target;\n this.velocity = 0; // stop wobble\n this.positionSlider();\n};\n\nproto.getPositionValue = function( position ) {\n if ( this.options.percentPosition ) {\n // percent position, round to 2 digits, like 12.34%\n return ( Math.round( ( position / this.size.innerWidth ) * 10000 ) * 0.01 ) + '%';\n } else {\n // pixel positioning\n return Math.round( position ) + 'px';\n }\n};\n\nproto.settle = function( previousX ) {\n // keep track of frames where x hasn't moved\n var isResting = !this.isPointerDown &&\n Math.round( this.x * 100 ) == Math.round( previousX * 100 );\n if ( isResting ) {\n this.restingFrames++;\n }\n // stop animating if resting for 3 or more frames\n if ( this.restingFrames > 2 ) {\n this.isAnimating = false;\n delete this.isFreeScrolling;\n // render position with translateX when settled\n this.positionSlider();\n this.dispatchEvent( 'settle', null, [ this.selectedIndex ] );\n }\n};\n\nproto.shiftWrapCells = function( x ) {\n // shift before cells\n var beforeGap = this.cursorPosition + x;\n this._shiftCells( this.beforeShiftCells, beforeGap, -1 );\n // shift after cells\n var afterGap = this.size.innerWidth - ( x + this.slideableWidth + this.cursorPosition );\n this._shiftCells( this.afterShiftCells, afterGap, 1 );\n};\n\nproto._shiftCells = function( cells, gap, shift ) {\n for ( var i = 0; i < cells.length; i++ ) {\n var cell = cells[i];\n var cellShift = gap > 0 ? shift : 0;\n cell.wrapShift( cellShift );\n gap -= cell.size.outerWidth;\n }\n};\n\nproto._unshiftCells = function( cells ) {\n if ( !cells || !cells.length ) {\n return;\n }\n for ( var i = 0; i < cells.length; i++ ) {\n cells[i].wrapShift( 0 );\n }\n};\n\n// -------------------------- physics -------------------------- //\n\nproto.integratePhysics = function() {\n this.x += this.velocity;\n this.velocity *= this.getFrictionFactor();\n};\n\nproto.applyForce = function( force ) {\n this.velocity += force;\n};\n\nproto.getFrictionFactor = function() {\n return 1 - this.options[ this.isFreeScrolling ? 'freeScrollFriction' : 'friction' ];\n};\n\nproto.getRestingPosition = function() {\n // my thanks to Steven Wittens, who simplified this math greatly\n return this.x + this.velocity / ( 1 - this.getFrictionFactor() );\n};\n\nproto.applyDragForce = function() {\n if ( !this.isDraggable || !this.isPointerDown ) {\n return;\n }\n // change the position to drag position by applying force\n var dragVelocity = this.dragX - this.x;\n var dragForce = dragVelocity - this.velocity;\n this.applyForce( dragForce );\n};\n\nproto.applySelectedAttraction = function() {\n // do not attract if pointer down or no slides\n var dragDown = this.isDraggable && this.isPointerDown;\n if ( dragDown || this.isFreeScrolling || !this.slides.length ) {\n return;\n }\n var distance = this.selectedSlide.target * -1 - this.x;\n var force = distance * this.options.selectedAttraction;\n this.applyForce( force );\n};\n\nreturn proto;\n\n} ) );\n","// Flickity.Cell\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'get-size/get-size',\n ], function( getSize ) {\n return factory( window, getSize );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('get-size')\n );\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Cell = factory(\n window,\n window.getSize\n );\n }\n\n}( window, function factory( window, getSize ) {\n\n'use strict';\n\nfunction Cell( elem, parent ) {\n this.element = elem;\n this.parent = parent;\n\n this.create();\n}\n\nvar proto = Cell.prototype;\n\nproto.create = function() {\n this.element.style.position = 'absolute';\n this.element.setAttribute( 'aria-hidden', 'true' );\n this.x = 0;\n this.shift = 0;\n this.element.style[ this.parent.originSide ] = 0;\n};\n\nproto.destroy = function() {\n // reset style\n this.unselect();\n this.element.style.position = '';\n var side = this.parent.originSide;\n this.element.style[ side ] = '';\n this.element.style.transform = '';\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n};\n\nproto.setPosition = function( x ) {\n this.x = x;\n this.updateTarget();\n this.renderPosition( x );\n};\n\n// setDefaultTarget v1 method, backwards compatibility, remove in v3\nproto.updateTarget = proto.setDefaultTarget = function() {\n var marginProperty = this.parent.originSide == 'left' ? 'marginLeft' : 'marginRight';\n this.target = this.x + this.size[ marginProperty ] +\n this.size.width * this.parent.cellAlign;\n};\n\nproto.renderPosition = function( x ) {\n // render position of cell with in slider\n var sideOffset = this.parent.originSide === 'left' ? 1 : -1;\n\n var adjustedX = this.parent.options.percentPosition ?\n x * sideOffset * ( this.parent.size.innerWidth / this.size.width ) :\n x * sideOffset;\n\n this.element.style.transform = 'translateX(' +\n this.parent.getPositionValue( adjustedX ) + ')';\n};\n\nproto.select = function() {\n this.element.classList.add('is-selected');\n this.element.removeAttribute('aria-hidden');\n};\n\nproto.unselect = function() {\n this.element.classList.remove('is-selected');\n this.element.setAttribute( 'aria-hidden', 'true' );\n};\n\n/**\n * @param {Integer} shift - 0, 1, or -1\n */\nproto.wrapShift = function( shift ) {\n this.shift = shift;\n this.renderPosition( this.x + this.parent.slideableWidth * shift );\n};\n\nproto.remove = function() {\n this.element.parentNode.removeChild( this.element );\n};\n\nreturn Cell;\n\n} ) );\n","// drag\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unidragger/unidragger',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unidragger, utils ) {\n return factory( window, Flickity, Unidragger, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unidragger'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n window.Flickity = factory(\n window,\n window.Flickity,\n window.Unidragger,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unidragger, utils ) {\n\n'use strict';\n\n// ----- defaults ----- //\n\nutils.extend( Flickity.defaults, {\n draggable: '>1',\n dragThreshold: 3,\n} );\n\n// ----- create ----- //\n\nFlickity.createMethods.push('_createDrag');\n\n// -------------------------- drag prototype -------------------------- //\n\nvar proto = Flickity.prototype;\nutils.extend( proto, Unidragger.prototype );\nproto._touchActionValue = 'pan-y';\n\n// -------------------------- -------------------------- //\n\nproto._createDrag = function() {\n this.on( 'activate', this.onActivateDrag );\n this.on( 'uiChange', this._uiChangeDrag );\n this.on( 'deactivate', this.onDeactivateDrag );\n this.on( 'cellChange', this.updateDraggable );\n // TODO updateDraggable on resize? if groupCells & slides change\n};\n\nproto.onActivateDrag = function() {\n this.handles = [ this.viewport ];\n this.bindHandles();\n this.updateDraggable();\n};\n\nproto.onDeactivateDrag = function() {\n this.unbindHandles();\n this.element.classList.remove('is-draggable');\n};\n\nproto.updateDraggable = function() {\n // disable dragging if less than 2 slides. #278\n if ( this.options.draggable == '>1' ) {\n this.isDraggable = this.slides.length > 1;\n } else {\n this.isDraggable = this.options.draggable;\n }\n if ( this.isDraggable ) {\n this.element.classList.add('is-draggable');\n } else {\n this.element.classList.remove('is-draggable');\n }\n};\n\n// backwards compatibility\nproto.bindDrag = function() {\n this.options.draggable = true;\n this.updateDraggable();\n};\n\nproto.unbindDrag = function() {\n this.options.draggable = false;\n this.updateDraggable();\n};\n\nproto._uiChangeDrag = function() {\n delete this.isFreeScrolling;\n};\n\n// -------------------------- pointer events -------------------------- //\n\nproto.pointerDown = function( event, pointer ) {\n if ( !this.isDraggable ) {\n this._pointerDownDefault( event, pointer );\n return;\n }\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n\n this._pointerDownPreventDefault( event );\n this.pointerDownFocus( event );\n // blur\n if ( document.activeElement != this.element ) {\n // do not blur if already focused\n this.pointerDownBlur();\n }\n\n // stop if it was moving\n this.dragX = this.x;\n this.viewport.classList.add('is-pointer-down');\n // track scrolling\n this.pointerDownScroll = getScrollPosition();\n window.addEventListener( 'scroll', this );\n\n this._pointerDownDefault( event, pointer );\n};\n\n// default pointerDown logic, used for staticClick\nproto._pointerDownDefault = function( event, pointer ) {\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. #779\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n // bind move and end events\n this._bindPostStartEvents( event );\n this.dispatchEvent( 'pointerDown', event, [ pointer ] );\n};\n\nvar focusNodes = {\n INPUT: true,\n TEXTAREA: true,\n SELECT: true,\n};\n\nproto.pointerDownFocus = function( event ) {\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isFocusNode ) {\n this.focus();\n }\n};\n\nproto._pointerDownPreventDefault = function( event ) {\n var isTouchStart = event.type == 'touchstart';\n var isTouchPointer = event.pointerType == 'touch';\n var isFocusNode = focusNodes[ event.target.nodeName ];\n if ( !isTouchStart && !isTouchPointer && !isFocusNode ) {\n event.preventDefault();\n }\n};\n\n// ----- move ----- //\n\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > this.options.dragThreshold;\n};\n\n// ----- up ----- //\n\nproto.pointerUp = function( event, pointer ) {\n delete this.isTouchScrolling;\n this.viewport.classList.remove('is-pointer-down');\n this.dispatchEvent( 'pointerUp', event, [ pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto.pointerDone = function() {\n window.removeEventListener( 'scroll', this );\n delete this.pointerDownScroll;\n};\n\n// -------------------------- dragging -------------------------- //\n\nproto.dragStart = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n this.dragStartPosition = this.x;\n this.startAnimation();\n window.removeEventListener( 'scroll', this );\n this.dispatchEvent( 'dragStart', event, [ pointer ] );\n};\n\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.dispatchEvent( 'pointerMove', event, [ pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n if ( !this.isDraggable ) {\n return;\n }\n event.preventDefault();\n\n this.previousDragX = this.dragX;\n // reverse if right-to-left\n var direction = this.options.rightToLeft ? -1 : 1;\n if ( this.options.wrapAround ) {\n // wrap around move. #589\n moveVector.x %= this.slideableWidth;\n }\n var dragX = this.dragStartPosition + moveVector.x * direction;\n\n if ( !this.options.wrapAround && this.slides.length ) {\n // slow drag\n var originBound = Math.max( -this.slides[0].target, this.dragStartPosition );\n dragX = dragX > originBound ? ( dragX + originBound ) * 0.5 : dragX;\n var endBound = Math.min( -this.getLastSlide().target, this.dragStartPosition );\n dragX = dragX < endBound ? ( dragX + endBound ) * 0.5 : dragX;\n }\n\n this.dragX = dragX;\n\n this.dragMoveTime = new Date();\n this.dispatchEvent( 'dragMove', event, [ pointer, moveVector ] );\n};\n\nproto.dragEnd = function( event, pointer ) {\n if ( !this.isDraggable ) {\n return;\n }\n if ( this.options.freeScroll ) {\n this.isFreeScrolling = true;\n }\n // set selectedIndex based on where flick will end up\n var index = this.dragEndRestingSelect();\n\n if ( this.options.freeScroll && !this.options.wrapAround ) {\n // if free-scroll & not wrap around\n // do not free-scroll if going outside of bounding slides\n // so bounding slides can attract slider, and keep it in bounds\n var restingX = this.getRestingPosition();\n this.isFreeScrolling = -restingX > this.slides[0].target &&\n -restingX < this.getLastSlide().target;\n } else if ( !this.options.freeScroll && index == this.selectedIndex ) {\n // boost selection if selected index has not changed\n index += this.dragEndBoostSelect();\n }\n delete this.previousDragX;\n // apply selection\n // TODO refactor this, selecting here feels weird\n // HACK, set flag so dragging stays in correct direction\n this.isDragSelect = this.options.wrapAround;\n this.select( index );\n delete this.isDragSelect;\n this.dispatchEvent( 'dragEnd', event, [ pointer ] );\n};\n\nproto.dragEndRestingSelect = function() {\n var restingX = this.getRestingPosition();\n // how far away from selected slide\n var distance = Math.abs( this.getSlideDistance( -restingX, this.selectedIndex ) );\n // get closet resting going up and going down\n var positiveResting = this._getClosestResting( restingX, distance, 1 );\n var negativeResting = this._getClosestResting( restingX, distance, -1 );\n // use closer resting for wrap-around\n var index = positiveResting.distance < negativeResting.distance ?\n positiveResting.index : negativeResting.index;\n return index;\n};\n\n/**\n * given resting X and distance to selected cell\n * get the distance and index of the closest cell\n * @param {Number} restingX - estimated post-flick resting position\n * @param {Number} distance - distance to selected cell\n * @param {Integer} increment - +1 or -1, going up or down\n * @returns {Object} - { distance: {Number}, index: {Integer} }\n */\nproto._getClosestResting = function( restingX, distance, increment ) {\n var index = this.selectedIndex;\n var minDistance = Infinity;\n var condition = this.options.contain && !this.options.wrapAround ?\n // if contain, keep going if distance is equal to minDistance\n function( dist, minDist ) {\n return dist <= minDist;\n } : function( dist, minDist ) {\n return dist < minDist;\n };\n while ( condition( distance, minDistance ) ) {\n // measure distance to next cell\n index += increment;\n minDistance = distance;\n distance = this.getSlideDistance( -restingX, index );\n if ( distance === null ) {\n break;\n }\n distance = Math.abs( distance );\n }\n return {\n distance: minDistance,\n // selected was previous index\n index: index - increment,\n };\n};\n\n/**\n * measure distance between x and a slide target\n * @param {Number} x - horizontal position\n * @param {Integer} index - slide index\n * @returns {Number} - slide distance\n */\nproto.getSlideDistance = function( x, index ) {\n var len = this.slides.length;\n // wrap around if at least 2 slides\n var isWrapAround = this.options.wrapAround && len > 1;\n var slideIndex = isWrapAround ? utils.modulo( index, len ) : index;\n var slide = this.slides[ slideIndex ];\n if ( !slide ) {\n return null;\n }\n // add distance for wrap-around slides\n var wrap = isWrapAround ? this.slideableWidth * Math.floor( index/len ) : 0;\n return x - ( slide.target + wrap );\n};\n\nproto.dragEndBoostSelect = function() {\n // do not boost if no previousDragX or dragMoveTime\n if ( this.previousDragX === undefined || !this.dragMoveTime ||\n // or if drag was held for 100 ms\n new Date() - this.dragMoveTime > 100 ) {\n return 0;\n }\n\n var distance = this.getSlideDistance( -this.dragX, this.selectedIndex );\n var delta = this.previousDragX - this.dragX;\n if ( distance > 0 && delta > 0 ) {\n // boost to next if moving towards the right, and positive velocity\n return 1;\n } else if ( distance < 0 && delta < 0 ) {\n // boost to previous if moving towards the left, and negative velocity\n return -1;\n }\n return 0;\n};\n\n// ----- staticClick ----- //\n\nproto.staticClick = function( event, pointer ) {\n // get clickedCell, if cell was clicked\n var clickedCell = this.getParentCell( event.target );\n var cellElem = clickedCell && clickedCell.element;\n var cellIndex = clickedCell && this.cells.indexOf( clickedCell );\n this.dispatchEvent( 'staticClick', event, [ pointer, cellElem, cellIndex ] );\n};\n\n// ----- scroll ----- //\n\nproto.onscroll = function() {\n var scroll = getScrollPosition();\n var scrollMoveX = this.pointerDownScroll.x - scroll.x;\n var scrollMoveY = this.pointerDownScroll.y - scroll.y;\n // cancel click/tap if scroll is too much\n if ( Math.abs( scrollMoveX ) > 3 || Math.abs( scrollMoveY ) > 3 ) {\n this._pointerDone();\n }\n};\n\n// ----- utils ----- //\n\nfunction getScrollPosition() {\n return {\n x: window.pageXOffset,\n y: window.pageYOffset,\n };\n}\n\n// ----- ----- //\n\nreturn Flickity;\n\n} ) );\n","// Flickity main\n/* eslint-disable max-params */\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'get-size/get-size',\n 'fizzy-ui-utils/utils',\n './cell',\n './slide',\n './animate',\n ], function( EvEmitter, getSize, utils, Cell, Slide, animatePrototype ) {\n return factory( window, EvEmitter, getSize, utils, Cell, Slide, animatePrototype );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter'),\n require('get-size'),\n require('fizzy-ui-utils'),\n require('./cell'),\n require('./slide'),\n require('./animate')\n );\n } else {\n // browser global\n var _Flickity = window.Flickity;\n\n window.Flickity = factory(\n window,\n window.EvEmitter,\n window.getSize,\n window.fizzyUIUtils,\n _Flickity.Cell,\n _Flickity.Slide,\n _Flickity.animatePrototype\n );\n }\n\n}( window, function factory( window, EvEmitter, getSize,\n utils, Cell, Slide, animatePrototype ) {\n\n/* eslint-enable max-params */\n'use strict';\n\n// vars\nvar jQuery = window.jQuery;\nvar getComputedStyle = window.getComputedStyle;\nvar console = window.console;\n\nfunction moveElements( elems, toElem ) {\n elems = utils.makeArray( elems );\n while ( elems.length ) {\n toElem.appendChild( elems.shift() );\n }\n}\n\n// -------------------------- Flickity -------------------------- //\n\n// globally unique identifiers\nvar GUID = 0;\n// internal store of all Flickity intances\nvar instances = {};\n\nfunction Flickity( element, options ) {\n var queryElement = utils.getQueryElement( element );\n if ( !queryElement ) {\n if ( console ) {\n console.error( 'Bad element for Flickity: ' + ( queryElement || element ) );\n }\n return;\n }\n this.element = queryElement;\n // do not initialize twice on same element\n if ( this.element.flickityGUID ) {\n var instance = instances[ this.element.flickityGUID ];\n if ( instance ) instance.option( options );\n return instance;\n }\n\n // add jQuery\n if ( jQuery ) {\n this.$element = jQuery( this.element );\n }\n // options\n this.options = utils.extend( {}, this.constructor.defaults );\n this.option( options );\n\n // kick things off\n this._create();\n}\n\nFlickity.defaults = {\n accessibility: true,\n // adaptiveHeight: false,\n cellAlign: 'center',\n // cellSelector: undefined,\n // contain: false,\n freeScrollFriction: 0.075, // friction when free-scrolling\n friction: 0.28, // friction when selecting\n namespaceJQueryEvents: true,\n // initialIndex: 0,\n percentPosition: true,\n resize: true,\n selectedAttraction: 0.025,\n setGallerySize: true,\n // watchCSS: false,\n // wrapAround: false\n};\n\n// hash of methods triggered on _create()\nFlickity.createMethods = [];\n\nvar proto = Flickity.prototype;\n// inherit EventEmitter\nutils.extend( proto, EvEmitter.prototype );\n\nproto._create = function() {\n // add id for Flickity.data\n var id = this.guid = ++GUID;\n this.element.flickityGUID = id; // expando\n instances[ id ] = this; // associate via id\n // initial properties\n this.selectedIndex = 0;\n // how many frames slider has been in same position\n this.restingFrames = 0;\n // initial physics properties\n this.x = 0;\n this.velocity = 0;\n this.originSide = this.options.rightToLeft ? 'right' : 'left';\n // create viewport & slider\n this.viewport = document.createElement('div');\n this.viewport.className = 'flickity-viewport';\n this._createSlider();\n\n if ( this.options.resize || this.options.watchCSS ) {\n window.addEventListener( 'resize', this );\n }\n\n // add listeners from on option\n for ( var eventName in this.options.on ) {\n var listener = this.options.on[ eventName ];\n this.on( eventName, listener );\n }\n\n Flickity.createMethods.forEach( function( method ) {\n this[ method ]();\n }, this );\n\n if ( this.options.watchCSS ) {\n this.watchCSS();\n } else {\n this.activate();\n }\n\n};\n\n/**\n * set options\n * @param {Object} opts - options to extend\n */\nproto.option = function( opts ) {\n utils.extend( this.options, opts );\n};\n\nproto.activate = function() {\n if ( this.isActive ) {\n return;\n }\n this.isActive = true;\n this.element.classList.add('flickity-enabled');\n if ( this.options.rightToLeft ) {\n this.element.classList.add('flickity-rtl');\n }\n\n this.getSize();\n // move initial cell elements so they can be loaded as cells\n var cellElems = this._filterFindCellElements( this.element.children );\n moveElements( cellElems, this.slider );\n this.viewport.appendChild( this.slider );\n this.element.appendChild( this.viewport );\n // get cells from children\n this.reloadCells();\n\n if ( this.options.accessibility ) {\n // allow element to focusable\n this.element.tabIndex = 0;\n // listen for key presses\n this.element.addEventListener( 'keydown', this );\n }\n\n this.emitEvent('activate');\n this.selectInitialIndex();\n // flag for initial activation, for using initialIndex\n this.isInitActivated = true;\n // ready event. #493\n this.dispatchEvent('ready');\n};\n\n// slider positions the cells\nproto._createSlider = function() {\n // slider element does all the positioning\n var slider = document.createElement('div');\n slider.className = 'flickity-slider';\n slider.style[ this.originSide ] = 0;\n this.slider = slider;\n};\n\nproto._filterFindCellElements = function( elems ) {\n return utils.filterFindElements( elems, this.options.cellSelector );\n};\n\n// goes through all children\nproto.reloadCells = function() {\n // collection of item elements\n this.cells = this._makeCells( this.slider.children );\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n};\n\n/**\n * turn elements into Flickity.Cells\n * @param {[Array, NodeList, HTMLElement]} elems - elements to make into cells\n * @returns {Array} items - collection of new Flickity Cells\n */\nproto._makeCells = function( elems ) {\n var cellElems = this._filterFindCellElements( elems );\n\n // create new Flickity for collection\n var cells = cellElems.map( function( cellElem ) {\n return new Cell( cellElem, this );\n }, this );\n\n return cells;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.getLastSlide = function() {\n return this.slides[ this.slides.length - 1 ];\n};\n\n// positions all cells\nproto.positionCells = function() {\n // size all cells\n this._sizeCells( this.cells );\n // position all cells\n this._positionCells( 0 );\n};\n\n/**\n * position certain cells\n * @param {Integer} index - which cell to start with\n */\nproto._positionCells = function( index ) {\n index = index || 0;\n // also measure maxCellHeight\n // start 0 if positioning all cells\n this.maxCellHeight = index ? this.maxCellHeight || 0 : 0;\n var cellX = 0;\n // get cellX\n if ( index > 0 ) {\n var startCell = this.cells[ index - 1 ];\n cellX = startCell.x + startCell.size.outerWidth;\n }\n var len = this.cells.length;\n for ( var i = index; i < len; i++ ) {\n var cell = this.cells[i];\n cell.setPosition( cellX );\n cellX += cell.size.outerWidth;\n this.maxCellHeight = Math.max( cell.size.outerHeight, this.maxCellHeight );\n }\n // keep track of cellX for wrap-around\n this.slideableWidth = cellX;\n // slides\n this.updateSlides();\n // contain slides target\n this._containSlides();\n // update slidesWidth\n this.slidesWidth = len ? this.getLastSlide().target - this.slides[0].target : 0;\n};\n\n/**\n * cell.getSize() on multiple cells\n * @param {Array} cells - cells to size\n */\nproto._sizeCells = function( cells ) {\n cells.forEach( function( cell ) {\n cell.getSize();\n } );\n};\n\n// -------------------------- -------------------------- //\n\nproto.updateSlides = function() {\n this.slides = [];\n if ( !this.cells.length ) {\n return;\n }\n\n var slide = new Slide( this );\n this.slides.push( slide );\n var isOriginLeft = this.originSide == 'left';\n var nextMargin = isOriginLeft ? 'marginRight' : 'marginLeft';\n\n var canCellFit = this._getCanCellFit();\n\n this.cells.forEach( function( cell, i ) {\n // just add cell if first cell in slide\n if ( !slide.cells.length ) {\n slide.addCell( cell );\n return;\n }\n\n var slideWidth = ( slide.outerWidth - slide.firstMargin ) +\n ( cell.size.outerWidth - cell.size[ nextMargin ] );\n\n if ( canCellFit.call( this, i, slideWidth ) ) {\n slide.addCell( cell );\n } else {\n // doesn't fit, new slide\n slide.updateTarget();\n\n slide = new Slide( this );\n this.slides.push( slide );\n slide.addCell( cell );\n }\n }, this );\n // last slide\n slide.updateTarget();\n // update .selectedSlide\n this.updateSelectedSlide();\n};\n\nproto._getCanCellFit = function() {\n var groupCells = this.options.groupCells;\n if ( !groupCells ) {\n return function() {\n return false;\n };\n } else if ( typeof groupCells == 'number' ) {\n // group by number. 3 -> [0,1,2], [3,4,5], ...\n var number = parseInt( groupCells, 10 );\n return function( i ) {\n return ( i % number ) !== 0;\n };\n }\n // default, group by width of slide\n // parse '75%\n var percentMatch = typeof groupCells == 'string' &&\n groupCells.match( /^(\\d+)%$/ );\n var percent = percentMatch ? parseInt( percentMatch[1], 10 ) / 100 : 1;\n return function( i, slideWidth ) {\n /* eslint-disable-next-line no-invalid-this */\n return slideWidth <= ( this.size.innerWidth + 1 ) * percent;\n };\n};\n\n// alias _init for jQuery plugin .flickity()\nproto._init =\nproto.reposition = function() {\n this.positionCells();\n this.positionSliderAtSelected();\n};\n\nproto.getSize = function() {\n this.size = getSize( this.element );\n this.setCellAlign();\n this.cursorPosition = this.size.innerWidth * this.cellAlign;\n};\n\nvar cellAlignShorthands = {\n // cell align, then based on origin side\n center: {\n left: 0.5,\n right: 0.5,\n },\n left: {\n left: 0,\n right: 1,\n },\n right: {\n right: 0,\n left: 1,\n },\n};\n\nproto.setCellAlign = function() {\n var shorthand = cellAlignShorthands[ this.options.cellAlign ];\n this.cellAlign = shorthand ? shorthand[ this.originSide ] : this.options.cellAlign;\n};\n\nproto.setGallerySize = function() {\n if ( this.options.setGallerySize ) {\n var height = this.options.adaptiveHeight && this.selectedSlide ?\n this.selectedSlide.height : this.maxCellHeight;\n this.viewport.style.height = height + 'px';\n }\n};\n\nproto._getWrapShiftCells = function() {\n // only for wrap-around\n if ( !this.options.wrapAround ) {\n return;\n }\n // unshift previous cells\n this._unshiftCells( this.beforeShiftCells );\n this._unshiftCells( this.afterShiftCells );\n // get before cells\n // initial gap\n var gapX = this.cursorPosition;\n var cellIndex = this.cells.length - 1;\n this.beforeShiftCells = this._getGapCells( gapX, cellIndex, -1 );\n // get after cells\n // ending gap between last cell and end of gallery viewport\n gapX = this.size.innerWidth - this.cursorPosition;\n // start cloning at first cell, working forwards\n this.afterShiftCells = this._getGapCells( gapX, 0, 1 );\n};\n\nproto._getGapCells = function( gapX, cellIndex, increment ) {\n // keep adding cells until the cover the initial gap\n var cells = [];\n while ( gapX > 0 ) {\n var cell = this.cells[ cellIndex ];\n if ( !cell ) {\n break;\n }\n cells.push( cell );\n cellIndex += increment;\n gapX -= cell.size.outerWidth;\n }\n return cells;\n};\n\n// ----- contain ----- //\n\n// contain cell targets so no excess sliding\nproto._containSlides = function() {\n if ( !this.options.contain || this.options.wrapAround || !this.cells.length ) {\n return;\n }\n var isRightToLeft = this.options.rightToLeft;\n var beginMargin = isRightToLeft ? 'marginRight' : 'marginLeft';\n var endMargin = isRightToLeft ? 'marginLeft' : 'marginRight';\n var contentWidth = this.slideableWidth - this.getLastCell().size[ endMargin ];\n // content is less than gallery size\n var isContentSmaller = contentWidth < this.size.innerWidth;\n // bounds\n var beginBound = this.cursorPosition + this.cells[0].size[ beginMargin ];\n var endBound = contentWidth - this.size.innerWidth * ( 1 - this.cellAlign );\n // contain each cell target\n this.slides.forEach( function( slide ) {\n if ( isContentSmaller ) {\n // all cells fit inside gallery\n slide.target = contentWidth * this.cellAlign;\n } else {\n // contain to bounds\n slide.target = Math.max( slide.target, beginBound );\n slide.target = Math.min( slide.target, endBound );\n }\n }, this );\n};\n\n// ----- ----- //\n\n/**\n * emits events via eventEmitter and jQuery events\n * @param {String} type - name of event\n * @param {Event} event - original event\n * @param {Array} args - extra arguments\n */\nproto.dispatchEvent = function( type, event, args ) {\n var emitArgs = event ? [ event ].concat( args ) : args;\n this.emitEvent( type, emitArgs );\n\n if ( jQuery && this.$element ) {\n // default trigger with type if no event\n type += this.options.namespaceJQueryEvents ? '.flickity' : '';\n var $event = type;\n if ( event ) {\n // create jQuery event\n var jQEvent = new jQuery.Event( event );\n jQEvent.type = type;\n $event = jQEvent;\n }\n this.$element.trigger( $event, args );\n }\n};\n\n// -------------------------- select -------------------------- //\n\n/**\n * @param {Integer} index - index of the slide\n * @param {Boolean} isWrap - will wrap-around to last/first if at the end\n * @param {Boolean} isInstant - will immediately set position at selected cell\n */\nproto.select = function( index, isWrap, isInstant ) {\n if ( !this.isActive ) {\n return;\n }\n index = parseInt( index, 10 );\n this._wrapSelect( index );\n\n if ( this.options.wrapAround || isWrap ) {\n index = utils.modulo( index, this.slides.length );\n }\n // bail if invalid index\n if ( !this.slides[ index ] ) {\n return;\n }\n var prevIndex = this.selectedIndex;\n this.selectedIndex = index;\n this.updateSelectedSlide();\n if ( isInstant ) {\n this.positionSliderAtSelected();\n } else {\n this.startAnimation();\n }\n if ( this.options.adaptiveHeight ) {\n this.setGallerySize();\n }\n // events\n this.dispatchEvent( 'select', null, [ index ] );\n // change event if new index\n if ( index != prevIndex ) {\n this.dispatchEvent( 'change', null, [ index ] );\n }\n // old v1 event name, remove in v3\n this.dispatchEvent('cellSelect');\n};\n\n// wraps position for wrapAround, to move to closest slide. #113\nproto._wrapSelect = function( index ) {\n var len = this.slides.length;\n var isWrapping = this.options.wrapAround && len > 1;\n if ( !isWrapping ) {\n return index;\n }\n var wrapIndex = utils.modulo( index, len );\n // go to shortest\n var delta = Math.abs( wrapIndex - this.selectedIndex );\n var backWrapDelta = Math.abs( ( wrapIndex + len ) - this.selectedIndex );\n var forewardWrapDelta = Math.abs( ( wrapIndex - len ) - this.selectedIndex );\n if ( !this.isDragSelect && backWrapDelta < delta ) {\n index += len;\n } else if ( !this.isDragSelect && forewardWrapDelta < delta ) {\n index -= len;\n }\n // wrap position so slider is within normal area\n if ( index < 0 ) {\n this.x -= this.slideableWidth;\n } else if ( index >= len ) {\n this.x += this.slideableWidth;\n }\n};\n\nproto.previous = function( isWrap, isInstant ) {\n this.select( this.selectedIndex - 1, isWrap, isInstant );\n};\n\nproto.next = function( isWrap, isInstant ) {\n this.select( this.selectedIndex + 1, isWrap, isInstant );\n};\n\nproto.updateSelectedSlide = function() {\n var slide = this.slides[ this.selectedIndex ];\n // selectedIndex could be outside of slides, if triggered before resize()\n if ( !slide ) {\n return;\n }\n // unselect previous selected slide\n this.unselectSelectedSlide();\n // update new selected slide\n this.selectedSlide = slide;\n slide.select();\n this.selectedCells = slide.cells;\n this.selectedElements = slide.getCellElements();\n // HACK: selectedCell & selectedElement is first cell in slide, backwards compatibility\n // Remove in v3?\n this.selectedCell = slide.cells[0];\n this.selectedElement = this.selectedElements[0];\n};\n\nproto.unselectSelectedSlide = function() {\n if ( this.selectedSlide ) {\n this.selectedSlide.unselect();\n }\n};\n\nproto.selectInitialIndex = function() {\n var initialIndex = this.options.initialIndex;\n // already activated, select previous selectedIndex\n if ( this.isInitActivated ) {\n this.select( this.selectedIndex, false, true );\n return;\n }\n // select with selector string\n if ( initialIndex && typeof initialIndex == 'string' ) {\n var cell = this.queryCell( initialIndex );\n if ( cell ) {\n this.selectCell( initialIndex, false, true );\n return;\n }\n }\n\n var index = 0;\n // select with number\n if ( initialIndex && this.slides[ initialIndex ] ) {\n index = initialIndex;\n }\n // select instantly\n this.select( index, false, true );\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, Number]} value - zero-based index or element to select\n * @param {Boolean} isWrap - enables wrapping around for extra index\n * @param {Boolean} isInstant - disables slide animation\n */\nproto.selectCell = function( value, isWrap, isInstant ) {\n // get cell\n var cell = this.queryCell( value );\n if ( !cell ) {\n return;\n }\n\n var index = this.getCellSlideIndex( cell );\n this.select( index, isWrap, isInstant );\n};\n\nproto.getCellSlideIndex = function( cell ) {\n // get index of slides that has cell\n for ( var i = 0; i < this.slides.length; i++ ) {\n var slide = this.slides[i];\n var index = slide.cells.indexOf( cell );\n if ( index != -1 ) {\n return i;\n }\n }\n};\n\n// -------------------------- get cells -------------------------- //\n\n/**\n * get Flickity.Cell, given an Element\n * @param {Element} elem - matching cell element\n * @returns {Flickity.Cell} cell - matching cell\n */\nproto.getCell = function( elem ) {\n // loop through cells to get the one that matches\n for ( var i = 0; i < this.cells.length; i++ ) {\n var cell = this.cells[i];\n if ( cell.element == elem ) {\n return cell;\n }\n }\n};\n\n/**\n * get collection of Flickity.Cells, given Elements\n * @param {[Element, Array, NodeList]} elems - multiple elements\n * @returns {Array} cells - Flickity.Cells\n */\nproto.getCells = function( elems ) {\n elems = utils.makeArray( elems );\n var cells = [];\n elems.forEach( function( elem ) {\n var cell = this.getCell( elem );\n if ( cell ) {\n cells.push( cell );\n }\n }, this );\n return cells;\n};\n\n/**\n * get cell elements\n * @returns {Array} cellElems\n */\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\n/**\n * get parent cell from an element\n * @param {Element} elem - child element\n * @returns {Flickit.Cell} cell - parent cell\n */\nproto.getParentCell = function( elem ) {\n // first check if elem is cell\n var cell = this.getCell( elem );\n if ( cell ) {\n return cell;\n }\n // try to get parent cell elem\n elem = utils.getParent( elem, '.flickity-slider > *' );\n return this.getCell( elem );\n};\n\n/**\n * get cells adjacent to a slide\n * @param {Integer} adjCount - number of adjacent slides\n * @param {Integer} index - index of slide to start\n * @returns {Array} cells - array of Flickity.Cells\n */\nproto.getAdjacentCellElements = function( adjCount, index ) {\n if ( !adjCount ) {\n return this.selectedSlide.getCellElements();\n }\n index = index === undefined ? this.selectedIndex : index;\n\n var len = this.slides.length;\n if ( 1 + ( adjCount * 2 ) >= len ) {\n return this.getCellElements();\n }\n\n var cellElems = [];\n for ( var i = index - adjCount; i <= index + adjCount; i++ ) {\n var slideIndex = this.options.wrapAround ? utils.modulo( i, len ) : i;\n var slide = this.slides[ slideIndex ];\n if ( slide ) {\n cellElems = cellElems.concat( slide.getCellElements() );\n }\n }\n return cellElems;\n};\n\n/**\n * select slide from number or cell element\n * @param {[Element, String, Number]} selector - element, selector string, or index\n * @returns {Flickity.Cell} - matching cell\n */\nproto.queryCell = function( selector ) {\n if ( typeof selector == 'number' ) {\n // use number as index\n return this.cells[ selector ];\n }\n if ( typeof selector == 'string' ) {\n // do not select invalid selectors from hash: #123, #/. #791\n if ( selector.match( /^[#.]?[\\d/]/ ) ) {\n return;\n }\n // use string as selector, get element\n selector = this.element.querySelector( selector );\n }\n // get cell from element\n return this.getCell( selector );\n};\n\n// -------------------------- events -------------------------- //\n\nproto.uiChange = function() {\n this.emitEvent('uiChange');\n};\n\n// keep focus on element when child UI elements are clicked\nproto.childUIPointerDown = function( event ) {\n // HACK iOS does not allow touch events to bubble up?!\n if ( event.type != 'touchstart' ) {\n event.preventDefault();\n }\n this.focus();\n};\n\n// ----- resize ----- //\n\nproto.onresize = function() {\n this.watchCSS();\n this.resize();\n};\n\nutils.debounceMethod( Flickity, 'onresize', 150 );\n\nproto.resize = function() {\n // #1177 disable resize behavior when animating or dragging for iOS 15\n if ( !this.isActive || this.isAnimating || this.isDragging ) {\n return;\n }\n this.getSize();\n // wrap values\n if ( this.options.wrapAround ) {\n this.x = utils.modulo( this.x, this.slideableWidth );\n }\n this.positionCells();\n this._getWrapShiftCells();\n this.setGallerySize();\n this.emitEvent('resize');\n // update selected index for group slides, instant\n // TODO: position can be lost between groups of various numbers\n var selectedElement = this.selectedElements && this.selectedElements[0];\n this.selectCell( selectedElement, false, true );\n};\n\n// watches the :after property, activates/deactivates\nproto.watchCSS = function() {\n var watchOption = this.options.watchCSS;\n if ( !watchOption ) {\n return;\n }\n\n var afterContent = getComputedStyle( this.element, ':after' ).content;\n // activate if :after { content: 'flickity' }\n if ( afterContent.indexOf('flickity') != -1 ) {\n this.activate();\n } else {\n this.deactivate();\n }\n};\n\n// ----- keydown ----- //\n\n// go previous/next if left/right keys pressed\nproto.onkeydown = function( event ) {\n // only work if element is in focus\n var isNotFocused = document.activeElement && document.activeElement != this.element;\n if ( !this.options.accessibility || isNotFocused ) {\n return;\n }\n\n var handler = Flickity.keyboardHandlers[ event.keyCode ];\n if ( handler ) {\n handler.call( this );\n }\n};\n\nFlickity.keyboardHandlers = {\n // left arrow\n 37: function() {\n var leftMethod = this.options.rightToLeft ? 'next' : 'previous';\n this.uiChange();\n this[ leftMethod ]();\n },\n // right arrow\n 39: function() {\n var rightMethod = this.options.rightToLeft ? 'previous' : 'next';\n this.uiChange();\n this[ rightMethod ]();\n },\n};\n\n// ----- focus ----- //\n\nproto.focus = function() {\n // TODO remove scrollTo once focus options gets more support\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/focus ...\n // #Browser_compatibility\n var prevScrollY = window.pageYOffset;\n this.element.focus({ preventScroll: true });\n // hack to fix scroll jump after focus, #76\n if ( window.pageYOffset != prevScrollY ) {\n window.scrollTo( window.pageXOffset, prevScrollY );\n }\n};\n\n// -------------------------- destroy -------------------------- //\n\n// deactivate all Flickity functionality, but keep stuff available\nproto.deactivate = function() {\n if ( !this.isActive ) {\n return;\n }\n this.element.classList.remove('flickity-enabled');\n this.element.classList.remove('flickity-rtl');\n this.unselectSelectedSlide();\n // destroy cells\n this.cells.forEach( function( cell ) {\n cell.destroy();\n } );\n this.element.removeChild( this.viewport );\n // move child elements back into element\n moveElements( this.slider.children, this.element );\n if ( this.options.accessibility ) {\n this.element.removeAttribute('tabIndex');\n this.element.removeEventListener( 'keydown', this );\n }\n // set flags\n this.isActive = false;\n this.emitEvent('deactivate');\n};\n\nproto.destroy = function() {\n this.deactivate();\n window.removeEventListener( 'resize', this );\n this.allOff();\n this.emitEvent('destroy');\n if ( jQuery && this.$element ) {\n jQuery.removeData( this.element, 'flickity' );\n }\n delete this.element.flickityGUID;\n delete instances[ this.guid ];\n};\n\n// -------------------------- prototype -------------------------- //\n\nutils.extend( proto, animatePrototype );\n\n// -------------------------- extras -------------------------- //\n\n/**\n * get Flickity instance from element\n * @param {[Element, String]} elem - element or selector string\n * @returns {Flickity} - Flickity instance\n */\nFlickity.data = function( elem ) {\n elem = utils.getQueryElement( elem );\n var id = elem && elem.flickityGUID;\n return id && instances[ id ];\n};\n\nutils.htmlInit( Flickity, 'flickity' );\n\nif ( jQuery && jQuery.bridget ) {\n jQuery.bridget( 'flickity', Flickity );\n}\n\n// set internal jQuery, for Webpack + jQuery v3, #478\nFlickity.setJQuery = function( jq ) {\n jQuery = jq;\n};\n\nFlickity.Cell = Cell;\nFlickity.Slide = Slide;\n\nreturn Flickity;\n\n} ) );\n","/*!\n * Flickity v2.3.0\n * Touch, responsive, flickable carousels\n *\n * Licensed GPLv3 for open source use\n * or Flickity Commercial License for commercial use\n *\n * https://flickity.metafizzy.co\n * Copyright 2015-2021 Metafizzy\n */\n\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n './drag',\n './prev-next-button',\n './page-dots',\n './player',\n './add-remove-cell',\n './lazyload',\n ], factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('./flickity'),\n require('./drag'),\n require('./prev-next-button'),\n require('./page-dots'),\n require('./player'),\n require('./add-remove-cell'),\n require('./lazyload')\n );\n }\n\n} )( window, function factory( Flickity ) {\n return Flickity;\n} );\n","// lazyload\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, utils ) {\n return factory( window, Flickity, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, utils ) {\n'use strict';\n\nFlickity.createMethods.push('_createLazyload');\nvar proto = Flickity.prototype;\n\nproto._createLazyload = function() {\n this.on( 'select', this.lazyLoad );\n};\n\nproto.lazyLoad = function() {\n var lazyLoad = this.options.lazyLoad;\n if ( !lazyLoad ) {\n return;\n }\n // get adjacent cells, use lazyLoad option for adjacent count\n var adjCount = typeof lazyLoad == 'number' ? lazyLoad : 0;\n var cellElems = this.getAdjacentCellElements( adjCount );\n // get lazy images in those cells\n var lazyImages = [];\n cellElems.forEach( function( cellElem ) {\n var lazyCellImages = getCellLazyImages( cellElem );\n lazyImages = lazyImages.concat( lazyCellImages );\n } );\n // load lazy images\n lazyImages.forEach( function( img ) {\n new LazyLoader( img, this );\n }, this );\n};\n\nfunction getCellLazyImages( cellElem ) {\n // check if cell element is lazy image\n if ( cellElem.nodeName == 'IMG' ) {\n var lazyloadAttr = cellElem.getAttribute('data-flickity-lazyload');\n var srcAttr = cellElem.getAttribute('data-flickity-lazyload-src');\n var srcsetAttr = cellElem.getAttribute('data-flickity-lazyload-srcset');\n if ( lazyloadAttr || srcAttr || srcsetAttr ) {\n return [ cellElem ];\n }\n }\n // select lazy images in cell\n var lazySelector = 'img[data-flickity-lazyload], ' +\n 'img[data-flickity-lazyload-src], img[data-flickity-lazyload-srcset]';\n var imgs = cellElem.querySelectorAll( lazySelector );\n return utils.makeArray( imgs );\n}\n\n// -------------------------- LazyLoader -------------------------- //\n\n/**\n * class to handle loading images\n * @param {Image} img - Image element\n * @param {Flickity} flickity - Flickity instance\n */\nfunction LazyLoader( img, flickity ) {\n this.img = img;\n this.flickity = flickity;\n this.load();\n}\n\nLazyLoader.prototype.handleEvent = utils.handleEvent;\n\nLazyLoader.prototype.load = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n // get src & srcset\n var src = this.img.getAttribute('data-flickity-lazyload') ||\n this.img.getAttribute('data-flickity-lazyload-src');\n var srcset = this.img.getAttribute('data-flickity-lazyload-srcset');\n // set src & serset\n this.img.src = src;\n if ( srcset ) {\n this.img.setAttribute( 'srcset', srcset );\n }\n // remove attr\n this.img.removeAttribute('data-flickity-lazyload');\n this.img.removeAttribute('data-flickity-lazyload-src');\n this.img.removeAttribute('data-flickity-lazyload-srcset');\n};\n\nLazyLoader.prototype.onload = function( event ) {\n this.complete( event, 'flickity-lazyloaded' );\n};\n\nLazyLoader.prototype.onerror = function( event ) {\n this.complete( event, 'flickity-lazyerror' );\n};\n\nLazyLoader.prototype.complete = function( event, className ) {\n // unbind events\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n\n var cell = this.flickity.getParentCell( this.img );\n var cellElem = cell && cell.element;\n this.flickity.cellSizeChange( cellElem );\n\n this.img.classList.add( className );\n this.flickity.dispatchEvent( 'lazyLoad', event, cellElem );\n};\n\n// ----- ----- //\n\nFlickity.LazyLoader = LazyLoader;\n\nreturn Flickity;\n\n} ) );\n","// page dots\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n\n// -------------------------- PageDots -------------------------- //\n\n'use strict';\n\nfunction PageDots( parent ) {\n this.parent = parent;\n this._create();\n}\n\nPageDots.prototype = Object.create( Unipointer.prototype );\n\nPageDots.prototype._create = function() {\n // create holder element\n this.holder = document.createElement('ol');\n this.holder.className = 'flickity-page-dots';\n // create dots, array of elements\n this.dots = [];\n // events\n this.handleClick = this.onClick.bind( this );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPageDots.prototype.activate = function() {\n this.setDots();\n this.holder.addEventListener( 'click', this.handleClick );\n this.bindStartEvent( this.holder );\n // add to DOM\n this.parent.element.appendChild( this.holder );\n};\n\nPageDots.prototype.deactivate = function() {\n this.holder.removeEventListener( 'click', this.handleClick );\n this.unbindStartEvent( this.holder );\n // remove from DOM\n this.parent.element.removeChild( this.holder );\n};\n\nPageDots.prototype.setDots = function() {\n // get difference between number of slides and number of dots\n var delta = this.parent.slides.length - this.dots.length;\n if ( delta > 0 ) {\n this.addDots( delta );\n } else if ( delta < 0 ) {\n this.removeDots( -delta );\n }\n};\n\nPageDots.prototype.addDots = function( count ) {\n var fragment = document.createDocumentFragment();\n var newDots = [];\n var length = this.dots.length;\n var max = length + count;\n\n for ( var i = length; i < max; i++ ) {\n var dot = document.createElement('li');\n dot.className = 'dot';\n dot.setAttribute( 'aria-label', 'Page dot ' + ( i + 1 ) );\n fragment.appendChild( dot );\n newDots.push( dot );\n }\n\n this.holder.appendChild( fragment );\n this.dots = this.dots.concat( newDots );\n};\n\nPageDots.prototype.removeDots = function( count ) {\n // remove from this.dots collection\n var removeDots = this.dots.splice( this.dots.length - count, count );\n // remove from DOM\n removeDots.forEach( function( dot ) {\n this.holder.removeChild( dot );\n }, this );\n};\n\nPageDots.prototype.updateSelected = function() {\n // remove selected class on previous\n if ( this.selectedDot ) {\n this.selectedDot.className = 'dot';\n this.selectedDot.removeAttribute('aria-current');\n }\n // don't proceed if no dots\n if ( !this.dots.length ) {\n return;\n }\n this.selectedDot = this.dots[ this.parent.selectedIndex ];\n this.selectedDot.className = 'dot is-selected';\n this.selectedDot.setAttribute( 'aria-current', 'step' );\n};\n\nPageDots.prototype.onTap = // old method name, backwards-compatible\nPageDots.prototype.onClick = function( event ) {\n var target = event.target;\n // only care about dot clicks\n if ( target.nodeName != 'LI' ) {\n return;\n }\n\n this.parent.uiChange();\n var index = this.dots.indexOf( target );\n this.parent.select( index );\n};\n\nPageDots.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\nFlickity.PageDots = PageDots;\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pageDots: true,\n} );\n\nFlickity.createMethods.push('_createPageDots');\n\nvar proto = Flickity.prototype;\n\nproto._createPageDots = function() {\n if ( !this.options.pageDots ) {\n return;\n }\n this.pageDots = new PageDots( this );\n // events\n this.on( 'activate', this.activatePageDots );\n this.on( 'select', this.updateSelectedPageDots );\n this.on( 'cellChange', this.updatePageDots );\n this.on( 'resize', this.updatePageDots );\n this.on( 'deactivate', this.deactivatePageDots );\n};\n\nproto.activatePageDots = function() {\n this.pageDots.activate();\n};\n\nproto.updateSelectedPageDots = function() {\n this.pageDots.updateSelected();\n};\n\nproto.updatePageDots = function() {\n this.pageDots.setDots();\n};\n\nproto.deactivatePageDots = function() {\n this.pageDots.deactivate();\n};\n\n// ----- ----- //\n\nFlickity.PageDots = PageDots;\n\nreturn Flickity;\n\n} ) );\n","// player & autoPlay\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter',\n 'fizzy-ui-utils/utils',\n './flickity',\n ], function( EvEmitter, utils, Flickity ) {\n return factory( EvEmitter, utils, Flickity );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n require('ev-emitter'),\n require('fizzy-ui-utils'),\n require('./flickity')\n );\n } else {\n // browser global\n factory(\n window.EvEmitter,\n window.fizzyUIUtils,\n window.Flickity\n );\n }\n\n}( window, function factory( EvEmitter, utils, Flickity ) {\n\n'use strict';\n\n// -------------------------- Player -------------------------- //\n\nfunction Player( parent ) {\n this.parent = parent;\n this.state = 'stopped';\n // visibility change event handler\n this.onVisibilityChange = this.visibilityChange.bind( this );\n this.onVisibilityPlay = this.visibilityPlay.bind( this );\n}\n\nPlayer.prototype = Object.create( EvEmitter.prototype );\n\n// start play\nPlayer.prototype.play = function() {\n if ( this.state == 'playing' ) {\n return;\n }\n // do not play if page is hidden, start playing when page is visible\n var isPageHidden = document.hidden;\n if ( isPageHidden ) {\n document.addEventListener( 'visibilitychange', this.onVisibilityPlay );\n return;\n }\n\n this.state = 'playing';\n // listen to visibility change\n document.addEventListener( 'visibilitychange', this.onVisibilityChange );\n // start ticking\n this.tick();\n};\n\nPlayer.prototype.tick = function() {\n // do not tick if not playing\n if ( this.state != 'playing' ) {\n return;\n }\n\n var time = this.parent.options.autoPlay;\n // default to 3 seconds\n time = typeof time == 'number' ? time : 3000;\n var _this = this;\n // HACK: reset ticks if stopped and started within interval\n this.clear();\n this.timeout = setTimeout( function() {\n _this.parent.next( true );\n _this.tick();\n }, time );\n};\n\nPlayer.prototype.stop = function() {\n this.state = 'stopped';\n this.clear();\n // remove visibility change event\n document.removeEventListener( 'visibilitychange', this.onVisibilityChange );\n};\n\nPlayer.prototype.clear = function() {\n clearTimeout( this.timeout );\n};\n\nPlayer.prototype.pause = function() {\n if ( this.state == 'playing' ) {\n this.state = 'paused';\n this.clear();\n }\n};\n\nPlayer.prototype.unpause = function() {\n // re-start play if paused\n if ( this.state == 'paused' ) {\n this.play();\n }\n};\n\n// pause if page visibility is hidden, unpause if visible\nPlayer.prototype.visibilityChange = function() {\n var isPageHidden = document.hidden;\n this[ isPageHidden ? 'pause' : 'unpause' ]();\n};\n\nPlayer.prototype.visibilityPlay = function() {\n this.play();\n document.removeEventListener( 'visibilitychange', this.onVisibilityPlay );\n};\n\n// -------------------------- Flickity -------------------------- //\n\nutils.extend( Flickity.defaults, {\n pauseAutoPlayOnHover: true,\n} );\n\nFlickity.createMethods.push('_createPlayer');\nvar proto = Flickity.prototype;\n\nproto._createPlayer = function() {\n this.player = new Player( this );\n\n this.on( 'activate', this.activatePlayer );\n this.on( 'uiChange', this.stopPlayer );\n this.on( 'pointerDown', this.stopPlayer );\n this.on( 'deactivate', this.deactivatePlayer );\n};\n\nproto.activatePlayer = function() {\n if ( !this.options.autoPlay ) {\n return;\n }\n this.player.play();\n this.element.addEventListener( 'mouseenter', this );\n};\n\n// Player API, don't hate the ... thanks I know where the door is\n\nproto.playPlayer = function() {\n this.player.play();\n};\n\nproto.stopPlayer = function() {\n this.player.stop();\n};\n\nproto.pausePlayer = function() {\n this.player.pause();\n};\n\nproto.unpausePlayer = function() {\n this.player.unpause();\n};\n\nproto.deactivatePlayer = function() {\n this.player.stop();\n this.element.removeEventListener( 'mouseenter', this );\n};\n\n// ----- mouseenter/leave ----- //\n\n// pause auto-play on hover\nproto.onmouseenter = function() {\n if ( !this.options.pauseAutoPlayOnHover ) {\n return;\n }\n this.player.pause();\n this.element.addEventListener( 'mouseleave', this );\n};\n\n// resume auto-play on hover off\nproto.onmouseleave = function() {\n this.player.unpause();\n this.element.removeEventListener( 'mouseleave', this );\n};\n\n// ----- ----- //\n\nFlickity.Player = Player;\n\nreturn Flickity;\n\n} ) );\n","// prev/next buttons\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n './flickity',\n 'unipointer/unipointer',\n 'fizzy-ui-utils/utils',\n ], function( Flickity, Unipointer, utils ) {\n return factory( window, Flickity, Unipointer, utils );\n } );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('./flickity'),\n require('unipointer'),\n require('fizzy-ui-utils')\n );\n } else {\n // browser global\n factory(\n window,\n window.Flickity,\n window.Unipointer,\n window.fizzyUIUtils\n );\n }\n\n}( window, function factory( window, Flickity, Unipointer, utils ) {\n'use strict';\n\nvar svgURI = 'http://www.w3.org/2000/svg';\n\n// -------------------------- PrevNextButton -------------------------- //\n\nfunction PrevNextButton( direction, parent ) {\n this.direction = direction;\n this.parent = parent;\n this._create();\n}\n\nPrevNextButton.prototype = Object.create( Unipointer.prototype );\n\nPrevNextButton.prototype._create = function() {\n // properties\n this.isEnabled = true;\n this.isPrevious = this.direction == -1;\n var leftDirection = this.parent.options.rightToLeft ? 1 : -1;\n this.isLeft = this.direction == leftDirection;\n\n var element = this.element = document.createElement('button');\n element.className = 'flickity-button flickity-prev-next-button';\n element.className += this.isPrevious ? ' previous' : ' next';\n // prevent button from submitting form http://stackoverflow.com/a/10836076/182183\n element.setAttribute( 'type', 'button' );\n // init as disabled\n this.disable();\n\n element.setAttribute( 'aria-label', this.isPrevious ? 'Previous' : 'Next' );\n\n // create arrow\n var svg = this.createSVG();\n element.appendChild( svg );\n // events\n this.parent.on( 'select', this.update.bind( this ) );\n this.on( 'pointerDown', this.parent.childUIPointerDown.bind( this.parent ) );\n};\n\nPrevNextButton.prototype.activate = function() {\n this.bindStartEvent( this.element );\n this.element.addEventListener( 'click', this );\n // add to DOM\n this.parent.element.appendChild( this.element );\n};\n\nPrevNextButton.prototype.deactivate = function() {\n // remove from DOM\n this.parent.element.removeChild( this.element );\n // click events\n this.unbindStartEvent( this.element );\n this.element.removeEventListener( 'click', this );\n};\n\nPrevNextButton.prototype.createSVG = function() {\n var svg = document.createElementNS( svgURI, 'svg' );\n svg.setAttribute( 'class', 'flickity-button-icon' );\n svg.setAttribute( 'viewBox', '0 0 100 100' );\n var path = document.createElementNS( svgURI, 'path' );\n var pathMovements = getArrowMovements( this.parent.options.arrowShape );\n path.setAttribute( 'd', pathMovements );\n path.setAttribute( 'class', 'arrow' );\n // rotate arrow\n if ( !this.isLeft ) {\n path.setAttribute( 'transform', 'translate(100, 100) rotate(180) ' );\n }\n svg.appendChild( path );\n return svg;\n};\n\n// get SVG path movmement\nfunction getArrowMovements( shape ) {\n // use shape as movement if string\n if ( typeof shape == 'string' ) {\n return shape;\n }\n // create movement string\n return 'M ' + shape.x0 + ',50' +\n ' L ' + shape.x1 + ',' + ( shape.y1 + 50 ) +\n ' L ' + shape.x2 + ',' + ( shape.y2 + 50 ) +\n ' L ' + shape.x3 + ',50 ' +\n ' L ' + shape.x2 + ',' + ( 50 - shape.y2 ) +\n ' L ' + shape.x1 + ',' + ( 50 - shape.y1 ) +\n ' Z';\n}\n\nPrevNextButton.prototype.handleEvent = utils.handleEvent;\n\nPrevNextButton.prototype.onclick = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.parent.uiChange();\n var method = this.isPrevious ? 'previous' : 'next';\n this.parent[ method ]();\n};\n\n// ----- ----- //\n\nPrevNextButton.prototype.enable = function() {\n if ( this.isEnabled ) {\n return;\n }\n this.element.disabled = false;\n this.isEnabled = true;\n};\n\nPrevNextButton.prototype.disable = function() {\n if ( !this.isEnabled ) {\n return;\n }\n this.element.disabled = true;\n this.isEnabled = false;\n};\n\nPrevNextButton.prototype.update = function() {\n // index of first or last slide, if previous or next\n var slides = this.parent.slides;\n // enable is wrapAround and at least 2 slides\n if ( this.parent.options.wrapAround && slides.length > 1 ) {\n this.enable();\n return;\n }\n var lastIndex = slides.length ? slides.length - 1 : 0;\n var boundIndex = this.isPrevious ? 0 : lastIndex;\n var method = this.parent.selectedIndex == boundIndex ? 'disable' : 'enable';\n this[ method ]();\n};\n\nPrevNextButton.prototype.destroy = function() {\n this.deactivate();\n this.allOff();\n};\n\n// -------------------------- Flickity prototype -------------------------- //\n\nutils.extend( Flickity.defaults, {\n prevNextButtons: true,\n arrowShape: {\n x0: 10,\n x1: 60, y1: 50,\n x2: 70, y2: 40,\n x3: 30,\n },\n} );\n\nFlickity.createMethods.push('_createPrevNextButtons');\nvar proto = Flickity.prototype;\n\nproto._createPrevNextButtons = function() {\n if ( !this.options.prevNextButtons ) {\n return;\n }\n\n this.prevButton = new PrevNextButton( -1, this );\n this.nextButton = new PrevNextButton( 1, this );\n\n this.on( 'activate', this.activatePrevNextButtons );\n};\n\nproto.activatePrevNextButtons = function() {\n this.prevButton.activate();\n this.nextButton.activate();\n this.on( 'deactivate', this.deactivatePrevNextButtons );\n};\n\nproto.deactivatePrevNextButtons = function() {\n this.prevButton.deactivate();\n this.nextButton.deactivate();\n this.off( 'deactivate', this.deactivatePrevNextButtons );\n};\n\n// -------------------------- -------------------------- //\n\nFlickity.PrevNextButton = PrevNextButton;\n\nreturn Flickity;\n\n} ) );\n","// slide\n( function( window, factory ) {\n // universal module definition\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.Flickity = window.Flickity || {};\n window.Flickity.Slide = factory();\n }\n\n}( window, function factory() {\n'use strict';\n\nfunction Slide( parent ) {\n this.parent = parent;\n this.isOriginLeft = parent.originSide == 'left';\n this.cells = [];\n this.outerWidth = 0;\n this.height = 0;\n}\n\nvar proto = Slide.prototype;\n\nproto.addCell = function( cell ) {\n this.cells.push( cell );\n this.outerWidth += cell.size.outerWidth;\n this.height = Math.max( cell.size.outerHeight, this.height );\n // first cell stuff\n if ( this.cells.length == 1 ) {\n this.x = cell.x; // x comes from first cell\n var beginMargin = this.isOriginLeft ? 'marginLeft' : 'marginRight';\n this.firstMargin = cell.size[ beginMargin ];\n }\n};\n\nproto.updateTarget = function() {\n var endMargin = this.isOriginLeft ? 'marginRight' : 'marginLeft';\n var lastCell = this.getLastCell();\n var lastMargin = lastCell ? lastCell.size[ endMargin ] : 0;\n var slideWidth = this.outerWidth - ( this.firstMargin + lastMargin );\n this.target = this.x + this.firstMargin + slideWidth * this.parent.cellAlign;\n};\n\nproto.getLastCell = function() {\n return this.cells[ this.cells.length - 1 ];\n};\n\nproto.select = function() {\n this.cells.forEach( function( cell ) {\n cell.select();\n } );\n};\n\nproto.unselect = function() {\n this.cells.forEach( function( cell ) {\n cell.unselect();\n } );\n};\n\nproto.getCellElements = function() {\n return this.cells.map( function( cell ) {\n return cell.element;\n } );\n};\n\nreturn Slide;\n\n} ) );\n","/*!\n * getSize v2.0.3\n * measure size of elements\n * MIT license\n */\n\n/* jshint browser: true, strict: true, undef: true, unused: true */\n/* globals console: false */\n\n( function( window, factory ) {\n /* jshint strict: false */ /* globals define, module */\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory();\n } else {\n // browser global\n window.getSize = factory();\n }\n\n})( window, function factory() {\n'use strict';\n\n// -------------------------- helpers -------------------------- //\n\n// get a number from a string, not a percentage\nfunction getStyleSize( value ) {\n var num = parseFloat( value );\n // not a percent like '100%', and a number\n var isValid = value.indexOf('%') == -1 && !isNaN( num );\n return isValid && num;\n}\n\nfunction noop() {}\n\nvar logError = typeof console == 'undefined' ? noop :\n function( message ) {\n console.error( message );\n };\n\n// -------------------------- measurements -------------------------- //\n\nvar measurements = [\n 'paddingLeft',\n 'paddingRight',\n 'paddingTop',\n 'paddingBottom',\n 'marginLeft',\n 'marginRight',\n 'marginTop',\n 'marginBottom',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderTopWidth',\n 'borderBottomWidth'\n];\n\nvar measurementsLength = measurements.length;\n\nfunction getZeroSize() {\n var size = {\n width: 0,\n height: 0,\n innerWidth: 0,\n innerHeight: 0,\n outerWidth: 0,\n outerHeight: 0\n };\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n size[ measurement ] = 0;\n }\n return size;\n}\n\n// -------------------------- getStyle -------------------------- //\n\n/**\n * getStyle, get style of element, check for Firefox bug\n * https://bugzilla.mozilla.org/show_bug.cgi?id=548397\n */\nfunction getStyle( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n logError( 'Style returned ' + style +\n '. Are you running this code in a hidden iframe on Firefox? ' +\n 'See https://bit.ly/getsizebug1' );\n }\n return style;\n}\n\n// -------------------------- setup -------------------------- //\n\nvar isSetup = false;\n\nvar isBoxSizeOuter;\n\n/**\n * setup\n * check isBoxSizerOuter\n * do on first getSize() rather than on page load for Firefox bug\n */\nfunction setup() {\n // setup once\n if ( isSetup ) {\n return;\n }\n isSetup = true;\n\n // -------------------------- box sizing -------------------------- //\n\n /**\n * Chrome & Safari measure the outer-width on style.width on border-box elems\n * IE11 & Firefox<29 measures the inner-width\n */\n var div = document.createElement('div');\n div.style.width = '200px';\n div.style.padding = '1px 2px 3px 4px';\n div.style.borderStyle = 'solid';\n div.style.borderWidth = '1px 2px 3px 4px';\n div.style.boxSizing = 'border-box';\n\n var body = document.body || document.documentElement;\n body.appendChild( div );\n var style = getStyle( div );\n // round value for browser zoom. desandro/masonry#928\n isBoxSizeOuter = Math.round( getStyleSize( style.width ) ) == 200;\n getSize.isBoxSizeOuter = isBoxSizeOuter;\n\n body.removeChild( div );\n}\n\n// -------------------------- getSize -------------------------- //\n\nfunction getSize( elem ) {\n setup();\n\n // use querySeletor if elem is string\n if ( typeof elem == 'string' ) {\n elem = document.querySelector( elem );\n }\n\n // do not proceed on non-objects\n if ( !elem || typeof elem != 'object' || !elem.nodeType ) {\n return;\n }\n\n var style = getStyle( elem );\n\n // if hidden, everything is 0\n if ( style.display == 'none' ) {\n return getZeroSize();\n }\n\n var size = {};\n size.width = elem.offsetWidth;\n size.height = elem.offsetHeight;\n\n var isBorderBox = size.isBorderBox = style.boxSizing == 'border-box';\n\n // get all measurements\n for ( var i=0; i < measurementsLength; i++ ) {\n var measurement = measurements[i];\n var value = style[ measurement ];\n var num = parseFloat( value );\n // any 'auto', 'medium' value will be 0\n size[ measurement ] = !isNaN( num ) ? num : 0;\n }\n\n var paddingWidth = size.paddingLeft + size.paddingRight;\n var paddingHeight = size.paddingTop + size.paddingBottom;\n var marginWidth = size.marginLeft + size.marginRight;\n var marginHeight = size.marginTop + size.marginBottom;\n var borderWidth = size.borderLeftWidth + size.borderRightWidth;\n var borderHeight = size.borderTopWidth + size.borderBottomWidth;\n\n var isBorderBoxSizeOuter = isBorderBox && isBoxSizeOuter;\n\n // overwrite width and height if we can get it from style\n var styleWidth = getStyleSize( style.width );\n if ( styleWidth !== false ) {\n size.width = styleWidth +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingWidth + borderWidth );\n }\n\n var styleHeight = getStyleSize( style.height );\n if ( styleHeight !== false ) {\n size.height = styleHeight +\n // add padding and border unless it's already including it\n ( isBorderBoxSizeOuter ? 0 : paddingHeight + borderHeight );\n }\n\n size.innerWidth = size.width - ( paddingWidth + borderWidth );\n size.innerHeight = size.height - ( paddingHeight + borderHeight );\n\n size.outerWidth = size.width + marginWidth;\n size.outerHeight = size.height + marginHeight;\n\n return size;\n}\n\nreturn getSize;\n\n});\n","/*!\n * Unidragger v2.4.0\n * Draggable base class\n * MIT license\n */\n\n/*jshint browser: true, unused: true, undef: true, strict: true */\n\n( function( window, factory ) {\n // universal module definition\n /*jshint strict: false */ /*globals define, module, require */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'unipointer/unipointer'\n ], function( Unipointer ) {\n return factory( window, Unipointer );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('unipointer')\n );\n } else {\n // browser global\n window.Unidragger = factory(\n window,\n window.Unipointer\n );\n }\n\n}( window, function factory( window, Unipointer ) {\n\n'use strict';\n\n// -------------------------- Unidragger -------------------------- //\n\nfunction Unidragger() {}\n\n// inherit Unipointer & EvEmitter\nvar proto = Unidragger.prototype = Object.create( Unipointer.prototype );\n\n// ----- bind start ----- //\n\nproto.bindHandles = function() {\n this._bindHandles( true );\n};\n\nproto.unbindHandles = function() {\n this._bindHandles( false );\n};\n\n/**\n * Add or remove start event\n * @param {Boolean} isAdd\n */\nproto._bindHandles = function( isAdd ) {\n // munge isAdd, default to true\n isAdd = isAdd === undefined ? true : isAdd;\n // bind each handle\n var bindMethod = isAdd ? 'addEventListener' : 'removeEventListener';\n var touchAction = isAdd ? this._touchActionValue : '';\n for ( var i=0; i < this.handles.length; i++ ) {\n var handle = this.handles[i];\n this._bindStartEvent( handle, isAdd );\n handle[ bindMethod ]( 'click', this );\n // touch-action: none to override browser touch gestures. metafizzy/flickity#540\n if ( window.PointerEvent ) {\n handle.style.touchAction = touchAction;\n }\n }\n};\n\n// prototype so it can be overwriteable by Flickity\nproto._touchActionValue = 'none';\n\n// ----- start event ----- //\n\n/**\n * pointer start\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerDown = function( event, pointer ) {\n var isOkay = this.okayPointerDown( event );\n if ( !isOkay ) {\n return;\n }\n // track start event position\n // Safari 9 overrides pageX and pageY. These values needs to be copied. flickity#842\n this.pointerDownPointer = {\n pageX: pointer.pageX,\n pageY: pointer.pageY,\n };\n\n event.preventDefault();\n this.pointerDownBlur();\n // bind move and end events\n this._bindPostStartEvents( event );\n this.emitEvent( 'pointerDown', [ event, pointer ] );\n};\n\n// nodes that have text fields\nvar cursorNodes = {\n TEXTAREA: true,\n INPUT: true,\n SELECT: true,\n OPTION: true,\n};\n\n// input types that do not have text fields\nvar clickTypes = {\n radio: true,\n checkbox: true,\n button: true,\n submit: true,\n image: true,\n file: true,\n};\n\n// dismiss inputs with text fields. flickity#403, flickity#404\nproto.okayPointerDown = function( event ) {\n var isCursorNode = cursorNodes[ event.target.nodeName ];\n var isClickType = clickTypes[ event.target.type ];\n var isOkay = !isCursorNode || isClickType;\n if ( !isOkay ) {\n this._pointerReset();\n }\n return isOkay;\n};\n\n// kludge to blur previously focused input\nproto.pointerDownBlur = function() {\n var focused = document.activeElement;\n // do not blur body for IE10, metafizzy/flickity#117\n var canBlur = focused && focused.blur && focused != document.body;\n if ( canBlur ) {\n focused.blur();\n }\n};\n\n// ----- move event ----- //\n\n/**\n * drag move\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerMove = function( event, pointer ) {\n var moveVector = this._dragPointerMove( event, pointer );\n this.emitEvent( 'pointerMove', [ event, pointer, moveVector ] );\n this._dragMove( event, pointer, moveVector );\n};\n\n// base pointer move logic\nproto._dragPointerMove = function( event, pointer ) {\n var moveVector = {\n x: pointer.pageX - this.pointerDownPointer.pageX,\n y: pointer.pageY - this.pointerDownPointer.pageY\n };\n // start drag if pointer has moved far enough to start drag\n if ( !this.isDragging && this.hasDragStarted( moveVector ) ) {\n this._dragStart( event, pointer );\n }\n return moveVector;\n};\n\n// condition if pointer has moved far enough to start drag\nproto.hasDragStarted = function( moveVector ) {\n return Math.abs( moveVector.x ) > 3 || Math.abs( moveVector.y ) > 3;\n};\n\n// ----- end event ----- //\n\n/**\n * pointer up\n * @param {Event} event\n * @param {Event or Touch} pointer\n */\nproto.pointerUp = function( event, pointer ) {\n this.emitEvent( 'pointerUp', [ event, pointer ] );\n this._dragPointerUp( event, pointer );\n};\n\nproto._dragPointerUp = function( event, pointer ) {\n if ( this.isDragging ) {\n this._dragEnd( event, pointer );\n } else {\n // pointer didn't move enough for drag to start\n this._staticClick( event, pointer );\n }\n};\n\n// -------------------------- drag -------------------------- //\n\n// dragStart\nproto._dragStart = function( event, pointer ) {\n this.isDragging = true;\n // prevent clicks\n this.isPreventingClicks = true;\n this.dragStart( event, pointer );\n};\n\nproto.dragStart = function( event, pointer ) {\n this.emitEvent( 'dragStart', [ event, pointer ] );\n};\n\n// dragMove\nproto._dragMove = function( event, pointer, moveVector ) {\n // do not drag if not dragging yet\n if ( !this.isDragging ) {\n return;\n }\n\n this.dragMove( event, pointer, moveVector );\n};\n\nproto.dragMove = function( event, pointer, moveVector ) {\n event.preventDefault();\n this.emitEvent( 'dragMove', [ event, pointer, moveVector ] );\n};\n\n// dragEnd\nproto._dragEnd = function( event, pointer ) {\n // set flags\n this.isDragging = false;\n // re-enable clicking async\n setTimeout( function() {\n delete this.isPreventingClicks;\n }.bind( this ) );\n\n this.dragEnd( event, pointer );\n};\n\nproto.dragEnd = function( event, pointer ) {\n this.emitEvent( 'dragEnd', [ event, pointer ] );\n};\n\n// ----- onclick ----- //\n\n// handle all clicks and prevent clicks when dragging\nproto.onclick = function( event ) {\n if ( this.isPreventingClicks ) {\n event.preventDefault();\n }\n};\n\n// ----- staticClick ----- //\n\n// triggered after pointer down & up with no/tiny movement\nproto._staticClick = function( event, pointer ) {\n // ignore emulated mouse up clicks\n if ( this.isIgnoringMouseUp && event.type == 'mouseup' ) {\n return;\n }\n\n this.staticClick( event, pointer );\n\n // set flag for emulated clicks 300ms after touchend\n if ( event.type != 'mouseup' ) {\n this.isIgnoringMouseUp = true;\n // reset flag after 300ms\n setTimeout( function() {\n delete this.isIgnoringMouseUp;\n }.bind( this ), 400 );\n }\n};\n\nproto.staticClick = function( event, pointer ) {\n this.emitEvent( 'staticClick', [ event, pointer ] );\n};\n\n// ----- utils ----- //\n\nUnidragger.getPointerPoint = Unipointer.getPointerPoint;\n\n// ----- ----- //\n\nreturn Unidragger;\n\n}));\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._nonpinned[data-v-06cbf20b],._pinned[data-v-06cbf20b]{padding:0;margin:calc(var(--spacing)/1) 0}._item[data-v-06cbf20b]{position:relative;z-index:1}._pinSpace[data-v-06cbf20b]{position:absolute;top:0;left:0;margin:calc(var(--spacing)/2);z-index:100;color:var(--c-orange);display:flex;flex-flow:row nowrap;gap:calc(var(--spacing)/8)}._pinSpace>button[data-v-06cbf20b]{display:block;pointer-events:auto}._pinSpace_indicator[data-v-06cbf20b]{pointer-events:none}._list[data-v-06cbf20b]{display:grid;grid-auto-rows:max-content;grid-gap:calc(var(--spacing)/1);align-items:stretch;grid-template-columns:repeat(auto-fill,minmax(var(--item-width,320px),1fr))}._list_pinned[data-v-06cbf20b]{background-image:radial-gradient(rgba(51,51,51,.2) 2px,transparent 0);background-size:calc(var(--spacing)/1) calc(var(--spacing)/1);padding:calc(var(--spacing)/1)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._projectInfos[data-v-8e32e7a0]{position:relative;width:100%;background:#fff;transition:all .4s cubic-bezier(.19,1,.22,1)}._projectInfos.is--list[data-v-8e32e7a0]{background-color:#fff;border-radius:4px;transition:all .25s cubic-bezier(.19,1,.22,1)}._projectInfos.is--list.is--own[data-v-8e32e7a0]{border-bottom-color:var(--c-bleumarine)}._projectInfos.is--list ._projectInfos--topContent[data-v-8e32e7a0]{padding:0;margin:0;gap:0;max-width:none}._projectInfos.is--list ._title h3[data-v-8e32e7a0]{font-size:var(--sl-font-size-medium)}._projectInfos.is--list ._description[data-v-8e32e7a0]{font-size:var(--sl-font-size-small)}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content{display:block;width:100%}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content p:first-child{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._projectInfos.is--list ._description[data-v-8e32e7a0] ._content p:not(:first-child){display:none}._projectInfos.is--list[data-v-8e32e7a0]{display:block}._projectInfos.is--list ._projectInfos--infos[data-v-8e32e7a0]{padding:calc(var(--spacing)/2);width:100%;place-content:flex-start}._projectInfos[data-context=tiny] ._projectInfos--infos[data-v-8e32e7a0]{padding:calc(var(--spacing)/4) calc(var(--spacing)/2)}._projectInfos>*[data-v-8e32e7a0]{flex:10 1 320px;transition:all .4s cubic-bezier(.19,1,.22,1)}._projectInfos>._projectInfos--meta[data-v-8e32e7a0]{flex:1 0 260px}._projectInfos>._projectInfos--meta.is--hidden[data-v-8e32e7a0]{flex:0 0 0;opacity:0}._projectInfos--topContent[data-v-8e32e7a0]{max-width:min(var(--max-column-width),1180px);margin:calc(var(--spacing)/2) auto 0;overflow:hidden;display:flex;flex-flow:row wrap;justify-content:center;align-items:center;gap:calc(var(--spacing)*1)}._projectInfos--topContent>*[data-v-8e32e7a0]{flex:1 1 320px}._projectInfos--infos[data-v-8e32e7a0]{--short-project-height:8rem;position:relative;display:flex;flex-flow:column nowrap;place-content:center;gap:calc(var(--spacing)/2);transition:all .4s}.is--list ._projectInfos--infos[data-v-8e32e7a0]{gap:calc(var(--spacing)/4);order:0;padding-top:calc(var(--spacing)/2)}.is--list ._projectInfos--infos ._showDescription[data-v-8e32e7a0]{pointer-events:auto}._projectInfos--infos.is--short[data-v-8e32e7a0]{max-height:var(--short-project-height)}._projectInfos--infos>*[data-v-8e32e7a0]{max-width:56ch}._projectInfos--infos--settings[data-v-8e32e7a0]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:flex-end}._imageSelect[data-v-8e32e7a0]{background:#fff;position:relative}._projectInfos--cover[data-v-8e32e7a0]{position:relative;width:100%}.is--list ._projectInfos--cover[data-v-8e32e7a0]{width:100%;height:auto}.is--mobileView ._projectInfos--cover[data-v-8e32e7a0]{flex:1 1 auto;max-width:none;max-height:none;height:auto}._projectInfos--cover ._cover[data-v-8e32e7a0]{position:relative;aspect-ratio:3/2;border-radius:4px;overflow:hidden;margin-right:0;margin-left:auto}.is--list ._projectInfos--cover ._cover[data-v-8e32e7a0]{border-bottom-left-radius:0;border-bottom-right-radius:0}._projectInfos--cover ._icon[data-v-8e32e7a0]{position:absolute;z-index:1;top:0;right:0;margin:calc(var(--spacing)/1)}._projectInfos--cover ._private[data-v-8e32e7a0]{font-size:125%}._projectInfos--cover ._private[data-v-8e32e7a0]:before{content:\\\"\\\";position:absolute;width:60%;margin-left:20%;height:100%;background:#fff;z-index:-1;border-radius:5px}._projectInfos--cover ._originalSpace[data-v-8e32e7a0]{position:absolute;bottom:0;left:0;margin:calc(var(--spacing)/4);padding:calc(var(--spacing)/16) calc(var(--spacing)/2);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:rgba(0,0,0,.2);color:#fff;font-weight:700;border-radius:15px;font-size:var(--sl-font-size-small);max-width:calc(100% - var(--spacing)/2);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._projectInfos--meta[data-v-8e32e7a0]{margin:0 auto;padding:0}.is--mobileView ._projectInfos--meta[data-v-8e32e7a0]{height:auto}._projectInfos--meta ._card[data-v-8e32e7a0]{width:240px;height:240px;overflow:auto;margin:calc(var(--spacing)/2)}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar{height:18px;width:18px;background-color:transparent}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb,._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-track{border:6px solid hsla(0,0%,100%,0);border-radius:24px;background-clip:padding-box;-webkit-transition:all .4s;transition:all .4s}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-track{background-color:transparent}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb{background-color:var(--c-noir)}._projectInfos--meta ._card[data-v-8e32e7a0]::-webkit-scrollbar-thumb:hover{background-color:var(--c-gris);border:6px solid hsla(0,0%,100%,0)}._projectInfos--open[data-v-8e32e7a0]{position:absolute;top:0;left:0;width:100%;height:100%}._showMeta[data-v-8e32e7a0]{position:absolute;top:0;right:0;z-index:100;background:#fff;margin:calc(var(--spacing)/4)}._showDescription[data-v-8e32e7a0]{position:relative;z-index:100;padding:0;text-align:left}._allTags[data-v-8e32e7a0]{position:relative;z-index:1;display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/4)}._compactExpandButton[data-v-8e32e7a0]{--expand-button-height:2rem;position:absolute;z-index:2;top:calc(var(--short-project-height) - var(--expand-button-height));height:var(--expand-button-height);left:0;right:0;padding:calc(var(--spacing)/4);background:linear-gradient(transparent,#fff);text-align:right;pointer-events:none}._compactExpandButton>button[data-v-8e32e7a0]{pointer-events:auto;border-radius:50%}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._noProjects[data-v-715c75cc]{margin:calc(var(--spacing)/2) 0 calc(var(--spacing)/2);text-align:center}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._projectsListWithFilter[data-v-62a09424]{--item-width:240px;width:100%;min-height:70vh}._cont[data-v-62a09424]{flex-flow:row wrap;gap:calc(var(--spacing)*2)}._cont[data-v-62a09424],._sidebar[data-v-62a09424]{display:flex;align-items:flex-start}._sidebar[data-v-62a09424]{flex:0 0 240px;position:sticky;overflow:auto;max-height:100vh;top:0;flex-flow:column nowrap;justify-content:flex-start;gap:calc(var(--spacing)/2);padding:calc(var(--spacing)/2);padding-left:0;margin-top:0}._sidebar[data-v-62a09424] button{white-space:nowrap;overflow:hidden;text-overflow:\\\" [..]\\\"}._listOfProjects[data-v-62a09424]{flex:1 1 0;margin-top:0}._tagList[data-v-62a09424]{display:flex;gap:calc(var(--spacing)/8);margin:calc(var(--spacing)/1) 0}._orderSelect[data-v-62a09424]{max-width:22ch}._filterSortBar[data-v-62a09424]{display:flex;flex-flow:row nowrap;justify-content:space-between;align-items:center;gap:calc(var(--spacing)/2)}._statusList[data-v-62a09424]{display:flex;flex-flow:row wrap;gap:calc(var(--spacing)/8)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._list[data-v-59d6e751]{display:flex;flex-flow:row wrap}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._spacePresentation[data-v-e8b60a36]{position:relative;display:flex;flex-flow:row wrap;align-items:center;gap:calc(var(--spacing)/1);padding:calc(var(--spacing)/4);border-radius:6px;border-bottom:2px solid var(--c-gris);background:#fff;transition:all .25s cubic-bezier(.19,1,.22,1)}._spacePresentation[data-context=full][data-v-e8b60a36]{margin:calc(var(--spacing)*2) auto}._spacePresentation[data-context=list][data-v-e8b60a36]{flex-flow:row nowrap}._spaceCover[data-v-e8b60a36]{position:relative;aspect-ratio:1/1;align-self:flex-start;border-radius:4px;overflow:hidden;flex:1 2 240px}._textBloc[data-v-e8b60a36]{flex:3 1 240px;overflow:hidden;display:flex;flex-flow:column nowrap;gap:calc(var(--spacing)/1)}._subtitle[data-v-e8b60a36]{color:var(--c-gris_fonce);font-size:var(--sl-font-size-medium)}._description[data-v-e8b60a36]{display:block;max-width:88ch;font-size:var(--sl-font-size-small)}._openSpace[data-v-e8b60a36]{left:0;width:100%;height:100%}._icon[data-v-e8b60a36],._openSpace[data-v-e8b60a36]{position:absolute;top:0}._icon[data-v-e8b60a36]{right:0;margin:calc(var(--spacing)/1)}._statusOptions[data-v-e8b60a36]{display:flex;flex-flow:row wrap;justify-content:space-between;align-items:flex-end}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"._errNotice[data-v-4396fb69]{padding:calc(var(--spacing)/2)}._spaceView[data-v-4396fb69]{margin:0 auto}._topSpace[data-v-4396fb69]{max-width:min(var(--max-column-width),1080px)}._projectsList[data-v-4396fb69],._topSpace[data-v-4396fb69]{margin:calc(var(--spacing)*1) auto 0}._projectsList[data-v-4396fb69]{max-width:var(--max-column-width)}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \"/*! Flickity v2.3.0\\nhttps://flickity.metafizzy.co\\n---------------------------------------------- */.flickity-enabled{position:relative}.flickity-enabled:focus{outline:none}.flickity-viewport{overflow:hidden;position:relative;height:100%}.flickity-slider{position:absolute;width:100%;height:100%}.flickity-enabled.is-draggable{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;user-select:none}.flickity-enabled.is-draggable .flickity-viewport{cursor:move;cursor:grab}.flickity-enabled.is-draggable .flickity-viewport.is-pointer-down{cursor:grabbing}.flickity-button{position:absolute;background:hsla(0,0%,100%,.75);border:none;color:#333}.flickity-button:hover{background:#fff;cursor:pointer}.flickity-button:focus{outline:none;box-shadow:0 0 0 5px #19f}.flickity-button:active{opacity:.6}.flickity-button:disabled{opacity:.3;cursor:auto;pointer-events:none}.flickity-button-icon{fill:currentColor}.flickity-prev-next-button{top:50%;width:44px;height:44px;border-radius:50%;transform:translateY(-50%)}.flickity-prev-next-button.previous{left:10px}.flickity-prev-next-button.next{right:10px}.flickity-rtl .flickity-prev-next-button.previous{left:auto;right:10px}.flickity-rtl .flickity-prev-next-button.next{right:auto;left:10px}.flickity-prev-next-button .flickity-button-icon{position:absolute;left:20%;top:20%;width:60%;height:60%}.flickity-page-dots{position:absolute;width:100%;bottom:-25px;padding:0;margin:0;list-style:none;text-align:center;line-height:1}.flickity-rtl .flickity-page-dots{direction:rtl}.flickity-page-dots .dot{display:inline-block;width:10px;height:10px;margin:0 8px;background:#333;border-radius:50%;opacity:.25;cursor:pointer}.flickity-page-dots .dot.is-selected{opacity:1}\", \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// style-loader: Adds some css to the DOM by adding a diff --git a/client/src/adc-core/api.js b/client/src/adc-core/api.js index 36723c17b..d46297894 100644 --- a/client/src/adc-core/api.js +++ b/client/src/adc-core/api.js @@ -16,6 +16,9 @@ export default function () { rooms_joined: [], + is_tracking_users: false, + users: new Array(), + // todo replace is_identified, create route to test is_correctly_logged_in: false, @@ -34,9 +37,6 @@ export default function () { autoConnect: false, }); - const sessionID = localStorage.getItem("sessionID"); - if (sessionID) this.socket.auth = { sessionID }; - await this._setAuthFromStorage(); this.setAuthorizationHeader(); @@ -45,6 +45,13 @@ export default function () { this.trackCurrentAuthor(); } + const sessionID = localStorage.getItem("sessionID"); + let auth = {}; + if (sessionID) auth.sessionID = sessionID; + if (this.tokenpath.token_path) + auth.token_path = this.tokenpath.token_path; + if (Object.keys(auth).length > 0) this.socket.auth = auth; + await this.socket.connect(); // client-side @@ -57,11 +64,10 @@ export default function () { }); }); - this.socket.on("session", ({ sessionID, userID }) => { + this.socket.on("session", ({ sessionID }) => { // attach the session ID to the next reconnection attempts this.socket.auth = { sessionID }; localStorage.setItem("sessionID", sessionID); - this.socket.userID = userID; }); this.socket.on("connect_error", (reason) => { console.log("socket connect error"); @@ -73,9 +79,9 @@ export default function () { this.connected = false; this.$eventHub.$emit("socketio.disconnect", reason); this.socket.disconnect(); - this.emptyStore(); this.socket.once("connect", () => { this.rejoinRooms(); + if (this.is_tracking_users) this.getAndTrackUsers(); }); }); @@ -106,6 +112,10 @@ export default function () { this.socket.on("taskStatus", this.taskStatus); this.socket.on("taskEnded", this.taskEnded); + + this.socket.on("newUser", this.newUser); + this.socket.on("updateUser", this.updateUser); + this.socket.on("removeUser", this.removeUser); }, disconnectSocket() { this.socket.disconnect(); @@ -139,15 +149,7 @@ export default function () { } }, - emptyStore() { - // called when client disconnects from socket - // since we cant be sure of what happens before reconnect, we nuke all store - // this.store = {}; - }, - async rejoinRooms() { - console.log("rejoinRooms"); - // refresh full content of all rooms tracked const paths = this.rooms_joined.filter( (value, index, array) => array.indexOf(value) === index ); @@ -227,13 +229,39 @@ export default function () { this.join({ room: this.tokenpath.token_path }); }, + async getAndTrackUsers() { + const response = await this.$axios.get("_users").catch((err) => { + throw this.processError(err); + }); + const users = response.data; + this.$set(this, "users", users); + this.is_tracking_users = true; + this.socket.emit("trackUsers"); + return this.users; + }, + newUser(user) { + this.users.push(user); + }, + updateUser(user) { + const index = this.users.findIndex((u) => u.id === user.id); + if (index !== -1) this.users[index] = user; + }, + removeUser({ id }) { + const index = this.users.findIndex((u) => u.id === id); + if (index !== -1) this.$delete(this.users, index); + }, + async unTrackUsers() { + this.socket.emit("leaveUsers"); + this.users = []; + this.is_tracking_users = false; + }, + folderCreated({ path, meta }) { // only update store if content is tracked if (!this.rooms_joined.includes(path)) { // console.log("folderCreated – room isnt tracked, not adding to store"); return; } - if (!Object.prototype.hasOwnProperty.call(this.store, path)) this.store[path] = new Array(); this.store[path].push(meta); @@ -298,6 +326,7 @@ export default function () { .error("Folder missing in store : " + path_to_folder); if (!folder.$files) this.$set(folder, "$files", new Array()); folder.$files.push(meta); + this.$eventHub.$emit("file.created", { meta }); }, fileUpdated({ path_to_folder, path_to_meta, changed_data }) { const folder = this.store[path_to_folder]; @@ -319,6 +348,9 @@ export default function () { const storage_path = response.data.pathToUserContent; return storage_path; }, + async restartApp() { + await this.$axios.post(`_restartApp`); + }, taskStatus({ task_id, progress }) { this.$eventHub.$emit("task.status", { task_id, progress }); }, @@ -346,19 +378,28 @@ export default function () { // we use the store to trigger updates to array if item is updated return this.store[path]; }, - async getFolder({ path, detailed_infos = false }) { - if (!detailed_infos && this.store[path]) return this.store[path]; + async getFolder({ path, no_files = false, detailed_infos = false }) { + const use_store = detailed_infos === false && no_files === false; + if (use_store && this.store[path]) return this.store[path]; let queries = []; if (detailed_infos) queries.push("detailed=true"); + if (no_files) queries.push("no_files=true"); if (queries.length > 0) path += `?${queries.join("&")}`; const response = await this.$axios.get(path).catch((err) => { throw this.processError(err); }); const folder = response.data; - this.$set(this.store, folder.$path, folder); - return this.store[folder.$path]; + + if (use_store) { + // to get reactivity + this.$set(this.store, folder.$path, folder); + return this.store[folder.$path]; + } else { + // to only get data + return folder; + } }, async getPublicFolder({ path, superadmintoken }) { @@ -376,7 +417,7 @@ export default function () { return this.store[folder.$path]; }, - async getArchives({ path }) { + async getFile({ path }) { const response = await this.$axios.get(path); return response.data; }, @@ -426,7 +467,6 @@ export default function () { this.leave({ room: path }); // remove token on the server await this.$axios.post(`${path}/_logout`, auth_infos); - return; } catch (err) { throw this.processError(err); @@ -510,7 +550,8 @@ export default function () { throw this.processError(err); }); this.$eventHub.$emit("hooks.uploadFile", { path }); - return res.data.meta_filename; + const { saved_meta, meta_filename } = res.data; + return { saved_meta, meta_filename }; }, async copyFile({ path, new_meta = {}, path_to_destination_folder = "" }) { const response = await this.$axios @@ -620,7 +661,11 @@ export default function () { this.$eventHub.$emit("hooks.updateMeta", { path }); return response.data; }, - + async regenerateThumbs({ path }) { + const response = await this.$axios.patch(`${path}/_regenerateThumbs`); + this.$eventHub.$emit("hooks.regenerateThumbs", { path }); + return response.data; + }, async updateCover({ path, new_cover_data, onProgress }) { if (typeof new_cover_data === "string") { // its a meta filename in that same folder @@ -677,10 +722,14 @@ export default function () { this.$eventHub.$emit("app.prompt_general_password"); } else if (code === "no_general_password_submitted") { this.$eventHub.$emit("app.prompt_general_password"); - } else if (code === "token_not_allowed_must_be_local_admin") { - // this.$alertify.delay(4000).error("action_not_allowed"); - } else if (code === "token_not_allowed_must_be_contributors") { - // this.$alertify.delay(4000).error("action_not_allowed"); + } else if (code === "not_allowed") { + this.$eventHub.$emit("app.notify_error", code); + } else if (code === "file_size_limit_exceeded") { + let msg = "File size limit exceeded. Maximum file size is "; + msg += + err_infos.upload_max_file_size_in_mo + + " Mo. Please try again with a smaller file."; + this.$eventHub.$emit("app.file_size_limit_exceeded", msg); } else if (code === "ENOENT") code = "folder_is_missing"; // this.$alertify.delay(4000).error("Message d’erreur : " + code); console.error("processError – " + code); diff --git a/client/src/adc-core/author/AuthorCard.vue b/client/src/adc-core/author/AuthorCard.vue index f4999b69c..4deb8bb94 100644 --- a/client/src/adc-core/author/AuthorCard.vue +++ b/client/src/adc-core/author/AuthorCard.vue @@ -13,6 +13,11 @@ :to="author_url" @click.native="context !== 'full' ? $emit('navToPage') : ''" > +
+ + {{ $t("connected_currently") }} +
+
-
-
-
-
-
-
-
-
- +
@@ -108,7 +106,7 @@ v-if="context === 'full' && (can_edit || !!author.$location)" :header="$t('location')" :is_open_initially="true" - :has_items="!!author.$location" + :has_items="author_has_location" :icon="'map'" class="u-spacingBottom" > @@ -148,8 +146,8 @@
u.meta?.token_path === this.author.$path + ); + }, can_edit() { return ( (this.is_self || this.is_instance_admin) && this.context === "full" @@ -203,14 +209,39 @@ export default { author_url() { return this.createURLFromPath(this.author.$path); }, + author_has_location() { + return ( + !!this.author.$location?.latitude && !!this.author.$location?.longitude + ); + }, }, methods: { async removeAuthor() { await this.$api.deleteItem({ path: this.author.$path, }); - if (this.is_self) await this.$api.logoutFromFolder(); this.$router.push("/@"); + if (this.is_self) { + await this.$api.logoutFromFolder(); + window.location.reload(); + } + }, + async getAllAuthorsGroup() { + const authors = await this.$api.getFolders({ + path: "authors", + }); + return authors + .reduce((acc, m) => { + m.group?.map((k) => { + if (!acc.some((_k) => _k === k)) { + if (k) acc.push(k); + } + }); + return acc; + }, []) + .sort((a, b) => { + return a.localeCompare(b); + }); }, }, }; @@ -229,6 +260,7 @@ export default { } ._topbar { + position: relative; display: flex; flex-flow: row nowrap; align-items: center; @@ -249,6 +281,7 @@ export default { ._topbar { flex-flow: column nowrap; align-items: stretch; + gap: calc(var(--spacing) / 1); ._cover { flex: 0 0 auto; @@ -258,6 +291,8 @@ export default { } ._linkTo { + position: relative; + display: block; text-decoration: none; color: inherit; } @@ -269,10 +304,10 @@ export default { ._text { // overflow: hidden; - // display: flex; - // flex-flow: column nowrap; + display: flex; + flex-flow: column nowrap; // padding-bottom: calc(var(--spacing) / 2); - // gap: calc(var(--spacing) / 2); + gap: calc(var(--spacing) / 1); ::v-deep { a { @@ -286,4 +321,14 @@ export default { } } } + +._connected { + display: flex; + gap: calc(var(--spacing) / 4) calc(var(--spacing) / 2); + background-color: var(--c-bleumarine_clair); + border-radius: 3px; + + font-weight: 500; + justify-content: center; +} diff --git a/client/src/adc-core/author/AuthorList.vue b/client/src/adc-core/author/AuthorList.vue index 6d730d860..fff9f2417 100644 --- a/client/src/adc-core/author/AuthorList.vue +++ b/client/src/adc-core/author/AuthorList.vue @@ -128,6 +128,7 @@ export default { async logout() { try { this.reponse = await this.$api.logoutFromFolder(); + window.location.reload(); } catch (err) { this.response = err; this.$alertify.delay(4000).error(err); diff --git a/client/src/adc-core/author/CreateAuthor.vue b/client/src/adc-core/author/CreateAuthor.vue index 3ef0db8f2..49d4b6a1a 100644 --- a/client/src/adc-core/author/CreateAuthor.vue +++ b/client/src/adc-core/author/CreateAuthor.vue @@ -68,15 +68,27 @@
- +
+ + + +
@@ -155,6 +167,8 @@ export default { new_author_password: "", new_author_cover_raw: undefined, + select_image: false, + is_creating_author: false, error_msg: "", @@ -185,6 +199,10 @@ export default { has_signup_password() { return !!this.signup_password; }, + new_cover_object_url() { + if (!this.new_cover) return undefined; + return URL.createObjectURL(this.new_cover); + }, }, methods: { async createAuthor() { @@ -278,4 +296,15 @@ export default { // margin: calc(var(--spacing) / 2) 0; // border-radius: 4px; } + +._imgPreview { + width: 100%; + max-width: 140px; + border: 2px solid var(--c-gris); + aspect-ratio: 1; + border-radius: 50%; + overflow: hidden; + object-fit: cover; + object-position: center; +} diff --git a/client/src/adc-core/author/LoginAs.vue b/client/src/adc-core/author/LoginAs.vue index b61b615e6..298ceec40 100644 --- a/client/src/adc-core/author/LoginAs.vue +++ b/client/src/adc-core/author/LoginAs.vue @@ -54,12 +54,14 @@ {{ $t("back") }} - - - +
+ + + +
this.current_audio_level_smoothed) - const current_audio_level = Math.max(0, this.current_audio_level - 10); - - this.current_audio_level_smoothed = Math.round( - (this.current_audio_level_smoothed + current_audio_level) / 2 - ); - // else - }, is_recording() { - // this.clearCanvas(); + this.audioHistory = []; }, }, computed: {}, @@ -57,8 +47,7 @@ export default { if (typeof this.stream !== "object") return; this.audio_activity = audioActivity(this.stream, (level) => { - // 'level' indicates the audio activity in percentage - this.current_audio_level = Math.round(level * 100); + this.current_audio_level = level; }); this.drawVolume(); }, @@ -66,40 +55,49 @@ export default { const canvas = this.$refs.canvas; if (!canvas) return; + const dpr = 1; + // const dpr = window.devicePixelRatio || 1; + const w = this.$el.clientWidth * dpr; + const h = this.$el.clientHeight * dpr; + if (w !== canvas.width || h !== canvas.height) { + canvas.width = w; + canvas.height = h; + } + + const max_history_points = this.maxHistoryPoints; + // const max_history_points = !this.is_recording + // ? this.maxHistoryPoints + // : Infinity; + + // const smoothed_level = this.current_audio_level; + // const latest_level = this.audioHistory.at(-1) || 0; + // const smoothed_level = (latest_level * 3 + this.current_audio_level) / 4; + + this.audioHistory.push(this.current_audio_level); + + if (this.audioHistory.length > max_history_points) { + this.audioHistory.shift(); + } + const ctx = canvas.getContext("2d"); - // ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.fillStyle = "rgba(255,255,255,.1)"; + ctx.fillStyle = "white"; ctx.fillRect(0, 0, canvas.width, canvas.height); if (!this.is_recording) ctx.fillStyle = "#333"; else ctx.fillStyle = "#fc4b60"; - const diam = Math.min(canvas.width, canvas.height); - const volume = ((diam / 2) * this.current_audio_level_smoothed) / 20; - - ctx.beginPath(); - ctx.ellipse( - canvas.width / 2, - canvas.height / 2, - volume, - volume, - 0, - 2 * Math.PI, - false - ); - ctx.fill(); + const pointWidth = canvas.width / this.audioHistory.length; + const maxHeight = canvas.height * 1.6; - // ctx.fillStyle = "#000000"; - // ctx.fillRect(20, Math.random() * 200, 10, 10); - // ctx.ellipse( - // Math.random() * 200 + canvas.width / 2, - // Math.random() * 200 + canvas.height / 2, - // volume, - // volume, - // 0, - // 2 * Math.PI, - // false - // ); + this.audioHistory.forEach((level, index) => { + const x = index * pointWidth; + const width = pointWidth; + const height = Math.max(level * maxHeight, 2); + const y = canvas.height / 2 - height / 2; + // if (index === 0) ctx.moveTo(x, 0); + // ctx.lineTo(x, y); + ctx.fillRect(x, y, width, height); + }); window.requestAnimationFrame(this.drawVolume); }, @@ -112,10 +110,6 @@ export default { height: 100%; object-fit: scale-down; - display: flex; - align-items: center; - justify-content: center; - canvas { display: block; max-width: 100%; diff --git a/client/src/adc-core/capture/CaptureEffects.vue b/client/src/adc-core/capture/CaptureEffects.vue index d9b8aa34d..f16d710e8 100644 --- a/client/src/adc-core/capture/CaptureEffects.vue +++ b/client/src/adc-core/capture/CaptureEffects.vue @@ -2,48 +2,29 @@
- -
- - -
-
- - -
- -
-
- + + + +
+ {{ $t("chroma_key_color") }} + + - -
-
-
- - -
- -
- - -
- - - -
+ + +
+ {{ $t("replace_color_with") }} + +
- - - pas disponible pour le moment / feature not yet functioning, use - dodoc 9 - - - - + @close="select_image = false" + />
-
-
-
+ + +
-
- - -
- -
- -
+
+ +
@@ -208,6 +174,8 @@ export default { flip_horizontally: false, flip_vertically: false, + select_image: false, + chroma_key_replacement_image_url: undefined, chroma_key_settings: { enable: false, key_color: { @@ -215,7 +183,7 @@ export default { g: 255, b: 0, }, // 0 -> 1 by 0.001 - similarity: 0.04, // 0 -> 1 by 0.001 + similarity: 0.02, // 0 -> 1 by 0.001 smoothness: 0.08, // 0 -> 1 by 0.001 spill: 0.1, // 0 -> 1 by 0.001 replacement_color: { @@ -229,7 +197,6 @@ export default { image_filters_settings: { brightness: { - enable: false, value: 1, order: 0, default: 1, @@ -238,7 +205,6 @@ export default { step: 0.01, }, contrast: { - enable: false, value: 1, order: 1, default: 1, @@ -247,7 +213,6 @@ export default { step: 0.01, }, hue: { - enable: false, value: 0, order: 2, default: 0, @@ -256,7 +221,6 @@ export default { step: 0.01, }, saturation: { - enable: false, value: 0, order: 3, default: 0, @@ -265,7 +229,6 @@ export default { step: 0.01, }, lightness: { - enable: false, value: 0, order: 4, default: 0, @@ -274,7 +237,6 @@ export default { step: 0.01, }, dotscreen: { - enable: false, value: 10, order: 6, default: 10, @@ -531,6 +493,12 @@ void main(void) { }); } }, + "chroma_key_settings.replacement_mode"() { + if (this.chroma_key_settings.replacement_mode === "image") { + this.chroma_key_replacement_image_url = undefined; + this.select_image = true; + } + }, }, computed: { enable__() { @@ -538,8 +506,10 @@ void main(void) { this.flip_vertically === true || this.flip_horizontally === true || this.chroma_key_settings.enable === true || - Object.keys(this.image_filters_settings).find( - (ifs) => this.image_filters_settings[ifs].enable === true + Object.keys(this.image_filters_settings).some( + (ifs) => + this.image_filters_settings[ifs].value !== + this.image_filters_settings[ifs].default ) ); }, @@ -567,7 +537,8 @@ void main(void) { this.chroma_key_settings.enable = false; Object.keys(this.image_filters_settings).map((ifs) => { - this.image_filters_settings[ifs].enable = false; + this.image_filters_settings[ifs].value = + this.image_filters_settings[ifs].default; }); }, hexToRgb(hex) { @@ -763,7 +734,8 @@ void main(void) { gl.uniform1f( loc, parseFloat( - this.image_filters_settings[name].enable + this.image_filters_settings[name].value !== + this.image_filters_settings[name].default ? this.image_filters_settings[name].value : -1000 ) @@ -794,59 +766,75 @@ void main(void) { stopWebGL() { this.offscreen_canvas = undefined; }, - newChromaKeyImage(img) { + async newChromaKeyImage(blob) { console.log(`CaptureEffects • METHODS : newChromaKeyImage`); - if (img === false) { + if (!blob) { this.chroma_key_settings.replacement_image = undefined; + this.chroma_key_replacement_image_url = undefined; this.loadReplacementImageInShader(); return; } - var imageElement = new Image(); + const img = await createImageBitmap(blob); + this.chroma_key_replacement_image_url = URL.createObjectURL(blob); - if (typeof img === "string") imageElement.src = img; - else if (typeof img === "object") imageElement.src = img.thumb; + // let img_el = new Image(); + // img_el.src = img; - imageElement.onload = () => { - const canvas = document.createElement("canvas"), - ctx = canvas.getContext("2d"); + // try { + // await img_el.decode(); + // } catch (e) { + // console.error(e); + // } - canvas.width = this.videoElement.videoWidth; - canvas.height = this.videoElement.videoHeight; + const canvas = document.createElement("canvas"), + ctx = canvas.getContext("2d"); - const coverImg = (img, type, c_width, c_height) => { - const img_ratio = img.height / img.width; - const c_ratio = c_height / c_width; - if ( - (img_ratio < c_ratio && type === "contain") || - (img_ratio > c_ratio && type === "cover") - ) { - const h = c_width * img_ratio; - ctx.drawImage(img, 0, (c_height - h) / 2, c_width, h); - } - if ( - (img_ratio > c_ratio && type === "contain") || - (img_ratio < c_ratio && type === "cover") - ) { - const w = (c_width * c_ratio) / img_ratio; - ctx.drawImage(img, (c_width - w) / 2, 0, w, c_height); - } - }; + canvas.width = this.videoElement.videoWidth; + canvas.height = this.videoElement.videoHeight; - coverImg(imageElement, "cover", canvas.width, canvas.height); + const type = "cover"; - this.chroma_key_settings.replacement_image = ctx.getImageData( - 0, - 0, - canvas.width, - canvas.height - ); + const img_ratio = img.height / img.width; + const c_ratio = canvas.height / canvas.width; + if ( + (img_ratio < c_ratio && type === "contain") || + (img_ratio > c_ratio && type === "cover") + ) { + const h = canvas.width * img_ratio; + ctx.drawImage(img, 0, (canvas.height - h) / 2, canvas.width, h); + } + if ( + (img_ratio > c_ratio && type === "contain") || + (img_ratio < c_ratio && type === "cover") + ) { + const w = (canvas.width * c_ratio) / img_ratio; + ctx.drawImage(img, (canvas.width - w) / 2, 0, w, canvas.height); + } - this.loadReplacementImageInShader(); + this.chroma_key_settings.replacement_image = ctx.getImageData( + 0, + 0, + canvas.width, + canvas.height + ); - canvas.remove(); - }; + this.loadReplacementImageInShader(); + + canvas.remove(); + }, + getMediaSrcFromPath(path_to_source_media_meta) { + const file = this.getMediaInFolder({ + path_to_source_media_meta, + }); + const path_to_project = this.getParent(file.$path); + return this.makeRelativeURLFromThumbs({ + $thumbs: file.$thumbs, + $type: file.$type, + $path: path_to_project, + resolution: 1600, + }); }, loadReplacementImageInShader() { const gl = this.offscreen_canvas.getContext("webgl", { @@ -902,7 +890,7 @@ void main(void) { // margin: 0 calc(var(--spacing) / 4) calc(var(--spacing) / 2); margin: calc(var(--spacing) / 2) 0; padding: calc(var(--spacing) / 2); - background-color: var(--c-gris_clair); + background-color: white; border-radius: 4px; &:first-child { diff --git a/client/src/adc-core/capture/CaptureSettings.vue b/client/src/adc-core/capture/CaptureSettings.vue index 4d3abf10b..d01ee511e 100644 --- a/client/src/adc-core/capture/CaptureSettings.vue +++ b/client/src/adc-core/capture/CaptureSettings.vue @@ -7,7 +7,7 @@ /> - + /> -->
@@ -29,7 +29,7 @@
-
+
+
-
@@ -245,23 +246,30 @@ desired_camera_resolution && desired_camera_resolution.type === 'custom' " - class="u-sameRow" + class="u-sameRow _customResolution" > - - × - + + × +
@@ -291,7 +299,7 @@
-
+
@@ -418,40 +426,38 @@ export default { predefined_resolutions: [ { - label: "4K(UHD)", + label: this.$t("very_high"), + label_detail: "4K(UHD)", width: 3840, height: 2160, ratio: "16:9", }, { - label: "1080p(FHD)", + label: this.$t("high"), + label_detail: "1080p(FHD)", width: 1920, height: 1080, ratio: "16:9", }, { - label: "720p(HD)", + label: this.$t("medium"), + label_detail: "720p(HD)", width: 1280, height: 720, ratio: "16:9", }, { - label: "VGA", + label: this.$t("low"), + label_detail: "VGA", width: 640, height: 480, ratio: "4:3", }, - { - label: "QVGA", - width: 320, - height: 240, - ratio: "4:3", - }, ], unavailable_camera_resolutions: [], custom_camera_resolution: { - label: this.$t("custom"), + label: this.$t("custom_f"), type: "custom", width: 1280, height: 720, @@ -695,9 +701,7 @@ export default { navigator.mediaDevices .enumerateDevices() .then((devices) => { - // if (!this.$root.is_electron) { return resolve(devices); - // } else return devices; }) // .then((devices) => { // this.getDesktopCapturer() @@ -724,6 +728,12 @@ export default { this.current_stream = this.local_stream; } }, + resInstructions(res) { + if (res.type === "custom") return undefined; + return `${res.label_detail} • ${res.ratio} • ${res.width}×${ + res.height + } ${this.$t("pixels")}`; + }, setSupportedConstraints() { return new Promise((resolve) => { if (this.$root.debug_mode === true) @@ -750,6 +760,10 @@ export default { if (this.all_video_input_devices.length > 0) this.selected_devices.video_input_device = this.getDefaultDevice({ key: "video_input_device", + option_preference: { + key: "facingMode", + value: "environment", + }, devices_list: this.all_video_input_devices, }); @@ -776,11 +790,11 @@ export default { // ); // } else { this.desired_camera_resolution = this.predefined_resolutions.find( - (r) => r.label === "720p(HD)" + (r) => r.height === 720 ); // } }, - getDefaultDevice({ key, devices_list }) { + getDefaultDevice({ key, option_preference, devices_list }) { if (this.$root.debug_mode === true) console.log(`CaptureSettings • METHODS : getDefaultDevice`); @@ -791,25 +805,22 @@ export default { previously_used = JSON.parse( localStorage.getItem("selected_devices") ); + if (previously_used?.[key]) { + const found_device = devices_list.find( + (d) => d.deviceId === previously_used[key].deviceId + ); + if (found_device) return found_device; + } } catch (e) { /**/ } } - if (previously_used?.[key]) { + if (option_preference) { const found_device = devices_list.find( - (d) => d.deviceId === previously_used[key].deviceId + (d) => d[option_preference.key] === option_preference.value ); - // if true, use this - if (found_device) { - if (this.$root.debug_mode === true) - console.log( - `CaptureSettings • METHODS : getDefaultDevice — found previously used device for ` + - key - ); - - return found_device; - } + if (found_device) return found_device; } if (this.$root.debug_mode === true) @@ -945,13 +956,20 @@ export default { .then(() => this.listDevices()) .then((devices) => { this.connected_devices = devices.map((d) => { + const { label, kind, deviceId, chromeMediaSource = false } = d; + let facingMode = {}; + try { + facingMode = d.getCapabilities()?.facingMode?.[0]; + } catch (e) { + /**/ + } + return { - label: d.label, - kind: d.kind, - deviceId: d.deviceId, - chromeMediaSource: d.chromeMediaSource - ? d.chromeMediaSource - : false, + label, + kind, + deviceId, + facingMode, + chromeMediaSource, }; }); @@ -1367,7 +1385,7 @@ export default { diff --git a/client/src/adc-core/capture/CaptureView.vue b/client/src/adc-core/capture/CaptureView.vue index 3e8fe0a84..944506329 100644 --- a/client/src/adc-core/capture/CaptureView.vue +++ b/client/src/adc-core/capture/CaptureView.vue @@ -1,8 +1,5 @@ + diff --git a/client/src/adc-core/fields/FavSwitch.vue b/client/src/adc-core/fields/FavSwitch.vue index 9f29e3eb5..9e2c4a506 100644 --- a/client/src/adc-core/fields/FavSwitch.vue +++ b/client/src/adc-core/fields/FavSwitch.vue @@ -3,6 +3,7 @@
-
- @@ -188,9 +202,6 @@ export default { } } -._scb { -} - ._sameLine { display: flex; flex-flow: row nowrap; diff --git a/client/src/adc-core/fields/RadioCheckboxField.vue b/client/src/adc-core/fields/RadioCheckboxField.vue index 165ed2523..606983995 100644 --- a/client/src/adc-core/fields/RadioCheckboxField.vue +++ b/client/src/adc-core/fields/RadioCheckboxField.vue @@ -34,28 +34,27 @@
- + + +
- + diff --git a/client/src/adc-core/fields/SaveCancelButtons.vue b/client/src/adc-core/fields/SaveCancelButtons.vue index 073ed4963..d52811572 100644 --- a/client/src/adc-core/fields/SaveCancelButtons.vue +++ b/client/src/adc-core/fields/SaveCancelButtons.vue @@ -1,9 +1,8 @@ @@ -100,12 +139,23 @@ export default { align-items: center; border: none; - padding: 0; + padding: calc(var(--spacing) / 1); - backdrop-filter: blur(5px); // background: rgba(53, 53, 53, 0.7); // background: rgba(255, 255, 255, 0.7); - background: rgba(231, 231, 231, 0.7); + + ._baseModal--overlay { + position: absolute; + inset: 0; + background: rgba(231, 231, 231, 0.87); + backdrop-filter: blur(3px); + cursor: pointer; + transition: backdrop-filter 1s ease-in-out; + + &:hover { + backdrop-filter: blur(0px); + } + } ._baseModal--content { position: relative; @@ -113,12 +163,15 @@ export default { box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); border-radius: 4px; - margin: 0 auto; width: 100%; max-width: 480px; max-height: 100vh; - // max-width: calc(480px - calc(var(--spacing) * 1)); - // max-height: calc(100vh - calc(var(--spacing) * 1)); + max-height: 100dvh; + + margin: 0 auto; + padding: 0; + + transition: all 0.3s cubic-bezier(0.19, 1, 0.22, 1); } &[data-size="full"] ._baseModal--content { @@ -126,7 +179,7 @@ export default { max-height: none; border: none; - --modal-margin: var(--spacing) * 4; + --modal-margin: 0%; width: calc(100% - var(--modal-margin)); height: calc(100% - var(--modal-margin)); @@ -141,19 +194,26 @@ export default { } ._closeBtn { + position: absolute; + top: 0; + right: 0; + margin: var(--spacing); padding: calc(var(--spacing) / 3); + z-index: 1; } header { display: flex; flex-flow: row nowrap; justify-content: space-between; - padding: calc(var(--spacing) * 1); - h2 { - font-weight: 600; - font-size: var(--sl-font-size-x-large); - margin: 0; - } + margin: calc(var(--spacing) * 1); + // border-bottom: 1px solid var(--c-gris); + + // h2 { + // font-weight: 600; + // font-size: var(--sl-font-size-x-large); + // margin: 0; + // } } ._baseModal--content { @@ -166,14 +226,15 @@ header { } ._content { flex: 1 1 auto; + overflow: auto; } } ._content { - overflow: auto; - padding: 0 calc(var(--spacing) * 1) 0; + position: relative; + padding: 0 calc(var(--spacing) * 1); - > *:first-child { - margin-top: 0; + &:first-child { + margin-top: calc(var(--spacing) * 1); } ._baseModal[data-size="full"] & { @@ -186,8 +247,10 @@ header { } ._footer { display: flex; - justify-content: center; - padding: calc(var(--spacing) * 1); + flex-flow: row wrap; + justify-content: space-between; + gap: calc(var(--spacing) / 2); + margin: calc(var(--spacing) * 1); } @keyframes reveal { diff --git a/client/src/adc-core/modals/CreateFolder.vue b/client/src/adc-core/modals/CreateFolder.vue index 85aeb22ca..ab83eb313 100644 --- a/client/src/adc-core/modals/CreateFolder.vue +++ b/client/src/adc-core/modals/CreateFolder.vue @@ -12,8 +12,6 @@ @onEnter="createFolder" /> -
-
-
- -
- - -
- + + + diff --git a/client/src/adc-core/modals/QRModal.vue b/client/src/adc-core/modals/QRModal.vue index 446c00c9d..03bdf2d9f 100644 --- a/client/src/adc-core/modals/QRModal.vue +++ b/client/src/adc-core/modals/QRModal.vue @@ -6,22 +6,22 @@
- - - +

{{ $t("share_link_to_file") }}

+ + + + @@ -81,7 +81,7 @@ export default { }, computed: { urls_to_page() { - let current_url = new URL(this.url_to_access); + let current_url = new URL(this.url_to_access.trim()); let _urls_to_page = {}; @@ -119,23 +119,32 @@ export default { }, network_options() { - return [ - { + let options = []; + if (this.urls_to_page["domain"]?.length > 0) { + options.push({ key: "domain", label: this.$t("domain"), instructions: this.$t("domain_instr"), - }, - { + }); + } + + if (this.urls_to_page["local_network"]?.length > 0) { + options.push({ key: "local_network", label: this.$t("local_network"), instructions: this.$t("local_network_instr"), - }, - { + }); + } + + if (this.urls_to_page["local"]?.length > 0) { + options.push({ key: "local", label: this.$t("local_machine"), instructions: this.$t("local_machine_instr"), - }, - ]; + }); + } + + return options; }, // dodoc 9 code diff --git a/client/src/adc-core/modals/_dialog_bk.vue b/client/src/adc-core/modals/_dialog_bk.vue deleted file mode 100644 index 107334002..000000000 --- a/client/src/adc-core/modals/_dialog_bk.vue +++ /dev/null @@ -1,102 +0,0 @@ - - - diff --git a/client/src/adc-core/tasks/TaskTracker.vue b/client/src/adc-core/tasks/TaskTracker.vue index 6d5219087..208b918fb 100644 --- a/client/src/adc-core/tasks/TaskTracker.vue +++ b/client/src/adc-core/tasks/TaskTracker.vue @@ -4,47 +4,49 @@ class="" :str="tasks_tracked.length > 1 ? $t('exports') : $t('export')" /> -
-
- {{ $t(task.instructions.recipe) }} + +
+
+ {{ $t(task.instructions.recipe) }} +
+
+ + {{ $t(task.event) }} + +
+
+ +
+
+ +
+
+ + +
-
- - {{ $t(task.event) }} - -
-
- -
-
- -
-
- - -
-
+
diff --git a/client/src/adc-core/ui/RadioSwitch.vue b/client/src/adc-core/ui/RadioSwitch.vue index be33c46d3..d67da6193 100644 --- a/client/src/adc-core/ui/RadioSwitch.vue +++ b/client/src/adc-core/ui/RadioSwitch.vue @@ -96,20 +96,23 @@ menu { display: inline-flex; padding: var(--radio-switch-padding); border-radius: calc(var(--radio-switch-radius) * 1.4); - background-color: var(--c-gris); - border: 1px solid var(--c-gris); + background-color: #fff; + transition: all var(--radio-switch-animation-duration); } -.radio-switch:focus-within { - outline: 2px solid var(--active-color); - // box-shadow: 0 0 0 2px hsla(var(--ri5-color-contrast-higher-hsl), 0.15); + +.radio-switch:hover { + // background-color: var(--c-gris); } +// .radio-switch:focus-within { +// border-color: var(--active-color); +// } .radio-switch__item { position: relative; display: inline-block; height: calc(var(--radio-switch-height) - 2 * var(--radio-switch-padding)); width: calc(var(--radio-switch-width) * 0.5 - var(--radio-switch-padding)); - margin: -1px; + // margin: -1px; } .radio-switch__label { @@ -130,9 +133,15 @@ menu { font-weight: 500; transition: all var(--radio-switch-animation-duration); + + &:hover, + &:focus-visible { + background-color: var(--active-color); + } } .radio-switch__input:checked ~ .radio-switch__label { color: hsl(var(--ri5-color-white-hsl)); + pointer-events: none; } .radio-switch__input:focus ~ .radio-switch__label { background-color: hsla(var(--ri5-color-primary-hsl), 0.6); @@ -144,7 +153,7 @@ menu { .radio-switch__marker { position: absolute; - inset: 0; + inset: 3px; // background-color: var(--active-color); background-color: var(--c-noir); border-radius: var(--radio-switch-radius); diff --git a/client/src/adc-core/ui/ReorderedList.vue b/client/src/adc-core/ui/ReorderedList.vue index 645504b6a..9f071f841 100644 --- a/client/src/adc-core/ui/ReorderedList.vue +++ b/client/src/adc-core/ui/ReorderedList.vue @@ -1,25 +1,17 @@ @@ -105,4 +128,8 @@ export default { border-bottom: 2px solid var(--c-gris); padding: calc(var(--spacing) / 2) 0; } + +fieldset + fieldset { + margin-top: calc(var(--spacing) / 1); +} diff --git a/client/src/components/BatchEditInformationsModal.vue b/client/src/components/BatchEditInformationsModal.vue new file mode 100644 index 000000000..1fe55ae0c --- /dev/null +++ b/client/src/components/BatchEditInformationsModal.vue @@ -0,0 +1,209 @@ + + + diff --git a/client/src/components/DuplicateMedia.vue b/client/src/components/DuplicateMedia.vue index fc55b22d0..7319f8dd6 100644 --- a/client/src/components/DuplicateMedia.vue +++ b/client/src/components/DuplicateMedia.vue @@ -1,9 +1,14 @@ @@ -335,6 +548,11 @@ export default { height: 100%; overflow: hidden; + &[data-filetype="text"] { + padding: calc(var(--spacing) * 1); + overflow: auto; + align-items: flex-start; + } &[data-filetype="audio"] { padding: calc(var(--spacing) * 3); } @@ -353,6 +571,8 @@ export default { ._navBtn { pointer-events: auto; + background: rgba(255, 255, 255, 0.4) !important; + backdrop-filter: blur(5px) !important; position: relative; z-index: 100; @@ -395,7 +615,7 @@ export default { > ._preview { position: relative; - background: var(--c-gris); + background: var(--c-gris_clair); overflow: hidden; } @@ -442,8 +662,9 @@ export default { ._stickyClose { position: sticky; + top: 0; height: 0; - z-index: 100; + z-index: 101; } ._navBtns { @@ -475,13 +696,16 @@ export default { } ._originInd { - padding: 2px 4px; + display: inline-block; color: white; + padding: 2px 4px; + font-style: italic; background: var(--o-color); } ._favSwitch { display: inline-block; + font-size: 1rem; } ._optimizeNotice { @@ -512,6 +736,13 @@ export default { gap: calc(var(--spacing) / 1); } -._dragFile { +._regenerateThumbs { + position: relative; +} + +._allModifyButtons { + display: flex; + flex-flow: column nowrap; + gap: calc(var(--spacing) / 1); } diff --git a/client/src/components/MediaTile.vue b/client/src/components/MediaTile.vue index 553dd7152..3e082c13b 100644 --- a/client/src/components/MediaTile.vue +++ b/client/src/components/MediaTile.vue @@ -7,12 +7,13 @@ 'is--selected': is_selected, 'is--own': is_own_media, }" + :data-type="file.$type" :data-tilemode="tile_mode" > -
@@ -26,6 +27,11 @@ v-if="tile_mode === 'table'" v-html="formatDateToPrecise(file.$date_uploaded)" /> +
-
- +
+
+ +
@@ -74,6 +79,7 @@
@@ -232,8 +255,9 @@ export default { justify-content: flex-end; gap: calc(var(--spacing) / 4); padding: 0 calc(var(--spacing) / 2); + align-items: center; // crispy crisp icons - font-size: 111%; + // font-size: 111%; .is--mobileView & { padding: 0; @@ -262,4 +286,26 @@ export default { text-decoration: none; font-size: 80%; } + +._currentUsers { + position: relative; + display: flex; + align-items: center; + justify-content: center; +} +._badge { + position: absolute; + right: -0.3rem; + top: -0.3rem; + color: white; + background: var(--c-bleumarine); + border-radius: 0.75em; + min-width: 1.2rem; + height: 1rem; + display: flex; + padding: 2px; + align-items: center; + justify-content: center; + font-weight: bold; +} diff --git a/client/src/components/fields/ShowExportedFileInfos.vue b/client/src/components/fields/ShowExportedFileInfos.vue new file mode 100644 index 000000000..c25523cf9 --- /dev/null +++ b/client/src/components/fields/ShowExportedFileInfos.vue @@ -0,0 +1,43 @@ + + + diff --git a/client/src/components/makes/ExportSaveMakeModal.vue b/client/src/components/makes/ExportSaveMakeModal.vue index 308595def..52ec55b0e 100644 --- a/client/src/components/makes/ExportSaveMakeModal.vue +++ b/client/src/components/makes/ExportSaveMakeModal.vue @@ -18,35 +18,10 @@
@@ -107,6 +82,7 @@ export default { } this.finished_saving_to_project = true; + this.$eventHub.$emit("pane.animate", "collect"); setTimeout(() => { this.$emit("close"); }, 3000); diff --git a/client/src/components/makes/ExportSaveMakeModal2.vue b/client/src/components/makes/ExportSaveMakeModal2.vue new file mode 100644 index 000000000..e0fb81477 --- /dev/null +++ b/client/src/components/makes/ExportSaveMakeModal2.vue @@ -0,0 +1,360 @@ + + + diff --git a/client/src/components/makes/ImageAndVideoMontage.vue b/client/src/components/makes/ImageAndVideoMontage.vue index 0fe6809fd..87974b799 100644 --- a/client/src/components/makes/ImageAndVideoMontage.vue +++ b/client/src/components/makes/ImageAndVideoMontage.vue @@ -12,63 +12,37 @@
- - +
+ +
@@ -76,6 +50,8 @@ :publication_path="make.$path" :start_collapsed="false" :types_available="['capture', 'import']" + :pick_from_types="['image', 'video']" + :available_modes="['photo', 'video']" :context="'montage'" @addModules="addModules" /> @@ -90,7 +66,7 @@
- -
- -
-
-
- - - - -
- - -
-
- -
- - -
-
-
+
diff --git a/client/src/components/makes/MakeOpen.vue b/client/src/components/makes/MakeOpen.vue index 63c8cc439..b6bc4ca4b 100644 --- a/client/src/components/makes/MakeOpen.vue +++ b/client/src/components/makes/MakeOpen.vue @@ -32,53 +32,40 @@ />
-
+
-
- - -
- + - +
@@ -95,10 +82,18 @@ export default { SingleBaseMediaPicker, ImageAndVideoMontage: () => import("@/components/makes/ImageAndVideoMontage.vue"), - EditImage: () => import("@/components/makes/EditImage.vue"), - TrimAudioVideo: () => import("@/components/makes/TrimAudioVideo.vue"), + VideoEffects: () => import("@/components/makes/VideoEffects.vue"), + MakeStopmotionAnimation: () => + import("@/components/makes/MakeStopmotionAnimation.vue"), MixAudioAndImageOrVideo: () => import("@/components/makes/MixAudioAndImageOrVideo.vue"), + QrCode: () => import("@/components/makes/QrCode.vue"), + }, + provide() { + return { + $getMetaFilenamesAlreadyPresent: () => + this.meta_filenames_already_present, + }; }, data() { return { @@ -127,17 +122,49 @@ export default { }); return false; }, - media_type_to_pick() { - if (this.make.type === "edit_image") return "image"; - if (this.make.type === "trim_audio") return "audio"; - if (this.make.type === "trim_video") return "video"; - return undefined; - }, - picker_title() { - if (this.make.type === "edit_image") return this.$t("image_to_rework"); - if (this.make.type === "trim_audio") return this.$t("audio_to_rework"); - if (this.make.type === "trim_video") return this.$t("video_to_rework"); - return undefined; + meta_filenames_already_present() { + if ( + ["stopmotion_animation", "video_assemblage"].includes(this.make.type) + ) { + const sections = this.getSectionsWithProps({ + publication: this.make, + group: "sections_list", + }); + const { other } = this.getMediasAlreadyPresentInPublication({ + publication: this.make, + sections, + }); + + return [ + { + label: this.$t("in_this_make"), + medias: other, + color: "var(--c-bleumarine)", + }, + ]; + } + + let medias = []; + + if (this.make.base_media_filename) + medias.push(this.make.base_media_filename); + if (this.make.base_image_filename) + medias.push(this.make.base_image_filename); + if (this.make.base_video_filename) + medias.push(this.make.base_video_filename); + if (this.make.base_audio_filename) + medias.push(this.make.base_audio_filename); + + if (medias.length > 0) + return [ + { + label: this.$t("in_this_make"), + medias: medias, + color: "var(--c-bleumarine)", + }, + ]; + + return []; }, }, methods: { diff --git a/client/src/components/makes/MakeStopmotionAnimation.vue b/client/src/components/makes/MakeStopmotionAnimation.vue new file mode 100644 index 000000000..f617103db --- /dev/null +++ b/client/src/components/makes/MakeStopmotionAnimation.vue @@ -0,0 +1,376 @@ + + + diff --git a/client/src/components/makes/MakesList.vue b/client/src/components/makes/MakesList.vue index 61e4d3866..6640d714c 100644 --- a/client/src/components/makes/MakesList.vue +++ b/client/src/components/makes/MakesList.vue @@ -19,15 +19,16 @@ {{ make.title }}
- - - {{ $t(make.type).toLowerCase() }} + + + {{ getMakeType(make.type) }} - - - -
-
-
- - Pas encore disponible sur do•doc 10 / vous pouvez utiliser - do•doc 9 en attendant. - -
- - + + +
+
+ -
+ {{ $t("create") }} + @@ -113,7 +90,7 @@ @@ -147,370 +124,255 @@ export default { return { current_view: "create", - recipe_types: [ - // { - // key: "document", - // label: "make_a_document", - // recipes: [ - // { - // key: "page_by_page", - // summary: "page_by_page_summary", - // show_instructions: false, - // instructions: "page_by_page_instructions", - // icon: ` - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // `, - // }, - // { - // key: "story", - // summary: "story_summary", - // show_instructions: false, - // instructions: "story_instructions", - // icon: ` - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // `, - // }, - // { - // key: "drawing_pad", - // summary: "drawing_pad_summary", - // show_instructions: false, - // instructions: "drawing_pad_instructions", - // icon: ` - // - // Fichier 1 - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // - // `, - // }, - // ], - // }, + recipes: [ { - key: "image", - label: "", - recipes: [ - { - key: "edit_image", - summary: "edit_image_summary", - instructions: "", - show_instructions: false, - icon: ` - - - - - - - - - - - - - - - - - - - - - - - - - `, - enabled: true, - }, - { - key: "trim_audio", - summary: "trim_audio_summary", - show_instructions: false, - icon: ` + key: "video_assemblage", + summary: "video_assemblage_summary", + show_instructions: false, + instructions: "video_assemblage_instructions", + + icon: ` + + + + + + + + + + + + + + + + + + + + + `, - enabled: true, - }, - { - key: "trim_video", - summary: "trim_video_summary", - show_instructions: false, - icon: ` + }, + { + key: "video_effects", + summary: "video_effects_summary", + show_instructions: false, + + instructions: "video_effects_instructions", + + icon: ` + + + + + + + + + + + + + + + + + + + + + + + + + + + `, - enabled: true, - }, - ], }, { - key: "video", - label: "make_a_video", - recipes: [ - { - key: "video_assemblage", - summary: "video_assemblage_summary", - show_instructions: false, - instructions: "video_assemblage_instructions", - enabled: true, - icon: ` - - - - - - - - - - - - - - - - - - - - - - `, - }, - { - key: "video_effects", - summary: "video_effects_summary", - show_instructions: false, - instructions: "video_effects_instructions", - - icon: ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - `, - }, - { - key: "stopmotion_animation", - summary: "stopmotion_animation_summary", - show_instructions: false, - instructions: "stopmotion_animation_instructions", - - icon: ` - - - - - - - - - - 1 - - - - - - - 2 - - - - - - - 3 - - - - - - - - - 5 - - - - - - - 6 - - - - - - - 7 - - - - - - - - - 9 - - - - - - - 10 - - - - - - `, - }, - { - key: "mix_audio_and_video", - summary: "mix_audio_and_video_summary", - show_instructions: false, - enabled: true, - instructions: "mix_audio_and_video_instructions", - - icon: ` - - - - - - - - - - - - - - - - - - - - - - - - - - - - + key: "stopmotion_animation", + summary: "stopmotion_animation_summary", + show_instructions: false, + instructions: "stopmotion_animation_instructions", + + icon: ` + + + + + + + + + + 1 + + + + + + + 2 + + + + + + + 3 + + + + + + + + + 5 + + + + + + + 6 + + + + + + + 7 + + + + + + + + + 9 + + + + + + + 10 + + + + + `, - }, - { - key: "mix_audio_and_image", - summary: "mix_audio_and_image_summary", - show_instructions: false, - enabled: true, - instructions: "mix_audio_and_image_instructions", - - icon: ` - - - - - - - - - - - - - - - - - - - - - - - - - + }, + { + key: "mix_audio_and_video", + summary: "mix_audio_and_video_summary", + show_instructions: false, + + instructions: "mix_audio_and_video_instructions", + + icon: ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + `, + }, + { + key: "mix_audio_and_image", + summary: "mix_audio_and_image_summary", + show_instructions: false, + + instructions: "mix_audio_and_image_instructions", + + icon: ` + + + + + + + + + + + + + + + + + + + + + + + + + + `, + }, + { + key: "qr_code", + summary: "qr_code_summary", + show_instructions: false, + + icon: ` + + + + + + + + `, - }, - ], }, ], }; }, - created() {}, + created() { + this.$eventHub.$on("make.open", this.openMake); + }, mounted() {}, - beforeDestroy() {}, + beforeDestroy() { + this.$eventHub.$off("make.open", this.openMake); + }, watch: {}, computed: {}, methods: { @@ -530,9 +392,9 @@ export default { }); // const path = `${this.project.$path}/makes/${new_folder_slug}`; - this.openMakes(new_folder_slug); + this.openMake(new_folder_slug); }, - openMakes(new_folder_slug) { + openMake(new_folder_slug) { this.$emit("update:opened_make_slug", new_folder_slug); }, removeMake(path) { @@ -552,7 +414,7 @@ export default { width: 100%; // max-width: var(--max-column-width); margin: 0 auto; - padding-top: calc(var(--spacing) * 1); + padding: calc(var(--spacing) * 1); padding-bottom: calc(var(--spacing) * 10); } diff --git a/client/src/components/panes/MediaLibrary.vue b/client/src/components/panes/MediaLibrary.vue index ce052607f..9eee9997e 100644 --- a/client/src/components/panes/MediaLibrary.vue +++ b/client/src/components/panes/MediaLibrary.vue @@ -15,24 +15,41 @@ /> -
-
- - {{ $t("no_media_in_project") }} - -