@nextcloud/vue 4.0.3 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/README.md +3 -3
  3. package/dist/Components/ActionButton.js +5 -29
  4. package/dist/Components/ActionButton.js.map +1 -1
  5. package/dist/Components/ActionCaption.js +2 -3
  6. package/dist/Components/ActionCaption.js.map +1 -1
  7. package/dist/Components/ActionCheckbox.js +4 -7
  8. package/dist/Components/ActionCheckbox.js.map +1 -1
  9. package/dist/Components/ActionInput.js +75 -67
  10. package/dist/Components/ActionInput.js.map +1 -1
  11. package/dist/Components/ActionLink.js +4 -28
  12. package/dist/Components/ActionLink.js.map +1 -1
  13. package/dist/Components/ActionRadio.js +4 -7
  14. package/dist/Components/ActionRadio.js.map +1 -1
  15. package/dist/Components/ActionRouter.js +3 -48
  16. package/dist/Components/ActionRouter.js.map +1 -1
  17. package/dist/Components/ActionSeparator.js +1 -23
  18. package/dist/Components/ActionSeparator.js.map +1 -1
  19. package/dist/Components/ActionText.js +3 -48
  20. package/dist/Components/ActionText.js.map +1 -1
  21. package/dist/Components/ActionTextEditable.js +5 -30
  22. package/dist/Components/ActionTextEditable.js.map +1 -1
  23. package/dist/Components/Actions.js +5 -30
  24. package/dist/Components/Actions.js.map +1 -1
  25. package/dist/Components/AppContent.js +2 -47
  26. package/dist/Components/AppContent.js.map +1 -1
  27. package/dist/Components/AppContentDetails.js +1 -22
  28. package/dist/Components/AppContentDetails.js.map +1 -1
  29. package/dist/Components/AppContentList.js +1 -22
  30. package/dist/Components/AppContentList.js.map +1 -1
  31. package/dist/Components/AppNavigation.js +10 -102
  32. package/dist/Components/AppNavigation.js.map +1 -1
  33. package/dist/Components/AppNavigationCaption.js +4 -28
  34. package/dist/Components/AppNavigationCaption.js.map +1 -1
  35. package/dist/Components/AppNavigationCounter.js +2 -3
  36. package/dist/Components/AppNavigationCounter.js.map +1 -1
  37. package/dist/Components/AppNavigationIconBullet.js +2 -3
  38. package/dist/Components/AppNavigationIconBullet.js.map +1 -1
  39. package/dist/Components/AppNavigationItem.js +8 -100
  40. package/dist/Components/AppNavigationItem.js.map +1 -1
  41. package/dist/Components/AppNavigationNew.js +1 -22
  42. package/dist/Components/AppNavigationNew.js.map +1 -1
  43. package/dist/Components/AppNavigationNewItem.js +2 -47
  44. package/dist/Components/AppNavigationNewItem.js.map +1 -1
  45. package/dist/Components/AppNavigationSettings.js +9 -54
  46. package/dist/Components/AppNavigationSettings.js.map +1 -1
  47. package/dist/Components/AppNavigationSpacer.js +1 -22
  48. package/dist/Components/AppNavigationSpacer.js.map +1 -1
  49. package/dist/Components/AppNavigationToggle.js +7 -55
  50. package/dist/Components/AppNavigationToggle.js.map +1 -1
  51. package/dist/Components/AppSettingsDialog.js +23 -118
  52. package/dist/Components/AppSettingsDialog.js.map +1 -1
  53. package/dist/Components/AppSettingsSection.js +1 -23
  54. package/dist/Components/AppSettingsSection.js.map +1 -1
  55. package/dist/Components/AppSidebar.js +21 -47
  56. package/dist/Components/AppSidebar.js.map +1 -1
  57. package/dist/Components/AppSidebarTab.js +1 -22
  58. package/dist/Components/AppSidebarTab.js.map +1 -1
  59. package/dist/Components/Avatar.js +13 -83
  60. package/dist/Components/Avatar.js.map +1 -1
  61. package/dist/Components/Breadcrumb.js +14 -40
  62. package/dist/Components/Breadcrumb.js.map +1 -1
  63. package/dist/Components/Breadcrumbs.js +20 -93
  64. package/dist/Components/Breadcrumbs.js.map +1 -1
  65. package/dist/Components/CheckboxRadioSwitch.js +3 -5
  66. package/dist/Components/CheckboxRadioSwitch.js.map +1 -1
  67. package/dist/Components/ColorPicker.js +4 -7
  68. package/dist/Components/ColorPicker.js.map +1 -1
  69. package/dist/Components/Content.js +2 -3
  70. package/dist/Components/Content.js.map +1 -1
  71. package/dist/Components/CounterBubble.js +2 -3
  72. package/dist/Components/CounterBubble.js.map +1 -1
  73. package/dist/Components/DatetimePicker.js +341 -3
  74. package/dist/Components/DatetimePicker.js.map +1 -1
  75. package/dist/Components/EmojiPicker.js +3 -5
  76. package/dist/Components/EmojiPicker.js.map +1 -1
  77. package/dist/Components/EmptyContent.js +2 -3
  78. package/dist/Components/EmptyContent.js.map +1 -1
  79. package/dist/Components/Highlight.js +5 -7
  80. package/dist/Components/Highlight.js.map +1 -1
  81. package/dist/Components/ListItem.js +13 -40
  82. package/dist/Components/ListItem.js.map +1 -1
  83. package/dist/Components/ListItemIcon.js +30 -103
  84. package/dist/Components/ListItemIcon.js.map +1 -1
  85. package/dist/Components/Modal.js +23 -73
  86. package/dist/Components/Modal.js.map +1 -1
  87. package/dist/Components/Multiselect.js +33 -106
  88. package/dist/Components/Multiselect.js.map +1 -1
  89. package/dist/Components/MultiselectTags.js +40 -92
  90. package/dist/Components/MultiselectTags.js.map +1 -1
  91. package/dist/Components/Popover.js +2 -3
  92. package/dist/Components/Popover.js.map +1 -1
  93. package/dist/Components/PopoverMenu.js +2 -3
  94. package/dist/Components/PopoverMenu.js.map +1 -1
  95. package/dist/Components/ProgressBar.js +2 -3
  96. package/dist/Components/ProgressBar.js.map +1 -1
  97. package/dist/Components/RichContenteditable.js +2 -24
  98. package/dist/Components/RichContenteditable.js.map +1 -1
  99. package/dist/Components/SettingsInputText.js +2 -25
  100. package/dist/Components/SettingsInputText.js.map +1 -1
  101. package/dist/Components/SettingsSection.js +2 -3
  102. package/dist/Components/SettingsSection.js.map +1 -1
  103. package/dist/Components/SettingsSelectGroup.js +31 -127
  104. package/dist/Components/SettingsSelectGroup.js.map +1 -1
  105. package/dist/Components/TimezonePicker.js +340 -0
  106. package/dist/Components/TimezonePicker.js.map +1 -0
  107. package/dist/Components/UserBubble.js +15 -87
  108. package/dist/Components/UserBubble.js.map +1 -1
  109. package/dist/Directives/Focus.js +2 -2
  110. package/dist/Directives/Focus.js.map +1 -1
  111. package/dist/Directives/Linkify.js +1 -1
  112. package/dist/Directives/Linkify.js.map +1 -1
  113. package/dist/Directives/Tooltip.js +2 -2
  114. package/dist/Directives/Tooltip.js.map +1 -1
  115. package/dist/Functions/usernameToColor.js +2 -46
  116. package/dist/Functions/usernameToColor.js.map +1 -1
  117. package/dist/Mixins/excludeClickOutsideClasses.js +2 -2
  118. package/dist/Mixins/excludeClickOutsideClasses.js.map +1 -1
  119. package/dist/Mixins/isFullscreen.js +2 -3
  120. package/dist/Mixins/isFullscreen.js.map +1 -1
  121. package/dist/Mixins/isMobile.js +1 -45
  122. package/dist/Mixins/isMobile.js.map +1 -1
  123. package/dist/Mixins/richEditor.js +1 -22
  124. package/dist/Mixins/richEditor.js.map +1 -1
  125. package/dist/ncvuecomponents.js +149 -405
  126. package/dist/ncvuecomponents.js.map +1 -1
  127. package/package.json +12 -26
@@ -1 +1 @@
1
- {"version":3,"sources":["webpack://NextcloudVue.[name]/webpack/universalModuleDefinition","webpack://NextcloudVue.[name]/webpack/bootstrap","webpack://NextcloudVue.[name]/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://NextcloudVue.[name]/./node_modules/css-loader/dist/runtime/api.js","webpack://NextcloudVue.[name]/./src/directives/Tooltip/index.scss","webpack://NextcloudVue.[name]/./src/utils/ScopeComponent.js","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue","webpack://NextcloudVue.[name]/./src/l10n.js","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue?6fc1","webpack://NextcloudVue.[name]/src/components/Modal/Modal.vue","webpack://NextcloudVue.[name]/external \"v-tooltip\"","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue?2c20","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue?b7df","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue?b815","webpack://NextcloudVue.[name]/src/components/Actions/Actions.vue","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue?d18e","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/Close\"","webpack://NextcloudVue.[name]/external \"debounce\"","webpack://NextcloudVue.[name]/external \"@nextcloud/l10n/dist/gettext\"","webpack://NextcloudVue.[name]/./src/directives/Tooltip/index.js","webpack://NextcloudVue.[name]/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue?1eb9","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/AppSettingsDialog.vue?7354","webpack://NextcloudVue.[name]/src/components/AppSettingsDialog/AppSettingsDialog.vue","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue?d645","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue","webpack://NextcloudVue.[name]/./src/components/ActionButton/index.js","webpack://NextcloudVue.[name]/external \"hammerjs\"","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/AppSettingsDialog.vue?2d77","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue?266e","webpack://NextcloudVue.[name]/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://NextcloudVue.[name]/./src/utils/GenRandomId.js","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/DotsHorizontal\"","webpack://NextcloudVue.[name]/./src/directives/Tooltip/index.scss?afe8","webpack://NextcloudVue.[name]/./src/components/Modal/index.js","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/ChevronLeft\"","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/ChevronRight\"","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/Pause\"","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/Play\"","webpack://NextcloudVue.[name]/./src/utils/Timer.js","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue?be2d","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue?01d2","webpack://NextcloudVue.[name]/./src/mixins/isMobile/index.js","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/index.js","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/AppSettingsDialog.vue","webpack://NextcloudVue.[name]/./src/components/Popover/index.js","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue?4841","webpack://NextcloudVue.[name]/src/components/ActionButton/ActionButton.vue","webpack://NextcloudVue.[name]/./src/mixins/actionGlobal.js","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/AppSettingsDialog.vue?6f79","webpack://NextcloudVue.[name]/src/components/Popover/Popover.vue","webpack://NextcloudVue.[name]/./src/mixins/l10n.js","webpack://NextcloudVue.[name]/./src/utils/IsMobileState.js","webpack://NextcloudVue.[name]/./src/mixins/actionText.js","webpack://NextcloudVue.[name]/external \"vue\"","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue?7595","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue?29b8","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue?463f","webpack://NextcloudVue.[name]/./src/utils/ValidateSlot.js","webpack://NextcloudVue.[name]/./src/utils/GetParent.js","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue?4602","webpack://NextcloudVue.[name]/./src/components/Actions/index.js","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue?45a5"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","iterator","_s","_e","_arr","_n","_d","next","done","push","length","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","item","_item","content","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceMapping","sourceURLs","sources","map","source","sourceRoot","join","cssWithMappingToString","list","this","mediaQuery","dedupe","alreadyImportedModules","id","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","a","version","names","mappings","sourcesContent","__webpack_exports__","Component","mounted","$el","setAttribute","SCOPE_VERSION","_ActionButton_vue_vue_type_template_id_6c7cb9ab_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_ActionButton_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","__WEBPACK_IMPORT_KEY__","indexOf","_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__","_ActionButton_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__","_ActionButton_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default","component","gtBuilder","getGettextBuilder","detectLocale","TRANSLATIONS","forEach","lang","translations","pluralId","msgid","msgid_plural","msgstr","addTranslation","locale","","gt","build","ngettext","gettext","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Modal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Modal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default","_hammerjs","_interopRequireDefault","_ChevronLeft","_ChevronRight","_Close","_Pause","_Play","_Actions","_ActionButton","_l10n","_l10n2","_Tooltip","_Timer","components","ActionButton","default","Actions","ChevronLeft","ChevronRight","Close","Pause","Play","directives","tooltip","mixins","props","title","type","String","hasPrevious","Boolean","hasNext","outTransition","enableSlideshow","clearViewDelay","Number","slideshowDelay","slideshowPaused","enableSwipe","spreadNavigation","size","validator","canClose","dark","container","mc","showModal","clearView","clearViewTimeout","playing","slideshowTimeout","iconSize","computed","modalTransitionName","playPauseTitle","cssVariables","--slideshow-duration","--icon-size","watch","paused","pause","start","beforeMount","addEventListener","handleKeydown","beforeDestroy","removeEventListener","off","destroy","_this","handleMouseMove","$refs","mask","on","e","handleSwipe","document","body","insertBefore","lastChild","querySelector","appendChild","destroyed","remove","methods","previous","event","resetSlideshow","$emit","close","_this2","setTimeout","keyCode","_this3","clearTimeout","togglePlayPause","handleSlideshow","clearSlideshowTimeout","$nextTick","_this4","clear","require","options","insert","singleton","injectStylesIntoStyleTag_default","ActionButtonvue_type_style_index_0_id_6c7cb9ab_lang_scss_scoped_true_","locals","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default","_DotsHorizontal","_GenRandomId","_ValidateSlot","_Popover","allowedChildren","DotsHorizontal","Popover","VNodes","functional","render","h","context","vnodes","open","forceMenu","menuTitle","primary","defaultIcon","ariaLabel","placement","boundariesElement","Element","disabled","actions","opened","focusIndex","randomId","children","$children","hasMultipleActions","isValidSingleAction","firstActionElement","firstActionVNode","firstAction","firstActionBinding","componentOptions","tag","_objectSpread","is","href","target","aria-label","$attrs","$props","to","exact","firstActionEvent","_this$firstActionVNod","_this$firstActionVNod2","_this$firstActionVNod3","listeners","click","firstActionEventBinding","firstActionIconSlot","_this$firstAction","_this$firstAction$$sl","$slots","icon","firstActionClass","staticClass","class","trim","iconSlotIsPopulated","state","initActions","beforeUpdate","openMenu","closeMenu","menuButton","focus","onOpen","focusFirstAction","onMouseFocusAction","activeElement","menuItem","closest","focusableItem","_toConsumableArray","menu","querySelectorAll","focusAction","removeCurrentActive","currentActiveElement","classList","focusElement","liMenuParent","add","focusPreviousAction","preventIfEvent","focusNextAction","indexLength","focusLastAction","preventDefault","stopPropagation","execFirstAction","filter","node","onFocus","onBlur","_vm","_h","$createElement","_c","_self","attrs","ref","modal-mask--dark","style","mousemove","touchmove","rawName","expression","invisible","_v","modifiers","auto","play-pause-icons--paused","decorative","height","width","stroke","stroke-width","fill","cx","cy","_t","scopedSlots","_u","fn","proxy","mousedown","$event","currentTarget","staticRenderFns","_vTooltip","VTooltip","defaultTemplate","defaultHtml","defaultDelay","show","hide","memo","isOldIE","all","atob","getTarget","styleTarget","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","index","obj","css","media","sourceMap","references","updater","addStyle","insertStyleElement","createElement","attributes","nonce","nc","keys","Error","textStore","replaceText","replacement","applyToSingletonTag","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","applyToTag","removeAttribute","firstChild","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","splice","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSettingsDialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_AppSettingsDialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default","_Modal","_isMobile","_debounce","Modal","required","showNavigation","selectedSection","linkClicked","addedScrollListener","scroller","hasNavigation","isMobile","settingsNavigationAriaLabel","propsData","updated","settingsScroller","handleScroll","getSettingsNavigation","slots","navigationItems","vNode","_vNode$componentOptio","element","newArray","handleSettingsNavigationClick","getElementById","replace","scrollIntoView","behavior","inline","handleCloseModal","scrollTop","unfocusNavigationItem","className","includes","blur","handleLinkKeydown","keyDownEvent","code","createListElemtent","navigation-list__link","navigation-list__link--active","role","aria-selected","tabindex","keydown","_obj","_obj$1","_b","rel","aria-hidden","hidden","action-item--open","delay","handle-resize","boundaries-element","update:open","after-show","slot","aria-haspopup","aria-controls","aria-expanded","test-attr","_k","ctrlKey","shiftKey","altKey","metaKey","undefined","_Popover_vue_vue_type_template_id_0522d459___WEBPACK_IMPORTED_MODULE_0__","_Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__","_Popover_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default","Popovervue_type_style_index_0_lang_scss_","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","_scopeId","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","existing","beforeCreate","Math","random","substr","_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__","_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_css_loader_dist_cjs_js_node_modules_resolve_url_loader_index_js_node_modules_sass_loader_dist_cjs_js_ref_1_3_index_scss__WEBPACK_IMPORTED_MODULE_1__","_ScopeComponent","_Modal_vue_vue_type_template_id_e6fc7b00_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_Modal_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_Modal_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__","_Modal_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default","callback","started","running","remaining","Date","getTimeLeft","getStateRunning","Modalvue_type_style_index_0_id_e6fc7b00_lang_scss_scoped_true_","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_Popover_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default","_IsMobileState","IsMobileState","$on","onIsMobileChanged","$off","val","AppSettingsDialog","_AppSettingsDialog_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2__","_AppSettingsDialog_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_3__","_AppSettingsDialog_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_3___default","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActionButton_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0__","_node_modules_babel_loader_lib_index_js_node_modules_vue_loader_lib_index_js_vue_loader_options_ActionButton_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_0___default","isFocusable","_vue","before","text","Vue","util","warn","$destroy","getText","isLongText","AppSettingsDialogvue_type_style_index_0_id_56e8e13c_lang_scss_scoped_true_","VPopover","$watch","popover","isOpen","created","handleWindowResize","documentElement","clientWidth","_actionGlobal","_GetParent","actionGlobal","closeAfterClick","isIconUrl","URL","error","onClick","action--disabled","focusable","backgroundImage","domProps","textContent","_Actions_vue_vue_type_template_id_039e3073_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_Actions_vue_vue_type_script_lang_js___WEBPACK_IMPORTED_MODULE_1__","_Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4__","_Actions_vue_vue_type_custom_index_0_blockType_docs__WEBPACK_IMPORTED_MODULE_4___default","allowed","vm","isHtmlElement","isVueComponent","isForbiddenComponent","$parent","Actionsvue_type_style_index_0_id_039e3073_lang_scss_scoped_true_","_g","popover-base-class","popover-wrapper-class","popover-arrow-class","popover-inner-class","$listeners"],"mappings":"CAAA,SAA2CA,EAAMC,GAC1B,iBAAZC,SAA0C,iBAAXC,OACxCA,OAAOD,QAAUD,IACQ,mBAAXG,QAAyBA,OAAOC,IAC9CD,OAAO,+BAAgC,GAAIH,GACjB,iBAAZC,QACdA,QAAQ,gCAAkCD,KAE1CD,EAAmB,aAAIA,EAAmB,cAAK,GAAIA,EAAmB,aAAE,gCAAkCC,KAR5G,CASGK,QAAQ,WACX,O,YCTE,IAAIC,EAAmB,GAGvB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUP,QAGnC,IAAIC,EAASI,EAAiBE,GAAY,CACzCC,EAAGD,EACHE,GAAG,EACHT,QAAS,IAUV,OANAU,EAAQH,GAAUI,KAAKV,EAAOD,QAASC,EAAQA,EAAOD,QAASM,GAG/DL,EAAOQ,GAAI,EAGJR,EAAOD,QA0Df,OArDAM,EAAoBM,EAAIF,EAGxBJ,EAAoBO,EAAIR,EAGxBC,EAAoBQ,EAAI,SAASd,EAASe,EAAMC,GAC3CV,EAAoBW,EAAEjB,EAASe,IAClCG,OAAOC,eAAenB,EAASe,EAAM,CAAEK,YAAY,EAAMC,IAAKL,KAKhEV,EAAoBgB,EAAI,SAAStB,GACX,oBAAXuB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAenB,EAASuB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAenB,EAAS,aAAc,CAAEyB,OAAO,KAQvDnB,EAAoBoB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQnB,EAAoBmB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,iBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFAxB,EAAoBgB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOnB,EAAoBQ,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIRvB,EAAoB2B,EAAI,SAAShC,GAChC,IAAIe,EAASf,GAAUA,EAAO2B,WAC7B,WAAwB,OAAO3B,EAAgB,SAC/C,WAA8B,OAAOA,GAEtC,OADAK,EAAoBQ,EAAEE,EAAQ,IAAKA,GAC5BA,GAIRV,EAAoBW,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,IAGzG7B,EAAoBgC,EAAI,SAIjBhC,EAAoBA,EAAoBiC,EAAI,K,iCChFrD,SAASC,EAAeC,EAAKjC,GAAK,OAUlC,SAAyBiC,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAOA,EAVtBG,CAAgBH,IAQzD,SAA+BA,EAAKjC,GAAK,IAAIqC,EAAKJ,IAA0B,oBAAXlB,QAA0BkB,EAAIlB,OAAOuB,WAAaL,EAAI,eAAgB,GAAU,MAANI,EAAY,OAAQ,IAAkDE,EAAIC,EAAlDC,EAAO,GAAQC,GAAK,EAAUC,GAAK,EAAmB,IAAM,IAAKN,EAAKA,EAAGlC,KAAK8B,KAAQS,GAAMH,EAAKF,EAAGO,QAAQC,QAAoBJ,EAAKK,KAAKP,EAAGtB,QAAYjB,GAAKyC,EAAKM,SAAW/C,GAA3D0C,GAAK,IAAoE,MAAOM,GAAOL,GAAK,EAAMH,EAAKQ,EAAO,QAAU,IAAWN,GAAsB,MAAhBL,EAAW,QAAWA,EAAW,SAAO,QAAU,GAAIM,EAAI,MAAMH,GAAQ,OAAOC,EAR7aQ,CAAsBhB,EAAKjC,IAI5F,SAAqCS,EAAGyC,GAAU,IAAKzC,EAAG,OAAQ,GAAiB,iBAANA,EAAgB,OAAO0C,EAAkB1C,EAAGyC,GAAS,IAAIzB,EAAIf,OAAOkB,UAAUwB,SAASjD,KAAKM,GAAG4C,MAAM,GAAI,GAAc,WAAN5B,GAAkBhB,EAAE6C,cAAa7B,EAAIhB,EAAE6C,YAAY/C,MAAM,GAAU,QAANkB,GAAqB,QAANA,EAAa,OAAOS,MAAMqB,KAAK9C,GAAI,GAAU,cAANgB,GAAqB,2CAA2C+B,KAAK/B,GAAI,OAAO0B,EAAkB1C,EAAGyC,GAJpTO,CAA4BxB,EAAKjC,IAEnI,WAA8B,MAAM,IAAI0D,UAAU,6IAFuFC,GAMzI,SAASR,EAAkBlB,EAAK2B,IAAkB,MAAPA,GAAeA,EAAM3B,EAAIc,UAAQa,EAAM3B,EAAIc,QAAQ,IAAK,IAAI/C,EAAI,EAAG6D,EAAO,IAAI3B,MAAM0B,GAAM5D,EAAI4D,EAAK5D,IAAO6D,EAAK7D,GAAKiC,EAAIjC,GAAM,OAAO6D,EAMhLpE,EAAOD,QAAU,SAAgCsE,GAC/C,IAAIC,EAAQ/B,EAAe8B,EAAM,GAC7BE,EAAUD,EAAM,GAChBE,EAAaF,EAAM,GAEvB,GAAoB,mBAATG,KAAqB,CAE9B,IAAIC,EAASD,KAAKE,SAASC,mBAAmBC,KAAKC,UAAUN,MACzDO,EAAO,+DAA+DC,OAAON,GAC7EO,EAAgB,OAAOD,OAAOD,EAAM,OACpCG,EAAaV,EAAWW,QAAQC,KAAI,SAAUC,GAChD,MAAO,iBAAiBL,OAAOR,EAAWc,YAAc,IAAIN,OAAOK,EAAQ,UAE7E,MAAO,CAACd,GAASS,OAAOE,GAAYF,OAAO,CAACC,IAAgBM,KAAK,MAGnE,MAAO,CAAChB,GAASgB,KAAK,Q,+BCtBxBvF,EAAOD,QAAU,SAAUyF,GACzB,IAAIC,EAAO,GAuDX,OArDAA,EAAK9B,SAAW,WACd,OAAO+B,KAAKN,KAAI,SAAUf,GACxB,IAAIE,EAAUiB,EAAuBnB,GAErC,OAAIA,EAAK,GACA,UAAUW,OAAOX,EAAK,GAAI,MAAMW,OAAOT,EAAS,KAGlDA,KACNgB,KAAK,KAKVE,EAAKlF,EAAI,SAAUE,EAASkF,EAAYC,GACf,iBAAZnF,IAETA,EAAU,CAAC,CAAC,KAAMA,EAAS,MAG7B,IAAIoF,EAAyB,GAE7B,GAAID,EACF,IAAK,IAAIrF,EAAI,EAAGA,EAAImF,KAAKpC,OAAQ/C,IAAK,CAEpC,IAAIuF,EAAKJ,KAAKnF,GAAG,GAEP,MAANuF,IACFD,EAAuBC,IAAM,GAKnC,IAAK,IAAIlD,EAAK,EAAGA,EAAKnC,EAAQ6C,OAAQV,IAAM,CAC1C,IAAIyB,EAAO,GAAGW,OAAOvE,EAAQmC,IAEzBgD,GAAUC,EAAuBxB,EAAK,MAKtCsB,IACGtB,EAAK,GAGRA,EAAK,GAAK,GAAGW,OAAOW,EAAY,SAASX,OAAOX,EAAK,IAFrDA,EAAK,GAAKsB,GAMdF,EAAKpC,KAAKgB,MAIPoB,I,gCChET,IAAAM,EAAA1F,EAAA,GAAA2F,EAAA3F,EAAA2B,EAAA+D,GAAAE,EAAA5F,EAAA,GAGI6F,EAHJ7F,EAAA2B,EAAAiE,EAG8BE,GAA4BH,EAAAI,GAE1DF,EAAwB7C,KAAK,CAACrD,EAAOO,EAAI,+0DAAg1D,GAAG,CAAC8F,QAAU,EAAElB,QAAU,CAAC,8CAA8C,0BAA0BmB,MAAQ,GAAGC,SAAW,u1BAAu1BC,eAAiB,CAAC,kNAAkN,i8FAAi8FlB,WAAa,MAE5+LmB,EAAA,K;;;;;;;;;;;;;;;;;;;;;;ACef,I,EAAuB,SAACC,GAElBA,EAAUC,QAEHlE,MAAMC,QAAQgE,EAAUC,WACnCD,EAAUC,QAAU,CAACD,EAAUC,UAF/BD,EAAUC,QAAU,GAMrBD,EAAUC,QAAQtD,MAAK,WACtBqC,KAAKkB,IAAIC,aAAT,UAAA7B,OAAgC8B,WAAiB,Q,8CChCnDzG,EAAAgB,EAAAoF,GAAA,IAAAM,EAAA1G,EAAA,IAAA2G,EAAA3G,EAAA,YAAA4G,KAAAD,EAAA,YAAAE,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAAkF,EAAAlF,MAAA,CAAAmF,GAAA5G,EAAA,SAAA8G,EAAA9G,EAAA,GAAA+G,EAAA/G,EAAA,IAAAgH,EAAAhH,EAAA2B,EAAAoF,GAQIE,EAAYrG,OAAAkG,EAAA,EAAAlG,CACd+F,EAAA,QACAD,EAAA,EACAA,EAAA,GACA,EACA,KACA,WACA,MAMoB,mBAAXM,EAAAjB,GAAuBiB,IAAOC,GAE1Bb,EAAA,QAAAa,E,yGCvBf,IAEMC,GAAY,EAFlBlH,EAAA,IAEkBmH,qBAChBC,eAGFC,g3nCAAaC,SAAQ,SAACC,GACrB,IAAMC,EAAe,GAErB,IAAK,IAAM/F,KAAO8F,EAAKC,aAElBD,EAAKC,aAAa/F,GAAKgG,SAC1BD,EAAa/F,GAAO,CACnBiG,MAAOjG,EACPkG,aAAcJ,EAAKC,aAAa/F,GAAKgG,SACrCG,OAAQL,EAAKC,aAAa/F,GAAKmG,QAMjCJ,EAAa/F,GAAO,CACnBiG,MAAOjG,EACPmG,OAAQ,CACPL,EAAKC,aAAa/F,KAKrByF,EAAUW,eAAeN,EAAKO,OAAQ,CACrCN,aAAc,CACbO,GAAIP,QAKP,IAAMQ,EAAKd,EAAUe,QAEftG,EAAIqG,EAAGE,SAASxG,KAAKsG,G,MAC3B,IAAM5G,EAAI4G,EAAGG,QAAQzG,KAAKsG,G,wCCvC1BhI,EAAAgB,EAAAoF,GAAA,IAAAgC,EAAApI,EAAA,KAAAqI,EAAArI,EAAA2B,EAAAyG,GAAA,QAAAxB,KAAAwB,EAAA,YAAAvB,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAA2G,EAAA3G,MAAA,CAAAmF,GAA2LR,EAAA,QAAAiC,EAAG,G,mGCmM9L,IAAAC,EAAAC,EAAAvI,EAAA,MACAwI,EAAAD,EAAAvI,EAAA,MACAyI,EAAAF,EAAAvI,EAAA,MACA0I,EAAAH,EAAAvI,EAAA,MACA2I,EAAAJ,EAAAvI,EAAA,MACA4I,EAAAL,EAAAvI,EAAA,MAEA6I,EAAAN,EAAAvI,EAAA,KACA8I,EAAAP,EAAAvI,EAAA,MACA+I,EAAAR,EAAAvI,EAAA,KACAgJ,EAAAhJ,EAAA,IACAiJ,EAAAV,EAAAvI,EAAA,KACAkJ,EAAAX,EAAAvI,EAAA,M,yDAEA,CACAS,KAAA,QAEA0I,WAAA,CACAC,aAAAN,EAAAO,QACAC,QAAAT,EAAAQ,QACAE,YAAAf,EAAAa,QACAG,aAAAf,EAAAY,QACAI,MAAAf,EAAAW,QACAK,MAAAf,EAAAU,QACAM,KAAAf,EAAAS,SAGAO,WAAA,CACAC,QAAAZ,EAAAI,SAGAS,OAAA,CAAAf,EAAAM,SAEAU,MAAA,CAIAC,MAAA,CACAC,KAAAC,OACAb,QAAA,IAKAc,YAAA,CACAF,KAAAG,QACAf,SAAA,GAKAgB,QAAA,CACAJ,KAAAG,QACAf,SAAA,GAKAiB,cAAA,CACAL,KAAAG,QACAf,SAAA,GAKAkB,gBAAA,CACAN,KAAAG,QACAf,SAAA,GAEAmB,eAAA,CACAP,KAAAQ,OACApB,QAAA,KAKAqB,eAAA,CACAT,KAAAQ,OACApB,QAAA,KAKAsB,gBAAA,CACAV,KAAAG,QACAf,SAAA,GAKAuB,YAAA,CACAX,KAAAG,QACAf,SAAA,GAEAwB,iBAAA,CACAZ,KAAAG,QACAf,SAAA,GAEAyB,KAAA,CACAb,KAAAC,OACAb,QAAA,SACA0B,UAAA,SAAAD,GACA,qCAAAjE,QAAAiE,KAMAE,SAAA,CACAf,KAAAG,QACAf,SAAA,GAGA4B,KAAA,CACAhB,KAAAG,QACAf,SAAA,GAMA6B,UAAA,CACAjB,KAAAC,OACAb,QAAA,SAIA3E,KAjHA,WAkHA,OACAyG,GAAA,KACAC,WAAA,EACAC,WAAA,EACAC,iBAAA,KACAC,SAAA,EACAC,iBAAA,KACAC,SAAA,KAIAC,SAAA,CACAC,oBADA,WAEA,eAAAhH,OAAAU,KAAAiF,cAAA,aAEAsB,eAJA,WAKA,OAAAvG,KAAAkG,SAAA,EAAAvC,EAAA5H,GAAA,sBAAA4H,EAAA5H,GAAA,oBAEAyK,aAPA,WAQA,OACAC,uBAAAzG,KAAAqF,eAAA,KACAqB,cAAA1G,KAAAoG,SAAA,QAKAO,MAAA,CAKArB,gBALA,SAKAsB,GACA5G,KAAAmG,mBACAS,EACA5G,KAAAmG,iBAAAU,QAEA7G,KAAAmG,iBAAAW,WAMAC,YA5JA,WA6JAtM,OAAAuM,iBAAA,UAAAhH,KAAAiH,gBAEAC,cA/JA,WAgKAzM,OAAA0M,oBAAA,UAAAnH,KAAAiH,eACAjH,KAAA8F,GAAAsB,IAAA,wBACApH,KAAA8F,GAAAuB,WAEApG,QApKA,WAoKA,IAAAqG,EAAAtH,MACAA,KAAA+F,WAAA,EAGA/F,KAAAuH,kBAEAvH,KAAA8F,GAAA,IAAA7C,EAAAe,QAAAhE,KAAAwH,MAAAC,MACAzH,KAAA8F,GAAA4B,GAAA,iCAAAC,GACAL,EAAAM,YAAAD,MAGA,SAAA3H,KAAA6F,WAEAgC,SAAAC,KAAAC,aAAA/H,KAAAkB,IAAA2G,SAAAC,KAAAE,WAEAH,SAAAI,cAAAjI,KAAA6F,WACAqC,YAAAlI,KAAAkB,MAIAiH,UAxLA,WAyLAnI,KAAAkB,IAAAkH,UAGAC,QAAA,CAEAC,SAFA,SAEAC,GAEAvI,KAAA8E,cAIAyD,GACAvI,KAAAwI,iBAEAxI,KAAAyI,MAAA,WAAAF,KAGA9K,KAdA,SAcA8K,GAEAvI,KAAAgF,UAIAuD,GACAvI,KAAAwI,iBAEAxI,KAAAyI,MAAA,OAAAF,KAGAG,MA1BA,SA0BArJ,GAAA,IAAAsJ,EAAA3I,KAEAA,KAAA2F,WACA3F,KAAA+F,WAAA,EAGA6C,YAAA,WAIAD,EAAAF,MAAA,QAAApJ,KACA,OAKA4H,cA1CA,SA0CAU,GACA,OAAAA,EAAAkB,SACA,QACA7I,KAAAsI,SAAAX,GACA,MACA,QACA,QACA3H,KAAAvC,KAAAkK,GACA,MACA,QACA3H,KAAA0I,MAAAf,KAIAC,YAxDA,SAwDAD,GACA3H,KAAAuF,cACA,cAAAoC,EAAA/C,KAEA5E,KAAAvC,KAAAkK,GACA,eAAAA,EAAA/C,MAEA5E,KAAAsI,SAAAX,KAIAJ,gBAnEA,WAmEA,IAAAuB,EAAA9I,KACAA,KAAAmF,eAAA,IACAnF,KAAAgG,WAAA,EACA+C,aAAA/I,KAAAiG,kBACAjG,KAAAiG,iBAAA2C,YAAA,WACAE,EAAA9C,WAAA,IACAhG,KAAAmF,kBAOA6D,gBAhFA,WAiFAhJ,KAAAkG,SAAAlG,KAAAkG,QACAlG,KAAAkG,QACAlG,KAAAiJ,kBAEAjJ,KAAAkJ,yBAOAV,eA5FA,WA6FAxI,KAAAkG,SAAAlG,KAAAkG,QACAlG,KAAAkJ,wBACAlJ,KAAAmJ,WAAA,WACAnJ,KAAAgJ,sBAOAC,gBAvGA,WAuGA,IAAAG,EAAApJ,KACAA,KAAAkG,SAAA,EACAlG,KAAAgF,QACAhF,KAAAmG,iBAAA,IAAAtC,EAAAG,SAAA,WACAoF,EAAA3L,OACA2L,EAAAH,oBACAjJ,KAAAqF,iBAEArF,KAAAkG,SAAA,EACAlG,KAAAkJ,0BAOAA,sBAvHA,WAwHAlJ,KAAAmG,kBACAnG,KAAAmG,iBAAAkD,W,8BCtgBA/O,EAAOD,QAAUiP,QAAQ,c,6DCGrBC,EAAU,CAEdC,OAAiB,OACjBC,WAAoB,GAEPC,IAAIC,EAAA,EAASJ,GAIXI,EAAA,EAAQC,Q,gCCZvBjP,EAAAgB,EAAAoF,GAAA,IAAA8I,EAAAlP,EAAA,IAAAmP,EAAAnP,EAAA2B,EAAAuN,GAAA,QAAAtI,KAAAsI,EAAA,YAAArI,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAAyN,EAAAzN,MAAA,CAAAmF,GAA6LR,EAAA,QAAA+I,EAAG,G,iCCAhM,IAAAzJ,EAAA1F,EAAA,GAAA2F,EAAA3F,EAAA2B,EAAA+D,GAAAE,EAAA5F,EAAA,GAGI6F,EAHJ7F,EAAA2B,EAAAiE,EAG8BE,GAA4BH,EAAAI,GAE1DF,EAAwB7C,KAAK,CAACrD,EAAOO,EAAI,wyMAAyyM,GAAG,CAAC8F,QAAU,EAAElB,QAAU,CAAC,8CAA8C,wBAAwB,2CAA2CmB,MAAQ,GAAGC,SAAW,ggEAAggEC,eAAiB,CAAC,kNAAkN,iuPAAiuP,k0DAAk0DlB,WAAa,MAEzvkBmB,EAAA,K,sHCyNf,IAAAgJ,EAAA7G,EAAAvI,EAAA,KAEAiJ,EAAAV,EAAAvI,EAAA,KACAqP,EAAA9G,EAAAvI,EAAA,KACAsP,EAAA/G,EAAAvI,EAAA,KACA+I,EAAA/I,EAAA,IACAuP,EAAAhH,EAAAvI,EAAA,K,u+CAIA,IAAAwP,EAAA,CACA,eACA,iBACA,cACA,aACA,cACA,eACA,kBACA,aACA,qBACA,iB,EAaA,CACA/O,KAAA,UAEAmJ,WAAA,CACAC,QAAAZ,EAAAI,SAGAF,WAAA,CACAsG,eAAAL,EAAA/F,QACAqG,QAAAH,EAAAlG,QAGAsG,OAAA,CACAC,YAAA,EACAC,OAAA,SAAAC,EAAAC,GAAA,OAAAA,EAAAhG,MAAAiG,UAIAjG,MAAA,CAIAkG,KAAA,CACAhG,KAAAG,QACAf,SAAA,GAMA6G,UAAA,CACAjG,KAAAG,QACAf,SAAA,GAMA8G,UAAA,CACAlG,KAAAC,OACAb,QAAA,MAMA+G,QAAA,CACAnG,KAAAG,QACAf,SAAA,GAQAgH,YAAA,CACApG,KAAAC,OACAb,QAAA,IAMAiH,UAAA,CACArG,KAAAC,OACAb,SAAA,EAAAN,EAAA3H,GAAA,YAMAmP,UAAA,CACAtG,KAAAC,OACAb,QAAA,UAMAmH,kBAAA,CACAvG,KAAAwG,QACApH,QAAA,kBAAA6D,SAAAI,cAAA,UAMApC,UAAA,CACAjB,KAAAC,OACAb,QAAA,QAMAqH,SAAA,CACAzG,KAAAG,QACAf,SAAA,IAIA3E,KAtGA,WAuGA,OACAiM,QAAA,GACAC,OAAAvL,KAAA4K,KACAY,WAAA,EACAC,SAAA,WAAAzB,EAAAhG,WAIA0H,SAAA1L,KAAA2L,YAIAtF,SAAA,CAKAuF,mBALA,WAMA,OAAA5L,KAAAsL,QAAA1N,OAAA,GAOAiO,oBAbA,WAcA,WAAA7L,KAAAsL,QAAA1N,QACA,OAAAoC,KAAA8L,oBAMAC,iBArBA,WAsBA,OAAA/L,KAAAsL,QAAA,IAQAU,YA9BA,WA+BA,OAAAhM,KAAA0L,SAAA,GACA1L,KAAA0L,SAAA,GACA,IAOAO,mBAxCA,WAyCA,GAAAjM,KAAA+L,kBAAA/L,KAAA+L,iBAAAG,iBAAA,CACA,IAAAC,EAAAnM,KAAA+L,iBAAAG,iBAAAC,IACA,kBAAAA,EACA,OAAAC,IAAA,CACAC,GAAA,IACAC,KAAAtM,KAAAgM,YAAAM,KACAC,OAAAvM,KAAAgM,YAAAO,OACAC,aAAAxM,KAAAgM,YAAAf,WACAjL,KAAAgM,YAAAS,QACAzM,KAAAgM,YAAAU,QAGA,oBAAAP,EACA,OAAAC,IAAA,CACAC,GAAA,cACAM,GAAA3M,KAAAgM,YAAAW,GACAC,MAAA5M,KAAAgM,YAAAY,MACAJ,aAAAxM,KAAAgM,YAAAf,WACAjL,KAAAgM,YAAAS,QACAzM,KAAAgM,YAAAU,QAGA,oBAAAP,EACA,OAAAC,IAAA,CACAC,GAAA,SACAG,aAAAxM,KAAAgM,YAAAf,WACAjL,KAAAgM,YAAAS,QACAzM,KAAAgM,YAAAU,QAKA,aAIAG,iBA7EA,WA6EA,IAAAC,EAAAC,EAAAC,EACA,eAAAF,EAAA9M,KAAA+L,wBAAA,IAAAe,GAAA,QAAAC,EAAAD,EAAAZ,wBAAA,IAAAa,GAAA,QAAAC,EAAAD,EAAAE,iBAAA,IAAAD,OAAA,EAAAA,EAAAE,OAEAC,wBAhFA,WAiFA,OAAAnN,KAAA6M,iBAAA,cAGAO,oBApFA,WAoFA,IAAAC,EAAAC,EACA,eAAAD,EAAArN,KAAAgM,mBAAA,IAAAqB,GAAA,QAAAC,EAAAD,EAAAE,cAAA,IAAAD,OAAA,EAAAA,EAAAE,MAEAC,iBAvFA,WA0FA,QAFAzN,KAAA+L,kBAAA/L,KAAA+L,iBAAA1M,KAAAqO,aAEA,KADA1N,KAAA+L,kBAAA/L,KAAA+L,iBAAA1M,KAAAsO,QACAC,QAGAC,oBA7FA,WA8FA,QAAA7N,KAAAuN,OAAAC,OAIA7G,MAAA,CAEAiE,KAFA,SAEAkD,GACAA,IAAA9N,KAAAuL,SAIAvL,KAAAuL,OAAAuC,KAGA/G,YA/NA,WAiOA/G,KAAA+N,eAGA,EAAA9D,EAAAjG,SAAAhE,KAAAuN,OAAAvJ,QAAAmG,EAAAnK,OAEAgO,aAtOA,WA8OAhO,KAAA+N,eACA,EAAA9D,EAAAjG,SAAAhE,KAAAuN,OAAAvJ,QAAAmG,EAAAnK,OAGAqI,QAAA,CAEA4F,SAFA,SAEAtG,GACA3H,KAAAuL,SAIAvL,KAAAuL,QAAA,EAMAvL,KAAAyI,MAAA,kBAKAzI,KAAAyI,MAAA,UAEAyF,UApBA,SAoBAvG,GACA3H,KAAAuL,SAIAvL,KAAAuL,QAAA,EAMAvL,KAAAyI,MAAA,kBAKAzI,KAAAyI,MAAA,SAGAzI,KAAAuL,QAAA,EACAvL,KAAAwL,WAAA,EAGAxL,KAAAwH,MAAA2G,WAAAC,UAGAC,OA9CA,SA8CA9F,GAAA,IAAAjB,EAAAtH,KACAA,KAAAmJ,WAAA,WACA7B,EAAAgH,iBAAA/F,OASAgG,mBAzDA,SAyDAhG,GACA,GAAAV,SAAA2G,gBAAAjG,EAAAgE,OAAA,CAIA,IAAAkC,EAAAlG,EAAAgE,OAAAmC,QAAA,MACA,GAAAD,EAAA,CACA,IAAAE,EAAAF,EAAAxG,cA5TA,cA6TA,GAAA0G,EAAA,CACA,IACAnD,EAAAoD,EADA5O,KAAAwH,MAAAqH,KAAAC,iBA9TA,eA+TAtN,QAAAmN,GACAnD,GAAA,IACAxL,KAAAwL,aACAxL,KAAA+O,mBAKAC,oBA3EA,WA4EA,IAAAC,EAAAjP,KAAAwH,MAAAqH,KAAA5G,cAAA,aACAgH,GACAA,EAAAC,UAAA9G,OAAA,WAGA2G,YAjFA,WAmFA,IAAAI,EAAAnP,KAAAwH,MAAAqH,KAAAC,iBA/UA,cA+UA9O,KAAAwL,YACA,GAAA2D,EAAA,CACAnP,KAAAgP,sBACA,IAAAI,EAAAD,EAAAT,QAAA,aACAS,EAAAf,QACAgB,GACAA,EAAAF,UAAAG,IAAA,YAIAC,oBA7FA,SA6FA/G,GACAvI,KAAAuL,SACA,IAAAvL,KAAAwL,WAEAxL,KAAAkO,aAEAlO,KAAAuP,eAAAhH,GACAvI,KAAAwL,WAAAxL,KAAAwL,WAAA,GAEAxL,KAAA+O,gBAGAS,gBAzGA,SAyGAjH,GACA,GAAAvI,KAAAuL,OAAA,CACA,IAAAkE,EAAAzP,KAAAwH,MAAAqH,KAAAC,iBAvWA,cAuWAlR,OAAA,EACAoC,KAAAwL,aAAAiE,EAEAzP,KAAAkO,aAEAlO,KAAAuP,eAAAhH,GACAvI,KAAAwL,WAAAxL,KAAAwL,WAAA,GAEAxL,KAAA+O,gBAGAT,iBAtHA,SAsHA/F,GACAvI,KAAAuL,SACAvL,KAAAuP,eAAAhH,GACAvI,KAAAwL,WAAA,EACAxL,KAAA+O,gBAGAW,gBA7HA,SA6HAnH,GACAvI,KAAAuL,SACAvL,KAAAuP,eAAAhH,GACAvI,KAAAwL,WAAAxL,KAAAkB,IAAA4N,iBA5XA,cA4XAlR,OAAA,EACAoC,KAAA+O,gBAIAQ,eArIA,SAqIAhH,GACAA,IACAA,EAAAoH,iBACApH,EAAAqH,oBAMAC,gBA9IA,SA8IAtH,GACAvI,KAAA6M,kBACA7M,KAAA6M,iBAAAtE,IAGAwF,YAnJA,WAqJA/N,KAAAsL,SAAAtL,KAAAuN,OAAAvJ,SAAA,IAAA8L,QAAA,SAAAC,GAAA,QAAAA,OAAA7D,qBAEA8D,QAvJA,SAuJAzH,GACAvI,KAAAyI,MAAA,QAAAF,IAEA0H,OA1JA,SA0JA1H,GACAvI,KAAAyI,MAAA,OAAAF,M,kHC9oBA,IAAIiC,EAAS,WAAa,IAAI0F,EAAIlQ,KAASmQ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,aAAa,CAACE,MAAM,CAACnV,KAAO,SAAS,CAACiV,EAAG,MAAM,CAACG,IAAI,OAAO9C,YAAY,aAAaC,MAAM,CAAE8C,mBAAoBP,EAAItK,MAAO8K,MAAOR,EAAgB,aAAExI,GAAG,CAACwF,MAAQgD,EAAI3I,gBAAgBoJ,UAAYT,EAAI3I,gBAAgBqJ,UAAYV,EAAI3I,kBAAkB,CAAC8I,EAAG,aAAa,CAACE,MAAM,CAACnV,KAAO,oBAAoB,CAACiV,EAAG,MAAM,CAAC9L,WAAW,CAAC,CAACnJ,KAAK,OAAOyV,QAAQ,SAAS/U,OAAQoU,EAAIlK,UAAW8K,WAAW,eAAepD,YAAY,eAAeC,MAAM,CAC/gBoD,UAAWb,EAAIlK,YACb,CAAuB,KAArBkK,EAAIvL,MAAMiJ,OAAeyC,EAAG,MAAM,CAAC3C,YAAY,eAAe,CAACwC,EAAIc,GAAG,eAAed,EAAI9S,GAAG8S,EAAIvL,OAAO,gBAAgBuL,EAAI7S,KAAK6S,EAAIc,GAAG,KAAKX,EAAG,MAAM,CAAC3C,YAAY,cAAc,CAAEwC,EAAIlL,SAAWkL,EAAIhL,gBAAiBmL,EAAG,SAAS,CAAC9L,WAAW,CAAC,CAACnJ,KAAK,UAAUyV,QAAQ,iBAAiB/U,MAAOoU,EAAkB,eAAEY,WAAW,iBAAiBG,UAAU,CAACC,MAAO,KAAQxD,YAAY,mBAAmBC,MAAM,CAAEwD,2BAA4BjB,EAAI5K,iBAAkBiL,MAAM,CAAC3L,KAAO,UAAU8C,GAAG,CAACwF,MAAQgD,EAAIlH,kBAAkB,CAAGkH,EAAIhK,QAAkHmK,EAAG,QAAQ,CAAC3C,YAAY,0BAA0B6C,MAAM,CAAC9K,KAAOyK,EAAI9J,SAASzB,MAAQ,GAAGyM,WAAa,MAA9Mf,EAAG,OAAO,CAAC3C,YAAY,yBAAyB6C,MAAM,CAAC9K,KAAOyK,EAAI9J,SAASzB,MAAQ,GAAGyM,WAAa,MAAiHlB,EAAIc,GAAG,KAAKX,EAAG,OAAO,CAAC3C,YAAY,mBAAmB,CAACwC,EAAIc,GAAG,mBAAmBd,EAAI9S,GAAG8S,EAAI3J,gBAAgB,oBAAoB2J,EAAIc,GAAG,KAAMd,EAAW,QAAEG,EAAG,MAAM,CAAC3C,YAAY,gBAAgB6C,MAAM,CAACc,OAAS,KAAKC,MAAQ,OAAO,CAACjB,EAAG,SAAS,CAAC3C,YAAY,wBAAwB6C,MAAM,CAACgB,OAAS,QAAQC,eAAe,IAAIC,KAAO,cAAc9V,EAAI,KAAK+V,GAAK,KAAKC,GAAK,UAAUzB,EAAI7S,MAAM,GAAG6S,EAAI7S,KAAK6S,EAAIc,GAAG,KAAKX,EAAG,UAAU,CAAC3C,YAAY,kBAAkB,CAACwC,EAAI0B,GAAG,YAAY,GAAG1B,EAAIc,GAAG,KAAMd,EAAY,SAAEG,EAAG,UAAU,CAAC3C,YAAY,gBAAgB,CAAC2C,EAAG,eAAe,CAAC3I,GAAG,CAACwF,MAAQgD,EAAIxH,OAAOmJ,YAAY3B,EAAI4B,GAAG,CAAC,CAAC1V,IAAI,OAAO2V,GAAG,WAAW,MAAO,CAAC1B,EAAG,QAAQ,CAACE,MAAM,CAAC9K,KAAOyK,EAAI9J,SAASzB,MAAQ,GAAGyM,WAAa,QAAQY,OAAM,IAAO,MAAK,EAAM,aAAa,CAAC9B,EAAIc,GAAG,mBAAmBd,EAAI9S,GAAG8S,EAAInU,EAAE,UAAU,qBAAqB,GAAGmU,EAAI7S,MAAM,OAAO6S,EAAIc,GAAG,KAAKX,EAAG,aAAa,CAACE,MAAM,CAACnV,KAAO8U,EAAI5J,sBAAsB,CAAC+J,EAAG,MAAM,CAAC9L,WAAW,CAAC,CAACnJ,KAAK,OAAOyV,QAAQ,SAAS/U,MAAOoU,EAAa,UAAEY,WAAW,cAAcpD,YAAY,gBAAgBC,MAAM,CACxvD,kBAAoBuC,EAAIzK,KACzByK,EAAI1K,iBAAmB,mCAAqC,IAC3DkC,GAAG,CAACuK,UAAY,SAASC,GAAQ,OAAGA,EAAO3F,SAAW2F,EAAOC,cAAuB,KAAcjC,EAAIxH,MAAMwJ,MAAW,CAAC7B,EAAG,aAAa,CAACE,MAAM,CAACnV,KAAO,oBAAoB,CAACiV,EAAG,IAAI,CAAC9L,WAAW,CAAC,CAACnJ,KAAK,OAAOyV,QAAQ,SAAS/U,MAAOoU,EAAIpL,cAAgBoL,EAAIlK,UAAW8K,WAAW,8BAA8BpD,YAAY,OAAOC,MAAM,CACzUoD,UAAWb,EAAIlK,YAAckK,EAAIpL,aAChCyL,MAAM,CAACjE,KAAO,KAAK5E,GAAG,CAACwF,MAAQ,SAASgF,GAAyD,OAAjDA,EAAOvC,iBAAiBuC,EAAOtC,kBAAyBM,EAAI5H,SAAS4J,MAAW,CAAC7B,EAAG,OAAO,CAAC3C,YAAY,iBAAiB,CAAC2C,EAAG,cAAc,CAACE,MAAM,CAAC9K,KAAO,GAAGd,MAAQ,GAAGyM,WAAa,MAAMlB,EAAIc,GAAG,KAAKX,EAAG,OAAO,CAAC3C,YAAY,mBAAmB,CAACwC,EAAIc,GAAG,qBAAqBd,EAAI9S,GAAG8S,EAAInU,EAAE,aAAa,uBAAuB,OAAOmU,EAAIc,GAAG,KAAKX,EAAG,MAAM,CAAC3C,YAAY,mBAAmB,CAACwC,EAAI0B,GAAG,YAAY,GAAG1B,EAAIc,GAAG,KAAKX,EAAG,aAAa,CAACE,MAAM,CAACnV,KAAO,oBAAoB,CAACiV,EAAG,IAAI,CAAC9L,WAAW,CAAC,CAACnJ,KAAK,OAAOyV,QAAQ,SAAS/U,MAAOoU,EAAIlL,UAAYkL,EAAIlK,UAAW8K,WAAW,0BAA0BpD,YAAY,OAAOC,MAAM,CACzpBoD,UAAWb,EAAIlK,YAAckK,EAAIlL,SAChCuL,MAAM,CAACjE,KAAO,KAAK5E,GAAG,CAACwF,MAAQ,SAASgF,GAAyD,OAAjDA,EAAOvC,iBAAiBuC,EAAOtC,kBAAyBM,EAAIzS,KAAKyU,MAAW,CAAC7B,EAAG,OAAO,CAAC3C,YAAY,aAAa,CAAC2C,EAAG,eAAe,CAACE,MAAM,CAAC9K,KAAO,GAAGd,MAAQ,GAAGyM,WAAa,MAAMlB,EAAIc,GAAG,KAAKX,EAAG,OAAO,CAAC3C,YAAY,mBAAmB,CAACwC,EAAIc,GAAG,qBAAqBd,EAAI9S,GAAG8S,EAAInU,EAAE,SAAS,uBAAuB,QAAQ,MAAM,MACtXqW,EAAkB,I,kBCVtB9X,EAAOD,QAAUiP,QAAQ,oC,kBCAzBhP,EAAOD,QAAUiP,QAAQ,a,iBCAzBhP,EAAOD,QAAUiP,QAAQ,iC,kGCsBzB,IAAA+I,EAAA1X,EAAA,IACAA,EAAA;;;;;;;;;;;;;;;;;;;;;;;AAKA2X,WAAS/I,QAAQgJ,gBAAjB,kDAAAjT,OAAqF8B,UAArF,6EACAkR,WAAS/I,QAAQiJ,aAAc,EAC/BF,WAAS/I,QAAQkJ,aAAe,CAAEC,KAAM,IAAKC,KAAM,K,MAEpCL,W,4CC9Bf,IACMM,EADFC,EAEK,WAUL,YAToB,IAATD,IAMTA,EAAO7N,QAAQtK,QAAUoN,UAAYA,SAASiL,MAAQrY,OAAOsY,OAGxDH,GAIPI,EAAY,WACd,IAAIJ,EAAO,GACX,OAAO,SAAkBrG,GACvB,QAA4B,IAAjBqG,EAAKrG,GAAyB,CACvC,IAAI0G,EAAcpL,SAASI,cAAcsE,GAEzC,GAAI9R,OAAOyY,mBAAqBD,aAAuBxY,OAAOyY,kBAC5D,IAGED,EAAcA,EAAYE,gBAAgBC,KAC1C,MAAOzL,GAEPsL,EAAc,KAIlBL,EAAKrG,GAAU0G,EAGjB,OAAOL,EAAKrG,IApBA,GAwBZ8G,EAAc,GAElB,SAASC,EAAqBC,GAG5B,IAFA,IAAIC,GAAU,EAEL3Y,EAAI,EAAGA,EAAIwY,EAAYzV,OAAQ/C,IACtC,GAAIwY,EAAYxY,GAAG0Y,aAAeA,EAAY,CAC5CC,EAAS3Y,EACT,MAIJ,OAAO2Y,EAGT,SAASC,EAAa1T,EAAMwJ,GAI1B,IAHA,IAAImK,EAAa,GACbC,EAAc,GAET9Y,EAAI,EAAGA,EAAIkF,EAAKnC,OAAQ/C,IAAK,CACpC,IAAI8D,EAAOoB,EAAKlF,GACZuF,EAAKmJ,EAAQqK,KAAOjV,EAAK,GAAK4K,EAAQqK,KAAOjV,EAAK,GAClDkV,EAAQH,EAAWtT,IAAO,EAC1BmT,EAAa,GAAGjU,OAAOc,EAAI,KAAKd,OAAOuU,GAC3CH,EAAWtT,GAAMyT,EAAQ,EACzB,IAAIC,EAAQR,EAAqBC,GAC7BQ,EAAM,CACRC,IAAKrV,EAAK,GACVsV,MAAOtV,EAAK,GACZuV,UAAWvV,EAAK,KAGH,IAAXmV,GACFT,EAAYS,GAAOK,aACnBd,EAAYS,GAAOM,QAAQL,IAE3BV,EAAY1V,KAAK,CACf4V,WAAYA,EACZa,QAASC,EAASN,EAAKxK,GACvB4K,WAAY,IAIhBR,EAAYhW,KAAK4V,GAGnB,OAAOI,EAGT,SAASW,EAAmB/K,GAC1B,IAAImH,EAAQ7I,SAAS0M,cAAc,SAC/BC,EAAajL,EAAQiL,YAAc,GAEvC,QAAgC,IAArBA,EAAWC,MAAuB,CAC3C,IAAIA,EAAmD9Z,EAAA+Z,GAEnDD,IACFD,EAAWC,MAAQA,GAQvB,GAJAlZ,OAAOoZ,KAAKH,GAAYvS,SAAQ,SAAU7F,GACxCsU,EAAMvP,aAAa/E,EAAKoY,EAAWpY,OAGP,mBAAnBmN,EAAQC,OACjBD,EAAQC,OAAOkH,OACV,CACL,IAAInE,EAASyG,EAAUzJ,EAAQC,QAAU,QAEzC,IAAK+C,EACH,MAAM,IAAIqI,MAAM,2GAGlBrI,EAAOrE,YAAYwI,GAGrB,OAAOA,EAcT,IACMmE,EADFC,GACED,EAAY,GACT,SAAiBf,EAAOiB,GAE7B,OADAF,EAAUf,GAASiB,EACZF,EAAU/E,OAAO/K,SAASlF,KAAK,QAI1C,SAASmV,EAAoBtE,EAAOoD,EAAO1L,EAAQ2L,GACjD,IAAIC,EAAM5L,EAAS,GAAK2L,EAAIE,MAAQ,UAAU3U,OAAOyU,EAAIE,MAAO,MAAM3U,OAAOyU,EAAIC,IAAK,KAAOD,EAAIC,IAIjG,GAAItD,EAAMuE,WACRvE,EAAMuE,WAAWC,QAAUJ,EAAYhB,EAAOE,OACzC,CACL,IAAImB,EAAUtN,SAASuN,eAAepB,GAClCqB,EAAa3E,EAAM2E,WAEnBA,EAAWvB,IACbpD,EAAM4E,YAAYD,EAAWvB,IAG3BuB,EAAWzX,OACb8S,EAAM3I,aAAaoN,EAASE,EAAWvB,IAEvCpD,EAAMxI,YAAYiN,IAKxB,SAASI,EAAW7E,EAAOnH,EAASwK,GAClC,IAAIC,EAAMD,EAAIC,IACVC,EAAQF,EAAIE,MACZC,EAAYH,EAAIG,UAepB,GAbID,EACFvD,EAAMvP,aAAa,QAAS8S,GAE5BvD,EAAM8E,gBAAgB,SAGpBtB,GAA6B,oBAATnV,OACtBiV,GAAO,uDAAuD1U,OAAOP,KAAKE,SAASC,mBAAmBC,KAAKC,UAAU8U,MAAe,QAMlIxD,EAAMuE,WACRvE,EAAMuE,WAAWC,QAAUlB,MACtB,CACL,KAAOtD,EAAM+E,YACX/E,EAAM4E,YAAY5E,EAAM+E,YAG1B/E,EAAMxI,YAAYL,SAASuN,eAAepB,KAI9C,IAAIvK,EAAY,KACZiM,EAAmB,EAEvB,SAASrB,EAASN,EAAKxK,GACrB,IAAImH,EACAiF,EACAvN,EAEJ,GAAImB,EAAQE,UAAW,CACrB,IAAImM,EAAaF,IACjBhF,EAAQjH,IAAcA,EAAY6K,EAAmB/K,IACrDoM,EAASX,EAAoB3Y,KAAK,KAAMqU,EAAOkF,GAAY,GAC3DxN,EAAS4M,EAAoB3Y,KAAK,KAAMqU,EAAOkF,GAAY,QAE3DlF,EAAQ4D,EAAmB/K,GAC3BoM,EAASJ,EAAWlZ,KAAK,KAAMqU,EAAOnH,GAEtCnB,EAAS,YAxFb,SAA4BsI,GAE1B,GAAyB,OAArBA,EAAMmF,WACR,OAAO,EAGTnF,EAAMmF,WAAWP,YAAY5E,GAmFzBoF,CAAmBpF,IAKvB,OADAiF,EAAO5B,GACA,SAAqBgC,GAC1B,GAAIA,EAAQ,CACV,GAAIA,EAAO/B,MAAQD,EAAIC,KAAO+B,EAAO9B,QAAUF,EAAIE,OAAS8B,EAAO7B,YAAcH,EAAIG,UACnF,OAGFyB,EAAO5B,EAAMgC,QAEb3N,KAKN9N,EAAOD,QAAU,SAAU0F,EAAMwJ,IAC/BA,EAAUA,GAAW,IAGRE,WAA0C,kBAAtBF,EAAQE,YACvCF,EAAQE,UAAYoJ,KAItB,IAAImD,EAAkBvC,EADtB1T,EAAOA,GAAQ,GAC0BwJ,GACzC,OAAO,SAAgB0M,GAGrB,GAFAA,EAAUA,GAAW,GAE2B,mBAA5C1a,OAAOkB,UAAUwB,SAASjD,KAAKib,GAAnC,CAIA,IAAK,IAAIpb,EAAI,EAAGA,EAAImb,EAAgBpY,OAAQ/C,IAAK,CAC/C,IACIiZ,EAAQR,EADK0C,EAAgBnb,IAEjCwY,EAAYS,GAAOK,aAKrB,IAFA,IAAI+B,EAAqBzC,EAAawC,EAAS1M,GAEtCrM,EAAK,EAAGA,EAAK8Y,EAAgBpY,OAAQV,IAAM,CAClD,IAEIiZ,EAAS7C,EAFK0C,EAAgB9Y,IAIK,IAAnCmW,EAAY8C,GAAQhC,aACtBd,EAAY8C,GAAQ/B,UAEpBf,EAAY+C,OAAOD,EAAQ,IAI/BH,EAAkBE,M,gCC1QtB,IAAA7V,EAAA1F,EAAA,GAAA2F,EAAA3F,EAAA2B,EAAA+D,GAAAE,EAAA5F,EAAA,GAGI6F,EAHJ7F,EAAA2B,EAAAiE,EAG8BE,GAA4BH,EAAAI,GAE1DF,EAAwB7C,KAAK,CAACrD,EAAOO,EAAI,wsFAAysF,GAAG,CAAC8F,QAAU,EAAElB,QAAU,CAAC,8CAA8C,0BAA0B,2CAA2CmB,MAAQ,GAAGC,SAAW,w1BAAw1BC,eAAiB,CAAC,kNAAkN,6vIAA6vI,k0DAAk0DlB,WAAa,MAE/gUmB,EAAA,K,oDCPfpG,EAAAgB,EAAAoF,GAAA,IAAAsV,EAAA1b,EAAA,KAAA2b,EAAA3b,EAAA2B,EAAA+Z,GAAA,QAAA9U,KAAA8U,EAAA,YAAA7U,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAAia,EAAAja,MAAA,CAAAmF,GAAuMR,EAAA,QAAAuV,EAAG,G,mGCsD1M,IAAAC,EAAArT,EAAAvI,EAAA,MACA6b,EAAAtT,EAAAvI,EAAA,KACA8b,EAAAvT,EAAAvI,EAAA,M,szBAEA,CAEAS,KAAA,oBAEA0I,WAAA,CACA4S,MAAAH,EAAAvS,SAGAS,OAAA,CAAA+R,EAAAxS,SAEAU,MAAA,CAIAkG,KAAA,CACAhG,KAAAG,QACA4R,UAAA,GAKAC,eAAA,CACAhS,KAAAG,QACAf,SAAA,GAMA6B,UAAA,CACAjB,KAAAC,OACAb,QAAA,SAIA3E,KAnCA,WAoCA,OACAwX,gBAAA,GACAC,aAAA,EACAC,qBAAA,EACAC,SAAA,OAIA3Q,SAAA,CAEA4Q,cAFA,WAGA,QAAAjX,KAAAkX,WAAAlX,KAAA4W,iBAOAO,4BAVA,WAWA,OAAApb,EAAA,yBAIAkF,QA3DA,WA6DAjB,KAAA6W,gBAAA7W,KAAAuN,OAAAvJ,QAAA,GAAAkI,iBAAAkL,UAAAzS,OAGA0S,QAhEA,WAkEArX,KAAAwH,MAAA8P,mBAIAtX,KAAAgX,SAAAhX,KAAAwH,MAAA8P,iBACAtX,KAAA+W,sBACA/W,KAAAgX,SAAAhQ,iBAAA,SAAAhH,KAAAuX,cACAvX,KAAA+W,qBAAA,KAKA1O,QAAA,CAOAmP,sBAPA,SAOAC,GAEA,IAAAC,EAAAD,EAAA3H,QAAA,SAAA6H,GAAA,OAAAA,EAAAzL,oBAAAxM,KAAA,SAAAiY,GAAA,IAAAC,EAAA,eAAAA,EAAAD,EAAAzL,iBAAAkL,iBAAA,IAAAQ,OAAA,EAAAA,EAAAjT,SASA,OAPA+S,EAAAzV,SAAA,SAAA4V,EAAA/D,GACA,IAAAgE,EAAAlJ,EAAA8I,GAEA,GADAI,EAAA1B,OAAAtC,EAAA,IACA,IAAAgE,EAAAtW,QAAAqW,GACA,UAAAjD,MAAA,kCAAAtV,OAAAuY,EAAA,uEAGAH,GAOAK,8BAzBA,SAyBApZ,GAAA,IAAA2I,EAAAtH,KACAA,KAAA8W,aAAA,EACAjP,SAAAmQ,eAAA,oBAAArZ,EAAAsZ,QAAA,YAAAC,eAAA,CACAC,SAAA,SACAC,OAAA,YAEApY,KAAA6W,gBAAAlY,EACAiK,YAAA,WACAtB,EAAAwP,aAAA,IACA,MAGAuB,iBArCA,WAsCArY,KAAAyI,MAAA,kBAEAzI,KAAAgX,SAAA7P,oBAAA,SAAAnH,KAAAuX,cACAvX,KAAA+W,qBAAA,EACA/W,KAAAgX,SAAAsB,UAAA,GAGAf,aA7CA,WA8CAvX,KAAA8W,aACA9W,KAAAuY,yBAKAA,uBAAA,EAAA9B,EAAAzS,UAAA,WACAhE,KAAA6W,gBAAA,GACAhP,SAAA2G,cAAAgK,UAAAC,SAAA,0BACA5Q,SAAA2G,cAAAkK,SAEA,KAEAC,kBA3DA,SA2DAC,EAAAja,GACA,UAAAia,EAAAC,MACA7Y,KAAA+X,8BAAApZ,KAKA6L,OAhJA,SAgJA+J,GAAA,IAAA5L,EAAA3I,KA+BA8Y,EAAA,SAAAna,GAAA,OAAA4V,EAAA,SAAAA,EAAA,KACA5G,MAAA,CACAoL,yBAAA,EACAC,gCAAAra,IAAAgK,EAAAkO,iBAGAtG,MAAA,CACA0I,KAAA,MACAC,gBAAAva,IAAAgK,EAAAkO,gBACAsC,SAAA,KAGAzR,GAAA,CACAwF,MAAA,kBAAAvE,EAAAoP,8BAAApZ,IACAya,QAAA,kBAAAzQ,EAAAgQ,kBAAApQ,MAAA5J,MAEAA,MAGA,OAAAqB,KAAA4K,KACA2J,EAAA,SACAhE,MAAA,CACA1K,UAAA7F,KAAA6F,WAEA6B,GAAA,CACAgB,MAAA,WAAAC,EAAA0P,sBAEA,CACA9D,EAAA,OACAhE,MAAA,CACA5C,MAAA,iBAFA,GAAArO,OAAAsP,EArDAjG,EAAAsO,cACA,CAAA1C,EAAA,OACAhE,MAAA,CACA5C,MAAA,2BACAsL,KAAA,UACAzM,aAAA7D,EAAAwO,8BAEA,CAAA5C,EAAA,MACAhE,MAAA,CACA5C,MAAA,kBACAsL,KAAA,YAEAtQ,EAAA6O,sBAAA7O,EAAA4E,OAAAvJ,SAAAtE,KAAA,SAAAf,GACA,OAAAma,EAAAna,UAGA,IAqCA,CAKA4V,EAAA,OACAhE,MAAA,CACA5C,MAAA,yBAEA6C,IAAA,oBACAxQ,KAAAuN,OAAAvJ,mBAGA,I,iHClRA,IAAIwG,EAAS,WACb,IAAI6O,EAAMC,EACNpJ,EAAIlQ,KAASmQ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAQD,EAAIrE,sBAAwBqE,EAAIrF,UAAWwF,EAAG,UAAUH,EAAIqJ,GAAG,CAAChV,WAAW,CAAC,CAACnJ,KAAK,UAAUyV,QAAQ,iBAAiB/U,MAAOoU,EAAIlE,YAAgB,KAAE8E,WAAW,mBAAmBG,UAAU,CAACC,MAAO,KAAQxD,YAAY,kCAAkCC,OAAQ0L,EAAO,GAAIA,EAAKnJ,EAAIlE,YAAYwB,MAAQ0C,EAAIlE,YAAYwB,KAAM6L,EAAKnJ,EAAIzC,kBAAoByC,EAAIzC,iBAAkB4L,GAAO9I,MAAM,CAACiJ,IAAM,sBAAsBnO,SAAW6E,EAAI7E,UAAU3D,GAAGwI,EAAI1S,GAAG,CAAC4Q,MAAQ8B,EAAIF,QAAQ0I,KAAOxI,EAAID,QAAQ,CAACC,EAAI/C,wBAAwB+C,EAAIL,mBAAmB,UAAUK,EAAIjE,oBAAmB,GAAO,CAACoE,EAAG,SAAS,CAACE,MAAM,CAAC5F,OAASuF,EAAI9C,uBAAuB8C,EAAIc,GAAG,KAAKX,EAAG,OAAO,CAACE,MAAM,CAACkJ,eAAc,EAAKC,OAAS,KAAK,CAACxJ,EAAI0B,GAAG,YAAY,IAAI,GAAGvB,EAAG,MAAM,CAAC9L,WAAW,CAAC,CAACnJ,KAAK,OAAOyV,QAAQ,SAAS/U,MAAOoU,EAAItE,oBAAsBsE,EAAIrF,UAAWiG,WAAW,oCAAoCpD,YAAY,cAAcC,MAAM,CAACgM,oBAAqBzJ,EAAI3E,SAAS,CAAC8E,EAAG,UAAU,CAACE,MAAM,CAACqJ,MAAQ,EAAEC,iBAAgB,EAAKjP,KAAOsF,EAAI3E,OAAOL,UAAYgF,EAAIhF,UAAU4O,qBAAqB5J,EAAI/E,kBAAkBtF,UAAYqK,EAAIrK,WAAW6B,GAAG,CAACqS,cAAc,SAAS7H,GAAQhC,EAAI3E,OAAO2G,GAAQQ,KAAOxC,EAAIjC,SAAS+L,aAAa9J,EAAI7B,OAAOsE,KAAOzC,EAAIhC,YAAY,CAACmC,EAAG,SAAS,CAACG,IAAI,aAAa9C,YAAY,+BAA+BC,OAAQ2L,EAAS,GAAIA,EAAOpJ,EAAIlF,cAAgBkF,EAAIrC,oBAAqByL,EAAO,uCAA0CpJ,EAAIpF,UAAWwO,EAAO,2CAA8CpJ,EAAIrC,oBAAqByL,EAAO,0CAA6CpJ,EAAIrC,qBAA2C,KAApBqC,EAAIlF,YAAoBsO,EAAO,oCAAuCpJ,EAAInF,QAASuO,GAAS/I,MAAM,CAAC0J,KAAO,UAAU5O,SAAW6E,EAAI7E,SAAS6O,gBAAgB,OAAO1N,aAAa0D,EAAIjF,UAAUkP,gBAAgBjK,EAAIzE,SAAS2O,gBAAgBlK,EAAI3E,OAAS,OAAS,QAAQ8O,YAAY,IAAIzV,KAAO,UAAU8C,GAAG,CAAC0G,MAAQ8B,EAAIF,QAAQ0I,KAAOxI,EAAID,QAAQgK,KAAK,WAAW,CAAE/J,EAAuB,oBAAEA,EAAI0B,GAAG,QAA6B,KAApB1B,EAAIlF,YAAoBqF,EAAG,iBAAiB,CAACE,MAAM,CAAC9K,KAAO,GAAG2L,WAAa,MAAMlB,EAAI7S,KAAK6S,EAAIc,GAAG,WAAWd,EAAI9S,GAAG8S,EAAIpF,WAAW,WAAW,GAAGoF,EAAIc,GAAG,KAAKX,EAAG,MAAM,CAAC9L,WAAW,CAAC,CAACnJ,KAAK,OAAOyV,QAAQ,SAAS/U,MAAOoU,EAAU,OAAEY,WAAW,WAAWN,IAAI,OAAO7C,MAAM,CAAE/C,KAAMsF,EAAI3E,QAASgF,MAAM,CAAC4I,SAAW,MAAMzR,GAAG,CAAC0R,QAAU,CAAC,SAASlH,GAAQ,OAAIA,EAAOtN,KAAKpD,QAAQ,QAAQ0O,EAAIoK,GAAGpI,EAAOrJ,QAAQ,KAAK,GAAGqJ,EAAO9V,IAAI,CAAC,KAAK,aAA+B8V,EAAOqI,SAASrI,EAAOsI,UAAUtI,EAAOuI,QAAQvI,EAAOwI,QAAjE,KAAgGxK,EAAIZ,oBAAoB4C,IAAS,SAASA,GAAQ,OAAIA,EAAOtN,KAAKpD,QAAQ,QAAQ0O,EAAIoK,GAAGpI,EAAOrJ,QAAQ,OAAO,GAAGqJ,EAAO9V,IAAI,CAAC,OAAO,eAAiC8V,EAAOqI,SAASrI,EAAOsI,UAAUtI,EAAOuI,QAAQvI,EAAOwI,QAAjE,KAAgGxK,EAAIV,gBAAgB0C,IAAS,SAASA,GAAQ,OAAIA,EAAOtN,KAAKpD,QAAQ,QAAQ0O,EAAIoK,GAAGpI,EAAOrJ,QAAQ,MAAM,EAAEqJ,EAAO9V,IAAI,QAA0B8V,EAAOqI,SAASrI,EAAOsI,UAAUtI,EAAOuI,QAAQvI,EAAOwI,QAAjE,KAAgGxK,EAAIV,gBAAgB0C,IAAS,SAASA,GAAQ,OAAIA,EAAOtN,KAAKpD,QAAQ,QAAQ0O,EAAIoK,GAAGpI,EAAOrJ,QAAQ,MAAM,EAAEqJ,EAAO9V,IAAI,OAAgB,KAAW8V,EAAOsI,SAA4BtI,EAAOqI,SAASrI,EAAOuI,QAAQvI,EAAOwI,QAAiB,KAAcxK,EAAIZ,oBAAoB4C,GAAvG,MAAgH,SAASA,GAAQ,OAAIA,EAAOtN,KAAKpD,QAAQ,QAAQ0O,EAAIoK,GAAGpI,EAAOrJ,QAAQ,eAAU8R,EAAUzI,EAAO9V,SAAIue,IAA8BzI,EAAOqI,SAASrI,EAAOsI,UAAUtI,EAAOuI,QAAQvI,EAAOwI,QAAjE,KAAgGxK,EAAI5B,iBAAiB4D,IAAS,SAASA,GAAQ,OAAIA,EAAOtN,KAAKpD,QAAQ,QAAQ0O,EAAIoK,GAAGpI,EAAOrJ,QAAQ,iBAAY8R,EAAUzI,EAAO9V,SAAIue,IAA8BzI,EAAOqI,SAASrI,EAAOsI,UAAUtI,EAAOuI,QAAQvI,EAAOwI,QAAjE,KAAgGxK,EAAIR,gBAAgBwC,IAAS,SAASA,GAAQ,OAAIA,EAAOtN,KAAKpD,QAAQ,QAAQ0O,EAAIoK,GAAGpI,EAAOrJ,QAAQ,MAAM,GAAGqJ,EAAO9V,IAAI,CAAC,MAAM,YAA8B8V,EAAOqI,SAASrI,EAAOsI,UAAUtI,EAAOuI,QAAQvI,EAAOwI,QAAjE,MAAyFxI,EAAOvC,iBAAwBO,EAAIhC,UAAUgE,MAAUvB,UAAYT,EAAI3B,qBAAqB,CAAC8B,EAAG,KAAK,CAACE,MAAM,CAACnQ,GAAK8P,EAAIzE,SAAS0N,SAAW,OAAO,CAAEjJ,EAAU,OAAE,CAACA,EAAI0B,GAAG,YAAY1B,EAAI7S,MAAM,QAAQ,IAC5qI+U,EAAkB,I,gCCHtBzX,EAAAgB,EAAAoF,GAAA,IAAA6Z,EAAAjgB,EAAA,GAAAkgB,EAAAlgB,EAAA,WAAA4G,KAAAsZ,EAAA,YAAArZ,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAAye,EAAAze,MAAA,CAAAmF,GAAA5G,EAAA,QAAA8G,EAAA9G,EAAA,GAAAmgB,EAAAngB,EAAA,GAAAogB,EAAApgB,EAAA2B,EAAAwe,GAQIlZ,EAAYrG,OAAAkG,EAAA,EAAAlG,CACdsf,EAAA,QACAD,EAAA,EACAA,EAAA,GACA,EACA,KACA,KACA,MAMoB,mBAAXG,EAAAra,GAAuBqa,IAAOnZ,GAE1Bb,EAAA,QAAAa,E,0CCFf,I;;;;;;;;;;;;;;;;;;;;;;UAAAjH,EAAA,O,4BAEeoJ,Q,+BCvBfzJ,EAAOD,QAAUiP,QAAQ,a,iCCAzB,IAAAjJ,EAAA1F,EAAA,GAAA2F,EAAA3F,EAAA2B,EAAA+D,GAAAE,EAAA5F,EAAA,GAGI6F,EAHJ7F,EAAA2B,EAAAiE,EAG8BE,GAA4BH,EAAAI,GAE1DF,EAAwB7C,KAAK,CAACrD,EAAOO,EAAI,yhCAA0hC,GAAG,CAAC8F,QAAU,EAAElB,QAAU,CAAC,8CAA8C,oCAAoC,2CAA2CmB,MAAQ,GAAGC,SAAW,6bAA6bC,eAAiB,CAAC,kNAAkN,wkDAAwkD,k0DAAk0DlB,WAAa,MAE1xKmB,EAAA,K,+ECJXwI,EAAU,CAEdC,OAAiB,OACjBC,WAAoB,GAEPC,IAAIsR,EAAA,EAASzR,GAIXyR,EAAA,EAAQpR,Q,+BCNR,SAASqR,EACtBC,EACA1Q,EACA4H,EACA+I,EACAC,EACAC,EACAC,EACAC,GAGA,IAqBIC,EArBAjS,EAAmC,mBAAlB2R,EACjBA,EAAc3R,QACd2R,EAsDJ,GAnDI1Q,IACFjB,EAAQiB,OAASA,EACjBjB,EAAQ6I,gBAAkBA,EAC1B7I,EAAQkS,WAAY,GAIlBN,IACF5R,EAAQgB,YAAa,GAInB8Q,IACF9R,EAAQmS,SAAW,UAAYL,GAI7BC,GACFE,EAAO,SAAU9Q,IAEfA,EACEA,GACC1K,KAAK2b,QAAU3b,KAAK2b,OAAOC,YAC3B5b,KAAK6b,QAAU7b,KAAK6b,OAAOF,QAAU3b,KAAK6b,OAAOF,OAAOC,aAEZ,oBAAxBE,sBACrBpR,EAAUoR,qBAGRV,GACFA,EAAapgB,KAAKgF,KAAM0K,GAGtBA,GAAWA,EAAQqR,uBACrBrR,EAAQqR,sBAAsB1M,IAAIiM,IAKtC/R,EAAQyS,aAAeR,GACdJ,IACTI,EAAOD,EACH,WACAH,EAAapgB,KACXgF,MACCuJ,EAAQgB,WAAavK,KAAK6b,OAAS7b,MAAMic,MAAMC,SAASC,aAG3Df,GAGFI,EACF,GAAIjS,EAAQgB,WAAY,CAGtBhB,EAAQ6S,cAAgBZ,EAExB,IAAIa,EAAiB9S,EAAQiB,OAC7BjB,EAAQiB,OAAS,SAAmCC,EAAGC,GAErD,OADA8Q,EAAKxgB,KAAK0P,GACH2R,EAAe5R,EAAGC,QAEtB,CAEL,IAAI4R,EAAW/S,EAAQgT,aACvBhT,EAAQgT,aAAeD,EACnB,GAAGhd,OAAOgd,EAAUd,GACpB,CAACA,GAIT,MAAO,CACLnhB,QAAS6gB,EACT3R,QAASA,GA/Fb5O,EAAAQ,EAAA4F,EAAA,uBAAAka,M;;;;;;;;;;;;;;;;;;;;;;ACuBA,I,EAAoB,SAACrd,GACpB,OAAO4e,KAAKC,SACVxe,SAAS,IACTga,QAAQ,WAAY,IACpByE,OAAO,EAAG9e,GAAU,I,8BC3BvBtD,EAAOD,QAAUiP,QAAQ,6C,gCCAzB3O,EAAAgB,EAAAoF,GAAA,IAAA4b,EAAAhiB,EAAA,GAAAiiB,EAAAjiB,EAAA2B,EAAAqgB,GAAAE,EAAAliB,EAAA,IAGI4O,EAAU,CAEdC,OAAiB,OACjBC,WAAoB,GAEPmT,IAAIC,EAAA,EAAStT,GAIXxI,EAAA,QAAA8b,EAAA,EAAQjT,QAAU,I,mGCSjC,IAAAkT,EAAA5Z,EAAAvI,EAAA,MACA4b,EAAArT,EAAAvI,EAAA,M;;;;;;;;;;;;;;;;;;;;;IAEA,EAAAmiB,EAAA9Y,SAAe0S,W,MAEAA,U,8CC1Bf/b,EAAAgB,EAAAoF,GAAA,IAAAgc,EAAApiB,EAAA,KAAAqiB,EAAAriB,EAAA,aAAA4G,KAAAyb,EAAA,YAAAxb,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAA4gB,EAAA5gB,MAAA,CAAAmF,GAAA5G,EAAA,SAAA8G,EAAA9G,EAAA,GAAAsiB,EAAAtiB,EAAA,KAAAuiB,EAAAviB,EAAA2B,EAAA2gB,GAQIrb,EAAYrG,OAAAkG,EAAA,EAAAlG,CACdyhB,EAAA,QACAD,EAAA,EACAA,EAAA,GACA,EACA,KACA,WACA,MAMoB,mBAAXG,EAAAxc,GAAuBwc,IAAOtb,GAE1Bb,EAAA,QAAAa,E,2BCvBftH,EAAOD,QAAUiP,QAAQ,0C,kBCAzBhP,EAAOD,QAAUiP,QAAQ,2C,kBCAzBhP,EAAOD,QAAUiP,QAAQ,oC,kBCAzBhP,EAAOD,QAAUiP,QAAQ,mC;;;;;;;;;;;;;;;;;;;;;;ACsBV,SAAe6T,EAAUvD,GACvC,IAAIxZ,EACAgd,EAEAC,EADAC,EAAY1D,EAGhB5Z,KAAK8G,MAAQ,WACZuW,GAAU,EACVD,EAAU,IAAIG,KACdnd,EAAKwI,WAAWuU,EAAUG,IAG3Btd,KAAK6G,MAAQ,WACZwW,GAAU,EACVtU,aAAa3I,GACbkd,GAAa,IAAIC,KAASH,GAG3Bpd,KAAKqJ,MAAQ,WACZgU,GAAU,EACVtU,aAAa3I,GACbkd,EAAY,GAGbtd,KAAKwd,YAAc,WAMlB,OALIH,IACHrd,KAAK6G,QACL7G,KAAK8G,SAGCwW,GAGRtd,KAAKyd,gBAAkB,WACtB,OAAOJ,GAGRrd,KAAK8G,U,8DCxDFyC,EAAU,CAEdC,OAAiB,OACjBC,WAAoB,GAEPC,IAAIgU,EAAA,EAASnU,GAIXmU,EAAA,EAAQ9T,Q,+BCZvBjP,EAAAgB,EAAAoF,GAAA,IAAA4c,EAAAhjB,EAAA,GAAAijB,EAAAjjB,EAAA2B,EAAAqhB,GAAA,QAAApc,KAAAoc,EAAA,YAAAnc,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAAuhB,EAAAvhB,MAAA,CAAAmF,GAA6LR,EAAA,QAAA6c,EAAG,G,kGCsBhM,IAAAC,EAAAljB,EAAA,I,EAEe,CACd0E,KADc,WAEb,MAAO,CACN6X,UAAU,IAGZjW,QANc,WAOb6c,gBAAcC,IAAI,UAAW/d,KAAKge,mBAClChe,KAAKkX,SAAW4G,gBAAc5G,UAE/BhQ,cAVc,WAWb4W,gBAAcG,KAAK,UAAWje,KAAKge,oBAEpC3V,QAAS,CACR2V,kBADQ,SACUE,GACjBle,KAAKkX,SAAWgH;;;;;;;;;;;;;;;;;;;;;iDCjBnB,I;;;;;;;;;;;;;;;;;;;;;;UAAAvjB,EAAA,O,4BAEewjB,Q,8CCxBfxjB,EAAAgB,EAAAoF,GAAA,IAAAqd,EAAAzjB,EAAA,aAAA4G,KAAA6c,EAAA,YAAA5c,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAAgiB,EAAAhiB,MAAA,CAAAmF,GAAA5G,EAAA,SAAA0jB,EAAA1jB,EAAA,GAAA2jB,EAAA3jB,EAAA,KAAA4jB,EAAA5jB,EAAA2B,EAAAgiB,GAQI1c,EAAYrG,OAAA8iB,EAAA,EAAA9iB,CACd6iB,EAAA,aATE5T,OAAQ4H,GAYV,EACA,KACA,WACA,MAMoB,mBAAXmM,EAAA7d,GAAuB6d,IAAO3c,GAE1Bb,EAAA,QAAAa,E,yCCDf,I;;;;;;;;;;;;;;;;;;;;;;UAAAjH,EAAA,M,4BAEe0P,Q,6CCxBf1P,EAAAgB,EAAAoF,GAAA,IAAAyd,EAAA7jB,EAAA,IAAA8jB,EAAA9jB,EAAA2B,EAAAkiB,GAAA,QAAAjd,KAAAid,EAAA,YAAAhd,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAAoiB,EAAApiB,MAAA,CAAAmF,GAAkMR,EAAA,QAAA0d,EAAG,G,gCC2HrM,I,0EAKA,CACArjB,KAAA,eAEAqJ,OAAA,G,EARA9J,EAAA,M,4BAQAqJ,SAEAU,MAAA,CAIA2G,SAAA,CACAzG,KAAAG,QACAf,SAAA,IAGAqC,SAAA,CAKAqY,YALA,WAMA,OAAA1e,KAAAqL,Y,+GC9HA,I,EAAAsT,G,EAAAhkB,EAAA,K;;;;;;;;;;;;;;;;;;;;;;MAEe,CACdikB,OADc,WAIR5e,KAAKuN,OAAOvJ,SAAgC,KAArBhE,KAAK6e,KAAKjR,SACrCkR,UAAIC,KAAKC,KAAT,GAAA1f,OAAiBU,KAAKkc,SAAS9gB,KAA/B,2DAA8F4E,MAC9FA,KAAKif,WACLjf,KAAKkB,IAAIkH,WAIX4F,aAXc,WAYbhO,KAAK6e,KAAO7e,KAAKkf,WAGlB7f,KAfc,WAgBb,MAAO,CAGNwf,KAAM7e,KAAKkf,YAIb7Y,SAAU,CACT8Y,WADS,WAER,OAAOnf,KAAK6e,MAAQ7e,KAAK6e,KAAKjR,OAAOhQ,OAAS,KAIhDyK,QAAS,CACR6W,QADQ,WAEP,OAAOlf,KAAKuN,OAAOvJ,QAAUhE,KAAKuN,OAAOvJ,QAAQ,GAAG6a,KAAKjR,OAAS,M,2ECpDjErE,EAAU,CAEdC,OAAiB,OACjBC,WAAoB,GAEPC,IAAI0V,EAAA,EAAS7V,GAIX6V,EAAA,EAAQxV,Q,iGC0DvB,I,EAEA,CACAxO,KAAA,UACA0I,WAAA,CACAub,SALA1kB,EAAA,IAKA0kB,UAGApe,QANA,WAMA,IAAAqG,EAAAtH,KACAA,KAAAsf,QACA,WAIA,OAAAhY,EAAAE,MAAA+X,QAAAC,UAEA,SAAAtB,GACAA,EAQA5W,EAAAmB,MAAA,cAKAnB,EAAAmB,MAAA,mB,+GCpGA,IAAA/E,EAAA/I,EAAA,I,EAEe,CACd0N,QAAS,CACR/L,MACAP,Q,6CCkBF,I;;;;;;;;;;;;;;;;;;;;;;;AAEO,IAAM+hB,EAAgB,M,EAF7BnjB,EAAA,K,4BAEiCmkB,SAAI,CACpCzf,KADoC,WAEnC,MAAO,CACN6X,UAAU,IAGZvQ,MAAO,CACNuQ,SADM,SACGgH,GACRle,KAAKyI,MAAM,UAAWyV,KAGxBuB,QAXoC,WAYnChlB,OAAOuM,iBAAiB,SAAUhH,KAAK0f,oBACvC1f,KAAK0f,sBAENxY,cAfoC,WAgBnCzM,OAAO0M,oBAAoB,SAAUnH,KAAK0f,qBAE3CrX,QAAS,CACRqX,mBADQ,WAEP1f,KAAKkX,SAAWrP,SAAS8X,gBAAgBC,YAAc,S,qHCvB1D,IAAAC,EAAA3c,EAAAvI,EAAA,KACAmlB,EAAA5c,EAAAvI,EAAA,K;;;;;;;;;;;;;;;;;;;;;SAEe,CACd8J,OAAQ,CAACsb,WACTrb,MAAO,CAIN8I,KAAM,CACL5I,KAAMC,OACNb,QAAS,IAKVW,MAAO,CACNC,KAAMC,OACNb,QAAS,IAKVgc,gBAAiB,CAChBpb,KAAMG,QACNf,SAAS,GAKViH,UAAW,CACVrG,KAAMC,OACNb,QAAS,KAIXqC,SAAU,CACT4Z,UADS,WAER,IACC,OAAO,IAAIC,IAAIlgB,KAAKwN,MACnB,MAAO2S,GACR,OAAO,KAKV9X,QAAS,CACR+X,QADQ,SACA7X,GAOP,GAFAvI,KAAKyI,MAAM,QAASF,GAEhBvI,KAAKggB,gBAAiB,CACzB,IAAMnE,GAAS,EAAAiE,EAAA9b,SAAUhE,KAAM,WAC3B6b,GAAUA,EAAO3N,WACpB2N,EAAO3N,gB,6BC/EZ5T,EAAOD,QAAUiP,QAAQ,Q,gCCAzB,IAAAjJ,EAAA1F,EAAA,GAAA2F,EAAA3F,EAAA2B,EAAA+D,GAAAE,EAAA5F,EAAA,GAGI6F,EAHJ7F,EAAA2B,EAAAiE,EAG8BE,GAA4BH,EAAAI,GAE1DF,EAAwB7C,KAAK,CAACrD,EAAOO,EAAI,2pDAA4pD,GAAG,CAAC8F,QAAU,EAAElB,QAAU,CAAC,8CAA8C,uCAAuC,2CAA2CmB,MAAQ,GAAGC,SAAW,oyBAAoyBC,eAAiB,CAAC,kNAAkN,ivGAAivG,k0DAAk0DlB,WAAa,MAE/6PmB,EAAA,K,uHCPf,IAAIyJ,EAAS,WAAa,IAAI0F,EAAIlQ,KAASmQ,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAAC3C,YAAY,SAASC,MAAM,CAAE0S,mBAAoBnQ,EAAI7E,WAAY,CAACgF,EAAG,SAAS,CAAC3C,YAAY,gBAAgBC,MAAM,CAAE2S,UAAWpQ,EAAIwO,aAAcnO,MAAM,CAAC/D,aAAa0D,EAAIjF,UAAUrG,KAAO,UAAU8C,GAAG,CAACwF,MAAQgD,EAAIkQ,UAAU,CAAClQ,EAAI0B,GAAG,OAAO,CAACvB,EAAG,OAAO,CAAC3C,YAAY,sBAAsBC,MAAM,CAACuC,EAAI+P,UAAY,2BAA6B/P,EAAI1C,MAAMkD,MAAM,CAAG6P,gBAAiBrQ,EAAI+P,UAAa,OAAS/P,EAAI1C,KAAO,IAAO,UAAY0C,EAAIc,GAAG,KAAMd,EAAS,MAAEG,EAAG,IAAI,CAACA,EAAG,SAAS,CAAC3C,YAAY,wBAAwB,CAACwC,EAAIc,GAAG,aAAad,EAAI9S,GAAG8S,EAAIvL,OAAO,cAAcuL,EAAIc,GAAG,KAAKX,EAAG,MAAMH,EAAIc,GAAG,KAAKX,EAAG,OAAO,CAAC3C,YAAY,0BAA0B8S,SAAS,CAACC,YAAcvQ,EAAI9S,GAAG8S,EAAI2O,WAAY3O,EAAc,WAAEG,EAAG,IAAI,CAAC3C,YAAY,0BAA0B8S,SAAS,CAACC,YAAcvQ,EAAI9S,GAAG8S,EAAI2O,SAASxO,EAAG,OAAO,CAAC3C,YAAY,uBAAuB,CAACwC,EAAIc,GAAGd,EAAI9S,GAAG8S,EAAI2O,SAAS3O,EAAIc,GAAG,KAA+Bd,EAAI7S,MAAM,MAC1/B+U,EAAkB,I,gCCDtBzX,EAAAgB,EAAAoF,GAAA,IAAA2f,EAAA/lB,EAAA,IAAAgmB,EAAAhmB,EAAA,YAAA4G,KAAAof,EAAA,YAAAnf,QAAAD,GAAA,YAAAnF,GAAAzB,EAAAQ,EAAA4F,EAAA3E,GAAA,kBAAAukB,EAAAvkB,MAAA,CAAAmF,GAAA5G,EAAA,QAAA8G,EAAA9G,EAAA,GAAAimB,EAAAjmB,EAAA,IAAAkmB,EAAAlmB,EAAA2B,EAAAskB,GAQIhf,EAAYrG,OAAAkG,EAAA,EAAAlG,CACdolB,EAAA,QACAD,EAAA,EACAA,EAAA,GACA,EACA,KACA,WACA,MAMoB,mBAAXG,EAAAngB,GAAuBmgB,IAAOjf,GAE1Bb,EAAA,QAAAa,E,wCCvBf,IAAAvB,EAAA1F,EAAA,GAAA2F,EAAA3F,EAAA2B,EAAA+D,GAAAE,EAAA5F,EAAA,GAGI6F,EAHJ7F,EAAA2B,EAAAiE,EAG8BE,GAA4BH,EAAAI,GAE1DF,EAAwB7C,KAAK,CAACrD,EAAOO,EAAI,88DAA+8D,GAAG,CAAC8F,QAAU,EAAElB,QAAU,CAAC,8CAA8C,2BAA2BmB,MAAQ,GAAGC,SAAW,m1BAAm1BC,eAAiB,CAAC,kNAAkN,0vFAA0vFlB,WAAa,MAEj6LmB,EAAA,K,kGCcf,I,EAAA4d,G,EAAAhkB,EAAA,K;;;;;;;;;;;;;;;;;;;;;;AASA,I,EAAqB,SAAC8c,EAAOqJ,EAASC,GACrC,QAAcpG,IAAVlD,EAIJ,IAAK,IAAI3D,EAAQ2D,EAAM7Z,OAAS,EAAGkW,GAAS,EAAGA,IAAS,CACvD,IAAM/D,EAAO0H,EAAM3D,GAEbkN,GAAiBjR,EAAK7D,kBAAoB6D,EAAK5D,MAAsC,IAA/B2U,EAAQtf,QAAQuO,EAAK5D,KAC3E8U,IAAmBlR,EAAK7D,kBAAyD,iBAA9B6D,EAAK7D,iBAAiBC,IACzE+U,EAAuBD,IAAkE,IAAhDH,EAAQtf,QAAQuO,EAAK7D,iBAAiBC,MAGjF6U,IAAkBC,GAAkBC,MAGnCF,GAAiBE,IACpBpC,UAAIC,KAAKC,KAAT,GAAA1f,OAAiB0hB,EAAgBjR,EAAK5D,IAAM4D,EAAK7D,iBAAiBC,IAAlE,+BAAA7M,OAAmGyhB,EAAG7E,SAAS9gB,KAA/G,cAAiI2lB,GAIlItJ,EAAMrB,OAAOtC,EAAO,M;;;;;;;;;;;;;;;;;;;;;;ACrBvB,I,EAAkB,SAASpJ,EAAStP,GAEnC,IADA,IAAIygB,EAASnR,EAAQyW,QACdtF,GAAQ,CACd,GAAIA,EAAOK,SAAS9gB,OAASA,EAC5B,OAAOygB,EAERA,EAASA,EAAOsF,U,yECjCd5X,EAAU,CAEdC,OAAiB,OACjBC,WAAoB,GAEPC,IAAI0X,EAAA,EAAS7X,GAIX6X,EAAA,EAAQxX,Q,kDCSvB,I;;;;;;;;;;;;;;;;;;;;;;UAAAjP,EAAA,M,4BAEesJ,Q,gHCvBf,IAAIuG,EAAS,WAAa,IAAiB2F,EAATnQ,KAAgBoQ,eAAmBC,EAAnCrQ,KAA0CsQ,MAAMD,IAAIF,EAAG,OAAOE,EAAG,WAAjErQ,KAAgFqhB,GAAhFrhB,KAAuFuZ,GAAG,CAAC/I,IAAI,UAAUD,MAAM,CAAC+Q,qBAAqB,UAAUC,wBAAwB,mBAAmBC,sBAAsB,iBAAiBC,sBAAsB,mBAAmB,WAA1QzhB,KAAyRyM,QAAO,GAAhSzM,KAA2S0hB,YAAY,CAAvT1hB,KAA4T4R,GAAG,WAA/T5R,KAA8UgR,GAAG,KAAKX,EAAG,WAAW,CAAC4J,KAAK,WAAW,CAArXja,KAA0X4R,GAAG,YAAY,IAAI,IAC3aQ,EAAkB","file":"Components/AppSettingsDialog.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Components/AppSettingsDialog\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/AppSettingsDialog\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/AppSettingsDialog\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 432);\n","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-tooltip[data-v-b0001f9]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 0;text-align:left;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.vue-tooltip[data-v-b0001f9][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-b0001f9][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-b0001f9][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-b0001f9][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-b0001f9][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-b0001f9][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-b0001f9] .tooltip-inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.vue-tooltip[data-v-b0001f9] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./index.scss\"],\"names\":[],\"mappings\":\"AAGA,sBACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCOxB,6BACC,iBAAkB,CAClB,cAAe,CACf,UAAW,CACX,SAAU,CACV,aAAc,CACd,QAAS,CAET,eAAgB,CAChB,cAAe,CACf,eAAgB,CAChB,gBAAiB,CACjB,SAAU,CACV,eAAgB,CAEhB,eAAgB,CAChB,sDAAuD,CAhBxD,gEAqBG,QAAS,CACT,YAAa,CACb,eAAgB,CAChB,6BA1Be,CA2Bf,8BAA+B,CAC/B,+BAAgC,CAChC,6BAA8B,CA3BjC,mEAkCG,KAAM,CACN,YAAa,CACb,eAAgB,CAChB,6BAvCe,CAwCf,4BAA6B,CAC7B,8BAA+B,CAC/B,6BAA8B,CAxCjC,kEA+CG,UAAW,CACX,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,4BAA6B,CAC7B,+BAAgC,CAChC,6BAA8B,CArDjC,iEA4DG,SAAU,CACV,cAAe,CACf,aAAc,CACd,6BAjEe,CAkEf,4BAA6B,CAC7B,8BAA+B,CAC/B,+BAAgC,CAlEnC,iDAwEE,iBAAkB,CAClB,wCAAyC,CACzC,SAAU,CA1EZ,kDA6EE,kBAAmB,CACnB,uBAAwB,CACxB,SAAU,CA/EZ,4CAoFE,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,4BAA6B,CAC7B,kCAAmC,CACnC,6CAA8C,CAzFhD,4CA8FE,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,QAAS,CACT,kBAAmB,CACnB,yCAA0C\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"b0001f9\\\"; @import 'variables'; @import 'material-icons';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n*\\n* Bootstrap v3.3.5 (http://getbootstrap.com)\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n\\n$arrow-width: 10px;\\n\\n.vue-tooltip[data-v-#{$scope_version}] {\\n\\tposition: absolute;\\n\\tz-index: 100000;\\n\\tright: auto;\\n\\tleft: auto;\\n\\tdisplay: block;\\n\\tmargin: 0;\\n\\t/* default to top */\\n\\tmargin-top: -3px;\\n\\tpadding: 10px 0;\\n\\ttext-align: left;\\n\\ttext-align: start;\\n\\topacity: 0;\\n\\tline-height: 1.6;\\n\\n\\tline-break: auto;\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t// TOP\\n\\t&[x-placement^='top'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// BOTTOM\\n\\t&[x-placement^='bottom'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// RIGHT\\n\\t&[x-placement^='right'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// LEFT\\n\\t&[x-placement^='left'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// HIDDEN / SHOWN\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\topacity: 0;\\n\\t}\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity .15s;\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t// CONTENT\\n\\t.tooltip-inner {\\n\\t\\tmax-width: 350px;\\n\\t\\tpadding: 5px 8px;\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t// ARROW\\n\\t.tooltip-arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: 0;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst ScopeComponent = (Component) => {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n","import { render, staticRenderFns } from \"./ActionButton.vue?vue&type=template&id=6c7cb9ab&scoped=true&\"\nimport script from \"./ActionButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ActionButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ActionButton.vue?vue&type=style&index=0&id=6c7cb9ab&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6c7cb9ab\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ActionButton.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import { getGettextBuilder } from '@nextcloud/l10n/dist/gettext'\n\nconst gtBuilder = getGettextBuilder()\n\t.detectLocale()\n\n// Decompress Translations to gettext format and add to gtBuilder\nTRANSLATIONS.forEach((lang) => {\n\tconst translations = {}\n\n\tfor (const key in lang.translations) {\n\t\t// Plural\n\t\tif (lang.translations[key].pluralId) {\n\t\t\ttranslations[key] = {\n\t\t\t\tmsgid: key,\n\t\t\t\tmsgid_plural: lang.translations[key].pluralId,\n\t\t\t\tmsgstr: lang.translations[key].msgstr,\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Singular\n\t\ttranslations[key] = {\n\t\t\tmsgid: key,\n\t\t\tmsgstr: [\n\t\t\t\tlang.translations[key],\n\t\t\t],\n\t\t}\n\t}\n\n\tgtBuilder.addTranslation(lang.locale, {\n\t\ttranslations: {\n\t\t\t'': translations,\n\t\t},\n\t})\n})\n\nconst gt = gtBuilder.build()\n\nconst n = gt.ngettext.bind(gt)\nconst t = gt.gettext.bind(gt)\n\nexport { t, n }\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n```vue\n<template>\n\t<div>\n\t\t<button @click=\"showModal\">Show Modal</button>\n\t\t<modal v-if=\"modal\" @close=\"closeModal\">\n\t\t\t<div class=\"modal__content\">Hello world</div>\n\t\t</modal>\n\t</div>\n</template>\n<style scoped>\n\t.modal__content {\n\t\twidth: 50vw;\n\t\tmargin: 10vw 0;\n\t\ttext-align: center;\n\t}\n\n</style>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tmodal: false\n\t\t}\n\t},\n\tmethods: {\n\t\tshowModal() {\n\t\t\tthis.modal = true\n\t\t},\n\t\tcloseModal() {\n\t\t\tthis.modal = false\n\t\t}\n\t}\n}\n</script>\n```\n\n</docs>\n<template>\n\t<transition name=\"fade\">\n\t\t<div ref=\"mask\"\n\t\t\tclass=\"modal-mask\"\n\t\t\t:class=\"{ 'modal-mask--dark': dark }\"\n\t\t\t:style=\"cssVariables\"\n\t\t\t@click=\"handleMouseMove\"\n\t\t\t@mousemove=\"handleMouseMove\"\n\t\t\t@touchmove=\"handleMouseMove\">\n\t\t\t<!-- Header -->\n\t\t\t<transition name=\"fade-visibility\">\n\t\t\t\t<div v-show=\"!clearView\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\tinvisible: clearView\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"modal-header\">\n\t\t\t\t\t<div v-if=\"title.trim() !== ''\" class=\"modal-title\">\n\t\t\t\t\t\t{{ title }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"icons-menu\">\n\t\t\t\t\t\t<!-- Play-pause toggle -->\n\t\t\t\t\t\t<button v-if=\"hasNext && enableSlideshow\"\n\t\t\t\t\t\t\tv-tooltip.auto=\"playPauseTitle\"\n\t\t\t\t\t\t\t:class=\"{ 'play-pause-icons--paused': slideshowPaused }\"\n\t\t\t\t\t\t\tclass=\"play-pause-icons\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t@click=\"togglePlayPause\">\n\t\t\t\t\t\t\t<!-- Play/pause icons -->\n\t\t\t\t\t\t\t<Play v-if=\"!playing\"\n\t\t\t\t\t\t\t\t:size=\"iconSize\"\n\t\t\t\t\t\t\t\tclass=\"play-pause-icons__play\"\n\t\t\t\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t\t\t\tdecorative />\n\t\t\t\t\t\t\t<Pause v-else\n\t\t\t\t\t\t\t\t:size=\"iconSize\"\n\t\t\t\t\t\t\t\tclass=\"play-pause-icons__pause\"\n\t\t\t\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t\t\t\tdecorative />\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">\n\t\t\t\t\t\t\t\t{{ playPauseTitle }}\n\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t<!-- Progress circle, css animated -->\n\t\t\t\t\t\t\t<svg v-if=\"playing\"\n\t\t\t\t\t\t\t\tclass=\"progress-ring\"\n\t\t\t\t\t\t\t\theight=\"50\"\n\t\t\t\t\t\t\t\twidth=\"50\">\n\t\t\t\t\t\t\t\t<circle class=\"progress-ring__circle\"\n\t\t\t\t\t\t\t\t\tstroke=\"white\"\n\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\tfill=\"transparent\"\n\t\t\t\t\t\t\t\t\tr=\"15\"\n\t\t\t\t\t\t\t\t\tcx=\"25\"\n\t\t\t\t\t\t\t\t\tcy=\"25\" />\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t<!-- Actions menu -->\n\t\t\t\t\t\t<Actions class=\"header-actions\">\n\t\t\t\t\t\t\t<!-- @slot List of actions to show -->\n\t\t\t\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t\t\t</Actions>\n\n\t\t\t\t\t\t<!-- Close modal -->\n\t\t\t\t\t\t<Actions v-if=\"canClose\" class=\"header-close\">\n\t\t\t\t\t\t\t<ActionButton @click=\"close\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<Close :size=\"iconSize\" title=\"\" decorative />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t{{ t('Close') }}\n\t\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t\t</Actions>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\n\t\t\t<!-- Content wrapper -->\n\t\t\t<transition :name=\"modalTransitionName\">\n\t\t\t\t<div\n\t\t\t\t\tv-show=\"showModal\"\n\t\t\t\t\t:class=\"[\n\t\t\t\t\t\t`modal-wrapper--${size}`,\n\t\t\t\t\t\tspreadNavigation ? 'modal-wrapper--spread-navigation' : ''\n\t\t\t\t\t]\"\n\t\t\t\t\tclass=\"modal-wrapper\"\n\t\t\t\t\t@mousedown.self=\"close\">\n\t\t\t\t\t<!-- Navigation button -->\n\t\t\t\t\t<transition name=\"fade-visibility\">\n\t\t\t\t\t\t<a v-show=\"hasPrevious && !clearView\"\n\t\t\t\t\t\t\tclass=\"prev\"\n\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\tinvisible: clearView || !hasPrevious\n\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t@click.prevent.stop=\"previous\">\n\t\t\t\t\t\t\t<span class=\"icon-previous\">\n\t\t\t\t\t\t\t\t<ChevronLeft :size=\"40\" title=\"\" decorative />\n\t\t\t\t\t\t\t\t<span class=\"hidden-visually\">\n\t\t\t\t\t\t\t\t\t{{ t('Previous') }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</transition>\n\n\t\t\t\t\t<!-- Content -->\n\t\t\t\t\t<div class=\"modal-container\">\n\t\t\t\t\t\t<!-- @slot Modal content to render -->\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<!-- Navigation button -->\n\t\t\t\t\t<transition name=\"fade-visibility\">\n\t\t\t\t\t\t<a v-show=\"hasNext && !clearView\"\n\t\t\t\t\t\t\tclass=\"next\"\n\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\tinvisible: clearView || !hasNext\n\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t@click.prevent.stop=\"next\">\n\t\t\t\t\t\t\t<span class=\"icon-next\">\n\t\t\t\t\t\t\t\t<ChevronRight :size=\"40\" title=\"\" decorative />\n\t\t\t\t\t\t\t\t<span class=\"hidden-visually\">\n\t\t\t\t\t\t\t\t\t{{ t('Next') }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\t</transition>\n</template>\n\n<script>\nimport Hammer from 'hammerjs'\nimport ChevronLeft from 'vue-material-design-icons/ChevronLeft'\nimport ChevronRight from 'vue-material-design-icons/ChevronRight'\nimport Close from 'vue-material-design-icons/Close'\nimport Pause from 'vue-material-design-icons/Pause'\nimport Play from 'vue-material-design-icons/Play'\n\nimport Actions from '../Actions'\nimport ActionButton from '../ActionButton'\nimport l10n from '../../mixins/l10n'\nimport { t } from '../../l10n'\nimport Tooltip from '../../directives/Tooltip'\nimport Timer from '../../utils/Timer'\n\nexport default {\n\tname: 'Modal',\n\n\tcomponents: {\n\t\tActionButton,\n\t\tActions,\n\t\tChevronLeft,\n\t\tChevronRight,\n\t\tClose,\n\t\tPause,\n\t\tPlay,\n\t},\n\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\n\tmixins: [l10n],\n\n\tprops: {\n\t\t/**\n\t\t * Title to be shown with the modal\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Declare if a previous slide is available\n\t\t */\n\t\thasPrevious: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declare if a next slide is available\n\t\t */\n\t\thasNext: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declare if hiding the modal should be animated\n\t\t */\n\t\toutTransition: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declare if the slideshow functionality should be enabled\n\t\t */\n\t\tenableSlideshow: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tclearViewDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5000,\n\t\t},\n\t\t/**\n\t\t * Declare the slide interval\n\t\t */\n\t\tslideshowDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 3000,\n\t\t},\n\t\t/**\n\t\t * Allow to pause an ongoing slideshow\n\t\t */\n\t\tslideshowPaused: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Enable swipe between slides\n\t\t */\n\t\tenableSwipe: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tspreadNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tsize: {\n\t\t\ttype: String,\n\t\t\tdefault: 'normal',\n\t\t\tvalidator: size => {\n\t\t\t\treturn ['normal', 'large', 'full'].indexOf(size) !== -1\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Declare if the modal can be closed\n\t\t */\n\t\tcanClose: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/** Makes the modal backdrop black if true */\n\t\tdark: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the modal container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tmc: null,\n\t\t\tshowModal: false,\n\t\t\tclearView: false,\n\t\t\tclearViewTimeout: null,\n\t\t\tplaying: false,\n\t\t\tslideshowTimeout: null,\n\t\t\ticonSize: 24,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tmodalTransitionName() {\n\t\t\treturn `modal-${this.outTransition ? 'out' : 'in'}`\n\t\t},\n\t\tplayPauseTitle() {\n\t\t\treturn this.playing ? t('Pause slideshow') : t('Start slideshow')\n\t\t},\n\t\tcssVariables() {\n\t\t\treturn {\n\t\t\t\t'--slideshow-duration': this.slideshowDelay + 'ms',\n\t\t\t\t'--icon-size': this.iconSize + 'px',\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\t/**\n\t\t * Handle play/pause of an ongoing slideshow\n\t\t * @param {boolean} paused is the player paused\n\t\t */\n\t\tslideshowPaused(paused) {\n\t\t\tif (this.slideshowTimeout) {\n\t\t\t\tif (paused) {\n\t\t\t\t\tthis.slideshowTimeout.pause()\n\t\t\t\t} else {\n\t\t\t\t\tthis.slideshowTimeout.start()\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\twindow.addEventListener('keydown', this.handleKeydown)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('keydown', this.handleKeydown)\n\t\tthis.mc.off('swipeleft swiperight')\n\t\tthis.mc.destroy()\n\t},\n\tmounted() {\n\t\tthis.showModal = true\n\n\t\t// init clear view\n\t\tthis.handleMouseMove()\n\n\t\tthis.mc = new Hammer(this.$refs.mask)\n\t\tthis.mc.on('swipeleft swiperight', e => {\n\t\t\tthis.handleSwipe(e)\n\t\t})\n\n\t\tif (this.container === 'body') {\n\t\t\t// force mount the component to body\n\t\t\tdocument.body.insertBefore(this.$el, document.body.lastChild)\n\t\t} else {\n\t\t\tconst container = document.querySelector(this.container)\n\t\t\tcontainer.appendChild(this.$el)\n\t\t}\n\n\t},\n\tdestroyed() {\n\t\tthis.$el.remove()\n\t},\n\n\tmethods: {\n\t\t// Events emitters\n\t\tprevious(event) {\n\t\t\t// do not send the event if nothing is available\n\t\t\tif (this.hasPrevious) {\n\t\t\t\t// if data is set, then it's a user mouse event\n\t\t\t\t// and not the slideshow handler, therefore\n\t\t\t\t// we reset the timer\n\t\t\t\tif (event) {\n\t\t\t\t\tthis.resetSlideshow()\n\t\t\t\t}\n\t\t\t\tthis.$emit('previous', event)\n\t\t\t}\n\t\t},\n\t\tnext(event) {\n\t\t\t// do not send the event if nothing is available\n\t\t\tif (this.hasNext) {\n\t\t\t\t// if data is set, then it's a mouse event\n\t\t\t\t// and not the slideshow handler, therefore\n\t\t\t\t// we reset the timer\n\t\t\t\tif (event) {\n\t\t\t\t\tthis.resetSlideshow()\n\t\t\t\t}\n\t\t\t\tthis.$emit('next', event)\n\t\t\t}\n\t\t},\n\t\tclose(data) {\n\t\t\t// do not fire event if forbidden\n\t\t\tif (this.canClose) {\n\t\t\t\tthis.showModal = false\n\n\t\t\t\t// delay closing for animation\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t/**\n\t\t\t\t\t * Emitted when the closing animation is finished\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('close', data)\n\t\t\t\t}, 300)\n\t\t\t}\n\t\t},\n\n\t\t// Key Handlers\n\t\thandleKeydown(e) {\n\t\t\tswitch (e.keyCode) {\n\t\t\tcase 37: // left arrow\n\t\t\t\tthis.previous(e)\n\t\t\t\tbreak\n\t\t\tcase 13: // enter key\n\t\t\tcase 39: // rigth arrow\n\t\t\t\tthis.next(e)\n\t\t\t\tbreak\n\t\t\tcase 27: // escape key\n\t\t\t\tthis.close(e)\n\t\t\t\tbreak\n\t\t\t}\n\t\t},\n\t\thandleSwipe(e) {\n\t\t\tif (this.enableSwipe) {\n\t\t\t\tif (e.type === 'swipeleft') {\n\t\t\t\t\t// swiping to left to go to the next item\n\t\t\t\t\tthis.next(e)\n\t\t\t\t} else if (e.type === 'swiperight') {\n\t\t\t\t\t// swiping to right to go back to the previous item\n\t\t\t\t\tthis.previous(e)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thandleMouseMove() {\n\t\t\tif (this.clearViewDelay > 0) {\n\t\t\t\tthis.clearView = false\n\t\t\t\tclearTimeout(this.clearViewTimeout)\n\t\t\t\tthis.clearViewTimeout = setTimeout(() => {\n\t\t\t\t\tthis.clearView = true\n\t\t\t\t}, this.clearViewDelay)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the slideshow state\n\t\t */\n\t\ttogglePlayPause() {\n\t\t\tthis.playing = !this.playing\n\t\t\tif (this.playing) {\n\t\t\t\tthis.handleSlideshow()\n\t\t\t} else {\n\t\t\t\tthis.clearSlideshowTimeout()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the slideshow timer and keep going if it was on\n\t\t */\n\t\tresetSlideshow() {\n\t\t\tthis.playing = !this.playing\n\t\t\tthis.clearSlideshowTimeout()\n\t\t\tthis.$nextTick(function() {\n\t\t\t\tthis.togglePlayPause()\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Handle the slideshow timer and next event\n\t\t */\n\t\thandleSlideshow() {\n\t\t\tthis.playing = true\n\t\t\tif (this.hasNext) {\n\t\t\t\tthis.slideshowTimeout = new Timer(() => {\n\t\t\t\t\tthis.next()\n\t\t\t\t\tthis.handleSlideshow()\n\t\t\t\t}, this.slideshowDelay)\n\t\t\t} else {\n\t\t\t\tthis.playing = false\n\t\t\t\tthis.clearSlideshowTimeout()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Clear slideshowTimeout if ongoing\n\t\t */\n\t\tclearSlideshowTimeout() {\n\t\t\tif (this.slideshowTimeout) {\n\t\t\t\tthis.slideshowTimeout.clear()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$header-size: 50px;\n\n.modal-mask {\n\tposition: fixed;\n\tz-index: 9998;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, .5);\n\t&--dark {\n\t\tbackground-color: rgba(0, 0, 0, .92);\n\t}\n}\n\n.modal-header {\n\tposition: absolute;\n\tz-index: 10001;\n\ttop: 0;\n\tright: 0;\n\tleft: 0;\n\t// prevent vue show to use display:none and reseting\n\t// the circle animation loop\n\tdisplay: flex !important;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\theight: $header-size;\n\ttransition: opacity 250ms,\n\t\tvisibility 250ms;\n\n\t// replace display by visibility\n\t&.invisible[style*='display:none'],\n\t&.invisible[style*='display: none'] {\n\t\tvisibility: hidden;\n\t}\n\n\t.modal-title {\n\t\toverflow-x: hidden;\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\t\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\n\t\ttransition: padding ease 100ms;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: #fff;\n\t\tfont-size: $icon-margin;\n\t}\n\n\t// On wider screens the title can be centered\n\t@media only screen and (min-width: $breakpoint-mobile/2) {\n\t\t.modal-title {\n\t\t\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t.icons-menu {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\n\t\t.header-close {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbox-sizing: border-box;\n\t\t\tmargin: ($header-size - $clickable-area) / 2;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t.play-pause-icons {\n\t\t\tposition: relative;\n\t\t\twidth: $header-size;\n\t\t\theight: $header-size;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcursor: pointer;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\t.play-pause-icons__play,\n\t\t\t\t.play-pause-icons__pause {\n\t\t\t\t\topacity: $opacity_full;\n\t\t\t\t\tborder-radius: $clickable-area / 2;\n\t\t\t\t\tbackground-color: $icon-focus-bg;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__play,\n\t\t\t&__pause {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmargin: ($header-size - $clickable-area) / 2;\n\t\t\t\tcursor: pointer;\n\t\t\t\topacity: $opacity_normal;\n\t\t\t}\n\t\t}\n\n\t\t.header-actions {\n\t\t\tmargin: ($header-size - $clickable-area) / 2;\n\t\t\tcolor: white;\n\t\t}\n\n\t\t.action-item--single {\n\t\t\tbox-sizing: border-box;\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\tcursor: pointer;\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: 22px;\n\t\t}\n\n\t\t::v-deep button {\n\t\t\t// force white instead of default main text\n\t\t\tcolor: #fff;\n\t\t}\n\n\t\t// Force the Actions menu icon to be the same size as other icons\n\t\t&::v-deep .action-item__menutoggle {\n\t\t\tpadding: 0;\n\t\t\tspan, svg {\n\t\t\t\twidth: var(--icon-size);\n\t\t\t\theight: var(--icon-size);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.modal-wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\n\t/* Navigation buttons */\n\t.prev,\n\t.next {\n\t\tz-index: 10000;\n\t\t// ignore display: none\n\t\tdisplay: flex !important;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 15%;\n\t\tmin-width: 60px;\n\t\theight: 100%;\n\t\ttransition: opacity 250ms,\n\t\t\tvisibility 250ms;\n\n\t\t// we want to keep the elements on page\n\t\t// even if hidden to avoid having a unbalanced\n\t\t// centered content\n\t\t// replace display by visibility\n\t\t&.invisible[style*='display:none'],\n\t\t&.invisible[style*='display: none'] {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// buttons/icons\n\t.icon-next,\n\t.icon-previous {\n\t\tbox-sizing: border-box;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\tcolor: white;\n\t\tbackground-image: none;\n\t\tdisplay: flex;\n\t}\n\n\t/* Content */\n\t.modal-container {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\ttransition: transform 300ms ease;\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\t\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\n\t}\n\t&:not(&--large):not(&--full) .modal-container {\n\t\tmax-width: 900px;\n\t\tmax-height: 80%;\n\t}\n\n\t// Sizing\n\t&--full {\n\t\t.modal-container {\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\t&--full,\n\t&--spread-navigation {\n\t\t.prev,\n\t\t.next {\n\t\t\tposition: absolute;\n\t\t\twidth: 10%;\n\t\t}\n\t\t.prev {\n\t\t\tleft: 0;\n\t\t}\n\t\t.next {\n\t\t\tright: 0;\n\t\t}\n\t}\n\t&--large {\n\t\t.modal-container {\n\t\t\tmax-width: 85%;\n\t\t\tmax-height: 90%;\n\t\t}\n\t\t.prev,\n\t\t.next {\n\t\t\twidth: 10%;\n\t\t\tmin-width: $clickable-area;\n\t\t}\n\t}\n}\n\n/* TRANSITIONS */\n.fade-enter-active,\n.fade-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-visibility-enter,\n.fade-visibility-leave-to {\n\tvisibility: hidden;\n\topacity: 0;\n}\n\n.modal-in-enter-active,\n.modal-in-leave-active,\n.modal-out-enter-active,\n.modal-out-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.modal-in-enter,\n.modal-in-leave-to,\n.modal-out-enter,\n.modal-out-leave-to {\n\topacity: 0;\n}\n\n.modal-in-enter .modal-container,\n.modal-in-leave-to .modal-container {\n\ttransform: scale(.9);\n}\n\n.modal-out-enter .modal-container,\n.modal-out-leave-to .modal-container {\n\ttransform: scale(1.1);\n}\n\n// animated circle\n$radius: 15;\n$pi: 3.14159265358979;\n\n.modal-mask .play-pause-icons {\n\t.progress-ring {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransform: rotate(-90deg);\n\t\t.progress-ring__circle {\n\t\t\ttransition: 100ms stroke-dashoffset;\n\t\t\ttransform-origin: 50% 50%; // axis compensation\n\t\t\tanimation: progressring linear var(--slideshow-duration) infinite;\n\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t\t\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\n\t\t}\n\t}\n\t&--paused {\n\t\t.icon-pause {\n\t\t\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\n\t\t}\n\t\t.progress-ring__circle {\n\t\t\tanimation-play-state: paused !important;\n\t\t}\n\t}\n}\n\n// keyframes get scoped too and break the animation name, we need them unscoped\n@keyframes progressring {\n\tfrom {\n\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t}\n\tto {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes breath {\n\t0% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n\n</style>\n","module.exports = require(\"v-tooltip\");","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionButton.vue?vue&type=style&index=0&id=6c7cb9ab&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=script&lang=js&\"","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-e6fc7b00]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-e6fc7b00]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,0.5)}.modal-mask--dark[data-v-e6fc7b00]{background-color:rgba(0,0,0,0.92)}.modal-header[data-v-e6fc7b00]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;transition:opacity 250ms, visibility 250ms}.modal-header.invisible[style*='display:none'][data-v-e6fc7b00],.modal-header.invisible[style*='display: none'][data-v-e6fc7b00]{visibility:hidden}.modal-header .modal-title[data-v-e6fc7b00]{overflow-x:hidden;box-sizing:border-box;width:100%;padding:0 132px 0 12px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px}@media only screen and (min-width: 512px){.modal-header .modal-title[data-v-e6fc7b00]{padding-left:132px;text-align:center}}.modal-header .icons-menu[data-v-e6fc7b00]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-e6fc7b00]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:3px;padding:0}.modal-header .icons-menu .play-pause-icons[data-v-e6fc7b00]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-e6fc7b00],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-e6fc7b00],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-e6fc7b00],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-e6fc7b00]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.modal-header .icons-menu .play-pause-icons__play[data-v-e6fc7b00],.modal-header .icons-menu .play-pause-icons__pause[data-v-e6fc7b00]{box-sizing:border-box;width:44px;height:44px;margin:3px;cursor:pointer;opacity:.7}.modal-header .icons-menu .header-actions[data-v-e6fc7b00]{margin:3px;color:white}.modal-header .icons-menu .action-item--single[data-v-e6fc7b00]{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-e6fc7b00] button{color:#fff}.modal-header .icons-menu[data-v-e6fc7b00] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-e6fc7b00] .action-item__menutoggle span,.modal-header .icons-menu[data-v-e6fc7b00] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-e6fc7b00]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-e6fc7b00],.modal-wrapper .next[data-v-e6fc7b00]{z-index:10000;display:flex !important;align-items:center;justify-content:center;width:15%;min-width:60px;height:100%;transition:opacity 250ms, visibility 250ms}.modal-wrapper .prev.invisible[style*='display:none'][data-v-e6fc7b00],.modal-wrapper .prev.invisible[style*='display: none'][data-v-e6fc7b00],.modal-wrapper .next.invisible[style*='display:none'][data-v-e6fc7b00],.modal-wrapper .next.invisible[style*='display: none'][data-v-e6fc7b00]{visibility:hidden}.modal-wrapper .icon-next[data-v-e6fc7b00],.modal-wrapper .icon-previous[data-v-e6fc7b00]{box-sizing:border-box;width:44px;height:44px;color:white;background-image:none;display:flex}.modal-wrapper .modal-container[data-v-e6fc7b00]{display:block;overflow:hidden;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 0 40px rgba(0,0,0,0.2)}.modal-wrapper:not(.modal-wrapper--large):not(.modal-wrapper--full) .modal-container[data-v-e6fc7b00]{max-width:900px;max-height:80%}.modal-wrapper--full .modal-container[data-v-e6fc7b00]{max-width:100%;max-height:100%;border-radius:0}.modal-wrapper--full .prev[data-v-e6fc7b00],.modal-wrapper--full .next[data-v-e6fc7b00],.modal-wrapper--spread-navigation .prev[data-v-e6fc7b00],.modal-wrapper--spread-navigation .next[data-v-e6fc7b00]{position:absolute;width:10%}.modal-wrapper--full .prev[data-v-e6fc7b00],.modal-wrapper--spread-navigation .prev[data-v-e6fc7b00]{left:0}.modal-wrapper--full .next[data-v-e6fc7b00],.modal-wrapper--spread-navigation .next[data-v-e6fc7b00]{right:0}.modal-wrapper--large .modal-container[data-v-e6fc7b00]{max-width:85%;max-height:90%}.modal-wrapper--large .prev[data-v-e6fc7b00],.modal-wrapper--large .next[data-v-e6fc7b00]{width:10%;min-width:44px}.fade-enter-active[data-v-e6fc7b00],.fade-leave-active[data-v-e6fc7b00]{transition:opacity 250ms}.fade-enter[data-v-e6fc7b00],.fade-leave-to[data-v-e6fc7b00]{opacity:0}.fade-visibility-enter[data-v-e6fc7b00],.fade-visibility-leave-to[data-v-e6fc7b00]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-e6fc7b00],.modal-in-leave-active[data-v-e6fc7b00],.modal-out-enter-active[data-v-e6fc7b00],.modal-out-leave-active[data-v-e6fc7b00]{transition:opacity 250ms}.modal-in-enter[data-v-e6fc7b00],.modal-in-leave-to[data-v-e6fc7b00],.modal-out-enter[data-v-e6fc7b00],.modal-out-leave-to[data-v-e6fc7b00]{opacity:0}.modal-in-enter .modal-container[data-v-e6fc7b00],.modal-in-leave-to .modal-container[data-v-e6fc7b00]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-e6fc7b00],.modal-out-leave-to .modal-container[data-v-e6fc7b00]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-e6fc7b00]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-e6fc7b00]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-data-v-e6fc7b00 linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.24778;stroke-dasharray:94.24778}.modal-mask .play-pause-icons--paused .icon-pause[data-v-e6fc7b00]{animation:breath-data-v-e6fc7b00 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-e6fc7b00]{animation-play-state:paused !important}@keyframes progressring-data-v-e6fc7b00{from{stroke-dashoffset:94.24778}to{stroke-dashoffset:0}}@keyframes breath-data-v-e6fc7b00{0%{opacity:1}50%{opacity:0}100%{opacity:1}}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./Modal.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCygBxB,6BACC,cAAe,CACf,YAAa,CACb,KAAM,CACN,MAAO,CACP,aAAc,CACd,UAAW,CACX,WAAY,CACZ,gCAAmC,CACnC,mCACC,iCAAoC,CACpC,+BAID,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,MAAO,CAGP,uBAAwB,CACxB,kBAAmB,CACnB,sBAAuB,CACvB,UAAW,CACX,WA5BiB,CA6BjB,0CACiB,CAdlB,iIAmBE,iBAAkB,CAnBpB,4CAuBE,iBAAkB,CAClB,qBAAsB,CACtB,UAAW,CACX,sBAAwC,CACxC,6BAA8B,CAC9B,kBAAmB,CACnB,sBAAuB,CACvB,UAAW,CACX,cC7hB8C,CD8hB9C,0CAhCF,4CAqCG,kBAAc,CACd,iBAAkB,CAClB,CAvCH,2CA2CE,iBAAkB,CAClB,OAAQ,CACR,YAAa,CACb,kBAAmB,CACnB,wBAAyB,CA/C3B,yDAkDG,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,qBAAsB,CACtB,UAA4C,CAC5C,SAAU,CAvDb,6DA2DG,iBAAkB,CAClB,UA5Ee,CA6Ef,WA7Ee,CA8Ef,QAAS,CACT,SAAU,CACV,cAAe,CACf,WAAY,CACZ,4BAA6B,CAlEhC,8WAuEK,SC1jBW,CD2jBX,kBAAkC,CAClC,uCCpkBmC,CD2fxC,uIA8EI,qBAAsB,CACtB,UCrlBiB,CDslBjB,WCtlBiB,CDulBjB,UAA4C,CAC5C,cAAe,CACf,UCvkBe,CDofnB,2DAwFG,UAA4C,CAC5C,WAAY,CAzFf,gEA6FG,qBAAsB,CACtB,UCpmBkB,CDqmBlB,WCrmBkB,CDsmBlB,cAAe,CACf,0BAA2B,CAC3B,oBAAqB,CAlGxB,mDAuGG,UAAW,CAvGd,oEA4GG,SAAU,CA5Gb,iJA8GI,sBAAuB,CACvB,uBAAwB,CACxB,gCAMH,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,qBAAsB,CACtB,UAAW,CACX,WAAY,CANb,4EAWE,aAAc,CAEd,uBAAwB,CACxB,kBAAmB,CACnB,sBAAuB,CACvB,SAAU,CACV,cAAe,CACf,WAAY,CACZ,0CACiB,CApBnB,8RA4BG,iBAAkB,CA5BrB,0FAmCE,qBAAsB,CACtB,UC/pBmB,CDgqBnB,WChqBmB,CDiqBnB,WAAY,CACZ,qBAAsB,CACtB,YAAa,CAxCf,iDA6CE,aAAc,CACd,eAAgB,CAChB,SAAU,CACV,+BAAgC,CAChC,wCAAyC,CACzC,6CAA8C,CAC9C,mCAAsC,CAnDxC,sGAsDE,eAAgB,CAChB,cAAe,CACf,uDAKC,cAAe,CACf,eAAgB,CAChB,eAAgB,CAChB,0MAMA,iBAAkB,CAClB,SAAU,CALX,qGAQC,MAAO,CARR,qGAWC,OAAQ,CACR,wDAIA,aAAc,CACd,cAAe,CAHhB,0FAOC,SAAU,CACV,cCntBkB,CDotBlB,wEAOF,wBAAyB,CACzB,6DAIA,SAAU,CACV,mFAIA,iBAAkB,CAClB,SAAU,CACV,kKAMA,wBAAyB,CACzB,4IAMA,SAAU,CACV,uGAIA,oBAAoB,CACpB,yGAIA,oBAAqB,CACrB,8DAQC,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,wBAAyB,CAL3B,qFAOG,kCAAmC,CACnC,wBAAyB,CACzB,gFAAiE,CAEjE,oBAAqB,CACrB,0BAfQ,CAgBR,yBAhBQ,CAGX,mEAkBG,yEAAwD,CAlB3D,8EAqBG,sCAAuC,CACvC,wCAMF,KACC,0BAhCS,CAkCV,GACC,mBAAoB,CAAA,CAItB,kCACC,GACC,SAAU,CAEX,IACC,SAAU,CAEX,KACC,SAAU,CAAA\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"b0001f9\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$header-size: 50px;\\n\\n.modal-mask {\\n\\tposition: fixed;\\n\\tz-index: 9998;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbackground-color: rgba(0, 0, 0, .5);\\n\\t&--dark {\\n\\t\\tbackground-color: rgba(0, 0, 0, .92);\\n\\t}\\n}\\n\\n.modal-header {\\n\\tposition: absolute;\\n\\tz-index: 10001;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tleft: 0;\\n\\t// prevent vue show to use display:none and reseting\\n\\t// the circle animation loop\\n\\tdisplay: flex !important;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\theight: $header-size;\\n\\ttransition: opacity 250ms,\\n\\t\\tvisibility 250ms;\\n\\n\\t// replace display by visibility\\n\\t&.invisible[style*='display:none'],\\n\\t&.invisible[style*='display: none'] {\\n\\t\\tvisibility: hidden;\\n\\t}\\n\\n\\t.modal-title {\\n\\t\\toverflow-x: hidden;\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: 100%;\\n\\t\\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\\n\\t\\ttransition: padding ease 100ms;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: #fff;\\n\\t\\tfont-size: $icon-margin;\\n\\t}\\n\\n\\t// On wider screens the title can be centered\\n\\t@media only screen and (min-width: $breakpoint-mobile/2) {\\n\\t\\t.modal-title {\\n\\t\\t\\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n\\n\\t.icons-menu {\\n\\t\\tposition: absolute;\\n\\t\\tright: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: flex-end;\\n\\n\\t\\t.header-close {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tmargin: ($header-size - $clickable-area) / 2;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t.play-pause-icons {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\twidth: $header-size;\\n\\t\\t\\theight: $header-size;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\t.play-pause-icons__play,\\n\\t\\t\\t\\t.play-pause-icons__pause {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t\\tborder-radius: $clickable-area / 2;\\n\\t\\t\\t\\t\\tbackground-color: $icon-focus-bg;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&__play,\\n\\t\\t\\t&__pause {\\n\\t\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tmargin: ($header-size - $clickable-area) / 2;\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.header-actions {\\n\\t\\t\\tmargin: ($header-size - $clickable-area) / 2;\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t.action-item--single {\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-size: 22px;\\n\\t\\t}\\n\\n\\t\\t::v-deep button {\\n\\t\\t\\t// force white instead of default main text\\n\\t\\t\\tcolor: #fff;\\n\\t\\t}\\n\\n\\t\\t// Force the Actions menu icon to be the same size as other icons\\n\\t\\t&::v-deep .action-item__menutoggle {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tspan, svg {\\n\\t\\t\\t\\twidth: var(--icon-size);\\n\\t\\t\\t\\theight: var(--icon-size);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.modal-wrapper {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\n\\t/* Navigation buttons */\\n\\t.prev,\\n\\t.next {\\n\\t\\tz-index: 10000;\\n\\t\\t// ignore display: none\\n\\t\\tdisplay: flex !important;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 15%;\\n\\t\\tmin-width: 60px;\\n\\t\\theight: 100%;\\n\\t\\ttransition: opacity 250ms,\\n\\t\\t\\tvisibility 250ms;\\n\\n\\t\\t// we want to keep the elements on page\\n\\t\\t// even if hidden to avoid having a unbalanced\\n\\t\\t// centered content\\n\\t\\t// replace display by visibility\\n\\t\\t&.invisible[style*='display:none'],\\n\\t\\t&.invisible[style*='display: none'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t}\\n\\t}\\n\\n\\t// buttons/icons\\n\\t.icon-next,\\n\\t.icon-previous {\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tcolor: white;\\n\\t\\tbackground-image: none;\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t/* Content */\\n\\t.modal-container {\\n\\t\\tdisplay: block;\\n\\t\\toverflow: hidden;\\n\\t\\tpadding: 0;\\n\\t\\ttransition: transform 300ms ease;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\\n\\t}\\n\\t&:not(&--large):not(&--full) .modal-container {\\n\\t\\tmax-width: 900px;\\n\\t\\tmax-height: 80%;\\n\\t}\\n\\n\\t// Sizing\\n\\t&--full {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tmax-height: 100%;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n\\t&--full,\\n\\t&--spread-navigation {\\n\\t\\t.prev,\\n\\t\\t.next {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 10%;\\n\\t\\t}\\n\\t\\t.prev {\\n\\t\\t\\tleft: 0;\\n\\t\\t}\\n\\t\\t.next {\\n\\t\\t\\tright: 0;\\n\\t\\t}\\n\\t}\\n\\t&--large {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: 85%;\\n\\t\\t\\tmax-height: 90%;\\n\\t\\t}\\n\\t\\t.prev,\\n\\t\\t.next {\\n\\t\\t\\twidth: 10%;\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t}\\n\\t}\\n}\\n\\n/* TRANSITIONS */\\n.fade-enter-active,\\n.fade-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.fade-enter,\\n.fade-leave-to {\\n\\topacity: 0;\\n}\\n\\n.fade-visibility-enter,\\n.fade-visibility-leave-to {\\n\\tvisibility: hidden;\\n\\topacity: 0;\\n}\\n\\n.modal-in-enter-active,\\n.modal-in-leave-active,\\n.modal-out-enter-active,\\n.modal-out-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.modal-in-enter,\\n.modal-in-leave-to,\\n.modal-out-enter,\\n.modal-out-leave-to {\\n\\topacity: 0;\\n}\\n\\n.modal-in-enter .modal-container,\\n.modal-in-leave-to .modal-container {\\n\\ttransform: scale(.9);\\n}\\n\\n.modal-out-enter .modal-container,\\n.modal-out-leave-to .modal-container {\\n\\ttransform: scale(1.1);\\n}\\n\\n// animated circle\\n$radius: 15;\\n$pi: 3.14159265358979;\\n\\n.modal-mask .play-pause-icons {\\n\\t.progress-ring {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\ttransform: rotate(-90deg);\\n\\t\\t.progress-ring__circle {\\n\\t\\t\\ttransition: 100ms stroke-dashoffset;\\n\\t\\t\\ttransform-origin: 50% 50%; // axis compensation\\n\\t\\t\\tanimation: progressring linear var(--slideshow-duration) infinite;\\n\\n\\t\\t\\tstroke-linecap: round;\\n\\t\\t\\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\\n\\t\\t\\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\\n\\t\\t}\\n\\t}\\n\\t&--paused {\\n\\t\\t.icon-pause {\\n\\t\\t\\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\\n\\t\\t}\\n\\t\\t.progress-ring__circle {\\n\\t\\t\\tanimation-play-state: paused !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n// keyframes get scoped too and break the animation name, we need them unscoped\\n@keyframes progressring {\\n\\tfrom {\\n\\t\\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\\n\\t}\\n\\tto {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes breath {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t50% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","<!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@pm.me\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<!-- Accessibility guidelines:\nhttps://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-actions.html -->\n\n<docs>\n### Single action\n\n```\n<Actions>\n\t<ActionButton icon=\"icon-delete\" @click=\"alert('Delete')\">Delete</ActionButton>\n</Actions>\n```\n\n### Multiple actions\n\n```\n<Actions>\n\t<ActionButton icon=\"icon-edit\" @click=\"alert('Edit')\">Edit</ActionButton>\n\t<ActionButton icon=\"icon-delete\" @click=\"alert('Delete')\">Delete</ActionButton>\n\t<ActionLink icon=\"icon-external\" title=\"Link\" href=\"https://nextcloud.com\" />\n</Actions>\n```\n\n### Multiple actions with custom icon\n\n```\n<Actions default-icon=\"icon-edit\">\n\t<ActionButton icon=\"icon-edit\" @click=\"alert('Edit')\">Edit</ActionButton>\n\t<ActionButton icon=\"icon-delete\" @click=\"alert('Delete')\">Delete</ActionButton>\n\t<ActionLink icon=\"icon-external\" title=\"Link\" href=\"https://nextcloud.com\" />\n</Actions>\n```\n\n### With menu title\n\n```\n<Actions default-icon=\"icon-edit\" menu-title=\"Object management\">\n\t<ActionButton icon=\"icon-edit\">Rename</ActionButton>\n\t<ActionButton icon=\"icon-delete\">Delete</ActionButton>\n\t<ActionButton icon=\"icon-confirm\">Validate</ActionButton>\n\t<ActionButton icon=\"icon-download\">Download</ActionButton>\n</Actions>\n```\n\n### Various icons styles\n```\n<Actions :primary=\"true\">\n\t<ActionButton icon=\"icon-edit\">Edit</ActionButton>\n\t<ActionButton icon=\"icon-delete\">Delete</ActionButton>\n</Actions>\n```\n\n```\n<Actions default-icon=\"icon-add-white\" :primary=\"true\" menu-title=\"Object management\">\n\t<ActionButton icon=\"icon-edit\">Rename</ActionButton>\n\t<ActionButton icon=\"icon-delete\">Delete</ActionButton>\n\t<ActionButton icon=\"icon-confirm\">Validate</ActionButton>\n\t<ActionButton icon=\"icon-download\">Download</ActionButton>\n</Actions>\n```\n\n### Custom icon slot\nTo be used with `vue-material-design-icons` only. For icon classes use the `default-icon` slot.\nIt can be used with one or multiple actions.\n```\n<template>\n\t<div style=\"display: flex;align-items: center;\">\n\t\t<button @click=\"toggled = !toggled\">Toggle multiple action</button>\n\t\t<Actions>\n\t\t\t<DotsHorizontalCircleOutline\n\t\t\t\tslot=\"icon\"\n\t\t\t\t:size=\"24\"\n\t\t\t\tdecorative />\n\t\t\t<ActionButton>\n\t\t\t\t<MicrophoneOff\n\t\t\t\t\tslot=\"icon\"\n\t\t\t\t\t:size=\"24\"\n\t\t\t\t\tdecorative />\n\t\t\t\tMute\n\t\t\t</ActionButton>\n\t\t\t<ActionButton v-if=\"toggled\" icon=\"icon-delete\">Delete</ActionButton>\n\t\t</Actions>\n\t\t<Actions>\n\t\t</Actions>\n\t</div>\n</template>\n<script>\nimport DotsHorizontalCircleOutline from 'vue-material-design-icons/DotsHorizontalCircleOutline'\nimport MicrophoneOff from 'vue-material-design-icons/MicrophoneOff'\n\nexport default {\n\tcomponents: {\n\t\tDotsHorizontalCircleOutline,\n\t\tMicrophoneOff,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false\n\t\t}\n\t}\n}\n</script>\n```\n\n### Custom icon slot in child elements\n```\n<Actions :primary=\"true\">\n\t<ActionButton><template #icon><MagnifyIcon /></template>Search</ActionButton>\n\t<ActionButton icon=\"icon-delete\">Delete</ActionButton>\n</Actions>\n```\n\n</docs>\n<template>\n\t<!-- if only one action, check if we need to bind to click or not -->\n\t<element v-if=\"isValidSingleAction && !forceMenu\"\n\t\tv-tooltip.auto=\"firstAction.text\"\n\t\tv-bind=\"firstActionBinding\"\n\t\t:class=\"{\n\t\t\t[firstAction.icon]: firstAction.icon,\n\t\t\t[firstActionClass]: firstActionClass }\"\n\t\tclass=\"action-item action-item--single\"\n\t\trel=\"noreferrer noopener\"\n\t\t:disabled=\"disabled\"\n\t\t@focus=\"onFocus\"\n\t\t@blur=\"onBlur\"\n\t\t@[firstActionEventBinding]=\"execFirstAction\">\n\t\t<!-- Render the icon slot content of the first action -->\n\t\t<VNodes :vnodes=\"firstActionIconSlot\" />\n\n\t\t<!-- fake slot to gather main action -->\n\t\t<span :aria-hidden=\"true\" hidden>\n\t\t\t<!-- @slot All action elements passed into the default slot will be used -->\n\t\t\t<slot />\n\t\t</span>\n\t</element>\n\n\t<!-- more than one action -->\n\t<div v-else\n\t\tv-show=\"hasMultipleActions || forceMenu\"\n\t\t:class=\"{'action-item--open': opened}\"\n\t\tclass=\"action-item\">\n\t\t<!-- If more than one action, create a popovermenu -->\n\t\t<Popover\n\t\t\t:delay=\"0\"\n\t\t\t:handle-resize=\"true\"\n\t\t\t:open.sync=\"opened\"\n\t\t\t:placement=\"placement\"\n\t\t\t:boundaries-element=\"boundariesElement\"\n\t\t\t:container=\"container\"\n\t\t\t@show=\"openMenu\"\n\t\t\t@after-show=\"onOpen\"\n\t\t\t@hide=\"closeMenu\">\n\t\t\t<!-- Menu open/close trigger button -->\n\t\t\t<button slot=\"trigger\"\n\t\t\t\tref=\"menuButton\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\tclass=\"icon action-item__menutoggle\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t[defaultIcon]: !iconSlotIsPopulated,\n\t\t\t\t\t'action-item__menutoggle--with-title': menuTitle,\n\t\t\t\t\t'action-item__menutoggle--with-icon-slot': iconSlotIsPopulated,\n\t\t\t\t\t'action-item__menutoggle--default-icon': !iconSlotIsPopulated && defaultIcon === '',\n\t\t\t\t\t'action-item__menutoggle--primary': primary\n\t\t\t\t}\"\n\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t:aria-label=\"ariaLabel\"\n\t\t\t\t:aria-controls=\"randomId\"\n\t\t\t\t:aria-expanded=\"opened ? 'true' : 'false'\"\n\t\t\t\ttest-attr=\"1\"\n\t\t\t\ttype=\"button\"\n\t\t\t\t@focus=\"onFocus\"\n\t\t\t\t@blur=\"onBlur\">\n\t\t\t\t<slot v-if=\"iconSlotIsPopulated\" name=\"icon\" />\n\t\t\t\t<DotsHorizontal v-else-if=\"defaultIcon === ''\" :size=\"24\" decorative />\n\t\t\t\t{{ menuTitle }}\n\t\t\t</button>\n\n\t\t\t<!-- Menu content -->\n\t\t\t<div v-show=\"opened\"\n\t\t\t\tref=\"menu\"\n\t\t\t\t:class=\"{ open: opened }\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\t@keydown.up.exact=\"focusPreviousAction\"\n\t\t\t\t@keydown.down.exact=\"focusNextAction\"\n\t\t\t\t@keydown.tab.exact=\"focusNextAction\"\n\t\t\t\t@keydown.shift.tab.exact=\"focusPreviousAction\"\n\t\t\t\t@keydown.page-up.exact=\"focusFirstAction\"\n\t\t\t\t@keydown.page-down.exact=\"focusLastAction\"\n\t\t\t\t@keydown.esc.exact.prevent=\"closeMenu\"\n\t\t\t\t@mousemove=\"onMouseFocusAction\">\n\t\t\t\t<!-- menu content -->\n\t\t\t\t<ul :id=\"randomId\" tabindex=\"-1\">\n\t\t\t\t\t<template v-if=\"opened\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</template>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</Popover>\n\t</div>\n</template>\n<script>\nimport DotsHorizontal from 'vue-material-design-icons/DotsHorizontal'\n\nimport Tooltip from '../../directives/Tooltip'\nimport GenRandomId from '../../utils/GenRandomId'\nimport ValidateSlot from '../../utils/ValidateSlot'\nimport { t } from '../../l10n'\nimport Popover from '../Popover'\n\n// This is the list of ALL the ALLOWED components\n// in the default SLOT\nconst allowedChildren = [\n\t'ActionButton',\n\t'ActionCheckbox',\n\t'ActionInput',\n\t'ActionLink',\n\t'ActionRadio',\n\t'ActionRouter',\n\t'ActionSeparator',\n\t'ActionText',\n\t'ActionTextEditable',\n\t'ActionCaption',\n]\n\nconst focusableSelector = '.focusable'\n\n/**\n * The Actions component can be used to display one ore more actions.\n * If only a single action is provided, it will be rendered as an inline icon.\n * For more, a menu indicator will be shown and a popovermenu containing the\n * actions will be opened on click.\n *\n * @since 0.10.0\n */\nexport default {\n\tname: 'Actions',\n\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\n\tcomponents: {\n\t\tDotsHorizontal,\n\t\tPopover,\n\n\t\t// Component to render the first action icon slot content (vnodes)\n\t\tVNodes: {\n\t\t\tfunctional: true,\n\t\t\trender: (h, context) => context.props.vnodes,\n\t\t},\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Specify the open state of the popover menu\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the actions to display in a three dot menu\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Specify the menu title\n\t\t */\n\t\tmenuTitle: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Apply primary styling for this menu\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Icon to show for the toggle menu button\n\t\t * when more than one action is inside the actions component.\n\t\t * Only replace the default three-dot icon if really necessary.\n\t\t */\n\t\tdefaultIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Aria label for the actions menu\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Actions'),\n\t\t},\n\n\t\t/**\n\t\t * Wanted direction of the menu\n\t\t */\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: 'bottom',\n\t\t},\n\n\t\t/**\n\t\t * DOM element for the actions' popover boundaries\n\t\t */\n\t\tboundariesElement: {\n\t\t\ttype: Element,\n\t\t\tdefault: () => document.querySelector('body'),\n\t\t},\n\n\t\t/**\n\t\t * Selector for the actions' popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Disabled state of the main button (single action or menu toggle)\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tactions: [],\n\t\t\topened: this.open,\n\t\t\tfocusIndex: 0,\n\t\t\trandomId: 'menu-' + GenRandomId(),\n\t\t\t// Making children reactive!\n\t\t\t// By binding this here, vuejs will track the object content\n\t\t\t// Needed for firstAction reactivity !!!\n\t\t\tchildren: this.$children,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is there more than one action?\n\t\t * @returns {boolean}\n\t\t */\n\t\thasMultipleActions() {\n\t\t\treturn this.actions.length > 1\n\t\t},\n\t\t/**\n\t\t * Is there any first action ?\n\t\t * And is it allowed as a standalone element ?\n\t\t * @returns {boolean}\n\t\t */\n\t\tisValidSingleAction() {\n\t\t\treturn this.actions.length === 1\n\t\t\t\t&& this.firstActionElement !== null\n\t\t},\n\t\t/**\n\t\t * First action vnode\n\t\t * @returns {Object} return the first action vue vnode\n\t\t */\n\t\tfirstActionVNode() {\n\t\t\treturn this.actions[0]\n\t\t},\n\t\t/**\n\t\t * Reactive binding to the first children\n\t\t * Since we're here, it means we already passed all the proper checks\n\t\t * we can assume the first action is the first children too\n\t\t * @returns {Object} first action vue children object\n\t\t */\n\t\tfirstAction() {\n\t\t\treturn this.children[0]\n\t\t\t\t? this.children[0]\n\t\t\t\t: {}\n\t\t},\n\n\t\t/**\n\t\t * Binding of the first action to the template\n\t\t * @returns {Object} vue template v-bind shortcut\n\t\t */\n\t\tfirstActionBinding() {\n\t\t\tif (this.firstActionVNode && this.firstActionVNode.componentOptions) {\n\t\t\t\tconst tag = this.firstActionVNode.componentOptions.tag\n\t\t\t\tif (tag === 'ActionLink') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tis: 'a',\n\t\t\t\t\t\thref: this.firstAction.href,\n\t\t\t\t\t\ttarget: this.firstAction.target,\n\t\t\t\t\t\t'aria-label': this.firstAction.ariaLabel,\n\t\t\t\t\t\t...this.firstAction.$attrs,\n\t\t\t\t\t\t...this.firstAction.$props,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (tag === 'ActionRouter') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tis: 'router-link',\n\t\t\t\t\t\tto: this.firstAction.to,\n\t\t\t\t\t\texact: this.firstAction.exact,\n\t\t\t\t\t\t'aria-label': this.firstAction.ariaLabel,\n\t\t\t\t\t\t...this.firstAction.$attrs,\n\t\t\t\t\t\t...this.firstAction.$props,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (tag === 'ActionButton') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tis: 'button',\n\t\t\t\t\t\t'aria-label': this.firstAction.ariaLabel,\n\t\t\t\t\t\t...this.firstAction.$attrs,\n\t\t\t\t\t\t...this.firstAction.$props,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// other action types are not allowed as standalone buttons\n\t\t\treturn null\n\t\t},\n\n\t\t// return the event to bind if the firstActionVNode have an action\n\t\tfirstActionEvent() {\n\t\t\treturn this.firstActionVNode?.componentOptions?.listeners?.click\n\t\t},\n\t\tfirstActionEventBinding() {\n\t\t\treturn this.firstActionEvent ? 'click' : null\n\t\t},\n\t\t// return the first action icon slot vnodes array\n\t\tfirstActionIconSlot() {\n\t\t\treturn this.firstAction?.$slots?.icon\n\t\t},\n\t\tfirstActionClass() {\n\t\t\tconst staticClass = this.firstActionVNode && this.firstActionVNode.data.staticClass\n\t\t\tconst dynClass = this.firstActionVNode && this.firstActionVNode.data.class\n\t\t\treturn (staticClass + ' ' + dynClass).trim()\n\t\t},\n\n\t\ticonSlotIsPopulated() {\n\t\t\treturn !!this.$slots.icon\n\t\t},\n\t},\n\n\twatch: {\n\t\t// Watch parent prop\n\t\topen(state) {\n\t\t\tif (state === this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = state\n\t\t},\n\t},\n\tbeforeMount() {\n\t\t// init actions\n\t\tthis.initActions()\n\n\t\t// filter invalid menu items\n\t\tValidateSlot(this.$slots.default, allowedChildren, this)\n\t},\n\tbeforeUpdate() {\n\t\t// ! since we're using $slots to manage our actions\n\t\t// ! we NEED to update the actions if anything change\n\n\t\t// update children & actions\n\t\t// no need to init actions again since we bound it to $children\n\t\t// and the array is now reactive\n\t\t// init actions\n\t\tthis.initActions()\n\t\tValidateSlot(this.$slots.default, allowedChildren, this)\n\t},\n\n\tmethods: {\n\t\t// MENU STATE MANAGEMENT\n\t\topenMenu(e) {\n\t\t\tif (this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = true\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu open state is changed\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu is closed\n\t\t\t */\n\t\t\tthis.$emit('open')\n\t\t},\n\t\tcloseMenu(e) {\n\t\t\tif (!this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = false\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu open state is changed\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu is closed\n\t\t\t */\n\t\t\tthis.$emit('close')\n\n\t\t\t// close everything\n\t\t\tthis.opened = false\n\t\t\tthis.focusIndex = 0\n\n\t\t\t// focus back the menu button\n\t\t\tthis.$refs.menuButton.focus()\n\t\t},\n\n\t\tonOpen(event) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.focusFirstAction(event)\n\t\t\t})\n\t\t},\n\n\t\t// MENU KEYS & FOCUS MANAGEMENT\n\t\t// focus nearest focusable item on mouse move\n\t\t// DO NOT change the focus if the target is already focused\n\t\t// this will prevent issues with input being unfocused\n\t\t// on mouse move\n\t\tonMouseFocusAction(event) {\n\t\t\tif (document.activeElement === event.target) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst menuItem = event.target.closest('li')\n\t\t\tif (menuItem) {\n\t\t\t\tconst focusableItem = menuItem.querySelector(focusableSelector)\n\t\t\t\tif (focusableItem) {\n\t\t\t\t\tconst focusList = this.$refs.menu.querySelectorAll(focusableSelector)\n\t\t\t\t\tconst focusIndex = [...focusList].indexOf(focusableItem)\n\t\t\t\t\tif (focusIndex > -1) {\n\t\t\t\t\t\tthis.focusIndex = focusIndex\n\t\t\t\t\t\tthis.focusAction()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tremoveCurrentActive() {\n\t\t\tconst currentActiveElement = this.$refs.menu.querySelector('li.active')\n\t\t\tif (currentActiveElement) {\n\t\t\t\tcurrentActiveElement.classList.remove('active')\n\t\t\t}\n\t\t},\n\t\tfocusAction() {\n\t\t\t// TODO: have a global disabled state for non input elements\n\t\t\tconst focusElement = this.$refs.menu.querySelectorAll(focusableSelector)[this.focusIndex]\n\t\t\tif (focusElement) {\n\t\t\t\tthis.removeCurrentActive()\n\t\t\t\tconst liMenuParent = focusElement.closest('li.action')\n\t\t\t\tfocusElement.focus()\n\t\t\t\tif (liMenuParent) {\n\t\t\t\t\tliMenuParent.classList.add('active')\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tfocusPreviousAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tif (this.focusIndex === 0) {\n\t\t\t\t\t// First element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\n\t\t\t\t} else {\n\t\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t\tthis.focusIndex = this.focusIndex - 1\n\t\t\t\t}\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusNextAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tconst indexLength = this.$refs.menu.querySelectorAll(focusableSelector).length - 1\n\t\t\t\tif (this.focusIndex === indexLength) {\n\t\t\t\t\t// Last element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\n\t\t\t\t} else {\n\t\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t\tthis.focusIndex = this.focusIndex + 1\n\t\t\t\t}\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusFirstAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\tthis.focusIndex = 0\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusLastAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\tthis.focusIndex = this.$el.querySelectorAll(focusableSelector).length - 1\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\n\t\tpreventIfEvent(event) {\n\t\t\tif (event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t}\n\t\t},\n\n\t\t// ACTIONS MANAGEMENT\n\t\t// exec the first action\n\t\texecFirstAction(event) {\n\t\t\tif (this.firstActionEvent) {\n\t\t\t\tthis.firstActionEvent(event)\n\t\t\t}\n\t\t},\n\t\tinitActions() {\n\t\t\t// filter out invalid slots\n\t\t\tthis.actions = (this.$slots.default || []).filter(node => !!node && !!node.componentOptions)\n\t\t},\n\t\tonFocus(event) {\n\t\t\tthis.$emit('focus', event)\n\t\t},\n\t\tonBlur(event) {\n\t\t\tthis.$emit('blur', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.action-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t// put a grey round background when menu is opened\n\t// or hover-focused\n\t&--single:hover,\n\t&--single:focus,\n\t&--single:active,\n\t&__menutoggle:hover,\n\t&__menutoggle:focus,\n\t&__menutoggle:active {\n\t\topacity: $opacity_full;\n\t\t// good looking on dark AND white bg, override server styling\n\t\tbackground-color: $icon-focus-bg !important;\n\t}\n\n\t// TODO: handle this in the future button component\n\t&__menutoggle:disabled,\n\t&--single:disabled {\n\t\topacity: .3 !important;\n\t}\n\n\t&.action-item--open .action-item__menutoggle {\n\t\topacity: $opacity_full;\n\t\tbackground-color: $action-background-hover;\n\t}\n\n\t// icons\n\t&--single,\n\t&__menutoggle {\n\t\tbox-sizing: border-box;\n\t\twidth: auto;\n\t\tmin-width: $clickable-area;\n\t\theight: $clickable-area;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tcursor: pointer;\n\t\tborder: none;\n\t\tborder-radius: $clickable-area / 2;\n\t\tbackground-color: transparent;\n\t}\n\n\t&::v-deep .material-design-icon {\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\topacity: $opacity_full;\n\n\t\t.material-design-icon__svg {\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\n\t// icon-more\n\t&__menutoggle {\n\t\t// align menu icon in center\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\topacity: $opacity_normal;\n\t\tfont-weight: bold;\n\t\tline-height: $icon-size;\n\n\t\t&--with-title {\n\t\t\tposition: relative;\n\t\t\tpadding: 0 $icon-margin;\n\t\t\tpadding-left: $clickable-area;\n\t\t\twhite-space: nowrap;\n\t\t\topacity: $opacity_full;\n\t\t\tborder: 1px solid var(--color-border-dark);\n\t\t\t// with a title, we need to display this as a real button\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tfont-size: inherit;\n\n\t\t\t// non-background icon class\n\t\t\t// image slot\n\t\t\t/deep/ span {\n\t\t\t\twidth: 24px;\n\t\t\t\theight: 24px;\n\t\t\t\tline-height: $icon-size;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ($clickable-area - 24px) / 2;\n\t\t\t\tleft: ($clickable-area - 24px) / 2;\n\t\t\t}\n\t\t}\n\n\t\t&--primary {\n\t\t\topacity: $opacity_full;\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tborder: none;\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t.action-item--open &,\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\tcolor: var(--color-primary-text) !important;\n\t\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--single {\n\t\topacity: $opacity_normal;\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t\t// hide anything the slot is displaying\n\t\t& > [hidden] {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ie,\n.edge {\n\t.action-item__menu,\n\t.action-item__menu .action-item__menu_arrow {\n\t\tborder: 1px solid var(--color-border);\n\t}\n}\n\n</style>\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{ref:\"mask\",staticClass:\"modal-mask\",class:{ 'modal-mask--dark': _vm.dark },style:(_vm.cssVariables),on:{\"click\":_vm.handleMouseMove,\"mousemove\":_vm.handleMouseMove,\"touchmove\":_vm.handleMouseMove}},[_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.clearView),expression:\"!clearView\"}],staticClass:\"modal-header\",class:{\n\t\t\t\t\tinvisible: _vm.clearView\n\t\t\t\t}},[(_vm.title.trim() !== '')?_c('div',{staticClass:\"modal-title\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"icons-menu\"},[(_vm.hasNext && _vm.enableSlideshow)?_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.playPauseTitle),expression:\"playPauseTitle\",modifiers:{\"auto\":true}}],staticClass:\"play-pause-icons\",class:{ 'play-pause-icons--paused': _vm.slideshowPaused },attrs:{\"type\":\"button\"},on:{\"click\":_vm.togglePlayPause}},[(!_vm.playing)?_c('Play',{staticClass:\"play-pause-icons__play\",attrs:{\"size\":_vm.iconSize,\"title\":\"\",\"decorative\":\"\"}}):_c('Pause',{staticClass:\"play-pause-icons__pause\",attrs:{\"size\":_vm.iconSize,\"title\":\"\",\"decorative\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.playPauseTitle)+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.playing)?_c('svg',{staticClass:\"progress-ring\",attrs:{\"height\":\"50\",\"width\":\"50\"}},[_c('circle',{staticClass:\"progress-ring__circle\",attrs:{\"stroke\":\"white\",\"stroke-width\":\"2\",\"fill\":\"transparent\",\"r\":\"15\",\"cx\":\"25\",\"cy\":\"25\"}})]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('Actions',{staticClass:\"header-actions\"},[_vm._t(\"actions\")],2),_vm._v(\" \"),(_vm.canClose)?_c('Actions',{staticClass:\"header-close\"},[_c('ActionButton',{on:{\"click\":_vm.close},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Close',{attrs:{\"size\":_vm.iconSize,\"title\":\"\",\"decorative\":\"\"}})]},proxy:true}],null,false,1372351874)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Close'))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1):_vm._e()],1)])]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":_vm.modalTransitionName}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showModal),expression:\"showModal\"}],staticClass:\"modal-wrapper\",class:[\n\t\t\t\t\t(\"modal-wrapper--\" + _vm.size),\n\t\t\t\t\t_vm.spreadNavigation ? 'modal-wrapper--spread-navigation' : ''\n\t\t\t\t],on:{\"mousedown\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.close($event)}}},[_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasPrevious && !_vm.clearView),expression:\"hasPrevious && !clearView\"}],staticClass:\"prev\",class:{\n\t\t\t\t\t\t\tinvisible: _vm.clearView || !_vm.hasPrevious\n\t\t\t\t\t\t},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.previous($event)}}},[_c('span',{staticClass:\"icon-previous\"},[_c('ChevronLeft',{attrs:{\"size\":40,\"title\":\"\",\"decorative\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Previous'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-container\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasNext && !_vm.clearView),expression:\"hasNext && !clearView\"}],staticClass:\"next\",class:{\n\t\t\t\t\t\t\tinvisible: _vm.clearView || !_vm.hasNext\n\t\t\t\t\t\t},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.next($event)}}},[_c('span',{staticClass:\"icon-next\"},[_c('ChevronRight',{attrs:{\"size\":40,\"title\":\"\",\"decorative\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Next'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)])])],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","module.exports = require(\"vue-material-design-icons/Close\");","module.exports = require(\"debounce\");","module.exports = require(\"@nextcloud/l10n/dist/gettext\");","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { VTooltip } from 'v-tooltip'\nimport './index.scss'\n\n// force scope the tooltip and use .vue-tooltip\n// instead of .tooltip to avoid server compatibility\n// issues and the use of !important\nVTooltip.options.defaultTemplate = `<div class=\"vue-tooltip\" role=\"tooltip\" data-v-${SCOPE_VERSION}><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>`\nVTooltip.options.defaultHtml = false\nVTooltip.options.defaultDelay = { show: 500, hide: 200 }\n\nexport default VTooltip\n","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-039e3073]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-item[data-v-039e3073]{position:relative;display:inline-block}.action-item--single[data-v-039e3073]:hover,.action-item--single[data-v-039e3073]:focus,.action-item--single[data-v-039e3073]:active,.action-item__menutoggle[data-v-039e3073]:hover,.action-item__menutoggle[data-v-039e3073]:focus,.action-item__menutoggle[data-v-039e3073]:active{opacity:1;background-color:rgba(127,127,127,0.25) !important}.action-item__menutoggle[data-v-039e3073]:disabled,.action-item--single[data-v-039e3073]:disabled{opacity:.3 !important}.action-item.action-item--open .action-item__menutoggle[data-v-039e3073]{opacity:1;background-color:rgba(127,127,127,0.25)}.action-item--single[data-v-039e3073],.action-item__menutoggle[data-v-039e3073]{box-sizing:border-box;width:auto;min-width:44px;height:44px;margin:0;padding:0;cursor:pointer;border:none;border-radius:22px;background-color:transparent}.action-item[data-v-039e3073] .material-design-icon{width:44px;height:44px;opacity:1}.action-item[data-v-039e3073] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-item__menutoggle[data-v-039e3073]{display:flex;align-items:center;justify-content:center;opacity:.7;font-weight:bold;line-height:16px}.action-item__menutoggle--with-title[data-v-039e3073]{position:relative;padding:0 14px;padding-left:44px;white-space:nowrap;opacity:1;border:1px solid var(--color-border-dark);background-color:var(--color-background-dark);background-position:14px center;font-size:inherit}.action-item__menutoggle--with-title[data-v-039e3073] span{width:24px;height:24px;line-height:16px;position:absolute;top:10px;left:10px}.action-item__menutoggle--primary[data-v-039e3073]{opacity:1;color:var(--color-primary-text);border:none;background-color:var(--color-primary-element)}.action-item--open .action-item__menutoggle--primary[data-v-039e3073],.action-item__menutoggle--primary[data-v-039e3073]:hover,.action-item__menutoggle--primary[data-v-039e3073]:focus,.action-item__menutoggle--primary[data-v-039e3073]:active{color:var(--color-primary-text) !important;background-color:var(--color-primary-element-light) !important}.action-item--single[data-v-039e3073]{opacity:.7}.action-item--single[data-v-039e3073]:hover,.action-item--single[data-v-039e3073]:focus,.action-item--single[data-v-039e3073]:active{opacity:1}.action-item--single>[hidden][data-v-039e3073]{display:none}.ie .action-item__menu[data-v-039e3073],.ie .action-item__menu .action-item__menu_arrow[data-v-039e3073],.edge .action-item__menu[data-v-039e3073],.edge .action-item__menu .action-item__menu_arrow[data-v-039e3073]{border:1px solid var(--color-border)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./Actions.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CC8oBxB,8BACC,iBAAkB,CAClB,oBAAqB,CAIrB,sRAMC,SCtnBc,CDwnBd,kDAA2C,CAC3C,kGAKA,qBAAsB,CApBxB,yEAwBE,SCloBc,CDmoBd,uCC/nBgD,CDgoBhD,gFAKA,qBAAsB,CACtB,UAAW,CACX,cC9pBmB,CD+pBnB,WC/pBmB,CDgqBnB,QAAS,CACT,SAAU,CACV,cAAe,CACf,WAAY,CACZ,kBAAkC,CAClC,4BAA6B,CAxC/B,oDA4CE,UCzqBmB,CD0qBnB,WC1qBmB,CD2qBnB,SCxpBc,CD0mBhB,+EAiDG,qBAAsB,CACtB,0CAMD,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,UCtqBiB,CDuqBjB,gBAAiB,CACjB,gBCtrBc,CDwrBd,sDACC,iBAAkB,CAClB,cCtrB6C,CDurB7C,iBC/rBkB,CDgsBlB,kBAAmB,CACnB,SC9qBa,CD+qBb,yCAA0C,CAE1C,6CAA8C,CAC9C,+BAAwC,CACxC,iBAAkB,CAVlB,2DAeC,UAAW,CACX,WAAY,CACZ,gBCzsBY,CD0sBZ,iBAAkB,CAClB,QAAiC,CACjC,SAAkC,CAClC,mDAID,SClsBa,CDmsBb,+BAAgC,CAChC,WAAY,CACZ,6CAA8C,CAC9C,kPAIC,0CAA2C,CAC3C,8DAA+D,CAC/D,sCAKF,UCltBiB,CDitBjB,qIAKC,SCrtBa,CDgtBd,+CASC,YAAa,CACb,sNAQD,oCAAqC\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"b0001f9\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.action-item {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t// put a grey round background when menu is opened\\n\\t// or hover-focused\\n\\t&--single:hover,\\n\\t&--single:focus,\\n\\t&--single:active,\\n\\t&__menutoggle:hover,\\n\\t&__menutoggle:focus,\\n\\t&__menutoggle:active {\\n\\t\\topacity: $opacity_full;\\n\\t\\t// good looking on dark AND white bg, override server styling\\n\\t\\tbackground-color: $icon-focus-bg !important;\\n\\t}\\n\\n\\t// TODO: handle this in the future button component\\n\\t&__menutoggle:disabled,\\n\\t&--single:disabled {\\n\\t\\topacity: .3 !important;\\n\\t}\\n\\n\\t&.action-item--open .action-item__menutoggle {\\n\\t\\topacity: $opacity_full;\\n\\t\\tbackground-color: $action-background-hover;\\n\\t}\\n\\n\\t// icons\\n\\t&--single,\\n\\t&__menutoggle {\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: auto;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tcursor: pointer;\\n\\t\\tborder: none;\\n\\t\\tborder-radius: $clickable-area / 2;\\n\\t\\tbackground-color: transparent;\\n\\t}\\n\\n\\t&::v-deep .material-design-icon {\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\topacity: $opacity_full;\\n\\n\\t\\t.material-design-icon__svg {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\t}\\n\\n\\t// icon-more\\n\\t&__menutoggle {\\n\\t\\t// align menu icon in center\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\topacity: $opacity_normal;\\n\\t\\tfont-weight: bold;\\n\\t\\tline-height: $icon-size;\\n\\n\\t\\t&--with-title {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tpadding: 0 $icon-margin;\\n\\t\\t\\tpadding-left: $clickable-area;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\t\\t// with a title, we need to display this as a real button\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tfont-size: inherit;\\n\\n\\t\\t\\t// non-background icon class\\n\\t\\t\\t// image slot\\n\\t\\t\\t/deep/ span {\\n\\t\\t\\t\\twidth: 24px;\\n\\t\\t\\t\\theight: 24px;\\n\\t\\t\\t\\tline-height: $icon-size;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: ($clickable-area - 24px) / 2;\\n\\t\\t\\t\\tleft: ($clickable-area - 24px) / 2;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--primary {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t.action-item--open &,\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tcolor: var(--color-primary-text) !important;\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element-light) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--single {\\n\\t\\topacity: $opacity_normal;\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&:active {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t\\t// hide anything the slot is displaying\\n\\t\\t& > [hidden] {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ie,\\n.edge {\\n\\t.action-item__menu,\\n\\t.action-item__menu .action-item__menu_arrow {\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsDialog.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @author Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<docs>\nJust nest the `AppSettingSections` component into `AppSettingsDialog`,\nproviding the section's title prop. You can put your settings within each\n`AppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<button @click=\"settingsOpen = true\">Show Settings</button>\n\t\t<AppSettingsDialog :open.sync=\"settingsOpen\" >\n\t\t\t<AppSettingsSection title=\"Example title 1\">\n\t\t\t\tSome example content\n\t\t\t</AppSettingsSection>\n\t\t\t<AppSettingsSection title=\"Example title 2\">\n\t\t\t\tSome more content\n\t\t\t</AppSettingsSection>\n\t\t</AppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<script>\nimport Modal from '../Modal'\nimport isMobile from '../../mixins/isMobile'\nimport debounce from 'debounce'\n\nexport default {\n\n\tname: 'AppSettingsDialog',\n\n\tcomponents: {\n\t\tModal,\n\t},\n\n\tmixins: [isMobile],\n\n\tprops: {\n\t\t/**\n\t\t * Determines the open / closed state of the modal\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Shows the navigation on desktop if true\n\t\t */\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedSection: '',\n\t\t\tlinkClicked: false,\n\t\t\taddedScrollListener: false,\n\t\t\tscroller: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\n\t\thasNavigation() {\n\t\t\tif (this.isMobile || !this.showNavigation) {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\tsettingsNavigationAriaLabel() {\n\t\t\treturn t('Settings navigation')\n\t\t},\n\t},\n\n\tmounted() {\n\t\t// Select first settings section\n\t\tthis.selectedSection = this.$slots.default[0].componentOptions.propsData.title\n\t},\n\n\tupdated() {\n\t\t// Check that the scroller element has been mounted\n\t\tif (!this.$refs.settingsScroller) {\n\t\t\treturn\n\t\t}\n\t\t// Get the scroller element\n\t\tthis.scroller = this.$refs.settingsScroller\n\t\tif (!this.addedScrollListener) {\n\t\t\tthis.scroller.addEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = true\n\t\t}\n\n\t},\n\n\tmethods: {\n\n\t\t/**\n\t\t * Builds the settings navigation menu\n\t\t * @param {object} slots The default slots object passed from the render function.\n\t\t * @returns {array} the navigation items\n\t\t */\n\t\tgetSettingsNavigation(slots) {\n\t\t\t// Array of navigationitems strings\n\t\t\tconst navigationItems = slots.filter(vNode => vNode.componentOptions).map(vNode => vNode.componentOptions.propsData?.title)\n\t\t\t// Check for the uniqueness of section titles\n\t\t\tnavigationItems.forEach((element, index) => {\n\t\t\t\tconst newArray = [...navigationItems]\n\t\t\t\tnewArray.splice(index, 1)\n\t\t\t\tif (newArray.indexOf(element) !== -1) {\n\t\t\t\t\tthrow new Error(`Duplicate section title found: ${element}. Settings navigation sections must have unique section titles.`)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn navigationItems\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the content to the selected settings section.absolute\n\t\t * @param {string} item the name of the section\n\t\t */\n\t\thandleSettingsNavigationClick(item) {\n\t\t\tthis.linkClicked = true\n\t\t\tdocument.getElementById('settings-section_' + item.replace(/\\s+/g, '')).scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t\tthis.selectedSection = item\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.linkClicked = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\thandleCloseModal() {\n\t\t\tthis.$emit('update:open', false)\n\t\t\t// Remove scroll listener each time the modal is closed\n\t\t\tthis.scroller.removeEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = false\n\t\t\tthis.scroller.scrollTop = 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (!this.linkClicked) {\n\t\t\t\tthis.unfocusNavigationItem()\n\t\t\t}\n\t\t},\n\n\t\t// Remove selected section once the user starts scrolling\n\t\tunfocusNavigationItem: debounce(function() {\n\t\t\tthis.selectedSection = ''\n\t\t\tif (document.activeElement.className.includes('navigation-list__link')) {\n\t\t\t\tdocument.activeElement.blur()\n\t\t\t}\n\t\t}, 300),\n\n\t\thandleLinkKeydown(keyDownEvent, item) {\n\t\t\tif (keyDownEvent.code === 'Enter') {\n\t\t\t\tthis.handleSettingsNavigationClick(item)\n\t\t\t}\n\t\t},\n\t},\n\n\trender(createElement) {\n\t\t/**\n\t\t * Build the navigation\n\t\t * @returns {object} the navigation\n\t\t */\n\t\tconst createAppSettingsNavigation = () => {\n\t\t\tif (this.hasNavigation) {\n\t\t\t\treturn [createElement('div', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclass: 'app-settings__navigation',\n\t\t\t\t\t\trole: 'tablist',\n\t\t\t\t\t\t'aria-label': this.settingsNavigationAriaLabel,\n\t\t\t\t\t},\n\t\t\t\t}, [createElement('ul', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclass: 'navigation-list',\n\t\t\t\t\t\trole: 'tablist',\n\t\t\t\t\t},\n\t\t\t\t}, this.getSettingsNavigation(this.$slots.default).map(item => {\n\t\t\t\t\treturn createListElemtent(item)\n\t\t\t\t}))])]\n\t\t\t} else {\n\t\t\t\treturn []\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Build each list element in the navigation\n\t\t * @param {object} item the navigation item\n\t\t * @returns {object} the list element\n\t\t */\n\t\tconst createListElemtent = (item) => createElement('li', {}, [createElement('a', {\n\t\t\tclass: {\n\t\t\t\t'navigation-list__link': true,\n\t\t\t\t'navigation-list__link--active': item === this.selectedSection,\n\t\t\t},\n\n\t\t\tattrs: {\n\t\t\t\trole: 'tab',\n\t\t\t\t'aria-selected': item === this.selectedSection,\n\t\t\t\ttabindex: '0',\n\t\t\t},\n\n\t\t\ton: {\n\t\t\t\tclick: () => this.handleSettingsNavigationClick(item),\n\t\t\t\tkeydown: () => this.handleLinkKeydown(event, item),\n\t\t\t},\n\t\t}, item)])\n\n\t\t// Return value of the render function\n\t\tif (this.open) {\n\t\t\treturn createElement('Modal', {\n\t\t\t\tattrs: {\n\t\t\t\t\tcontainer: this.container,\n\t\t\t\t},\n\t\t\t\ton: {\n\t\t\t\t\tclose: () => { this.handleCloseModal() },\n\t\t\t\t},\n\t\t\t}, [\n\t\t\t\tcreateElement('div', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclass: 'app-settings',\n\t\t\t\t\t},\n\t\t\t\t}, [...createAppSettingsNavigation(),\n\t\t\t\t\tcreateElement('div', {\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tclass: 'app-settings__content',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tref: 'settingsScroller',\n\t\t\t\t\t}, this.$slots.default)]),\n\t\t\t])\n\t\t} else {\n\t\t\treturn undefined\n\t\t}\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n\n::v-deep .modal-wrapper .modal-container {\n\tdisplay: flex;\n}\n\n.app-settings {\n\tdisplay: flex;\n\twidth: 100%;\n\t&__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t}\n\t&__content {\n\t\tmax-width: 100vw;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t\tpadding: 24px;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\toverflow-y: auto;\n\tpadding: 12px;\n\t&__link {\n\t\tdisplay: block;\n\t\tfont-size: 16px;\n\t\theight: $clickable-area;\n\t\tmargin: 4px 0;\n\t\tline-height: $clickable-area;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-light) !important;\n\t\t}\n\t}\n}\n\n</style>\n","var render = function () {\nvar _obj, _obj$1;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isValidSingleAction && !_vm.forceMenu)?_c('element',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.firstAction.text),expression:\"firstAction.text\",modifiers:{\"auto\":true}}],staticClass:\"action-item action-item--single\",class:( _obj = {}, _obj[_vm.firstAction.icon] = _vm.firstAction.icon, _obj[_vm.firstActionClass] = _vm.firstActionClass, _obj ),attrs:{\"rel\":\"noreferrer noopener\",\"disabled\":_vm.disabled},on:_vm._d({\"focus\":_vm.onFocus,\"blur\":_vm.onBlur},[_vm.firstActionEventBinding,_vm.execFirstAction])},'element',_vm.firstActionBinding,false),[_c('VNodes',{attrs:{\"vnodes\":_vm.firstActionIconSlot}}),_vm._v(\" \"),_c('span',{attrs:{\"aria-hidden\":true,\"hidden\":\"\"}},[_vm._t(\"default\")],2)],1):_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasMultipleActions || _vm.forceMenu),expression:\"hasMultipleActions || forceMenu\"}],staticClass:\"action-item\",class:{'action-item--open': _vm.opened}},[_c('Popover',{attrs:{\"delay\":0,\"handle-resize\":true,\"open\":_vm.opened,\"placement\":_vm.placement,\"boundaries-element\":_vm.boundariesElement,\"container\":_vm.container},on:{\"update:open\":function($event){_vm.opened=$event},\"show\":_vm.openMenu,\"after-show\":_vm.onOpen,\"hide\":_vm.closeMenu}},[_c('button',{ref:\"menuButton\",staticClass:\"icon action-item__menutoggle\",class:( _obj$1 = {}, _obj$1[_vm.defaultIcon] = !_vm.iconSlotIsPopulated, _obj$1['action-item__menutoggle--with-title'] = _vm.menuTitle, _obj$1['action-item__menutoggle--with-icon-slot'] = _vm.iconSlotIsPopulated, _obj$1['action-item__menutoggle--default-icon'] = !_vm.iconSlotIsPopulated && _vm.defaultIcon === '', _obj$1['action-item__menutoggle--primary'] = _vm.primary, _obj$1 ),attrs:{\"slot\":\"trigger\",\"disabled\":_vm.disabled,\"aria-haspopup\":\"true\",\"aria-label\":_vm.ariaLabel,\"aria-controls\":_vm.randomId,\"aria-expanded\":_vm.opened ? 'true' : 'false',\"test-attr\":\"1\",\"type\":\"button\"},on:{\"focus\":_vm.onFocus,\"blur\":_vm.onBlur},slot:\"trigger\"},[(_vm.iconSlotIsPopulated)?_vm._t(\"icon\"):(_vm.defaultIcon === '')?_c('DotsHorizontal',{attrs:{\"size\":24,\"decorative\":\"\"}}):_vm._e(),_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.menuTitle)+\"\\n\\t\\t\")],2),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.opened),expression:\"opened\"}],ref:\"menu\",class:{ open: _vm.opened },attrs:{\"tabindex\":\"-1\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusPreviousAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusNextAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusNextAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if(!$event.shiftKey){ return null; }if($event.ctrlKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusPreviousAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"page-up\",undefined,$event.key,undefined)){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusFirstAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"page-down\",undefined,$event.key,undefined)){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusLastAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.closeMenu($event)}],\"mousemove\":_vm.onMouseFocusAction}},[_c('ul',{attrs:{\"id\":_vm.randomId,\"tabindex\":\"-1\"}},[(_vm.opened)?[_vm._t(\"default\")]:_vm._e()],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Popover.vue?vue&type=template&id=0522d459&\"\nimport script from \"./Popover.vue?vue&type=script&lang=js&\"\nexport * from \"./Popover.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Popover.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Popover.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport ActionButton from './ActionButton'\n\nexport default ActionButton\n","module.exports = require(\"hammerjs\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-56e8e13c]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}[data-v-56e8e13c] .modal-wrapper .modal-container{display:flex}.app-settings[data-v-56e8e13c]{display:flex;width:100%}.app-settings__navigation[data-v-56e8e13c]{min-width:200px;margin-right:20px}.app-settings__content[data-v-56e8e13c]{max-width:100vw;overflow-y:auto;overflow-x:hidden;padding:24px}.navigation-list[data-v-56e8e13c]{height:100%;overflow-y:auto;padding:12px}.navigation-list__link[data-v-56e8e13c]{display:block;font-size:16px;height:44px;margin:4px 0;line-height:44px;border-radius:var(--border-radius-pill);font-weight:bold;padding:0 20px;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none}.navigation-list__link[data-v-56e8e13c]:hover,.navigation-list__link[data-v-56e8e13c]:focus{background-color:var(--color-background-hover)}.navigation-list__link--active[data-v-56e8e13c]{background-color:var(--color-primary-light) !important}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./AppSettingsDialog.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCoRxB,kDACC,YAAa,CACb,+BAGA,YAAa,CACb,UAAW,CACX,2CACC,eAAgB,CAChB,iBAAkB,CAClB,wCAEA,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,YAAa,CACb,kCAID,WAAY,CACZ,eAAgB,CAChB,YAAa,CACb,wCACC,aAAc,CACd,cAAe,CACf,WC7RmB,CD8RnB,YAAa,CACb,gBC/RmB,CDgSnB,uCAAwC,CACxC,gBAAiB,CACjB,cAAe,CACf,cAAe,CACf,kBAAmB,CACnB,sBAAuB,CACvB,eAAgB,CAChB,4BAA6B,CAC7B,WAAY,CAdZ,4FAiBC,8CAA+C,CAC/C,gDAEA,sDAAuD\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"b0001f9\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n::v-deep .modal-wrapper .modal-container {\\n\\tdisplay: flex;\\n}\\n\\n.app-settings {\\n\\tdisplay: flex;\\n\\twidth: 100%;\\n\\t&__navigation {\\n\\t\\tmin-width: 200px;\\n\\t\\tmargin-right: 20px;\\n\\t}\\n\\t&__content {\\n\\t\\tmax-width: 100vw;\\n\\t\\toverflow-y: auto;\\n\\t\\toverflow-x: hidden;\\n\\t\\tpadding: 24px;\\n\\t}\\n}\\n\\n.navigation-list {\\n\\theight: 100%;\\n\\toverflow-y: auto;\\n\\tpadding: 12px;\\n\\t&__link {\\n\\t\\tdisplay: block;\\n\\t\\tfont-size: 16px;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin: 4px 0;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: 0 20px;\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t\\tbackground-color: transparent;\\n\\t\\tborder: none;\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t&--active {\\n\\t\\t\\tbackground-color: var(--color-primary-light) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=style&index=0&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/* 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 = typeof scriptExports === 'function'\n ? scriptExports.options\n : 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) { // 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\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst GenRandomId = (length) => {\n\treturn Math.random()\n\t\t.toString(36)\n\t\t.replace(/[^a-z]+/g, '')\n\t\t.substr(0, length || 5)\n}\n\nexport default GenRandomId\n","module.exports = require(\"vue-material-design-icons/DotsHorizontal\");","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!./index.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport ScopeComponent from '../../utils/ScopeComponent'\nimport Modal from './Modal'\n\nScopeComponent(Modal)\n\nexport default Modal\n","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=e6fc7b00&scoped=true&\"\nimport script from \"./Modal.vue?vue&type=script&lang=js&\"\nexport * from \"./Modal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=e6fc7b00&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"e6fc7b00\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Modal.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","module.exports = require(\"vue-material-design-icons/ChevronLeft\");","module.exports = require(\"vue-material-design-icons/ChevronRight\");","module.exports = require(\"vue-material-design-icons/Pause\");","module.exports = require(\"vue-material-design-icons/Play\");","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default function timer(callback, delay) {\n\tlet id\n\tlet started\n\tlet remaining = delay\n\tlet running\n\n\tthis.start = function() {\n\t\trunning = true\n\t\tstarted = new Date()\n\t\tid = setTimeout(callback, remaining)\n\t}\n\n\tthis.pause = function() {\n\t\trunning = false\n\t\tclearTimeout(id)\n\t\tremaining -= new Date() - started\n\t}\n\n\tthis.clear = function() {\n\t\trunning = false\n\t\tclearTimeout(id)\n\t\tremaining = 0\n\t}\n\n\tthis.getTimeLeft = function() {\n\t\tif (running) {\n\t\t\tthis.pause()\n\t\t\tthis.start()\n\t\t}\n\n\t\treturn remaining\n\t}\n\n\tthis.getStateRunning = function() {\n\t\treturn running\n\t}\n\n\tthis.start()\n}\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&id=e6fc7b00&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&\"","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { IsMobileState } from '../../utils/IsMobileState'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\tmounted() {\n\t\tIsMobileState.$on('changed', this.onIsMobileChanged)\n\t\tthis.isMobile = IsMobileState.isMobile\n\t},\n\tbeforeDestroy() {\n\t\tIsMobileState.$off('changed', this.onIsMobileChanged)\n\t},\n\tmethods: {\n\t\tonIsMobileChanged(val) {\n\t\t\tthis.isMobile = val\n\t\t},\n\t},\n}\n","/**\n * @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @author Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport AppSettingsDialog from './AppSettingsDialog'\n\nexport default AppSettingsDialog\n","var render, staticRenderFns\nimport script from \"./AppSettingsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./AppSettingsDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppSettingsDialog.vue?vue&type=style&index=0&id=56e8e13c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"56e8e13c\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppSettingsDialog.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @author Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Popover from './Popover'\n\nexport default Popover\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionButton.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\nThis component is made to be used inside of the [Actions](#Actions) component slots.\n\n```vue\n\t<Actions>\n\t\t<ActionButton icon=\"icon-delete\" @click=\"alert('Delete')\">Delete</ActionButton>\n\t\t<ActionButton icon=\"icon-delete\" :close-after-click=\"true\" @click=\"alert('Delete and close menu')\">Delete and close</ActionButton>\n\t\t<ActionButton icon=\"icon-delete\" :disabled=\"true\" @click=\"alert('Disabled')\">Disabled button</ActionButton>\n\t</Actions>\n```\n\nIf you're using a long text you can specify a title\n\n```vue\n\t<Actions>\n\t\t<ActionButton icon=\"icon-add\" @click=\"alert('Add')\">Add new</ActionButton>\n\t\t<ActionButton icon=\"icon-delete\" title=\"Long button\" @click=\"alert('Delete')\">This button is associated with a very long text.\\nAnd with new lines too.</ActionButton>\n\t</Actions>\n```\n\nYou can also use a custom icon, for example from the vue-material-design-icons library:\n\n```vue\n<template>\n\t<Actions>\n\t\t<ActionButton>\n\t\t\t<HandLeft\n\t\t\t\tslot=\"icon\"\n\t\t\t\t:size=\"24\"\n\t\t\t\tdecorative\n\t\t\t\ttitle=\"\" />\n\t\t\tRaise left hand\n\t\t</ActionButton>\n\t\t<ActionButton>\n\t\t\t<HandRight\n\t\t\t\tslot=\"icon\"\n\t\t\t\t:size=\"24\"\n\t\t\t\tdecorative\n\t\t\t\ttitle=\"\" />\n\t\t\tRaise right hand\n\t\t</ActionButton>\n\t</Actions>\n</template>\n<script>\nimport HandLeft from 'vue-material-design-icons/HandLeft'\nimport HandRight from 'vue-material-design-icons/HandRight'\n\nexport default {\n\tcomponents: {\n\t\tHandLeft,\n\t\tHandRight,\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<li class=\"action\" :class=\"{ 'action--disabled': disabled }\">\n\t\t<button\n\t\t\tclass=\"action-button\"\n\t\t\t:class=\"{ focusable: isFocusable }\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\ttype=\"button\"\n\t\t\t@click=\"onClick\">\n\t\t\t<!-- @slot Manually provide icon -->\n\t\t\t<slot name=\"icon\">\n\t\t\t\t<span :class=\"[isIconUrl ? 'action-button__icon--url' : icon]\"\n\t\t\t\t\t:style=\"{ backgroundImage: isIconUrl ? `url(${icon})` : null }\"\n\t\t\t\t\tclass=\"action-button__icon\" />\n\t\t\t</slot>\n\n\t\t\t<!-- long text with title -->\n\t\t\t<p v-if=\"title\">\n\t\t\t\t<strong class=\"action-button__title\">\n\t\t\t\t\t{{ title }}\n\t\t\t\t</strong>\n\t\t\t\t<br>\n\t\t\t\t<!-- white space is shown on longtext, so we can't\n\t\t\t\t\tput {{ text }} on a new line for code readability -->\n\t\t\t\t<span class=\"action-button__longtext\" v-text=\"text\" />\n\t\t\t</p>\n\n\t\t\t<!-- long text only -->\n\t\t\t<!-- white space is shown on longtext, so we can't\n\t\t\t\tput {{ text }} on a new line for code readability -->\n\t\t\t<p v-else-if=\"isLongText\"\n\t\t\t\tclass=\"action-button__longtext\"\n\t\t\t\tv-text=\"text\" />\n\n\t\t\t<!-- default text display -->\n\t\t\t<span v-else class=\"action-button__text\">{{ text }}</span>\n\n\t\t\t<!-- fake slot to gather inner text -->\n\t\t\t<slot v-if=\"false\" />\n\t\t</button>\n\t</li>\n</template>\n\n<script>\nimport ActionTextMixin from '../../mixins/actionText'\n\n/**\n * Button component to be used in Actions\n*/\nexport default {\n\tname: 'ActionButton',\n\n\tmixins: [ActionTextMixin],\n\n\tprops: {\n\t\t/**\n\t\t * disabled state of the action button\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * determines if the action is focusable\n\t\t * @returns {boolean} is the action focusable ?\n\t\t */\n\t\tisFocusable() {\n\t\t\treturn !this.disabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import '../../assets/action';\n@include action-active;\n@include action--disabled;\n@include action-item('button');\n</style>\n","\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue'\n\nexport default {\n\tbefore() {\n\t\t// all actions requires a valid text content\n\t\t// if none, forbid the component mount and throw error\n\t\tif (!this.$slots.default || this.text.trim() === '') {\n\t\t\tVue.util.warn(`${this.$options.name} cannot be empty and requires a meaningful text content`, this)\n\t\t\tthis.$destroy()\n\t\t\tthis.$el.remove()\n\t\t}\n\t},\n\n\tbeforeUpdate() {\n\t\tthis.text = this.getText()\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// $slots are not reactive.\n\t\t\t// We need to update the content manually\n\t\t\ttext: this.getText(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisLongText() {\n\t\t\treturn this.text && this.text.trim().length > 20\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetText() {\n\t\t\treturn this.$slots.default ? this.$slots.default[0].text.trim() : ''\n\t\t},\n\t},\n}\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsDialog.vue?vue&type=style&index=0&id=56e8e13c&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","<!--\n - @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @author Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<docs>\n\n### General description\n\nThis component is just a wrapper for the v-component plugin by Akryum,\nplease refer to this documentation for customization:\nhttps://github.com/Akryum/v-tooltip\n\nThis components has two slots:\n* 'trigger' which can be any html element and it will trigger the popover\nthis slot is optional since you can toggle the popover also by updating the\nopen prop on this component;\n\n* a default slot that is for the content of the popover.\n\n### Examples\n\nWith a `<button>` as a trigger:\n```vue\n<template>\n\t<Popover>\n\t\t<button slot=\"trigger\"> I am the trigger </button>\n\t\t<template>\n\t\t<h2>this is some content</h2>\n\t\t</template>\n\t</Popover>\n</template>\n```\n</docs>\n\n<template>\n\t<VPopover\n\t\tref=\"popover\"\n\t\tv-bind=\"$attrs\"\n\t\tpopover-base-class=\"popover\"\n\t\tpopover-wrapper-class=\"popover__wrapper\"\n\t\tpopover-arrow-class=\"popover__arrow\"\n\t\tpopover-inner-class=\"popover__inner\"\n\t\tv-on=\"$listeners\">\n\t\t<!-- This will be the popover target (for the events and position) -->\n\t\t<slot name=\"trigger\" />\n\t\t<!-- This will be the content of the popover -->\n\t\t<template slot=\"popover\">\n\t\t\t<slot />\n\t\t</template>\n\t</VPopover>\n</template>\n\n<script>\nimport { VPopover } from 'v-tooltip'\n\nexport default {\n\tname: 'Popover',\n\tcomponents: {\n\t\tVPopover,\n\t},\n\n\tmounted() {\n\t\tthis.$watch(\n\t\t\t() => {\n\t\t\t\t// required because v-tooltip doesn't provide events\n\t\t\t\t// and @show is too early\n\t\t\t\t// see https://github.com/Akryum/v-tooltip/issues/661\n\t\t\t\treturn this.$refs.popover.isOpen\n\t\t\t},\n\t\t\t(val) => {\n\t\t\t\tif (val) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Triggered after the tooltip was visually displayed.\n\t\t\t\t\t *\n\t\t\t\t\t * This is different from the 'show' and 'apply-show' which\n\t\t\t\t\t * run earlier than this where there is no guarantee that the\n\t\t\t\t\t * tooltip is already visible and in the DOM.\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('after-show')\n\t\t\t\t} else {\n\t\t\t\t\t/**\n\t\t\t\t\t * Triggered after the tooltip was visually hidden.\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('after-hide')\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n$arrow-width: 10px;\n\n.popover {\n\tz-index: 100000;\n\tdisplay: block !important;\n\n\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t&__inner {\n\t\tpadding: 0;\n\t\tcolor: var(--color-main-text);\n\t\tborder-radius: var(--border-radius);\n\t\tbackground: var(--color-main-background);\n\t}\n\n\t&__arrow {\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tmargin: $arrow-width;\n\t\tborder-style: solid;\n\t\tborder-color: var(--color-main-background);\n\t}\n\n\t&[x-placement^='top'] {\n\t\tmargin-bottom: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\tbottom: -$arrow-width;\n\t\t\tleft: calc(50% - $arrow-width);\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='bottom'] {\n\t\tmargin-top: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: -$arrow-width;\n\t\t\tleft: calc(50% - $arrow-width);\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='right'] {\n\t\tmargin-left: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: calc(50% - $arrow-width);\n\t\t\tleft: -$arrow-width;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width $arrow-width $arrow-width 0;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='left'] {\n\t\tmargin-right: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: calc(50% - $arrow-width);\n\t\t\tright: -$arrow-width;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t}\n\t}\n\n\t&[aria-hidden='true'] {\n\t\tvisibility: hidden;\n\t\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\n\t\topacity: 0;\n\t}\n\n\t&[aria-hidden='false'] {\n\t\tvisibility: visible;\n\t\ttransition: opacity var(--animation-quick);\n\t\topacity: 1;\n\t}\n}\n\n</style>\n","import { n, t } from '../l10n'\n\nexport default {\n\tmethods: {\n\t\tn,\n\t\tt,\n\t},\n}\n","/**\n * @copyright Copyright (c) 2019 Kristof Hamann, Paul Schwörer\n *\n * @author Kristof Hamann\n * @author Paul Schwörer\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\n\nexport const IsMobileState = new Vue({\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\twatch: {\n\t\tisMobile(val) {\n\t\t\tthis.$emit('changed', val)\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\tmethods: {\n\t\thandleWindowResize() {\n\t\t\tthis.isMobile = document.documentElement.clientWidth < 1024\n\t\t},\n\t},\n})\n","\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport actionGlobal from './actionGlobal'\nimport GetParent from '../utils/GetParent'\n\nexport default {\n\tmixins: [actionGlobal],\n\tprops: {\n\t\t/**\n\t\t * Icon to show with the action, can be either a CSS class or an URL\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Title to show next to the icon\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether we close the Actions menu after the click\n\t\t */\n\t\tcloseAfterClick: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Aria label for the button. Not needed if the button has text.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tisIconUrl() {\n\t\t\ttry {\n\t\t\t\treturn new URL(this.icon)\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonClick(event) {\n\t\t\t/**\n\t\t\t * Emitted when the action is clicked\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('click', event)\n\n\t\t\tif (this.closeAfterClick) {\n\t\t\t\tconst parent = GetParent(this, 'Actions')\n\t\t\t\tif (parent && parent.closeMenu) {\n\t\t\t\t\tparent.closeMenu()\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n","module.exports = require(\"vue\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-6c7cb9ab]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-6c7cb9ab]{background-color:var(--color-background-hover)}.action--disabled[data-v-6c7cb9ab]{pointer-events:none;opacity:.5}.action--disabled[data-v-6c7cb9ab]:hover,.action--disabled[data-v-6c7cb9ab]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-6c7cb9ab]{opacity:1 !important}.action-button[data-v-6c7cb9ab]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-button[data-v-6c7cb9ab]:hover,.action-button[data-v-6c7cb9ab]:focus{opacity:1}.action-button>span[data-v-6c7cb9ab]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-6c7cb9ab]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-6c7cb9ab] .material-design-icon{width:44px;height:44px;opacity:1}.action-button[data-v-6c7cb9ab] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button p[data-v-6c7cb9ab]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-6c7cb9ab]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-6c7cb9ab]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./../../assets/action.scss\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CACvB,2BCiBE,8CAA+C,CAC/C,mCAMD,mBAAoB,CACpB,UCQmB,CDVpB,kFAIE,cAAe,CACf,UCKkB,CDVpB,qCAQE,oBAAqB,CACrB,gCAOD,YAAa,CACb,sBAAuB,CAEvB,UAAW,CACX,WAAY,CACZ,QAAS,CACT,SAAU,CACV,kBCtB8C,CDuB9C,qBAAsB,CAEtB,cAAe,CACf,kBAAmB,CAEnB,UClBiB,CDmBjB,4BAA6B,CAC7B,QAAS,CACT,eAAgB,CAChB,4BAA6B,CAC7B,eAAgB,CAEhB,kBAAmB,CACnB,kCAAmC,CACnC,gBC7CmB,CDsBpB,4EA2BE,SC9Ba,CDGf,qCA+BE,cAAe,CACf,kBAAmB,CACnB,sCAGA,UC1DkB,CD2DlB,WC3DkB,CD4DlB,SCzCa,CD0Cb,+BAAwC,CACxC,oBC1Da,CD2Db,2BAA4B,CAzC9B,sDA6CE,UCnEkB,CDoElB,WCpEkB,CDqElB,SClDa,CDGf,iFAkDG,qBAAsB,CAlDzB,kCAwDE,eAAgB,CAChB,iBAAkB,CAGlB,gBAA8C,CAE9C,cAAe,CACf,eAAgB,CAGhB,eAAgB,CAChB,sBAAuB,CACvB,0CAGA,cAAe,CAEf,oBAAqB,CACrB,uCAGA,gBAAiB,CACjB,sBAAuB,CACvB,eAAgB,CAChB,kBAAmB,CACnB,cAAe,CACf,oBAAqB\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@pm.me>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .material-design-icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{($clickable-area - 1.6*14px) / 2} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"action\",class:{ 'action--disabled': _vm.disabled }},[_c('button',{staticClass:\"action-button\",class:{ focusable: _vm.isFocusable },attrs:{\"aria-label\":_vm.ariaLabel,\"type\":\"button\"},on:{\"click\":_vm.onClick}},[_vm._t(\"icon\",[_c('span',{staticClass:\"action-button__icon\",class:[_vm.isIconUrl ? 'action-button__icon--url' : _vm.icon],style:({ backgroundImage: _vm.isIconUrl ? (\"url(\" + _vm.icon + \")\") : null })})]),_vm._v(\" \"),(_vm.title)?_c('p',[_c('strong',{staticClass:\"action-button__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"action-button__longtext\",domProps:{\"textContent\":_vm._s(_vm.text)}})]):(_vm.isLongText)?_c('p',{staticClass:\"action-button__longtext\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_c('span',{staticClass:\"action-button__text\"},[_vm._v(_vm._s(_vm.text))]),_vm._v(\" \"),(false)?_vm._t(\"default\"):_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Actions.vue?vue&type=template&id=039e3073&scoped=true&\"\nimport script from \"./Actions.vue?vue&type=script&lang=js&\"\nexport * from \"./Actions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Actions.vue?vue&type=style&index=0&id=039e3073&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"039e3073\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Actions.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.popover{z-index:100000;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.popover__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius);background:var(--color-main-background)}.popover__arrow{position:absolute;z-index:1;width:0;height:0;margin:10px;border-style:solid;border-color:var(--color-main-background)}.popover[x-placement^='top']{margin-bottom:10px}.popover[x-placement^='top'] .popover__arrow{bottom:-10px;left:calc(50% - $arrow-width);margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent !important;border-bottom-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='bottom']{margin-top:10px}.popover[x-placement^='bottom'] .popover__arrow{top:-10px;left:calc(50% - $arrow-width);margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent !important;border-right-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='right']{margin-left:10px}.popover[x-placement^='right'] .popover__arrow{top:calc(50% - $arrow-width);left:-10px;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent !important;border-bottom-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='left']{margin-right:10px}.popover[x-placement^='left'] .popover__arrow{top:calc(50% - $arrow-width);right:-10px;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important}.popover[aria-hidden='true']{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.popover[aria-hidden='false']{visibility:visible;transition:opacity var(--animation-quick);opacity:1}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./Popover.vue\"],\"names\":[],\"mappings\":\"AAGA,sBACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCwGxB,SACC,cAAe,CACf,wBAAyB,CAEzB,sDAAuD,CAEvD,gBACC,SAAU,CACV,4BAA6B,CAC7B,kCAAmC,CACnC,uCAAwC,CACxC,gBAGA,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,WApBgB,CAqBhB,kBAAmB,CACnB,yCAA0C,CApB5C,6BAwBE,kBA1BgB,CAElB,6CA2BG,YA7Be,CA8Bf,6BAA8B,CAC9B,YAAa,CACb,eAAgB,CAChB,6BAjCe,CAkCf,yCAA0C,CAC1C,0CAA2C,CAC3C,wCAAyC,CAlC5C,gCAuCE,eAzCgB,CAElB,gDA0CG,SA5Ce,CA6Cf,6BAA8B,CAC9B,YAAa,CACb,eAAgB,CAChB,6BAhDe,CAiDf,uCAAwC,CACxC,yCAA0C,CAC1C,wCAAyC,CAjD5C,+BAsDE,gBAxDgB,CAElB,+CAyDG,4BAA6B,CAC7B,UA5De,CA6Df,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,uCAAwC,CACxC,0CAA2C,CAC3C,wCAAyC,CAhE5C,8BAqEE,iBAvEgB,CAElB,8CAwEG,4BAA6B,CAC7B,WA3Ee,CA4Ef,cAAe,CACf,aAAc,CACd,6BA9Ee,CA+Ef,uCAAwC,CACxC,yCAA0C,CAC1C,0CAA2C,CA/E9C,6BAoFE,iBAAkB,CAClB,2EAA6E,CAC7E,SAAU,CAtFZ,8BA0FE,kBAAmB,CACnB,yCAA0C,CAC1C,SAAU\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"b0001f9\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$arrow-width: 10px;\\n\\n.popover {\\n\\tz-index: 100000;\\n\\tdisplay: block !important;\\n\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t&__inner {\\n\\t\\tpadding: 0;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground: var(--color-main-background);\\n\\t}\\n\\n\\t&__arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: $arrow-width;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n\\n\\t&[x-placement^='top'] {\\n\\t\\tmargin-bottom: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='bottom'] {\\n\\t\\tmargin-top: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='right'] {\\n\\t\\tmargin-left: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='left'] {\\n\\t\\tmargin-right: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue'\n\n/**\n * Validate children of a vue component\n *\n * @param {Object[]} slots the vue component slot\n * @param {String[]} allowed the allowed components name\n * @param {Object} vm the vue component instance\n */\nconst ValidateSlot = (slots, allowed, vm) => {\n\tif (slots === undefined) {\n\t\treturn\n\t}\n\n\tfor (let index = slots.length - 1; index >= 0; index--) {\n\t\tconst node = slots[index]\n\t\t// also check against allowed to avoid uninitiated vnodes with no componentOptions\n\t\tconst isHtmlElement = !node.componentOptions && node.tag && allowed.indexOf(node.tag) === -1\n\t\tconst isVueComponent = !!node.componentOptions && typeof node.componentOptions.tag === 'string'\n\t\tconst isForbiddenComponent = isVueComponent && allowed.indexOf(node.componentOptions.tag) === -1\n\n\t\t// if html element or not a vue component or vue component not in allowed tags\n\t\tif (isHtmlElement || !isVueComponent || isForbiddenComponent) {\n\t\t\t// only warn when html elment or forbidden component\n\t\t\t// sometimes text nodes are present which are hardly removeable by the developer and spam the warnings\n\t\t\tif (isHtmlElement || isForbiddenComponent) {\n\t\t\t\tVue.util.warn(`${isHtmlElement ? node.tag : node.componentOptions.tag} is not allowed inside the ${vm.$options.name} component`, vm)\n\t\t\t}\n\n\t\t\t// cleanup\n\t\t\tslots.splice(index, 1)\n\t\t}\n\t}\n}\n\nexport default ValidateSlot\n","\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Get the first parent component matching the provided name\n *\n * @param {Object} context the context to search from (usualy this)\n * @param {string} name the parent name\n * @returns {Object} the parent component\n */\nconst GetParent = function(context, name) {\n\tlet parent = context.$parent\n\twhile (parent) {\n\t\tif (parent.$options.name === name) {\n\t\t\treturn parent\n\t\t}\n\t\tparent = parent.$parent\n\t}\n}\n\nexport default GetParent\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=style&index=0&id=039e3073&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Actions from './Actions'\n\nexport default Actions\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VPopover',_vm._g(_vm._b({ref:\"popover\",attrs:{\"popover-base-class\":\"popover\",\"popover-wrapper-class\":\"popover__wrapper\",\"popover-arrow-class\":\"popover__arrow\",\"popover-inner-class\":\"popover__inner\"}},'VPopover',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"trigger\"),_vm._v(\" \"),_c('template',{slot:\"popover\"},[_vm._t(\"default\")],2)],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }"],"sourceRoot":""}
1
+ {"version":3,"sources":["webpack://NextcloudVue.[name]/webpack/universalModuleDefinition","webpack://NextcloudVue.[name]/webpack/bootstrap","webpack://NextcloudVue.[name]/./node_modules/css-loader/dist/runtime/cssWithMappingToString.js","webpack://NextcloudVue.[name]/./node_modules/css-loader/dist/runtime/api.js","webpack://NextcloudVue.[name]/./src/utils/Timer.js","webpack://NextcloudVue.[name]/src/components/Modal/Modal.vue","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue?6fc1","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue?a254","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue?b40a","webpack://NextcloudVue.[name]/./src/components/Modal/index.js","webpack://NextcloudVue.[name]/./src/directives/Tooltip/index.scss?afe8","webpack://NextcloudVue.[name]/./src/directives/Tooltip/index.js","webpack://NextcloudVue.[name]/external \"@nextcloud/l10n/dist/gettext\"","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/ChevronLeft\"","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/ChevronRight\"","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/Pause\"","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/Play\"","webpack://NextcloudVue.[name]/./src/directives/Tooltip/index.scss","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue?e51b","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue?01d2","webpack://NextcloudVue.[name]/src/components/Popover/Popover.vue","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue?266e","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/DotsHorizontal\"","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/AppSettingsDialog.vue?abcf","webpack://NextcloudVue.[name]/./src/utils/GenRandomId.js","webpack://NextcloudVue.[name]/./src/components/Popover/index.js","webpack://NextcloudVue.[name]/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://NextcloudVue.[name]/./src/utils/IsMobileState.js","webpack://NextcloudVue.[name]/./src/mixins/isMobile/index.js","webpack://NextcloudVue.[name]/src/components/AppSettingsDialog/AppSettingsDialog.vue","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/AppSettingsDialog.vue?7354","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/AppSettingsDialog.vue?b8f7","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/AppSettingsDialog.vue","webpack://NextcloudVue.[name]/./src/components/AppSettingsDialog/index.js","webpack://NextcloudVue.[name]/./src/mixins/actionGlobal.js","webpack://NextcloudVue.[name]/./src/mixins/l10n.js","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue?3721","webpack://NextcloudVue.[name]/./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack://NextcloudVue.[name]/./src/utils/GetParent.js","webpack://NextcloudVue.[name]/./src/mixins/actionText.js","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue?2507","webpack://NextcloudVue.[name]/src/components/Actions/Actions.vue","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue?b7df","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue?fadb","webpack://NextcloudVue.[name]/./src/components/Actions/Actions.vue","webpack://NextcloudVue.[name]/./src/l10n.js","webpack://NextcloudVue.[name]/external \"v-tooltip\"","webpack://NextcloudVue.[name]/./src/components/Actions/index.js","webpack://NextcloudVue.[name]/./src/utils/ScopeComponent.js","webpack://NextcloudVue.[name]/external \"vue\"","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue?dab4","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue?4244","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue?4841","webpack://NextcloudVue.[name]/src/components/ActionButton/ActionButton.vue","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue?7547","webpack://NextcloudVue.[name]/./src/components/ActionButton/ActionButton.vue","webpack://NextcloudVue.[name]/external \"vue-material-design-icons/Close\"","webpack://NextcloudVue.[name]/external \"debounce\"","webpack://NextcloudVue.[name]/external \"hammerjs\"","webpack://NextcloudVue.[name]/./src/components/ActionButton/index.js","webpack://NextcloudVue.[name]/./src/components/Popover/Popover.vue?463f","webpack://NextcloudVue.[name]/./src/components/Modal/Modal.vue?ff79"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_slicedToArray","arr","Array","isArray","_arrayWithHoles","_i","iterator","_s","_e","_arr","_n","_d","next","done","push","length","err","_iterableToArrayLimit","minLen","_arrayLikeToArray","toString","slice","constructor","from","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","item","_item","content","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","concat","sourceMapping","sourceURLs","sources","map","source","sourceRoot","join","cssWithMappingToString","list","this","mediaQuery","dedupe","alreadyImportedModules","id","timer","callback","delay","started","running","remaining","start","Date","setTimeout","pause","clearTimeout","clear","getTimeLeft","getStateRunning","Modal_Modalvue_type_script_lang_js_","components","ActionButton","Actions","ChevronLeft","ChevronLeft_default","a","ChevronRight","ChevronRight_default","Close","Close_default","Pause","Pause_default","Play","Play_default","directives","tooltip","Tooltip","mixins","l10n","props","title","type","String","default","hasPrevious","Boolean","hasNext","outTransition","enableSlideshow","clearViewDelay","Number","slideshowDelay","slideshowPaused","enableSwipe","spreadNavigation","size","validator","indexOf","canClose","dark","container","mc","showModal","clearView","clearViewTimeout","playing","slideshowTimeout","iconSize","computed","modalTransitionName","playPauseTitle","src_l10n","cssVariables","--slideshow-duration","--icon-size","watch","paused","beforeMount","addEventListener","handleKeydown","beforeDestroy","removeEventListener","off","destroy","mounted","_this","handleMouseMove","external_hammerjs_default","$refs","mask","on","e","handleSwipe","document","body","insertBefore","$el","lastChild","querySelector","appendChild","destroyed","remove","methods","previous","event","resetSlideshow","$emit","close","_this2","keyCode","_this3","togglePlayPause","handleSlideshow","clearSlideshowTimeout","$nextTick","_this4","options","insert","singleton","injectStylesIntoStyleTag_default","Modalvue_type_style_index_0_id_aedc7374_lang_scss_scoped_true_","locals","component","componentNormalizer","_vm","_h","$createElement","_c","_self","attrs","ref","staticClass","class","modal-mask--dark","style","click","mousemove","touchmove","rawName","expression","invisible","trim","_v","modifiers","auto","play-pause-icons--paused","decorative","height","width","stroke","stroke-width","fill","cx","cy","_t","scopedSlots","_u","fn","proxy","mousedown","$event","target","currentTarget","href","preventDefault","stopPropagation","Modalvue_type_custom_index_0_blockType_docs_default","Modal","ScopeComponent","VTooltip","defaultTemplate","SCOPE_VERSION","defaultHtml","defaultDelay","show","hide","require","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0__","_node_modules_css_loader_dist_runtime_cssWithMappingToString_js__WEBPACK_IMPORTED_MODULE_0___default","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__","___CSS_LOADER_EXPORT___","_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default","version","names","mappings","sourcesContent","__webpack_exports__","Popover_Popovervue_type_script_lang_js_","VPopover","$watch","popover","isOpen","val","Popovervue_type_style_index_0_lang_scss_","_g","_b","popover-base-class","popover-wrapper-class","popover-arrow-class","popover-inner-class","$attrs","$listeners","Popovervue_type_custom_index_0_blockType_docs_default","GenRandomId","Math","random","replace","substr","_Popover__WEBPACK_IMPORTED_MODULE_0__","Popover","memo","isOldIE","all","atob","getTarget","styleTarget","HTMLIFrameElement","contentDocument","head","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","idCountMap","identifiers","base","count","index","obj","css","media","sourceMap","references","updater","addStyle","insertStyleElement","createElement","attributes","nonce","nc","keys","forEach","setAttribute","Error","textStore","replaceText","replacement","filter","applyToSingletonTag","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","applyToTag","removeAttribute","firstChild","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","splice","IsMobileState","Vue","isMobile","created","handleWindowResize","documentElement","clientWidth","$on","onIsMobileChanged","$off","AppSettingsDialog_AppSettingsDialogvue_type_script_lang_js_","open","required","showNavigation","selectedSection","linkClicked","addedScrollListener","scroller","hasNavigation","settingsNavigationAriaLabel","$slots","componentOptions","propsData","updated","settingsScroller","handleScroll","getSettingsNavigation","slots","navigationItems","vNode","_vNode$componentOptio","element","newArray","_toConsumableArray","handleSettingsNavigationClick","getElementById","scrollIntoView","behavior","inline","handleCloseModal","scrollTop","unfocusNavigationItem","external_debounce_default","activeElement","className","includes","blur","handleLinkKeydown","keyDownEvent","code","render","createListElemtent","navigation-list__link","navigation-list__link--active","role","aria-selected","tabindex","keydown","aria-label","AppSettingsDialogvue_type_style_index_0_id_603fe898_lang_scss_scoped_true_","staticRenderFns","AppSettingsDialogvue_type_custom_index_0_blockType_docs_default","AppSettingsDialog","vue__WEBPACK_IMPORTED_MODULE_0__","vue__WEBPACK_IMPORTED_MODULE_0___default","before","text","util","warn","$options","$destroy","beforeUpdate","getText","isLongText","_l10n__WEBPACK_IMPORTED_MODULE_0__","normalizeComponent","scriptExports","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate","GetParent","$parent","actionGlobal","icon","closeAfterClick","ariaLabel","isIconUrl","URL","error","onClick","closeMenu","Actions_Actionsvue_type_script_lang_js_","DotsHorizontal","DotsHorizontal_default","VNodes","vnodes","forceMenu","menuTitle","primary","defaultIcon","placement","boundariesElement","Element","disabled","actions","opened","focusIndex","randomId","children","$children","hasMultipleActions","isValidSingleAction","firstActionElement","isDisabled","_this$firstAction","_this$firstAction$$pr","firstAction","$props","firstActionVNode","firstActionBinding","tag","_objectSpread","is","to","exact","firstActionEvent","_this$firstActionVNod","_this$firstActionVNod2","_this$firstActionVNod3","listeners","firstActionEventBinding","firstActionIconSlot","_this$firstAction2","_this$firstAction2$$s","firstActionClass","iconSlotIsPopulated","state","initActions","openMenu","menuButton","focus","onOpen","focusFirstAction","onMouseFocusAction","menuItem","closest","focusableItem","menu","querySelectorAll","focusAction","removeCurrentActive","currentActiveElement","classList","focusElement","liMenuParent","focusPreviousAction","preventIfEvent","focusNextAction","indexLength","focusLastAction","execFirstAction","node","onFocus","onBlur","Actionsvue_type_style_index_0_id_eff40d78_lang_scss_scoped_true_","_obj","rel","aria-hidden","hidden","action-item--open","handle-resize","boundaries-element","update:open","after-show","aria-haspopup","aria-controls","aria-expanded","test-attr","_k","ctrlKey","shiftKey","altKey","metaKey","undefined","Actionsvue_type_custom_index_0_blockType_docs_default","_nextcloud_l10n_dist_gettext__WEBPACK_IMPORTED_MODULE_0__","gtBuilder","getGettextBuilder","detectLocale","TRANSLATIONS","lang","translations","pluralId","msgid","msgid_plural","msgstr","addTranslation","locale","","gt","build","ngettext","gettext","_Actions__WEBPACK_IMPORTED_MODULE_0__","Component","ActionButton_ActionButtonvue_type_script_lang_js_","isFocusable","ActionButtonvue_type_style_index_0_id_71ea20d2_lang_scss_scoped_true_","action--disabled","focusable","backgroundImage","domProps","textContent","ActionButtonvue_type_custom_index_0_blockType_docs_default","_ActionButton__WEBPACK_IMPORTED_MODULE_0__"],"mappings":"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","file":"Components/AppSettingsDialog.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Components/AppSettingsDialog\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/AppSettingsDialog\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/AppSettingsDialog\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/dist/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 235);\n","\"use strict\";\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]); if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nmodule.exports = function cssWithMappingToString(item) {\n var _item = _slicedToArray(item, 4),\n content = _item[1],\n cssMapping = _item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (typeof btoa === \"function\") {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || \"\").concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join(\"\\n\");\n }\n\n return [content].join(\"\\n\");\n};","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nexport default function timer(callback, delay) {\n\tlet id\n\tlet started\n\tlet remaining = delay\n\tlet running\n\n\tthis.start = function() {\n\t\trunning = true\n\t\tstarted = new Date()\n\t\tid = setTimeout(callback, remaining)\n\t}\n\n\tthis.pause = function() {\n\t\trunning = false\n\t\tclearTimeout(id)\n\t\tremaining -= new Date() - started\n\t}\n\n\tthis.clear = function() {\n\t\trunning = false\n\t\tclearTimeout(id)\n\t\tremaining = 0\n\t}\n\n\tthis.getTimeLeft = function() {\n\t\tif (running) {\n\t\t\tthis.pause()\n\t\t\tthis.start()\n\t\t}\n\n\t\treturn remaining\n\t}\n\n\tthis.getStateRunning = function() {\n\t\treturn running\n\t}\n\n\tthis.start()\n}\n","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\n\n```vue\n<template>\n\t<div>\n\t\t<button @click=\"showModal\">Show Modal</button>\n\t\t<modal v-if=\"modal\" @close=\"closeModal\">\n\t\t\t<div class=\"modal__content\">Hello world</div>\n\t\t</modal>\n\t</div>\n</template>\n<style scoped>\n\t.modal__content {\n\t\twidth: 50vw;\n\t\tmargin: 10vw 0;\n\t\ttext-align: center;\n\t}\n\n</style>\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tmodal: false\n\t\t}\n\t},\n\tmethods: {\n\t\tshowModal() {\n\t\t\tthis.modal = true\n\t\t},\n\t\tcloseModal() {\n\t\t\tthis.modal = false\n\t\t}\n\t}\n}\n</script>\n```\n\n</docs>\n<template>\n\t<transition name=\"fade\">\n\t\t<div ref=\"mask\"\n\t\t\tclass=\"modal-mask\"\n\t\t\t:class=\"{ 'modal-mask--dark': dark }\"\n\t\t\t:style=\"cssVariables\"\n\t\t\t@click=\"handleMouseMove\"\n\t\t\t@mousemove=\"handleMouseMove\"\n\t\t\t@touchmove=\"handleMouseMove\">\n\t\t\t<!-- Header -->\n\t\t\t<transition name=\"fade-visibility\">\n\t\t\t\t<div v-show=\"!clearView\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\tinvisible: clearView\n\t\t\t\t\t}\"\n\t\t\t\t\tclass=\"modal-header\">\n\t\t\t\t\t<div v-if=\"title.trim() !== ''\" class=\"modal-title\">\n\t\t\t\t\t\t{{ title }}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"icons-menu\">\n\t\t\t\t\t\t<!-- Play-pause toggle -->\n\t\t\t\t\t\t<button v-if=\"hasNext && enableSlideshow\"\n\t\t\t\t\t\t\tv-tooltip.auto=\"playPauseTitle\"\n\t\t\t\t\t\t\t:class=\"{ 'play-pause-icons--paused': slideshowPaused }\"\n\t\t\t\t\t\t\tclass=\"play-pause-icons\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t@click=\"togglePlayPause\">\n\t\t\t\t\t\t\t<!-- Play/pause icons -->\n\t\t\t\t\t\t\t<Play v-if=\"!playing\"\n\t\t\t\t\t\t\t\t:size=\"iconSize\"\n\t\t\t\t\t\t\t\tclass=\"play-pause-icons__play\"\n\t\t\t\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t\t\t\tdecorative />\n\t\t\t\t\t\t\t<Pause v-else\n\t\t\t\t\t\t\t\t:size=\"iconSize\"\n\t\t\t\t\t\t\t\tclass=\"play-pause-icons__pause\"\n\t\t\t\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t\t\t\tdecorative />\n\t\t\t\t\t\t\t<span class=\"hidden-visually\">\n\t\t\t\t\t\t\t\t{{ playPauseTitle }}\n\t\t\t\t\t\t\t</span>\n\n\t\t\t\t\t\t\t<!-- Progress circle, css animated -->\n\t\t\t\t\t\t\t<svg v-if=\"playing\"\n\t\t\t\t\t\t\t\tclass=\"progress-ring\"\n\t\t\t\t\t\t\t\theight=\"50\"\n\t\t\t\t\t\t\t\twidth=\"50\">\n\t\t\t\t\t\t\t\t<circle class=\"progress-ring__circle\"\n\t\t\t\t\t\t\t\t\tstroke=\"white\"\n\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\tfill=\"transparent\"\n\t\t\t\t\t\t\t\t\tr=\"15\"\n\t\t\t\t\t\t\t\t\tcx=\"25\"\n\t\t\t\t\t\t\t\t\tcy=\"25\" />\n\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t</button>\n\n\t\t\t\t\t\t<!-- Actions menu -->\n\t\t\t\t\t\t<Actions class=\"header-actions\">\n\t\t\t\t\t\t\t<!-- @slot List of actions to show -->\n\t\t\t\t\t\t\t<slot name=\"actions\" />\n\t\t\t\t\t\t</Actions>\n\n\t\t\t\t\t\t<!-- Close modal -->\n\t\t\t\t\t\t<Actions v-if=\"canClose\" class=\"header-close\">\n\t\t\t\t\t\t\t<ActionButton @click=\"close\">\n\t\t\t\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t\t\t\t<Close :size=\"iconSize\" title=\"\" decorative />\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t{{ t('Close') }}\n\t\t\t\t\t\t\t</ActionButton>\n\t\t\t\t\t\t</Actions>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\n\t\t\t<!-- Content wrapper -->\n\t\t\t<transition :name=\"modalTransitionName\">\n\t\t\t\t<div\n\t\t\t\t\tv-show=\"showModal\"\n\t\t\t\t\t:class=\"[\n\t\t\t\t\t\t`modal-wrapper--${size}`,\n\t\t\t\t\t\tspreadNavigation ? 'modal-wrapper--spread-navigation' : ''\n\t\t\t\t\t]\"\n\t\t\t\t\tclass=\"modal-wrapper\"\n\t\t\t\t\t@mousedown.self=\"close\">\n\t\t\t\t\t<!-- Navigation button -->\n\t\t\t\t\t<transition name=\"fade-visibility\">\n\t\t\t\t\t\t<a v-show=\"hasPrevious && !clearView\"\n\t\t\t\t\t\t\tclass=\"prev\"\n\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\tinvisible: clearView || !hasPrevious\n\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t@click.prevent.stop=\"previous\">\n\t\t\t\t\t\t\t<span class=\"icon-previous\">\n\t\t\t\t\t\t\t\t<ChevronLeft :size=\"40\" title=\"\" decorative />\n\t\t\t\t\t\t\t\t<span class=\"hidden-visually\">\n\t\t\t\t\t\t\t\t\t{{ t('Previous') }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</transition>\n\n\t\t\t\t\t<!-- Content -->\n\t\t\t\t\t<div class=\"modal-container\">\n\t\t\t\t\t\t<!-- @slot Modal content to render -->\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<!-- Navigation button -->\n\t\t\t\t\t<transition name=\"fade-visibility\">\n\t\t\t\t\t\t<a v-show=\"hasNext && !clearView\"\n\t\t\t\t\t\t\tclass=\"next\"\n\t\t\t\t\t\t\thref=\"#\"\n\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\tinvisible: clearView || !hasNext\n\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t@click.prevent.stop=\"next\">\n\t\t\t\t\t\t\t<span class=\"icon-next\">\n\t\t\t\t\t\t\t\t<ChevronRight :size=\"40\" title=\"\" decorative />\n\t\t\t\t\t\t\t\t<span class=\"hidden-visually\">\n\t\t\t\t\t\t\t\t\t{{ t('Next') }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</a>\n\t\t\t\t\t</transition>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\t</transition>\n</template>\n\n<script>\nimport Hammer from 'hammerjs'\nimport ChevronLeft from 'vue-material-design-icons/ChevronLeft'\nimport ChevronRight from 'vue-material-design-icons/ChevronRight'\nimport Close from 'vue-material-design-icons/Close'\nimport Pause from 'vue-material-design-icons/Pause'\nimport Play from 'vue-material-design-icons/Play'\n\nimport Actions from '../Actions'\nimport ActionButton from '../ActionButton'\nimport l10n from '../../mixins/l10n'\nimport { t } from '../../l10n'\nimport Tooltip from '../../directives/Tooltip'\nimport Timer from '../../utils/Timer'\n\nexport default {\n\tname: 'Modal',\n\n\tcomponents: {\n\t\tActionButton,\n\t\tActions,\n\t\tChevronLeft,\n\t\tChevronRight,\n\t\tClose,\n\t\tPause,\n\t\tPlay,\n\t},\n\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\n\tmixins: [l10n],\n\n\tprops: {\n\t\t/**\n\t\t * Title to be shown with the modal\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Declare if a previous slide is available\n\t\t */\n\t\thasPrevious: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declare if a next slide is available\n\t\t */\n\t\thasNext: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declare if hiding the modal should be animated\n\t\t */\n\t\toutTransition: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Declare if the slideshow functionality should be enabled\n\t\t */\n\t\tenableSlideshow: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tclearViewDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5000,\n\t\t},\n\t\t/**\n\t\t * Declare the slide interval\n\t\t */\n\t\tslideshowDelay: {\n\t\t\ttype: Number,\n\t\t\tdefault: 5000,\n\t\t},\n\t\t/**\n\t\t * Allow to pause an ongoing slideshow\n\t\t */\n\t\tslideshowPaused: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Enable swipe between slides\n\t\t */\n\t\tenableSwipe: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\tspreadNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\tsize: {\n\t\t\ttype: String,\n\t\t\tdefault: 'normal',\n\t\t\tvalidator: size => {\n\t\t\t\treturn ['normal', 'large', 'full'].indexOf(size) !== -1\n\t\t\t},\n\t\t},\n\t\t/**\n\t\t * Declare if the modal can be closed\n\t\t */\n\t\tcanClose: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: true,\n\t\t},\n\t\t/** Makes the modal backdrop black if true */\n\t\tdark: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the modal container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tmc: null,\n\t\t\tshowModal: false,\n\t\t\tclearView: false,\n\t\t\tclearViewTimeout: null,\n\t\t\tplaying: false,\n\t\t\tslideshowTimeout: null,\n\t\t\ticonSize: 24,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tmodalTransitionName() {\n\t\t\treturn `modal-${this.outTransition ? 'out' : 'in'}`\n\t\t},\n\t\tplayPauseTitle() {\n\t\t\treturn this.playing ? t('Pause slideshow') : t('Start slideshow')\n\t\t},\n\t\tcssVariables() {\n\t\t\treturn {\n\t\t\t\t'--slideshow-duration': this.slideshowDelay + 'ms',\n\t\t\t\t'--icon-size': this.iconSize + 'px',\n\t\t\t}\n\t\t},\n\t},\n\n\twatch: {\n\t\t/**\n\t\t * Handle play/pause of an ongoing slideshow\n\t\t * @param {boolean} paused is the player paused\n\t\t */\n\t\tslideshowPaused(paused) {\n\t\t\tif (this.slideshowTimeout) {\n\t\t\t\tif (paused) {\n\t\t\t\t\tthis.slideshowTimeout.pause()\n\t\t\t\t} else {\n\t\t\t\t\tthis.slideshowTimeout.start()\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n\n\tbeforeMount() {\n\t\twindow.addEventListener('keydown', this.handleKeydown)\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('keydown', this.handleKeydown)\n\t\tthis.mc.off('swipeleft swiperight')\n\t\tthis.mc.destroy()\n\t},\n\tmounted() {\n\t\tthis.showModal = true\n\n\t\t// init clear view\n\t\tthis.handleMouseMove()\n\n\t\tthis.mc = new Hammer(this.$refs.mask)\n\t\tthis.mc.on('swipeleft swiperight', e => {\n\t\t\tthis.handleSwipe(e)\n\t\t})\n\n\t\tif (this.container === 'body') {\n\t\t\t// force mount the component to body\n\t\t\tdocument.body.insertBefore(this.$el, document.body.lastChild)\n\t\t} else {\n\t\t\tconst container = document.querySelector(this.container)\n\t\t\tcontainer.appendChild(this.$el)\n\t\t}\n\n\t},\n\tdestroyed() {\n\t\tthis.$el.remove()\n\t},\n\n\tmethods: {\n\t\t// Events emitters\n\t\tprevious(event) {\n\t\t\t// do not send the event if nothing is available\n\t\t\tif (this.hasPrevious) {\n\t\t\t\t// if data is set, then it's a user mouse event\n\t\t\t\t// and not the slideshow handler, therefore\n\t\t\t\t// we reset the timer\n\t\t\t\tif (event) {\n\t\t\t\t\tthis.resetSlideshow()\n\t\t\t\t}\n\t\t\t\tthis.$emit('previous', event)\n\t\t\t}\n\t\t},\n\t\tnext(event) {\n\t\t\t// do not send the event if nothing is available\n\t\t\tif (this.hasNext) {\n\t\t\t\t// if data is set, then it's a mouse event\n\t\t\t\t// and not the slideshow handler, therefore\n\t\t\t\t// we reset the timer\n\t\t\t\tif (event) {\n\t\t\t\t\tthis.resetSlideshow()\n\t\t\t\t}\n\t\t\t\tthis.$emit('next', event)\n\t\t\t}\n\t\t},\n\t\tclose(data) {\n\t\t\t// do not fire event if forbidden\n\t\t\tif (this.canClose) {\n\t\t\t\tthis.showModal = false\n\n\t\t\t\t// delay closing for animation\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t/**\n\t\t\t\t\t * Emitted when the closing animation is finished\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('close', data)\n\t\t\t\t}, 300)\n\t\t\t}\n\t\t},\n\n\t\t// Key Handlers\n\t\thandleKeydown(e) {\n\t\t\tswitch (e.keyCode) {\n\t\t\tcase 37: // left arrow\n\t\t\t\tthis.previous(e)\n\t\t\t\tbreak\n\t\t\tcase 13: // enter key\n\t\t\tcase 39: // rigth arrow\n\t\t\t\tthis.next(e)\n\t\t\t\tbreak\n\t\t\tcase 27: // escape key\n\t\t\t\tthis.close(e)\n\t\t\t\tbreak\n\t\t\t}\n\t\t},\n\t\thandleSwipe(e) {\n\t\t\tif (this.enableSwipe) {\n\t\t\t\tif (e.type === 'swipeleft') {\n\t\t\t\t\t// swiping to left to go to the next item\n\t\t\t\t\tthis.next(e)\n\t\t\t\t} else if (e.type === 'swiperight') {\n\t\t\t\t\t// swiping to right to go back to the previous item\n\t\t\t\t\tthis.previous(e)\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thandleMouseMove() {\n\t\t\tif (this.clearViewDelay > 0) {\n\t\t\t\tthis.clearView = false\n\t\t\t\tclearTimeout(this.clearViewTimeout)\n\t\t\t\tthis.clearViewTimeout = setTimeout(() => {\n\t\t\t\t\tthis.clearView = true\n\t\t\t\t}, this.clearViewDelay)\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Toggle the slideshow state\n\t\t */\n\t\ttogglePlayPause() {\n\t\t\tthis.playing = !this.playing\n\t\t\tif (this.playing) {\n\t\t\t\tthis.handleSlideshow()\n\t\t\t} else {\n\t\t\t\tthis.clearSlideshowTimeout()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Reset the slideshow timer and keep going if it was on\n\t\t */\n\t\tresetSlideshow() {\n\t\t\tthis.playing = !this.playing\n\t\t\tthis.clearSlideshowTimeout()\n\t\t\tthis.$nextTick(function() {\n\t\t\t\tthis.togglePlayPause()\n\t\t\t})\n\t\t},\n\n\t\t/**\n\t\t * Handle the slideshow timer and next event\n\t\t */\n\t\thandleSlideshow() {\n\t\t\tthis.playing = true\n\t\t\tif (this.hasNext) {\n\t\t\t\tthis.slideshowTimeout = new Timer(() => {\n\t\t\t\t\tthis.next()\n\t\t\t\t\tthis.handleSlideshow()\n\t\t\t\t}, this.slideshowDelay)\n\t\t\t} else {\n\t\t\t\tthis.playing = false\n\t\t\t\tthis.clearSlideshowTimeout()\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Clear slideshowTimeout if ongoing\n\t\t */\n\t\tclearSlideshowTimeout() {\n\t\t\tif (this.slideshowTimeout) {\n\t\t\t\tthis.slideshowTimeout.clear()\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n$header-size: 50px;\n\n.modal-mask {\n\tposition: fixed;\n\tz-index: 9998;\n\ttop: 0;\n\tleft: 0;\n\tdisplay: block;\n\twidth: 100%;\n\theight: 100%;\n\tbackground-color: rgba(0, 0, 0, .5);\n\t&--dark {\n\t\tbackground-color: rgba(0, 0, 0, .92);\n\t}\n}\n\n.modal-header {\n\tposition: absolute;\n\tz-index: 10001;\n\ttop: 0;\n\tright: 0;\n\tleft: 0;\n\t// prevent vue show to use display:none and reseting\n\t// the circle animation loop\n\tdisplay: flex !important;\n\talign-items: center;\n\tjustify-content: center;\n\twidth: 100%;\n\theight: $header-size;\n\ttransition: opacity 250ms,\n\t\tvisibility 250ms;\n\n\t// replace display by visibility\n\t&.invisible[style*='display:none'],\n\t&.invisible[style*='display: none'] {\n\t\tvisibility: hidden;\n\t}\n\n\t.modal-title {\n\t\toverflow-x: hidden;\n\t\tbox-sizing: border-box;\n\t\twidth: 100%;\n\t\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\n\t\ttransition: padding ease 100ms;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: #fff;\n\t\tfont-size: $icon-margin;\n\t}\n\n\t// On wider screens the title can be centered\n\t@media only screen and (min-width: $breakpoint-mobile/2) {\n\t\t.modal-title {\n\t\t\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\n\t\t\ttext-align: center;\n\t\t}\n\t}\n\n\t.icons-menu {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: flex-end;\n\n\t\t.header-close {\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tbox-sizing: border-box;\n\t\t\tmargin: ($header-size - $clickable-area) / 2;\n\t\t\tpadding: 0;\n\t\t}\n\n\t\t.play-pause-icons {\n\t\t\tposition: relative;\n\t\t\twidth: $header-size;\n\t\t\theight: $header-size;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tcursor: pointer;\n\t\t\tborder: none;\n\t\t\tbackground-color: transparent;\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\t.play-pause-icons__play,\n\t\t\t\t.play-pause-icons__pause {\n\t\t\t\t\topacity: $opacity_full;\n\t\t\t\t\tborder-radius: $clickable-area / 2;\n\t\t\t\t\tbackground-color: $icon-focus-bg;\n\t\t\t\t}\n\t\t\t}\n\t\t\t&__play,\n\t\t\t&__pause {\n\t\t\t\tbox-sizing: border-box;\n\t\t\t\twidth: $clickable-area;\n\t\t\t\theight: $clickable-area;\n\t\t\t\tmargin: ($header-size - $clickable-area) / 2;\n\t\t\t\tcursor: pointer;\n\t\t\t\topacity: $opacity_normal;\n\t\t\t}\n\t\t}\n\n\t\t.header-actions {\n\t\t\tmargin: ($header-size - $clickable-area) / 2;\n\t\t\tcolor: white;\n\t\t}\n\n\t\t.action-item--single {\n\t\t\tbox-sizing: border-box;\n\t\t\twidth: $clickable-area;\n\t\t\theight: $clickable-area;\n\t\t\tcursor: pointer;\n\t\t\tbackground-position: center;\n\t\t\tbackground-size: 22px;\n\t\t}\n\n\t\t::v-deep button {\n\t\t\t// force white instead of default main text\n\t\t\tcolor: #fff;\n\t\t}\n\n\t\t// Force the Actions menu icon to be the same size as other icons\n\t\t&::v-deep .action-item__menutoggle {\n\t\t\tpadding: 0;\n\t\t\tspan, svg {\n\t\t\t\twidth: var(--icon-size);\n\t\t\t\theight: var(--icon-size);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.modal-wrapper {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\tbox-sizing: border-box;\n\twidth: 100%;\n\theight: 100%;\n\n\t/* Navigation buttons */\n\t.prev,\n\t.next {\n\t\tz-index: 10000;\n\t\t// ignore display: none\n\t\tdisplay: flex !important;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\twidth: 15%;\n\t\tmin-width: 60px;\n\t\theight: 100%;\n\t\ttransition: opacity 250ms,\n\t\t\tvisibility 250ms;\n\n\t\t// we want to keep the elements on page\n\t\t// even if hidden to avoid having a unbalanced\n\t\t// centered content\n\t\t// replace display by visibility\n\t\t&.invisible[style*='display:none'],\n\t\t&.invisible[style*='display: none'] {\n\t\t\tvisibility: hidden;\n\t\t}\n\t}\n\n\t// buttons/icons\n\t.icon-next,\n\t.icon-previous {\n\t\tbox-sizing: border-box;\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\tcolor: white;\n\t\tbackground-image: none;\n\t\tdisplay: flex;\n\t}\n\n\t/* Content */\n\t.modal-container {\n\t\tdisplay: block;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\ttransition: transform 300ms ease;\n\t\tborder-radius: var(--border-radius-large);\n\t\tbackground-color: var(--color-main-background);\n\t\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\n\t}\n\t&:not(&--large):not(&--full) .modal-container {\n\t\tmax-width: 900px;\n\t\tmax-height: 80%;\n\t}\n\n\t// Sizing\n\t&--full {\n\t\t.modal-container {\n\t\t\tmax-width: 100%;\n\t\t\tmax-height: 100%;\n\t\t\tborder-radius: 0;\n\t\t}\n\t}\n\t&--full,\n\t&--spread-navigation {\n\t\t.prev,\n\t\t.next {\n\t\t\tposition: absolute;\n\t\t\twidth: 8%;\n\t\t\theight: 35vw;\n\t\t}\n\t\t.prev {\n\t\t\tleft: 0;\n\t\t}\n\t\t.next {\n\t\t\tright: 0;\n\t\t}\n\t}\n\t&--large {\n\t\t.modal-container {\n\t\t\tmax-width: 85%;\n\t\t\tmax-height: 90%;\n\t\t}\n\t\t.prev,\n\t\t.next {\n\t\t\twidth: 8%;\n\t\t\tmin-width: $clickable-area;\n\t\t\theight: 35vw;\n\t\t}\n\t}\n}\n\n/* TRANSITIONS */\n.fade-enter-active,\n.fade-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.fade-enter,\n.fade-leave-to {\n\topacity: 0;\n}\n\n.fade-visibility-enter,\n.fade-visibility-leave-to {\n\tvisibility: hidden;\n\topacity: 0;\n}\n\n.modal-in-enter-active,\n.modal-in-leave-active,\n.modal-out-enter-active,\n.modal-out-leave-active {\n\ttransition: opacity 250ms;\n}\n\n.modal-in-enter,\n.modal-in-leave-to,\n.modal-out-enter,\n.modal-out-leave-to {\n\topacity: 0;\n}\n\n.modal-in-enter .modal-container,\n.modal-in-leave-to .modal-container {\n\ttransform: scale(.9);\n}\n\n.modal-out-enter .modal-container,\n.modal-out-leave-to .modal-container {\n\ttransform: scale(1.1);\n}\n\n// animated circle\n$radius: 15;\n$pi: 3.14159265358979;\n\n.modal-mask .play-pause-icons {\n\t.progress-ring {\n\t\tposition: absolute;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\ttransform: rotate(-90deg);\n\t\t.progress-ring__circle {\n\t\t\ttransition: 100ms stroke-dashoffset;\n\t\t\ttransform-origin: 50% 50%; // axis compensation\n\t\t\tanimation: progressring linear var(--slideshow-duration) infinite;\n\n\t\t\tstroke-linecap: round;\n\t\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t\t\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\n\t\t}\n\t}\n\t&--paused {\n\t\t.icon-pause {\n\t\t\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\n\t\t}\n\t\t.progress-ring__circle {\n\t\t\tanimation-play-state: paused !important;\n\t\t}\n\t}\n}\n\n// keyframes get scoped too and break the animation name, we need them unscoped\n@keyframes progressring {\n\tfrom {\n\t\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\n\t}\n\tto {\n\t\tstroke-dashoffset: 0;\n\t}\n}\n\n@keyframes breath {\n\t0% {\n\t\topacity: 1;\n\t}\n\t50% {\n\t\topacity: 0;\n\t}\n\t100% {\n\t\topacity: 1;\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=js&\"","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=style&index=0&id=aedc7374&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=aedc7374&scoped=true&\"\nimport script from \"./Modal.vue?vue&type=script&lang=js&\"\nexport * from \"./Modal.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Modal.vue?vue&type=style&index=0&id=aedc7374&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"aedc7374\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Modal.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('transition',{attrs:{\"name\":\"fade\"}},[_c('div',{ref:\"mask\",staticClass:\"modal-mask\",class:{ 'modal-mask--dark': _vm.dark },style:(_vm.cssVariables),on:{\"click\":_vm.handleMouseMove,\"mousemove\":_vm.handleMouseMove,\"touchmove\":_vm.handleMouseMove}},[_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.clearView),expression:\"!clearView\"}],staticClass:\"modal-header\",class:{\n\t\t\t\t\tinvisible: _vm.clearView\n\t\t\t\t}},[(_vm.title.trim() !== '')?_c('div',{staticClass:\"modal-title\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"icons-menu\"},[(_vm.hasNext && _vm.enableSlideshow)?_c('button',{directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.playPauseTitle),expression:\"playPauseTitle\",modifiers:{\"auto\":true}}],staticClass:\"play-pause-icons\",class:{ 'play-pause-icons--paused': _vm.slideshowPaused },attrs:{\"type\":\"button\"},on:{\"click\":_vm.togglePlayPause}},[(!_vm.playing)?_c('Play',{staticClass:\"play-pause-icons__play\",attrs:{\"size\":_vm.iconSize,\"title\":\"\",\"decorative\":\"\"}}):_c('Pause',{staticClass:\"play-pause-icons__pause\",attrs:{\"size\":_vm.iconSize,\"title\":\"\",\"decorative\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.playPauseTitle)+\"\\n\\t\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),(_vm.playing)?_c('svg',{staticClass:\"progress-ring\",attrs:{\"height\":\"50\",\"width\":\"50\"}},[_c('circle',{staticClass:\"progress-ring__circle\",attrs:{\"stroke\":\"white\",\"stroke-width\":\"2\",\"fill\":\"transparent\",\"r\":\"15\",\"cx\":\"25\",\"cy\":\"25\"}})]):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('Actions',{staticClass:\"header-actions\"},[_vm._t(\"actions\")],2),_vm._v(\" \"),(_vm.canClose)?_c('Actions',{staticClass:\"header-close\"},[_c('ActionButton',{on:{\"click\":_vm.close},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('Close',{attrs:{\"size\":_vm.iconSize,\"title\":\"\",\"decorative\":\"\"}})]},proxy:true}],null,false,1372351874)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Close'))+\"\\n\\t\\t\\t\\t\\t\\t\")])],1):_vm._e()],1)])]),_vm._v(\" \"),_c('transition',{attrs:{\"name\":_vm.modalTransitionName}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showModal),expression:\"showModal\"}],staticClass:\"modal-wrapper\",class:[\n\t\t\t\t\t(\"modal-wrapper--\" + _vm.size),\n\t\t\t\t\t_vm.spreadNavigation ? 'modal-wrapper--spread-navigation' : ''\n\t\t\t\t],on:{\"mousedown\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.close($event)}}},[_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasPrevious && !_vm.clearView),expression:\"hasPrevious && !clearView\"}],staticClass:\"prev\",class:{\n\t\t\t\t\t\t\tinvisible: _vm.clearView || !_vm.hasPrevious\n\t\t\t\t\t\t},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.previous($event)}}},[_c('span',{staticClass:\"icon-previous\"},[_c('ChevronLeft',{attrs:{\"size\":40,\"title\":\"\",\"decorative\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Previous'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)])]),_vm._v(\" \"),_c('div',{staticClass:\"modal-container\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('transition',{attrs:{\"name\":\"fade-visibility\"}},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasNext && !_vm.clearView),expression:\"hasNext && !clearView\"}],staticClass:\"next\",class:{\n\t\t\t\t\t\t\tinvisible: _vm.clearView || !_vm.hasNext\n\t\t\t\t\t\t},attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.next($event)}}},[_c('span',{staticClass:\"icon-next\"},[_c('ChevronRight',{attrs:{\"size\":40,\"title\":\"\",\"decorative\":\"\"}}),_vm._v(\" \"),_c('span',{staticClass:\"hidden-visually\"},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('Next'))+\"\\n\\t\\t\\t\\t\\t\\t\\t\")])],1)])])],1)])],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport ScopeComponent from '../../utils/ScopeComponent'\nimport Modal from './Modal'\n\nScopeComponent(Modal)\n\nexport default Modal\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!./index.scss\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","/**\n * @copyright Copyright (c) 2019 Julius Härtl <jus@bitgrid.net>\n *\n * @author Julius Härtl <jus@bitgrid.net>\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { VTooltip } from 'v-tooltip'\nimport './index.scss'\n\n// force scope the tooltip and use .vue-tooltip\n// instead of .tooltip to avoid server compatibility\n// issues and the use of !important\nVTooltip.options.defaultTemplate = `<div class=\"vue-tooltip\" role=\"tooltip\" data-v-${SCOPE_VERSION}><div class=\"tooltip-arrow\"></div><div class=\"tooltip-inner\"></div></div>`\nVTooltip.options.defaultHtml = false\nVTooltip.options.defaultDelay = { show: 500, hide: 200 }\n\nexport default VTooltip\n","module.exports = require(\"@nextcloud/l10n/dist/gettext\");","module.exports = require(\"vue-material-design-icons/ChevronLeft\");","module.exports = require(\"vue-material-design-icons/ChevronRight\");","module.exports = require(\"vue-material-design-icons/Pause\");","module.exports = require(\"vue-material-design-icons/Play\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.vue-tooltip[data-v-0a7f1bc]{position:absolute;z-index:100000;right:auto;left:auto;display:block;margin:0;margin-top:-3px;padding:10px 0;text-align:left;text-align:start;opacity:0;line-height:1.6;line-break:auto;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.vue-tooltip[data-v-0a7f1bc][x-placement^='top'] .tooltip-arrow{bottom:0;margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-0a7f1bc][x-placement^='bottom'] .tooltip-arrow{top:0;margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent;border-right-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-0a7f1bc][x-placement^='right'] .tooltip-arrow{right:100%;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent;border-bottom-color:transparent;border-left-color:transparent}.vue-tooltip[data-v-0a7f1bc][x-placement^='left'] .tooltip-arrow{left:100%;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent;border-right-color:transparent;border-bottom-color:transparent}.vue-tooltip[data-v-0a7f1bc][aria-hidden='true']{visibility:hidden;transition:opacity .15s, visibility .15s;opacity:0}.vue-tooltip[data-v-0a7f1bc][aria-hidden='false']{visibility:visible;transition:opacity .15s;opacity:1}.vue-tooltip[data-v-0a7f1bc] .tooltip-inner{max-width:350px;padding:5px 8px;text-align:center;color:var(--color-main-text);border-radius:var(--border-radius);background-color:var(--color-main-background)}.vue-tooltip[data-v-0a7f1bc] .tooltip-arrow{position:absolute;z-index:1;width:0;height:0;margin:0;border-style:solid;border-color:var(--color-main-background)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./index.scss\"],\"names\":[],\"mappings\":\"AAGA,sBACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCOxB,6BACC,iBAAkB,CAClB,cAAe,CACf,UAAW,CACX,SAAU,CACV,aAAc,CACd,QAAS,CAET,eAAgB,CAChB,cAAe,CACf,eAAgB,CAChB,gBAAiB,CACjB,SAAU,CACV,eAAgB,CAEhB,eAAgB,CAChB,sDAAuD,CAhBxD,gEAqBG,QAAS,CACT,YAAa,CACb,eAAgB,CAChB,6BA1Be,CA2Bf,8BAA+B,CAC/B,+BAAgC,CAChC,6BAA8B,CA3BjC,mEAkCG,KAAM,CACN,YAAa,CACb,eAAgB,CAChB,6BAvCe,CAwCf,4BAA6B,CAC7B,8BAA+B,CAC/B,6BAA8B,CAxCjC,kEA+CG,UAAW,CACX,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,4BAA6B,CAC7B,+BAAgC,CAChC,6BAA8B,CArDjC,iEA4DG,SAAU,CACV,cAAe,CACf,aAAc,CACd,6BAjEe,CAkEf,4BAA6B,CAC7B,8BAA+B,CAC/B,+BAAgC,CAlEnC,iDAwEE,iBAAkB,CAClB,wCAAyC,CACzC,SAAU,CA1EZ,kDA6EE,kBAAmB,CACnB,uBAAwB,CACxB,SAAU,CA/EZ,4CAoFE,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,4BAA6B,CAC7B,kCAAmC,CACnC,6CAA8C,CAzFhD,4CA8FE,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,QAAS,CACT,kBAAmB,CACnB,yCAA0C\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"0a7f1bc\\\"; @import 'variables'; @import 'material-icons';\\n/**\\n* @copyright Copyright (c) 2016, John Molakvoæ <skjnldsv@protonmail.com>\\n* @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl>\\n* @copyright Copyright (c) 2016, Jan-Christoph Borchardt <hey@jancborchardt.net>\\n* @copyright Copyright (c) 2016, Erik Pellikka <erik@pellikka.org>\\n* @copyright Copyright (c) 2015, Vincent Petry <pvince81@owncloud.com>\\n*\\n* Bootstrap v3.3.5 (http://getbootstrap.com)\\n* Copyright 2011-2015 Twitter, Inc.\\n* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\\n*/\\n\\n$arrow-width: 10px;\\n\\n.vue-tooltip[data-v-#{$scope_version}] {\\n\\tposition: absolute;\\n\\tz-index: 100000;\\n\\tright: auto;\\n\\tleft: auto;\\n\\tdisplay: block;\\n\\tmargin: 0;\\n\\t/* default to top */\\n\\tmargin-top: -3px;\\n\\tpadding: 10px 0;\\n\\ttext-align: left;\\n\\ttext-align: start;\\n\\topacity: 0;\\n\\tline-height: 1.6;\\n\\n\\tline-break: auto;\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t// TOP\\n\\t&[x-placement^='top'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tbottom: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// BOTTOM\\n\\t&[x-placement^='bottom'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\ttop: 0;\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// RIGHT\\n\\t&[x-placement^='right'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tright: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t\\tborder-left-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// LEFT\\n\\t&[x-placement^='left'] {\\n\\t\\t.tooltip-arrow {\\n\\t\\t\\tleft: 100%;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent;\\n\\t\\t\\tborder-right-color: transparent;\\n\\t\\t\\tborder-bottom-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// HIDDEN / SHOWN\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity .15s, visibility .15s;\\n\\t\\topacity: 0;\\n\\t}\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity .15s;\\n\\t\\topacity: 1;\\n\\t}\\n\\n\\t// CONTENT\\n\\t.tooltip-inner {\\n\\t\\tmax-width: 350px;\\n\\t\\tpadding: 5px 8px;\\n\\t\\ttext-align: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t}\\n\\n\\t// ARROW\\n\\t.tooltip-arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: 0;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('VPopover',_vm._g(_vm._b({ref:\"popover\",attrs:{\"popover-base-class\":\"popover\",\"popover-wrapper-class\":\"popover__wrapper\",\"popover-arrow-class\":\"popover__arrow\",\"popover-inner-class\":\"popover__inner\"},scopedSlots:_vm._u([{key:\"popover\",fn:function(){return [_vm._t(\"default\")]},proxy:true}],null,true)},'VPopover',_vm.$attrs,false),_vm.$listeners),[_vm._t(\"trigger\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @author Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n-->\n\n<docs>\n\n### General description\n\nThis component is just a wrapper for the v-component plugin by Akryum,\nplease refer to this documentation for customization:\nhttps://github.com/Akryum/v-tooltip\n\nThis components has two slots:\n* 'trigger' which can be any html element and it will trigger the popover\nthis slot is optional since you can toggle the popover also by updating the\nopen prop on this component;\n\n* a default slot that is for the content of the popover.\n\n### Examples\n\nWith a `<button>` as a trigger:\n```vue\n<template>\n\t<Popover>\n\t\t<template #trigger>\n\t\t\t<button> I am the trigger </button>\n\t\t</template>\n\t\t<template>\n\t\t<h2>this is some content</h2>\n\t\t</template>\n\t</Popover>\n</template>\n```\n</docs>\n\n<template>\n\t<VPopover\n\t\tref=\"popover\"\n\t\tv-bind=\"$attrs\"\n\t\tpopover-base-class=\"popover\"\n\t\tpopover-wrapper-class=\"popover__wrapper\"\n\t\tpopover-arrow-class=\"popover__arrow\"\n\t\tpopover-inner-class=\"popover__inner\"\n\t\tv-on=\"$listeners\">\n\t\t<!-- This will be the popover target (for the events and position) -->\n\t\t<slot name=\"trigger\" />\n\t\t<!-- This will be the content of the popover -->\n\t\t<template #popover>\n\t\t\t<slot />\n\t\t</template>\n\t</VPopover>\n</template>\n\n<script>\nimport { VPopover } from 'v-tooltip'\n\nexport default {\n\tname: 'Popover',\n\tcomponents: {\n\t\tVPopover,\n\t},\n\n\tmounted() {\n\t\tthis.$watch(\n\t\t\t() => {\n\t\t\t\t// required because v-tooltip doesn't provide events\n\t\t\t\t// and @show is too early\n\t\t\t\t// see https://github.com/Akryum/v-tooltip/issues/661\n\t\t\t\treturn this.$refs.popover.isOpen\n\t\t\t},\n\t\t\t(val) => {\n\t\t\t\tif (val) {\n\t\t\t\t\t/**\n\t\t\t\t\t * Triggered after the tooltip was visually displayed.\n\t\t\t\t\t *\n\t\t\t\t\t * This is different from the 'show' and 'apply-show' which\n\t\t\t\t\t * run earlier than this where there is no guarantee that the\n\t\t\t\t\t * tooltip is already visible and in the DOM.\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('after-show')\n\t\t\t\t} else {\n\t\t\t\t\t/**\n\t\t\t\t\t * Triggered after the tooltip was visually hidden.\n\t\t\t\t\t */\n\t\t\t\t\tthis.$emit('after-hide')\n\t\t\t\t}\n\t\t\t}\n\t\t)\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n$arrow-width: 10px;\n\n.popover {\n\tz-index: 100000;\n\tdisplay: block !important;\n\n\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\n\n\t&__inner {\n\t\tpadding: 0;\n\t\tcolor: var(--color-main-text);\n\t\tborder-radius: var(--border-radius);\n\t\tbackground: var(--color-main-background);\n\t}\n\n\t&__arrow {\n\t\tposition: absolute;\n\t\tz-index: 1;\n\t\twidth: 0;\n\t\theight: 0;\n\t\tmargin: $arrow-width;\n\t\tborder-style: solid;\n\t\tborder-color: var(--color-main-background);\n\t}\n\n\t&[x-placement^='top'] {\n\t\tmargin-bottom: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\tbottom: -$arrow-width;\n\t\t\tleft: calc(50% - $arrow-width);\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='bottom'] {\n\t\tmargin-top: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: -$arrow-width;\n\t\t\tleft: calc(50% - $arrow-width);\n\t\t\tmargin-top: 0;\n\t\t\tmargin-bottom: 0;\n\t\t\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='right'] {\n\t\tmargin-left: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: calc(50% - $arrow-width);\n\t\t\tleft: -$arrow-width;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width $arrow-width $arrow-width 0;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t\tborder-left-color: transparent !important;\n\t\t}\n\t}\n\n\t&[x-placement^='left'] {\n\t\tmargin-right: $arrow-width;\n\n\t\t.popover__arrow {\n\t\t\ttop: calc(50% - $arrow-width);\n\t\t\tright: -$arrow-width;\n\t\t\tmargin-right: 0;\n\t\t\tmargin-left: 0;\n\t\t\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\n\t\t\tborder-top-color: transparent !important;\n\t\t\tborder-right-color: transparent !important;\n\t\t\tborder-bottom-color: transparent !important;\n\t\t}\n\t}\n\n\t&[aria-hidden='true'] {\n\t\tvisibility: hidden;\n\t\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\n\t\topacity: 0;\n\t}\n\n\t&[aria-hidden='false'] {\n\t\tvisibility: visible;\n\t\ttransition: opacity var(--animation-quick);\n\t\topacity: 1;\n\t}\n}\n\n</style>\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Popover.vue?vue&type=style&index=0&lang=scss&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./Popover.vue?vue&type=template&id=140d98c2&\"\nimport script from \"./Popover.vue?vue&type=script&lang=js&\"\nexport * from \"./Popover.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Popover.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Popover.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","module.exports = require(\"vue-material-design-icons/DotsHorizontal\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-603fe898]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}[data-v-603fe898] .modal-wrapper .modal-container{display:flex}.app-settings[data-v-603fe898]{display:flex;width:100%}.app-settings__navigation[data-v-603fe898]{min-width:200px;margin-right:20px}.app-settings__content[data-v-603fe898]{max-width:100vw;overflow-y:auto;overflow-x:hidden;padding:24px}.navigation-list[data-v-603fe898]{height:100%;overflow-y:auto;padding:12px}.navigation-list__link[data-v-603fe898]{display:block;font-size:16px;height:44px;margin:4px 0;line-height:44px;border-radius:var(--border-radius-pill);font-weight:bold;padding:0 20px;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;background-color:transparent;border:none}.navigation-list__link[data-v-603fe898]:hover,.navigation-list__link[data-v-603fe898]:focus{background-color:var(--color-background-hover)}.navigation-list__link--active[data-v-603fe898]{background-color:var(--color-primary-light) !important}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./AppSettingsDialog.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCsRxB,kDACC,YAAa,CACb,+BAGA,YAAa,CACb,UAAW,CACX,2CACC,eAAgB,CAChB,iBAAkB,CAClB,wCAEA,eAAgB,CAChB,eAAgB,CAChB,iBAAkB,CAClB,YAAa,CACb,kCAID,WAAY,CACZ,eAAgB,CAChB,YAAa,CACb,wCACC,aAAc,CACd,cAAe,CACf,WC/RmB,CDgSnB,YAAa,CACb,gBCjSmB,CDkSnB,uCAAwC,CACxC,gBAAiB,CACjB,cAAe,CACf,cAAe,CACf,kBAAmB,CACnB,sBAAuB,CACvB,eAAgB,CAChB,4BAA6B,CAC7B,WAAY,CAdZ,4FAiBC,8CAA+C,CAC/C,gDAEA,sDAAuD\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"0a7f1bc\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n::v-deep .modal-wrapper .modal-container {\\n\\tdisplay: flex;\\n}\\n\\n.app-settings {\\n\\tdisplay: flex;\\n\\twidth: 100%;\\n\\t&__navigation {\\n\\t\\tmin-width: 200px;\\n\\t\\tmargin-right: 20px;\\n\\t}\\n\\t&__content {\\n\\t\\tmax-width: 100vw;\\n\\t\\toverflow-y: auto;\\n\\t\\toverflow-x: hidden;\\n\\t\\tpadding: 24px;\\n\\t}\\n}\\n\\n.navigation-list {\\n\\theight: 100%;\\n\\toverflow-y: auto;\\n\\tpadding: 12px;\\n\\t&__link {\\n\\t\\tdisplay: block;\\n\\t\\tfont-size: 16px;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin: 4px 0;\\n\\t\\tline-height: $clickable-area;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\tfont-weight: bold;\\n\\t\\tpadding: 0 20px;\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\toverflow: hidden;\\n\\t\\tbackground-color: transparent;\\n\\t\\tborder: none;\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t\\t&--active {\\n\\t\\t\\tbackground-color: var(--color-primary-light) !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\n/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst GenRandomId = (length) => {\n\treturn Math.random()\n\t\t.toString(36)\n\t\t.replace(/[^a-z]+/g, '')\n\t\t.substr(0, length || 5)\n}\n\nexport default GenRandomId\n","/**\n * @copyright Copyright (c) 2019 Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @author Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Popover from './Popover'\n\nexport default Popover\n","\"use strict\";\n\nvar isOldIE = function isOldIE() {\n var memo;\n return function memorize() {\n if (typeof memo === 'undefined') {\n // Test for IE <= 9 as proposed by Browserhacks\n // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n // Tests for existence of standard globals is to allow style-loader\n // to operate correctly into non-standard environments\n // @see https://github.com/webpack-contrib/style-loader/issues/177\n memo = Boolean(window && document && document.all && !window.atob);\n }\n\n return memo;\n };\n}();\n\nvar getTarget = function getTarget() {\n var memo = {};\n return function memorize(target) {\n if (typeof memo[target] === 'undefined') {\n var styleTarget = document.querySelector(target); // Special case to return head of iframe instead of iframe itself\n\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n\n memo[target] = styleTarget;\n }\n\n return memo[target];\n };\n}();\n\nvar stylesInDom = [];\n\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n\n for (var i = 0; i < stylesInDom.length; i++) {\n if (stylesInDom[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n\n return result;\n}\n\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var index = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3]\n };\n\n if (index !== -1) {\n stylesInDom[index].references++;\n stylesInDom[index].updater(obj);\n } else {\n stylesInDom.push({\n identifier: identifier,\n updater: addStyle(obj, options),\n references: 1\n });\n }\n\n identifiers.push(identifier);\n }\n\n return identifiers;\n}\n\nfunction insertStyleElement(options) {\n var style = document.createElement('style');\n var attributes = options.attributes || {};\n\n if (typeof attributes.nonce === 'undefined') {\n var nonce = typeof __webpack_nonce__ !== 'undefined' ? __webpack_nonce__ : null;\n\n if (nonce) {\n attributes.nonce = nonce;\n }\n }\n\n Object.keys(attributes).forEach(function (key) {\n style.setAttribute(key, attributes[key]);\n });\n\n if (typeof options.insert === 'function') {\n options.insert(style);\n } else {\n var target = getTarget(options.insert || 'head');\n\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n\n target.appendChild(style);\n }\n\n return style;\n}\n\nfunction removeStyleElement(style) {\n // istanbul ignore if\n if (style.parentNode === null) {\n return false;\n }\n\n style.parentNode.removeChild(style);\n}\n/* istanbul ignore next */\n\n\nvar replaceText = function replaceText() {\n var textStore = [];\n return function replace(index, replacement) {\n textStore[index] = replacement;\n return textStore.filter(Boolean).join('\\n');\n };\n}();\n\nfunction applyToSingletonTag(style, index, remove, obj) {\n var css = remove ? '' : obj.media ? \"@media \".concat(obj.media, \" {\").concat(obj.css, \"}\") : obj.css; // For old IE\n\n /* istanbul ignore if */\n\n if (style.styleSheet) {\n style.styleSheet.cssText = replaceText(index, css);\n } else {\n var cssNode = document.createTextNode(css);\n var childNodes = style.childNodes;\n\n if (childNodes[index]) {\n style.removeChild(childNodes[index]);\n }\n\n if (childNodes.length) {\n style.insertBefore(cssNode, childNodes[index]);\n } else {\n style.appendChild(cssNode);\n }\n }\n}\n\nfunction applyToTag(style, options, obj) {\n var css = obj.css;\n var media = obj.media;\n var sourceMap = obj.sourceMap;\n\n if (media) {\n style.setAttribute('media', media);\n } else {\n style.removeAttribute('media');\n }\n\n if (sourceMap && typeof btoa !== 'undefined') {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n } // For old IE\n\n /* istanbul ignore if */\n\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n while (style.firstChild) {\n style.removeChild(style.firstChild);\n }\n\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar singleton = null;\nvar singletonCounter = 0;\n\nfunction addStyle(obj, options) {\n var style;\n var update;\n var remove;\n\n if (options.singleton) {\n var styleIndex = singletonCounter++;\n style = singleton || (singleton = insertStyleElement(options));\n update = applyToSingletonTag.bind(null, style, styleIndex, false);\n remove = applyToSingletonTag.bind(null, style, styleIndex, true);\n } else {\n style = insertStyleElement(options);\n update = applyToTag.bind(null, style, options);\n\n remove = function remove() {\n removeStyleElement(style);\n };\n }\n\n update(obj);\n return function updateStyle(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) {\n return;\n }\n\n update(obj = newObj);\n } else {\n remove();\n }\n };\n}\n\nmodule.exports = function (list, options) {\n options = options || {}; // Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n // tags it will allow on a page\n\n if (!options.singleton && typeof options.singleton !== 'boolean') {\n options.singleton = isOldIE();\n }\n\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n\n if (Object.prototype.toString.call(newList) !== '[object Array]') {\n return;\n }\n\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDom[index].references--;\n }\n\n var newLastIdentifiers = modulesToDom(newList, options);\n\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n\n var _index = getIndexByIdentifier(_identifier);\n\n if (stylesInDom[_index].references === 0) {\n stylesInDom[_index].updater();\n\n stylesInDom.splice(_index, 1);\n }\n }\n\n lastIdentifiers = newLastIdentifiers;\n };\n};","/**\n * @copyright Copyright (c) 2019 Kristof Hamann, Paul Schwörer\n *\n * @author Kristof Hamann\n * @author Paul Schwörer\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport Vue from 'vue'\n\nexport const IsMobileState = new Vue({\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\twatch: {\n\t\tisMobile(val) {\n\t\t\tthis.$emit('changed', val)\n\t\t},\n\t},\n\tcreated() {\n\t\twindow.addEventListener('resize', this.handleWindowResize)\n\t\tthis.handleWindowResize()\n\t},\n\tbeforeDestroy() {\n\t\twindow.removeEventListener('resize', this.handleWindowResize)\n\t},\n\tmethods: {\n\t\thandleWindowResize() {\n\t\t\tthis.isMobile = document.documentElement.clientWidth < 1024\n\t\t},\n\t},\n})\n","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport { IsMobileState } from '../../utils/IsMobileState'\n\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tisMobile: false,\n\t\t}\n\t},\n\tmounted() {\n\t\tIsMobileState.$on('changed', this.onIsMobileChanged)\n\t\tthis.isMobile = IsMobileState.isMobile\n\t},\n\tbeforeDestroy() {\n\t\tIsMobileState.$off('changed', this.onIsMobileChanged)\n\t},\n\tmethods: {\n\t\tonIsMobileChanged(val) {\n\t\t\tthis.isMobile = val\n\t\t},\n\t},\n}\n","<!--\n - @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @author Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n<docs>\nJust nest the `AppSettingSections` component into `AppSettingsDialog`,\nproviding the section's title prop. You can put your settings within each\n`AppSettingsSection` component.\n\n```vue\n<template>\n\t<div>\n\t\t<button @click=\"settingsOpen = true\">Show Settings</button>\n\t\t<AppSettingsDialog :open.sync=\"settingsOpen\" >\n\t\t\t<AppSettingsSection title=\"Example title 1\">\n\t\t\t\tSome example content\n\t\t\t</AppSettingsSection>\n\t\t\t<AppSettingsSection title=\"Example title 2\">\n\t\t\t\tSome more content\n\t\t\t</AppSettingsSection>\n\t\t</AppSettingsDialog>\n\t</div>\n</template>\n\n<script>\nexport default {\n\tdata() {\n\t\treturn {\n\t\t\tsettingsOpen: false,\n\t\t}\n\t},\n}\n</script>\n```\n</docs>\n\n<script>\nimport Modal from '../Modal'\nimport isMobile from '../../mixins/isMobile'\nimport { t } from '../../l10n'\n\nimport debounce from 'debounce'\n\nexport default {\n\n\tname: 'AppSettingsDialog',\n\n\tcomponents: {\n\t\tModal,\n\t},\n\n\tmixins: [isMobile],\n\n\tprops: {\n\t\t/**\n\t\t * Determines the open / closed state of the modal\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true,\n\t\t},\n\t\t/**\n\t\t * Shows the navigation on desktop if true\n\t\t */\n\t\tshowNavigation: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Selector for the popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tselectedSection: '',\n\t\t\tlinkClicked: false,\n\t\t\taddedScrollListener: false,\n\t\t\tscroller: null,\n\t\t}\n\t},\n\n\tcomputed: {\n\n\t\thasNavigation() {\n\t\t\tif (this.isMobile || !this.showNavigation) {\n\t\t\t\treturn false\n\t\t\t} else {\n\t\t\t\treturn true\n\t\t\t}\n\t\t},\n\n\t\tsettingsNavigationAriaLabel() {\n\t\t\treturn t('Settings navigation')\n\t\t},\n\t},\n\n\tmounted() {\n\t\t// Select first settings section\n\t\tthis.selectedSection = this.$slots.default[0].componentOptions.propsData.title\n\t},\n\n\tupdated() {\n\t\t// Check that the scroller element has been mounted\n\t\tif (!this.$refs.settingsScroller) {\n\t\t\treturn\n\t\t}\n\t\t// Get the scroller element\n\t\tthis.scroller = this.$refs.settingsScroller\n\t\tif (!this.addedScrollListener) {\n\t\t\tthis.scroller.addEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = true\n\t\t}\n\n\t},\n\n\tmethods: {\n\n\t\t/**\n\t\t * Builds the settings navigation menu\n\t\t * @param {object} slots The default slots object passed from the render function.\n\t\t * @returns {array} the navigation items\n\t\t */\n\t\tgetSettingsNavigation(slots) {\n\t\t\t// Array of navigationitems strings\n\t\t\tconst navigationItems = slots.filter(vNode => vNode.componentOptions).map(vNode => vNode.componentOptions.propsData?.title)\n\t\t\t// Check for the uniqueness of section titles\n\t\t\tnavigationItems.forEach((element, index) => {\n\t\t\t\tconst newArray = [...navigationItems]\n\t\t\t\tnewArray.splice(index, 1)\n\t\t\t\tif (newArray.indexOf(element) !== -1) {\n\t\t\t\t\tthrow new Error(`Duplicate section title found: ${element}. Settings navigation sections must have unique section titles.`)\n\t\t\t\t}\n\t\t\t})\n\t\t\treturn navigationItems\n\t\t},\n\n\t\t/**\n\t\t * Scrolls the content to the selected settings section.absolute\n\t\t * @param {string} item the name of the section\n\t\t */\n\t\thandleSettingsNavigationClick(item) {\n\t\t\tthis.linkClicked = true\n\t\t\tdocument.getElementById('settings-section_' + item.replace(/\\s+/g, '')).scrollIntoView({\n\t\t\t\tbehavior: 'smooth',\n\t\t\t\tinline: 'nearest',\n\t\t\t})\n\t\t\tthis.selectedSection = item\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.linkClicked = false\n\t\t\t}, 1000)\n\t\t},\n\n\t\thandleCloseModal() {\n\t\t\tthis.$emit('update:open', false)\n\t\t\t// Remove scroll listener each time the modal is closed\n\t\t\tthis.scroller.removeEventListener('scroll', this.handleScroll)\n\t\t\tthis.addedScrollListener = false\n\t\t\tthis.scroller.scrollTop = 0\n\t\t},\n\n\t\thandleScroll() {\n\t\t\tif (!this.linkClicked) {\n\t\t\t\tthis.unfocusNavigationItem()\n\t\t\t}\n\t\t},\n\n\t\t// Remove selected section once the user starts scrolling\n\t\tunfocusNavigationItem: debounce(function() {\n\t\t\tthis.selectedSection = ''\n\t\t\tif (document.activeElement.className.includes('navigation-list__link')) {\n\t\t\t\tdocument.activeElement.blur()\n\t\t\t}\n\t\t}, 300),\n\n\t\thandleLinkKeydown(keyDownEvent, item) {\n\t\t\tif (keyDownEvent.code === 'Enter') {\n\t\t\t\tthis.handleSettingsNavigationClick(item)\n\t\t\t}\n\t\t},\n\t},\n\n\trender(createElement) {\n\t\t/**\n\t\t * Build the navigation\n\t\t * @returns {object} the navigation\n\t\t */\n\t\tconst createAppSettingsNavigation = () => {\n\t\t\tif (this.hasNavigation) {\n\t\t\t\treturn [createElement('div', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclass: 'app-settings__navigation',\n\t\t\t\t\t\trole: 'tablist',\n\t\t\t\t\t\t'aria-label': this.settingsNavigationAriaLabel,\n\t\t\t\t\t},\n\t\t\t\t}, [createElement('ul', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclass: 'navigation-list',\n\t\t\t\t\t\trole: 'tablist',\n\t\t\t\t\t},\n\t\t\t\t}, this.getSettingsNavigation(this.$slots.default).map(item => {\n\t\t\t\t\treturn createListElemtent(item)\n\t\t\t\t}))])]\n\t\t\t} else {\n\t\t\t\treturn []\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Build each list element in the navigation\n\t\t * @param {object} item the navigation item\n\t\t * @returns {object} the list element\n\t\t */\n\t\tconst createListElemtent = (item) => createElement('li', {}, [createElement('a', {\n\t\t\tclass: {\n\t\t\t\t'navigation-list__link': true,\n\t\t\t\t'navigation-list__link--active': item === this.selectedSection,\n\t\t\t},\n\n\t\t\tattrs: {\n\t\t\t\trole: 'tab',\n\t\t\t\t'aria-selected': item === this.selectedSection,\n\t\t\t\ttabindex: '0',\n\t\t\t},\n\n\t\t\ton: {\n\t\t\t\tclick: () => this.handleSettingsNavigationClick(item),\n\t\t\t\tkeydown: () => this.handleLinkKeydown(event, item),\n\t\t\t},\n\t\t}, item)])\n\n\t\t// Return value of the render function\n\t\tif (this.open) {\n\t\t\treturn createElement('Modal', {\n\t\t\t\tattrs: {\n\t\t\t\t\tcontainer: this.container,\n\t\t\t\t},\n\t\t\t\ton: {\n\t\t\t\t\tclose: () => { this.handleCloseModal() },\n\t\t\t\t},\n\t\t\t}, [\n\t\t\t\tcreateElement('div', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclass: 'app-settings',\n\t\t\t\t\t},\n\t\t\t\t}, [...createAppSettingsNavigation(),\n\t\t\t\t\tcreateElement('div', {\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tclass: 'app-settings__content',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tref: 'settingsScroller',\n\t\t\t\t\t}, this.$slots.default)]),\n\t\t\t])\n\t\t} else {\n\t\t\treturn undefined\n\t\t}\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n\n::v-deep .modal-wrapper .modal-container {\n\tdisplay: flex;\n}\n\n.app-settings {\n\tdisplay: flex;\n\twidth: 100%;\n\t&__navigation {\n\t\tmin-width: 200px;\n\t\tmargin-right: 20px;\n\t}\n\t&__content {\n\t\tmax-width: 100vw;\n\t\toverflow-y: auto;\n\t\toverflow-x: hidden;\n\t\tpadding: 24px;\n\t}\n}\n\n.navigation-list {\n\theight: 100%;\n\toverflow-y: auto;\n\tpadding: 12px;\n\t&__link {\n\t\tdisplay: block;\n\t\tfont-size: 16px;\n\t\theight: $clickable-area;\n\t\tmargin: 4px 0;\n\t\tline-height: $clickable-area;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: bold;\n\t\tpadding: 0 20px;\n\t\tcursor: pointer;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\toverflow: hidden;\n\t\tbackground-color: transparent;\n\t\tborder: none;\n\t\t&:hover,\n\t\t&:focus {\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t\t&--active {\n\t\t\tbackground-color: var(--color-primary-light) !important;\n\t\t}\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsDialog.vue?vue&type=script&lang=js&\"","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppSettingsDialog.vue?vue&type=style&index=0&id=603fe898&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","var render, staticRenderFns\nimport script from \"./AppSettingsDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./AppSettingsDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppSettingsDialog.vue?vue&type=style&index=0&id=603fe898&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"603fe898\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppSettingsDialog.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","/**\n * @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @author Marco Ambrosini <marcoambrosini@pm.me>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport AppSettingsDialog from './AppSettingsDialog'\n\nexport default AppSettingsDialog\n","\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Vue from 'vue'\n\nexport default {\n\tbefore() {\n\t\t// all actions requires a valid text content\n\t\t// if none, forbid the component mount and throw error\n\t\tif (!this.$slots.default || this.text.trim() === '') {\n\t\t\tVue.util.warn(`${this.$options.name} cannot be empty and requires a meaningful text content`, this)\n\t\t\tthis.$destroy()\n\t\t\tthis.$el.remove()\n\t\t}\n\t},\n\n\tbeforeUpdate() {\n\t\tthis.text = this.getText()\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t// $slots are not reactive.\n\t\t\t// We need to update the content manually\n\t\t\ttext: this.getText(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\tisLongText() {\n\t\t\treturn this.text && this.text.trim().length > 20\n\t\t},\n\t},\n\n\tmethods: {\n\t\tgetText() {\n\t\t\treturn this.$slots.default ? this.$slots.default[0].text.trim() : ''\n\t\t},\n\t},\n}\n","import { n, t } from '../l10n'\n\nexport default {\n\tmethods: {\n\t\tn,\n\t\tt,\n\t},\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-eff40d78]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.action-item[data-v-eff40d78]{position:relative;display:inline-block}.action-item--single[data-v-eff40d78]:hover,.action-item--single[data-v-eff40d78]:focus,.action-item--single[data-v-eff40d78]:active,.action-item__menutoggle[data-v-eff40d78]:hover,.action-item__menutoggle[data-v-eff40d78]:focus,.action-item__menutoggle[data-v-eff40d78]:active{opacity:1;background-color:rgba(127,127,127,0.25) !important}.action-item__menutoggle[data-v-eff40d78]:disabled,.action-item--single[data-v-eff40d78]:disabled{opacity:.3 !important}.action-item.action-item--open .action-item__menutoggle[data-v-eff40d78]{opacity:1;background-color:rgba(127,127,127,0.25)}.action-item--single[data-v-eff40d78],.action-item__menutoggle[data-v-eff40d78]{box-sizing:border-box;width:auto;min-width:44px;height:44px;margin:0;padding:0;cursor:pointer;border:none;border-radius:22px;background-color:transparent}.action-item[data-v-eff40d78] .material-design-icon{width:44px;height:44px;opacity:1}.action-item[data-v-eff40d78] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-item__menutoggle[data-v-eff40d78]{display:flex;align-items:center;justify-content:center;opacity:.7;font-weight:bold;line-height:16px}.action-item__menutoggle--with-title[data-v-eff40d78]{position:relative;padding:0 14px;padding-left:44px;white-space:nowrap;opacity:1;border:1px solid var(--color-border-dark);background-color:var(--color-background-dark);background-position:14px center;font-size:inherit}.action-item__menutoggle--with-title[data-v-eff40d78] span{width:24px;height:24px;line-height:16px;position:absolute;top:10px;left:10px}.action-item__menutoggle--primary[data-v-eff40d78]{opacity:1;color:var(--color-primary-text);border:none;background-color:var(--color-primary-element)}.action-item--open .action-item__menutoggle--primary[data-v-eff40d78],.action-item__menutoggle--primary[data-v-eff40d78]:hover,.action-item__menutoggle--primary[data-v-eff40d78]:focus,.action-item__menutoggle--primary[data-v-eff40d78]:active{color:var(--color-primary-text) !important;background-color:var(--color-primary-element-light) !important}.action-item--single[data-v-eff40d78]{opacity:.7}.action-item--single[data-v-eff40d78]:hover,.action-item--single[data-v-eff40d78]:focus,.action-item--single[data-v-eff40d78]:active{opacity:1}.action-item--single>[hidden][data-v-eff40d78]{display:none}.ie .action-item__menu[data-v-eff40d78],.ie .action-item__menu .action-item__menu_arrow[data-v-eff40d78],.edge .action-item__menu[data-v-eff40d78],.edge .action-item__menu .action-item__menu_arrow[data-v-eff40d78]{border:1px solid var(--color-border)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./Actions.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CC6nBxB,8BACC,iBAAkB,CAClB,oBAAqB,CAIrB,sRAMC,SCrmBc,CDumBd,kDAA2C,CAC3C,kGAKA,qBAAsB,CApBxB,yEAwBE,SCjnBc,CDknBd,uCC9mBgD,CD+mBhD,gFAKA,qBAAsB,CACtB,UAAW,CACX,cC7oBmB,CD8oBnB,WC9oBmB,CD+oBnB,QAAS,CACT,SAAU,CACV,cAAe,CACf,WAAY,CACZ,kBAAkC,CAClC,4BAA6B,CAxC/B,oDA4CE,UCxpBmB,CDypBnB,WCzpBmB,CD0pBnB,SCvoBc,CDylBhB,+EAiDG,qBAAsB,CACtB,0CAMD,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,UCrpBiB,CDspBjB,gBAAiB,CACjB,gBCrqBc,CDuqBd,sDACC,iBAAkB,CAClB,cCrqB6C,CDsqB7C,iBC9qBkB,CD+qBlB,kBAAmB,CACnB,SC7pBa,CD8pBb,yCAA0C,CAE1C,6CAA8C,CAC9C,+BAAwC,CACxC,iBAAkB,CAVlB,2DAeC,UAAW,CACX,WAAY,CACZ,gBCxrBY,CDyrBZ,iBAAkB,CAClB,QAAiC,CACjC,SAAkC,CAClC,mDAID,SCjrBa,CDkrBb,+BAAgC,CAChC,WAAY,CACZ,6CAA8C,CAC9C,kPAIC,0CAA2C,CAC3C,8DAA+D,CAC/D,sCAKF,UCjsBiB,CDgsBjB,qIAKC,SCpsBa,CD+rBd,+CASC,YAAa,CACb,sNAQD,oCAAqC\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"0a7f1bc\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.action-item {\\n\\tposition: relative;\\n\\tdisplay: inline-block;\\n\\n\\t// put a grey round background when menu is opened\\n\\t// or hover-focused\\n\\t&--single:hover,\\n\\t&--single:focus,\\n\\t&--single:active,\\n\\t&__menutoggle:hover,\\n\\t&__menutoggle:focus,\\n\\t&__menutoggle:active {\\n\\t\\topacity: $opacity_full;\\n\\t\\t// good looking on dark AND white bg, override server styling\\n\\t\\tbackground-color: $icon-focus-bg !important;\\n\\t}\\n\\n\\t// TODO: handle this in the future button component\\n\\t&__menutoggle:disabled,\\n\\t&--single:disabled {\\n\\t\\topacity: .3 !important;\\n\\t}\\n\\n\\t&.action-item--open .action-item__menutoggle {\\n\\t\\topacity: $opacity_full;\\n\\t\\tbackground-color: $action-background-hover;\\n\\t}\\n\\n\\t// icons\\n\\t&--single,\\n\\t&__menutoggle {\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: auto;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tcursor: pointer;\\n\\t\\tborder: none;\\n\\t\\tborder-radius: $clickable-area / 2;\\n\\t\\tbackground-color: transparent;\\n\\t}\\n\\n\\t&::v-deep .material-design-icon {\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\topacity: $opacity_full;\\n\\n\\t\\t.material-design-icon__svg {\\n\\t\\t\\tvertical-align: middle;\\n\\t\\t}\\n\\t}\\n\\n\\t// icon-more\\n\\t&__menutoggle {\\n\\t\\t// align menu icon in center\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\topacity: $opacity_normal;\\n\\t\\tfont-weight: bold;\\n\\t\\tline-height: $icon-size;\\n\\n\\t\\t&--with-title {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\tpadding: 0 $icon-margin;\\n\\t\\t\\tpadding-left: $clickable-area;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tborder: 1px solid var(--color-border-dark);\\n\\t\\t\\t// with a title, we need to display this as a real button\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tfont-size: inherit;\\n\\n\\t\\t\\t// non-background icon class\\n\\t\\t\\t// image slot\\n\\t\\t\\t/deep/ span {\\n\\t\\t\\t\\twidth: 24px;\\n\\t\\t\\t\\theight: 24px;\\n\\t\\t\\t\\tline-height: $icon-size;\\n\\t\\t\\t\\tposition: absolute;\\n\\t\\t\\t\\ttop: ($clickable-area - 24px) / 2;\\n\\t\\t\\t\\tleft: ($clickable-area - 24px) / 2;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t&--primary {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tcolor: var(--color-primary-text);\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t\\t.action-item--open &,\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus,\\n\\t\\t\\t&:active {\\n\\t\\t\\t\\tcolor: var(--color-primary-text) !important;\\n\\t\\t\\t\\tbackground-color: var(--color-primary-element-light) !important;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n\\n\\t&--single {\\n\\t\\topacity: $opacity_normal;\\n\\t\\t&:hover,\\n\\t\\t&:focus,\\n\\t\\t&:active {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\t\\t// hide anything the slot is displaying\\n\\t\\t& > [hidden] {\\n\\t\\t\\tdisplay: none;\\n\\t\\t}\\n\\t}\\n}\\n\\n.ie,\\n.edge {\\n\\t.action-item__menu,\\n\\t.action-item__menu .action-item__menu_arrow {\\n\\t\\tborder: 1px solid var(--color-border);\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","/* 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 = typeof scriptExports === 'function'\n ? scriptExports.options\n : 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) { // 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\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Get the first parent component matching the provided name\n *\n * @param {Object} context the context to search from (usualy this)\n * @param {string} name the parent name\n * @returns {Object} the parent component\n */\nconst GetParent = function(context, name) {\n\tlet parent = context.$parent\n\twhile (parent) {\n\t\tif (parent.$options.name === name) {\n\t\t\treturn parent\n\t\t}\n\t\tparent = parent.$parent\n\t}\n}\n\nexport default GetParent\n","\n/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport actionGlobal from './actionGlobal'\nimport GetParent from '../utils/GetParent'\n\nexport default {\n\tmixins: [actionGlobal],\n\tprops: {\n\t\t/**\n\t\t * Icon to show with the action, can be either a CSS class or an URL\n\t\t */\n\t\ticon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Title to show next to the icon\n\t\t */\n\t\ttitle: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\t/**\n\t\t * Whether we close the Actions menu after the click\n\t\t */\n\t\tcloseAfterClick: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t\t/**\n\t\t * Aria label for the button. Not needed if the button has text.\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tcomputed: {\n\t\tisIconUrl() {\n\t\t\ttry {\n\t\t\t\treturn new URL(this.icon)\n\t\t\t} catch (error) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t},\n\t},\n\n\tmethods: {\n\t\tonClick(event) {\n\t\t\t/**\n\t\t\t * Emitted when the action is clicked\n\t\t\t * @type {Event}\n\t\t\t */\n\t\t\tthis.$emit('click', event)\n\n\t\t\tif (this.closeAfterClick) {\n\t\t\t\tconst parent = GetParent(this, 'Actions')\n\t\t\t\tif (parent && parent.closeMenu) {\n\t\t\t\t\tparent.closeMenu()\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t},\n}\n","var render = function () {\nvar _obj;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isValidSingleAction && !_vm.forceMenu)?_c('element',_vm._b({directives:[{name:\"tooltip\",rawName:\"v-tooltip.auto\",value:(_vm.firstAction.text),expression:\"firstAction.text\",modifiers:{\"auto\":true}}],staticClass:\"action-item action-item--single\",class:( _obj = {}, _obj[_vm.firstAction.icon] = _vm.firstAction.icon, _obj[_vm.firstActionClass] = _vm.firstActionClass, _obj ),attrs:{\"rel\":\"noreferrer noopener\",\"disabled\":_vm.isDisabled},on:_vm._d({\"focus\":_vm.onFocus,\"blur\":_vm.onBlur},[_vm.firstActionEventBinding,_vm.execFirstAction])},'element',_vm.firstActionBinding,false),[_c('VNodes',{attrs:{\"vnodes\":_vm.firstActionIconSlot}}),_vm._v(\" \"),_c('span',{attrs:{\"aria-hidden\":true,\"hidden\":\"\"}},[_vm._t(\"default\")],2)],1):_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.hasMultipleActions || _vm.forceMenu),expression:\"hasMultipleActions || forceMenu\"}],staticClass:\"action-item\",class:{'action-item--open': _vm.opened}},[_c('Popover',{attrs:{\"delay\":0,\"handle-resize\":true,\"open\":_vm.opened,\"placement\":_vm.placement,\"boundaries-element\":_vm.boundariesElement,\"container\":_vm.container},on:{\"update:open\":function($event){_vm.opened=$event},\"show\":_vm.openMenu,\"after-show\":_vm.onOpen,\"hide\":_vm.closeMenu},scopedSlots:_vm._u([{key:\"trigger\",fn:function(){\n\t\tvar _obj;\nreturn [_c('button',{ref:\"menuButton\",staticClass:\"icon action-item__menutoggle\",class:( _obj = {}, _obj[_vm.defaultIcon] = !_vm.iconSlotIsPopulated, _obj['action-item__menutoggle--with-title'] = _vm.menuTitle, _obj['action-item__menutoggle--with-icon-slot'] = _vm.iconSlotIsPopulated, _obj['action-item__menutoggle--default-icon'] = !_vm.iconSlotIsPopulated && _vm.defaultIcon === '', _obj['action-item__menutoggle--primary'] = _vm.primary, _obj ),attrs:{\"disabled\":_vm.disabled,\"aria-haspopup\":\"true\",\"aria-label\":_vm.ariaLabel,\"aria-controls\":_vm.randomId,\"aria-expanded\":_vm.opened ? 'true' : 'false',\"test-attr\":\"1\",\"type\":\"button\"},on:{\"focus\":_vm.onFocus,\"blur\":_vm.onBlur}},[(_vm.iconSlotIsPopulated)?_vm._t(\"icon\"):(_vm.defaultIcon === '')?_c('DotsHorizontal',{attrs:{\"size\":20,\"decorative\":\"\"}}):_vm._e(),_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.menuTitle)+\"\\n\\t\\t\\t\")],2)]},proxy:true}],null,true)},[_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.opened),expression:\"opened\"}],ref:\"menu\",class:{ open: _vm.opened },attrs:{\"tabindex\":\"-1\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusPreviousAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusNextAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusNextAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if(!$event.shiftKey){ return null; }if($event.ctrlKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusPreviousAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"page-up\",undefined,$event.key,undefined)){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusFirstAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"page-down\",undefined,$event.key,undefined)){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }return _vm.focusLastAction($event)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey){ return null; }$event.preventDefault();return _vm.closeMenu($event)}],\"mousemove\":_vm.onMouseFocusAction}},[_c('ul',{attrs:{\"id\":_vm.randomId,\"tabindex\":\"-1\"}},[(_vm.opened)?[_vm._t(\"default\")]:_vm._e()],2)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!--\n - @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@pm.me\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<!-- Accessibility guidelines:\nhttps://www.w3.org/TR/wai-aria-practices/examples/menu-button/menu-button-actions.html -->\n\n<docs>\n### Single action\n\n```\n<Actions>\n\t<ActionButton icon=\"icon-delete\" @click=\"alert('Delete')\">Delete</ActionButton>\n</Actions>\n```\n\n### Multiple actions\n\n```\n<Actions>\n\t<ActionButton icon=\"icon-edit\" @click=\"alert('Edit')\">Edit</ActionButton>\n\t<ActionButton icon=\"icon-delete\" @click=\"alert('Delete')\">Delete</ActionButton>\n\t<ActionLink icon=\"icon-external\" title=\"Link\" href=\"https://nextcloud.com\" />\n</Actions>\n```\n\n### Multiple actions with custom icon\n\n```\n<Actions default-icon=\"icon-edit\">\n\t<ActionButton icon=\"icon-edit\" @click=\"alert('Edit')\">Edit</ActionButton>\n\t<ActionButton icon=\"icon-delete\" @click=\"alert('Delete')\">Delete</ActionButton>\n\t<ActionLink icon=\"icon-external\" title=\"Link\" href=\"https://nextcloud.com\" />\n</Actions>\n```\n\n### With menu title\n\n```\n<Actions default-icon=\"icon-edit\" menu-title=\"Object management\">\n\t<ActionButton icon=\"icon-edit\">Rename</ActionButton>\n\t<ActionButton icon=\"icon-delete\">Delete</ActionButton>\n\t<ActionButton icon=\"icon-confirm\">Validate</ActionButton>\n\t<ActionButton icon=\"icon-download\">Download</ActionButton>\n</Actions>\n```\n\n### Various icons styles\n```\n<Actions :primary=\"true\">\n\t<ActionButton icon=\"icon-edit\">Edit</ActionButton>\n\t<ActionButton icon=\"icon-delete\">Delete</ActionButton>\n</Actions>\n```\n\n```\n<Actions default-icon=\"icon-add-white\" :primary=\"true\" menu-title=\"Object management\">\n\t<ActionButton icon=\"icon-edit\">Rename</ActionButton>\n\t<ActionButton icon=\"icon-delete\">Delete</ActionButton>\n\t<ActionButton icon=\"icon-confirm\">Validate</ActionButton>\n\t<ActionButton icon=\"icon-download\">Download</ActionButton>\n</Actions>\n```\n\n### Custom icon slot\nTo be used with `vue-material-design-icons` only. For icon classes use the `default-icon` slot.\nIt can be used with one or multiple actions.\n```\n<template>\n\t<div style=\"display: flex;align-items: center;\">\n\t\t<button @click=\"toggled = !toggled\">Toggle multiple action</button>\n\t\t<Actions>\n\t\t\t<template #icon>\n\t\t\t\t<DotsHorizontalCircleOutline :size=\"20\" decorative />\n\t\t\t</template>\n\t\t\t<ActionButton>\n\t\t\t\t<template #icon>\n\t\t\t\t\t<MicrophoneOff :size=\"20\" decorative />\n\t\t\t\t</template>\n\t\t\t\tMute\n\t\t\t</ActionButton>\n\t\t\t<ActionButton v-if=\"toggled\" icon=\"icon-delete\">Delete</ActionButton>\n\t\t</Actions>\n\t\t<Actions>\n\t\t</Actions>\n\t</div>\n</template>\n<script>\nimport DotsHorizontalCircleOutline from 'vue-material-design-icons/DotsHorizontalCircleOutline'\nimport MicrophoneOff from 'vue-material-design-icons/MicrophoneOff'\n\nexport default {\n\tcomponents: {\n\t\tDotsHorizontalCircleOutline,\n\t\tMicrophoneOff,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false\n\t\t}\n\t}\n}\n</script>\n```\n\n### Custom icon slot in child elements\n```\n<Actions :primary=\"true\">\n\t<ActionButton><template #icon><MagnifyIcon /></template>Search</ActionButton>\n\t<ActionButton icon=\"icon-delete\">Delete</ActionButton>\n</Actions>\n```\n\n</docs>\n<template>\n\t<!-- if only one action, check if we need to bind to click or not -->\n\t<element v-if=\"isValidSingleAction && !forceMenu\"\n\t\tv-tooltip.auto=\"firstAction.text\"\n\t\tv-bind=\"firstActionBinding\"\n\t\t:class=\"{\n\t\t\t[firstAction.icon]: firstAction.icon,\n\t\t\t[firstActionClass]: firstActionClass }\"\n\t\tclass=\"action-item action-item--single\"\n\t\trel=\"noreferrer noopener\"\n\t\t:disabled=\"isDisabled\"\n\t\t@focus=\"onFocus\"\n\t\t@blur=\"onBlur\"\n\t\t@[firstActionEventBinding]=\"execFirstAction\">\n\t\t<!-- Render the icon slot content of the first action -->\n\t\t<VNodes :vnodes=\"firstActionIconSlot\" />\n\n\t\t<!-- fake slot to gather main action -->\n\t\t<span :aria-hidden=\"true\" hidden>\n\t\t\t<!-- @slot All action elements passed into the default slot will be used -->\n\t\t\t<slot />\n\t\t</span>\n\t</element>\n\n\t<!-- more than one action -->\n\t<div v-else\n\t\tv-show=\"hasMultipleActions || forceMenu\"\n\t\t:class=\"{'action-item--open': opened}\"\n\t\tclass=\"action-item\">\n\t\t<!-- If more than one action, create a popovermenu -->\n\t\t<Popover\n\t\t\t:delay=\"0\"\n\t\t\t:handle-resize=\"true\"\n\t\t\t:open.sync=\"opened\"\n\t\t\t:placement=\"placement\"\n\t\t\t:boundaries-element=\"boundariesElement\"\n\t\t\t:container=\"container\"\n\t\t\t@show=\"openMenu\"\n\t\t\t@after-show=\"onOpen\"\n\t\t\t@hide=\"closeMenu\">\n\t\t\t<!-- Menu open/close trigger button -->\n\t\t\t<template #trigger>\n\t\t\t\t<button ref=\"menuButton\"\n\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\tclass=\"icon action-item__menutoggle\"\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t[defaultIcon]: !iconSlotIsPopulated,\n\t\t\t\t\t\t'action-item__menutoggle--with-title': menuTitle,\n\t\t\t\t\t\t'action-item__menutoggle--with-icon-slot': iconSlotIsPopulated,\n\t\t\t\t\t\t'action-item__menutoggle--default-icon': !iconSlotIsPopulated && defaultIcon === '',\n\t\t\t\t\t\t'action-item__menutoggle--primary': primary\n\t\t\t\t\t}\"\n\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t:aria-label=\"ariaLabel\"\n\t\t\t\t\t:aria-controls=\"randomId\"\n\t\t\t\t\t:aria-expanded=\"opened ? 'true' : 'false'\"\n\t\t\t\t\ttest-attr=\"1\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t@focus=\"onFocus\"\n\t\t\t\t\t@blur=\"onBlur\">\n\t\t\t\t\t<slot v-if=\"iconSlotIsPopulated\" name=\"icon\" />\n\t\t\t\t\t<DotsHorizontal v-else-if=\"defaultIcon === ''\" :size=\"20\" decorative />\n\t\t\t\t\t{{ menuTitle }}\n\t\t\t\t</button>\n\t\t\t</template>\n\n\t\t\t<!-- Menu content -->\n\t\t\t<div v-show=\"opened\"\n\t\t\t\tref=\"menu\"\n\t\t\t\t:class=\"{ open: opened }\"\n\t\t\t\ttabindex=\"-1\"\n\t\t\t\t@keydown.up.exact=\"focusPreviousAction\"\n\t\t\t\t@keydown.down.exact=\"focusNextAction\"\n\t\t\t\t@keydown.tab.exact=\"focusNextAction\"\n\t\t\t\t@keydown.shift.tab.exact=\"focusPreviousAction\"\n\t\t\t\t@keydown.page-up.exact=\"focusFirstAction\"\n\t\t\t\t@keydown.page-down.exact=\"focusLastAction\"\n\t\t\t\t@keydown.esc.exact.prevent=\"closeMenu\"\n\t\t\t\t@mousemove=\"onMouseFocusAction\">\n\t\t\t\t<!-- menu content -->\n\t\t\t\t<ul :id=\"randomId\" tabindex=\"-1\">\n\t\t\t\t\t<template v-if=\"opened\">\n\t\t\t\t\t\t<slot />\n\t\t\t\t\t</template>\n\t\t\t\t</ul>\n\t\t\t</div>\n\t\t</Popover>\n\t</div>\n</template>\n<script>\nimport DotsHorizontal from 'vue-material-design-icons/DotsHorizontal'\n\nimport Tooltip from '../../directives/Tooltip'\nimport GenRandomId from '../../utils/GenRandomId'\nimport { t } from '../../l10n'\nimport Popover from '../Popover'\n\nconst focusableSelector = '.focusable'\n\n/**\n * The Actions component can be used to display one ore more actions.\n * If only a single action is provided, it will be rendered as an inline icon.\n * For more, a menu indicator will be shown and a popovermenu containing the\n * actions will be opened on click.\n *\n * @since 0.10.0\n */\nexport default {\n\tname: 'Actions',\n\n\tdirectives: {\n\t\ttooltip: Tooltip,\n\t},\n\n\tcomponents: {\n\t\tDotsHorizontal,\n\t\tPopover,\n\n\t\t// Component to render the first action icon slot content (vnodes)\n\t\tVNodes: {\n\t\t\tfunctional: true,\n\t\t\trender: (h, context) => context.props.vnodes,\n\t\t},\n\t},\n\n\tprops: {\n\t\t/**\n\t\t * Specify the open state of the popover menu\n\t\t */\n\t\topen: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Force the actions to display in a three dot menu\n\t\t */\n\t\tforceMenu: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Specify the menu title\n\t\t */\n\t\tmenuTitle: {\n\t\t\ttype: String,\n\t\t\tdefault: null,\n\t\t},\n\n\t\t/**\n\t\t * Apply primary styling for this menu\n\t\t */\n\t\tprimary: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Icon to show for the toggle menu button\n\t\t * when more than one action is inside the actions component.\n\t\t * Only replace the default three-dot icon if really necessary.\n\t\t */\n\t\tdefaultIcon: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\n\t\t/**\n\t\t * Aria label for the actions menu\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: t('Actions'),\n\t\t},\n\n\t\t/**\n\t\t * Wanted direction of the menu\n\t\t */\n\t\tplacement: {\n\t\t\ttype: String,\n\t\t\tdefault: 'bottom',\n\t\t},\n\n\t\t/**\n\t\t * DOM element for the actions' popover boundaries\n\t\t */\n\t\tboundariesElement: {\n\t\t\ttype: Element,\n\t\t\tdefault: () => document.querySelector('body'),\n\t\t},\n\n\t\t/**\n\t\t * Selector for the actions' popover container\n\t\t */\n\t\tcontainer: {\n\t\t\ttype: String,\n\t\t\tdefault: 'body',\n\t\t},\n\n\t\t/**\n\t\t * Disabled state of the main button (single action or menu toggle)\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tactions: [],\n\t\t\topened: this.open,\n\t\t\tfocusIndex: 0,\n\t\t\trandomId: 'menu-' + GenRandomId(),\n\t\t\t// Making children reactive!\n\t\t\t// By binding this here, vuejs will track the object content\n\t\t\t// Needed for firstAction reactivity !!!\n\t\t\tchildren: this.$children,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t/**\n\t\t * Is there more than one action?\n\t\t * @returns {boolean}\n\t\t */\n\t\thasMultipleActions() {\n\t\t\treturn this.actions.length > 1\n\t\t},\n\t\t/**\n\t\t * Is there any first action ?\n\t\t * And is it allowed as a standalone element ?\n\t\t * @returns {boolean}\n\t\t */\n\t\tisValidSingleAction() {\n\t\t\treturn this.actions.length === 1\n\t\t\t\t&& this.firstActionElement !== null\n\t\t},\n\t\tisDisabled() {\n\t\t\treturn this.disabled\n\t\t\t\t|| (this.actions.length === 1 && this.firstAction?.$props?.disabled)\n\t\t},\n\t\t/**\n\t\t * First action vnode\n\t\t * @returns {Object} return the first action vue vnode\n\t\t */\n\t\tfirstActionVNode() {\n\t\t\treturn this.actions[0]\n\t\t},\n\t\t/**\n\t\t * Reactive binding to the first children\n\t\t * Since we're here, it means we already passed all the proper checks\n\t\t * we can assume the first action is the first children too\n\t\t * @returns {Object} first action vue children object\n\t\t */\n\t\tfirstAction() {\n\t\t\treturn this.children[0]\n\t\t\t\t? this.children[0]\n\t\t\t\t: {}\n\t\t},\n\n\t\t/**\n\t\t * Binding of the first action to the template\n\t\t * @returns {Object} vue template v-bind shortcut\n\t\t */\n\t\tfirstActionBinding() {\n\t\t\tif (this.firstActionVNode && this.firstActionVNode.componentOptions) {\n\t\t\t\tconst tag = this.firstActionVNode.componentOptions.tag\n\t\t\t\tif (tag === 'ActionLink') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tis: 'a',\n\t\t\t\t\t\thref: this.firstAction.href,\n\t\t\t\t\t\ttarget: this.firstAction.target,\n\t\t\t\t\t\t'aria-label': this.firstAction.ariaLabel,\n\t\t\t\t\t\t...this.firstAction.$attrs,\n\t\t\t\t\t\t...this.firstAction.$props,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (tag === 'ActionRouter') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tis: 'router-link',\n\t\t\t\t\t\tto: this.firstAction.to,\n\t\t\t\t\t\texact: this.firstAction.exact,\n\t\t\t\t\t\t'aria-label': this.firstAction.ariaLabel,\n\t\t\t\t\t\t...this.firstAction.$attrs,\n\t\t\t\t\t\t...this.firstAction.$props,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (tag === 'ActionButton') {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tis: 'button',\n\t\t\t\t\t\t'aria-label': this.firstAction.ariaLabel,\n\t\t\t\t\t\t...this.firstAction.$attrs,\n\t\t\t\t\t\t...this.firstAction.$props,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// other action types are not allowed as standalone buttons\n\t\t\treturn null\n\t\t},\n\n\t\t// return the event to bind if the firstActionVNode have an action\n\t\tfirstActionEvent() {\n\t\t\treturn this.firstActionVNode?.componentOptions?.listeners?.click\n\t\t},\n\t\tfirstActionEventBinding() {\n\t\t\treturn this.firstActionEvent ? 'click' : null\n\t\t},\n\t\t// return the first action icon slot vnodes array\n\t\tfirstActionIconSlot() {\n\t\t\treturn this.firstAction?.$slots?.icon\n\t\t},\n\t\tfirstActionClass() {\n\t\t\tconst staticClass = this.firstActionVNode && this.firstActionVNode.data.staticClass\n\t\t\tconst dynClass = this.firstActionVNode && this.firstActionVNode.data.class\n\t\t\treturn (staticClass + ' ' + dynClass).trim()\n\t\t},\n\n\t\ticonSlotIsPopulated() {\n\t\t\treturn !!this.$slots.icon\n\t\t},\n\t},\n\n\twatch: {\n\t\t// Watch parent prop\n\t\topen(state) {\n\t\t\tif (state === this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = state\n\t\t},\n\t},\n\tbeforeMount() {\n\t\t// init actions\n\t\tthis.initActions()\n\t},\n\tbeforeUpdate() {\n\t\t// ! since we're using $slots to manage our actions\n\t\t// ! we NEED to update the actions if anything change\n\n\t\t// update children & actions\n\t\t// no need to init actions again since we bound it to $children\n\t\t// and the array is now reactive\n\t\t// init actions\n\t\tthis.initActions()\n\t},\n\n\tmethods: {\n\t\t// MENU STATE MANAGEMENT\n\t\topenMenu(e) {\n\t\t\tif (this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = true\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu open state is changed\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:open', true)\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu is closed\n\t\t\t */\n\t\t\tthis.$emit('open')\n\t\t},\n\t\tcloseMenu(e) {\n\t\t\tif (!this.opened) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tthis.opened = false\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu open state is changed\n\t\t\t * @type {boolean}\n\t\t\t */\n\t\t\tthis.$emit('update:open', false)\n\n\t\t\t/**\n\t\t\t * Event emitted when the popover menu is closed\n\t\t\t */\n\t\t\tthis.$emit('close')\n\n\t\t\t// close everything\n\t\t\tthis.opened = false\n\t\t\tthis.focusIndex = 0\n\n\t\t\t// focus back the menu button\n\t\t\tthis.$refs.menuButton.focus()\n\t\t},\n\n\t\tonOpen(event) {\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.focusFirstAction(event)\n\t\t\t})\n\t\t},\n\n\t\t// MENU KEYS & FOCUS MANAGEMENT\n\t\t// focus nearest focusable item on mouse move\n\t\t// DO NOT change the focus if the target is already focused\n\t\t// this will prevent issues with input being unfocused\n\t\t// on mouse move\n\t\tonMouseFocusAction(event) {\n\t\t\tif (document.activeElement === event.target) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tconst menuItem = event.target.closest('li')\n\t\t\tif (menuItem) {\n\t\t\t\tconst focusableItem = menuItem.querySelector(focusableSelector)\n\t\t\t\tif (focusableItem) {\n\t\t\t\t\tconst focusList = this.$refs.menu.querySelectorAll(focusableSelector)\n\t\t\t\t\tconst focusIndex = [...focusList].indexOf(focusableItem)\n\t\t\t\t\tif (focusIndex > -1) {\n\t\t\t\t\t\tthis.focusIndex = focusIndex\n\t\t\t\t\t\tthis.focusAction()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tremoveCurrentActive() {\n\t\t\tconst currentActiveElement = this.$refs.menu.querySelector('li.active')\n\t\t\tif (currentActiveElement) {\n\t\t\t\tcurrentActiveElement.classList.remove('active')\n\t\t\t}\n\t\t},\n\t\tfocusAction() {\n\t\t\t// TODO: have a global disabled state for non input elements\n\t\t\tconst focusElement = this.$refs.menu.querySelectorAll(focusableSelector)[this.focusIndex]\n\t\t\tif (focusElement) {\n\t\t\t\tthis.removeCurrentActive()\n\t\t\t\tconst liMenuParent = focusElement.closest('li.action')\n\t\t\t\tfocusElement.focus()\n\t\t\t\tif (liMenuParent) {\n\t\t\t\t\tliMenuParent.classList.add('active')\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tfocusPreviousAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tif (this.focusIndex === 0) {\n\t\t\t\t\t// First element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\n\t\t\t\t} else {\n\t\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t\tthis.focusIndex = this.focusIndex - 1\n\t\t\t\t}\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusNextAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tconst indexLength = this.$refs.menu.querySelectorAll(focusableSelector).length - 1\n\t\t\t\tif (this.focusIndex === indexLength) {\n\t\t\t\t\t// Last element overflows to body-navigation (no preventDefault!) and closes Actions-menu\n\t\t\t\t\tthis.closeMenu()\n\t\t\t\t} else {\n\t\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\t\tthis.focusIndex = this.focusIndex + 1\n\t\t\t\t}\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusFirstAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\tthis.focusIndex = 0\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\t\tfocusLastAction(event) {\n\t\t\tif (this.opened) {\n\t\t\t\tthis.preventIfEvent(event)\n\t\t\t\tthis.focusIndex = this.$el.querySelectorAll(focusableSelector).length - 1\n\t\t\t\tthis.focusAction()\n\t\t\t}\n\t\t},\n\n\t\tpreventIfEvent(event) {\n\t\t\tif (event) {\n\t\t\t\tevent.preventDefault()\n\t\t\t\tevent.stopPropagation()\n\t\t\t}\n\t\t},\n\n\t\t// ACTIONS MANAGEMENT\n\t\t// exec the first action\n\t\texecFirstAction(event) {\n\t\t\tif (this.firstActionEvent) {\n\t\t\t\tthis.firstActionEvent(event)\n\t\t\t}\n\t\t},\n\t\tinitActions() {\n\t\t\t// filter out invalid slots\n\t\t\tthis.actions = (this.$slots.default || []).filter(node => !!node && !!node.componentOptions)\n\t\t},\n\t\tonFocus(event) {\n\t\t\tthis.$emit('focus', event)\n\t\t},\n\t\tonBlur(event) {\n\t\t\tthis.$emit('blur', event)\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.action-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\n\t// put a grey round background when menu is opened\n\t// or hover-focused\n\t&--single:hover,\n\t&--single:focus,\n\t&--single:active,\n\t&__menutoggle:hover,\n\t&__menutoggle:focus,\n\t&__menutoggle:active {\n\t\topacity: $opacity_full;\n\t\t// good looking on dark AND white bg, override server styling\n\t\tbackground-color: $icon-focus-bg !important;\n\t}\n\n\t// TODO: handle this in the future button component\n\t&__menutoggle:disabled,\n\t&--single:disabled {\n\t\topacity: .3 !important;\n\t}\n\n\t&.action-item--open .action-item__menutoggle {\n\t\topacity: $opacity_full;\n\t\tbackground-color: $action-background-hover;\n\t}\n\n\t// icons\n\t&--single,\n\t&__menutoggle {\n\t\tbox-sizing: border-box;\n\t\twidth: auto;\n\t\tmin-width: $clickable-area;\n\t\theight: $clickable-area;\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t\tcursor: pointer;\n\t\tborder: none;\n\t\tborder-radius: $clickable-area / 2;\n\t\tbackground-color: transparent;\n\t}\n\n\t&::v-deep .material-design-icon {\n\t\twidth: $clickable-area;\n\t\theight: $clickable-area;\n\t\topacity: $opacity_full;\n\n\t\t.material-design-icon__svg {\n\t\t\tvertical-align: middle;\n\t\t}\n\t}\n\n\t// icon-more\n\t&__menutoggle {\n\t\t// align menu icon in center\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tjustify-content: center;\n\t\topacity: $opacity_normal;\n\t\tfont-weight: bold;\n\t\tline-height: $icon-size;\n\n\t\t&--with-title {\n\t\t\tposition: relative;\n\t\t\tpadding: 0 $icon-margin;\n\t\t\tpadding-left: $clickable-area;\n\t\t\twhite-space: nowrap;\n\t\t\topacity: $opacity_full;\n\t\t\tborder: 1px solid var(--color-border-dark);\n\t\t\t// with a title, we need to display this as a real button\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tbackground-position: $icon-margin center;\n\t\t\tfont-size: inherit;\n\n\t\t\t// non-background icon class\n\t\t\t// image slot\n\t\t\t/deep/ span {\n\t\t\t\twidth: 24px;\n\t\t\t\theight: 24px;\n\t\t\t\tline-height: $icon-size;\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: ($clickable-area - 24px) / 2;\n\t\t\t\tleft: ($clickable-area - 24px) / 2;\n\t\t\t}\n\t\t}\n\n\t\t&--primary {\n\t\t\topacity: $opacity_full;\n\t\t\tcolor: var(--color-primary-text);\n\t\t\tborder: none;\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t\t.action-item--open &,\n\t\t\t&:hover,\n\t\t\t&:focus,\n\t\t\t&:active {\n\t\t\t\tcolor: var(--color-primary-text) !important;\n\t\t\t\tbackground-color: var(--color-primary-element-light) !important;\n\t\t\t}\n\t\t}\n\t}\n\n\t&--single {\n\t\topacity: $opacity_normal;\n\t\t&:hover,\n\t\t&:focus,\n\t\t&:active {\n\t\t\topacity: $opacity_full;\n\t\t}\n\t\t// hide anything the slot is displaying\n\t\t& > [hidden] {\n\t\t\tdisplay: none;\n\t\t}\n\t}\n}\n\n.ie,\n.edge {\n\t.action-item__menu,\n\t.action-item__menu .action-item__menu_arrow {\n\t\tborder: 1px solid var(--color-border);\n\t}\n}\n\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=script&lang=js&\"","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Actions.vue?vue&type=style&index=0&id=eff40d78&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./Actions.vue?vue&type=template&id=eff40d78&scoped=true&\"\nimport script from \"./Actions.vue?vue&type=script&lang=js&\"\nexport * from \"./Actions.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Actions.vue?vue&type=style&index=0&id=eff40d78&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"eff40d78\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Actions.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import { getGettextBuilder } from '@nextcloud/l10n/dist/gettext'\n\nconst gtBuilder = getGettextBuilder()\n\t.detectLocale()\n\n// Decompress Translations to gettext format and add to gtBuilder\nTRANSLATIONS.forEach((lang) => {\n\tconst translations = {}\n\n\tfor (const key in lang.translations) {\n\t\t// Plural\n\t\tif (lang.translations[key].pluralId) {\n\t\t\ttranslations[key] = {\n\t\t\t\tmsgid: key,\n\t\t\t\tmsgid_plural: lang.translations[key].pluralId,\n\t\t\t\tmsgstr: lang.translations[key].msgstr,\n\t\t\t}\n\t\t\tcontinue\n\t\t}\n\n\t\t// Singular\n\t\ttranslations[key] = {\n\t\t\tmsgid: key,\n\t\t\tmsgstr: [\n\t\t\t\tlang.translations[key],\n\t\t\t],\n\t\t}\n\t}\n\n\tgtBuilder.addTranslation(lang.locale, {\n\t\ttranslations: {\n\t\t\t'': translations,\n\t\t},\n\t})\n})\n\nconst gt = gtBuilder.build()\n\nconst n = gt.ngettext.bind(gt)\nconst t = gt.gettext.bind(gt)\n\nexport { t, n }\n","module.exports = require(\"v-tooltip\");","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport Actions from './Actions'\n\nexport default Actions\n","/**\n * @copyright Copyright (c) 2018 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nconst ScopeComponent = (Component) => {\n\t// Init mounted vue if none\n\tif (!Component.mounted) {\n\t\tComponent.mounted = []\n\t} else if (!Array.isArray(Component.mounted)) {\n\t\tComponent.mounted = [Component.mounted]\n\t}\n\n\t// Inject root scoping function\n\tComponent.mounted.push(function() {\n\t\tthis.$el.setAttribute(`data-v-${SCOPE_VERSION}`, '')\n\t})\n}\n\nexport default ScopeComponent\n","module.exports = require(\"vue\");","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-71ea20d2]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}li.active[data-v-71ea20d2]{background-color:var(--color-background-hover)}.action--disabled[data-v-71ea20d2]{pointer-events:none;opacity:.5}.action--disabled[data-v-71ea20d2]:hover,.action--disabled[data-v-71ea20d2]:focus{cursor:default;opacity:.5}.action--disabled *[data-v-71ea20d2]{opacity:1 !important}.action-button[data-v-71ea20d2]{display:flex;align-items:flex-start;width:100%;height:auto;margin:0;padding:0;padding-right:14px;box-sizing:border-box;cursor:pointer;white-space:nowrap;opacity:.7;color:var(--color-main-text);border:0;border-radius:0;background-color:transparent;box-shadow:none;font-weight:normal;font-size:var(--default-font-size);line-height:44px}.action-button[data-v-71ea20d2]:hover,.action-button[data-v-71ea20d2]:focus{opacity:1}.action-button>span[data-v-71ea20d2]{cursor:pointer;white-space:nowrap}.action-button__icon[data-v-71ea20d2]{width:44px;height:44px;opacity:1;background-position:14px center;background-size:16px;background-repeat:no-repeat}.action-button[data-v-71ea20d2] .material-design-icon{width:44px;height:44px;opacity:1}.action-button[data-v-71ea20d2] .material-design-icon .material-design-icon__svg{vertical-align:middle}.action-button p[data-v-71ea20d2]{max-width:220px;line-height:1.6em;padding:10.8px 0;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis}.action-button__longtext[data-v-71ea20d2]{cursor:pointer;white-space:pre-wrap}.action-button__title[data-v-71ea20d2]{font-weight:bold;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;max-width:100%;display:inline-block}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./../../assets/action.scss\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CACvB,2BCiBE,8CAA+C,CAC/C,mCAMD,mBAAoB,CACpB,UCQmB,CDVpB,kFAIE,cAAe,CACf,UCKkB,CDVpB,qCAQE,oBAAqB,CACrB,gCAOD,YAAa,CACb,sBAAuB,CAEvB,UAAW,CACX,WAAY,CACZ,QAAS,CACT,SAAU,CACV,kBCtB8C,CDuB9C,qBAAsB,CAEtB,cAAe,CACf,kBAAmB,CAEnB,UClBiB,CDmBjB,4BAA6B,CAC7B,QAAS,CACT,eAAgB,CAChB,4BAA6B,CAC7B,eAAgB,CAEhB,kBAAmB,CACnB,kCAAmC,CACnC,gBC7CmB,CDsBpB,4EA2BE,SC9Ba,CDGf,qCA+BE,cAAe,CACf,kBAAmB,CACnB,sCAGA,UC1DkB,CD2DlB,WC3DkB,CD4DlB,SCzCa,CD0Cb,+BAAwC,CACxC,oBC1Da,CD2Db,2BAA4B,CAzC9B,sDA6CE,UCnEkB,CDoElB,WCpEkB,CDqElB,SClDa,CDGf,iFAkDG,qBAAsB,CAlDzB,kCAwDE,eAAgB,CAChB,iBAAkB,CAGlB,gBAA8C,CAE9C,cAAe,CACf,eAAgB,CAGhB,eAAgB,CAChB,sBAAuB,CACvB,0CAGA,cAAe,CAEf,oBAAqB,CACrB,uCAGA,gBAAiB,CACjB,sBAAuB,CACvB,eAAgB,CAChB,kBAAmB,CACnB,cAAe,CACf,oBAAqB\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n * @author Marco Ambrosini <marcoambrosini@pm.me>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n@mixin action-active {\\n\\tli {\\n\\t\\t&.active {\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n}\\n\\n@mixin action--disabled {\\n\\t.action--disabled {\\n\\t\\tpointer-events: none;\\n\\t\\topacity: $opacity_disabled;\\n\\t\\t&:hover, &:focus {\\n\\t\\t\\tcursor: default;\\n\\t\\t\\topacity: $opacity_disabled;\\n\\t\\t}\\n\\t\\t& * {\\n\\t\\t\\topacity: 1 !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n\\n@mixin action-item($name) {\\n\\t.action-#{$name} {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\n\\t\\twidth: 100%;\\n\\t\\theight: auto;\\n\\t\\tmargin: 0;\\n\\t\\tpadding: 0;\\n\\t\\tpadding-right: $icon-margin;\\n\\t\\tbox-sizing: border-box; // otherwise router-link overflows in Firefox\\n\\n\\t\\tcursor: pointer;\\n\\t\\twhite-space: nowrap;\\n\\n\\t\\topacity: $opacity_normal;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: 0; // otherwise Safari will cut the border-radius area\\n\\t\\tbackground-color: transparent;\\n\\t\\tbox-shadow: none;\\n\\n\\t\\tfont-weight: normal;\\n\\t\\tfont-size: var(--default-font-size);\\n\\t\\tline-height: $clickable-area;\\n\\n\\t\\t&:hover,\\n\\t\\t&:focus {\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t}\\n\\n\\t\\t& > span {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t}\\n\\n\\t\\t&__icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\tbackground-position: $icon-margin center;\\n\\t\\t\\tbackground-size: $icon-size;\\n\\t\\t\\tbackground-repeat: no-repeat;\\n\\t\\t}\\n\\n\\t\\t&::v-deep .material-design-icon {\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\topacity: $opacity_full;\\n\\n\\t\\t\\t.material-design-icon__svg {\\n\\t\\t\\t\\tvertical-align: middle;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t// long text area\\n\\t\\tp {\\n\\t\\t\\tmax-width: 220px;\\n\\t\\t\\tline-height: 1.6em;\\n\\n\\t\\t\\t// 14px are currently 1em line-height. Mixing units as '44px - 1.6em' does not work.\\n\\t\\t\\tpadding: #{($clickable-area - 1.6*14px) / 2} 0;\\n\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\ttext-align: left;\\n\\n\\t\\t\\t// in case there are no spaces like long email addresses\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t}\\n\\n\\t\\t&__longtext {\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\t// allow the use of `\\\\n`\\n\\t\\t\\twhite-space: pre-wrap;\\n\\t\\t}\\n\\n\\t\\t&__title {\\n\\t\\t\\tfont-weight: bold;\\n\\t\\t\\ttext-overflow: ellipsis;\\n\\t\\t\\toverflow: hidden;\\n\\t\\t\\twhite-space: nowrap;\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tdisplay: inline-block;\\n\\t\\t}\\n\\t}\\n}\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"action\",class:{ 'action--disabled': _vm.disabled }},[_c('button',{staticClass:\"action-button\",class:{ focusable: _vm.isFocusable },attrs:{\"aria-label\":_vm.ariaLabel,\"type\":\"button\"},on:{\"click\":_vm.onClick}},[_vm._t(\"icon\",[_c('span',{staticClass:\"action-button__icon\",class:[_vm.isIconUrl ? 'action-button__icon--url' : _vm.icon],style:({ backgroundImage: _vm.isIconUrl ? (\"url(\" + _vm.icon + \")\") : null })})]),_vm._v(\" \"),(_vm.title)?_c('p',[_c('strong',{staticClass:\"action-button__title\"},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.title)+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('span',{staticClass:\"action-button__longtext\",domProps:{\"textContent\":_vm._s(_vm.text)}})]):(_vm.isLongText)?_c('p',{staticClass:\"action-button__longtext\",domProps:{\"textContent\":_vm._s(_vm.text)}}):_c('span',{staticClass:\"action-button__text\"},[_vm._v(_vm._s(_vm.text))]),_vm._v(\" \"),(false)?_vm._t(\"default\"):_vm._e()],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionButton.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionButton.vue?vue&type=script&lang=js&\"","<!--\n - @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n -\n - @author John Molakvoæ <skjnldsv@protonmail.com>\n - @author Marco Ambrosini <marcoambrosini@pm.me>\n -\n - @license GNU AGPL version 3 or any later version\n -\n - This program is free software: you can redistribute it and/or modify\n - it under the terms of the GNU Affero General Public License as\n - published by the Free Software Foundation, either version 3 of the\n - License, or (at your option) any later version.\n -\n - This program is distributed in the hope that it will be useful,\n - but WITHOUT ANY WARRANTY; without even the implied warranty of\n - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n - GNU Affero General Public License for more details.\n -\n - You should have received a copy of the GNU Affero General Public License\n - along with this program. If not, see <http://www.gnu.org/licenses/>.\n -\n -->\n\n<docs>\nThis component is made to be used inside of the [Actions](#Actions) component slots.\n\n```vue\n\t<Actions>\n\t\t<ActionButton icon=\"icon-delete\" @click=\"alert('Delete')\">Delete</ActionButton>\n\t\t<ActionButton icon=\"icon-delete\" :close-after-click=\"true\" @click=\"alert('Delete and close menu')\">Delete and close</ActionButton>\n\t\t<ActionButton icon=\"icon-delete\" :disabled=\"true\" @click=\"alert('Disabled')\">Disabled button</ActionButton>\n\t</Actions>\n```\n\nIf you're using a long text you can specify a title\n\n```vue\n\t<Actions>\n\t\t<ActionButton icon=\"icon-add\" @click=\"alert('Add')\">Add new</ActionButton>\n\t\t<ActionButton icon=\"icon-delete\" title=\"Long button\" @click=\"alert('Delete')\">This button is associated with a very long text.\\nAnd with new lines too.</ActionButton>\n\t</Actions>\n```\n\nYou can also use a custom icon, for example from the vue-material-design-icons library:\n\n```vue\n<template>\n\t<Actions>\n\t\t<ActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<HandBackLeft\n\t\t\t\t\t:size=\"20\"\n\t\t\t\t\tdecorative\n\t\t\t\t\ttitle=\"\" />\n\t\t\t</template>\n\t\t\tRaise left hand\n\t\t</ActionButton>\n\t\t<ActionButton>\n\t\t\t<template #icon>\n\t\t\t\t<HandBackRight\n\t\t\t\t\t:size=\"20\"\n\t\t\t\t\tdecorative\n\t\t\t\t\ttitle=\"\" />\n\t\t\t</template>\n\t\t\tRaise right hand\n\t\t</ActionButton>\n\t</Actions>\n</template>\n<script>\nimport HandBackLeft from 'vue-material-design-icons/HandBackLeft'\nimport HandBackRight from 'vue-material-design-icons/HandBackRight'\n\nexport default {\n\tcomponents: {\n\t\tHandBackLeft,\n\t\tHandBackRight,\n\t},\n}\n</script>\n```\n</docs>\n\n<template>\n\t<li class=\"action\" :class=\"{ 'action--disabled': disabled }\">\n\t\t<button\n\t\t\tclass=\"action-button\"\n\t\t\t:class=\"{ focusable: isFocusable }\"\n\t\t\t:aria-label=\"ariaLabel\"\n\t\t\ttype=\"button\"\n\t\t\t@click=\"onClick\">\n\t\t\t<!-- @slot Manually provide icon -->\n\t\t\t<slot name=\"icon\">\n\t\t\t\t<span :class=\"[isIconUrl ? 'action-button__icon--url' : icon]\"\n\t\t\t\t\t:style=\"{ backgroundImage: isIconUrl ? `url(${icon})` : null }\"\n\t\t\t\t\tclass=\"action-button__icon\" />\n\t\t\t</slot>\n\n\t\t\t<!-- long text with title -->\n\t\t\t<p v-if=\"title\">\n\t\t\t\t<strong class=\"action-button__title\">\n\t\t\t\t\t{{ title }}\n\t\t\t\t</strong>\n\t\t\t\t<br>\n\t\t\t\t<!-- white space is shown on longtext, so we can't\n\t\t\t\t\tput {{ text }} on a new line for code readability -->\n\t\t\t\t<span class=\"action-button__longtext\" v-text=\"text\" />\n\t\t\t</p>\n\n\t\t\t<!-- long text only -->\n\t\t\t<!-- white space is shown on longtext, so we can't\n\t\t\t\tput {{ text }} on a new line for code readability -->\n\t\t\t<p v-else-if=\"isLongText\"\n\t\t\t\tclass=\"action-button__longtext\"\n\t\t\t\tv-text=\"text\" />\n\n\t\t\t<!-- default text display -->\n\t\t\t<span v-else class=\"action-button__text\">{{ text }}</span>\n\n\t\t\t<!-- fake slot to gather inner text -->\n\t\t\t<slot v-if=\"false\" />\n\t\t</button>\n\t</li>\n</template>\n\n<script>\nimport ActionTextMixin from '../../mixins/actionText'\n\n/**\n * Button component to be used in Actions\n*/\nexport default {\n\tname: 'ActionButton',\n\n\tmixins: [ActionTextMixin],\n\n\tprops: {\n\t\t/**\n\t\t * disabled state of the action button\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tcomputed: {\n\t\t/**\n\t\t * determines if the action is focusable\n\t\t * @returns {boolean} is the action focusable ?\n\t\t */\n\t\tisFocusable() {\n\t\t\treturn !this.disabled\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n@import '../../assets/action';\n@include action-active;\n@include action--disabled;\n@include action-item('button');\n</style>\n","import api from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../node_modules/css-loader/dist/cjs.js!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/resolve-url-loader/index.js!../../../node_modules/sass-loader/dist/cjs.js??ref--1-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ActionButton.vue?vue&type=style&index=0&id=71ea20d2&lang=scss&scoped=true&\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./ActionButton.vue?vue&type=template&id=71ea20d2&scoped=true&\"\nimport script from \"./ActionButton.vue?vue&type=script&lang=js&\"\nexport * from \"./ActionButton.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ActionButton.vue?vue&type=style&index=0&id=71ea20d2&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"71ea20d2\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ActionButton.vue?vue&type=custom&index=0&blockType=docs\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","module.exports = require(\"vue-material-design-icons/Close\");","module.exports = require(\"debounce\");","module.exports = require(\"hammerjs\");","/**\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license GNU AGPL version 3 or any later version\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport ActionButton from './ActionButton'\n\nexport default ActionButton\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.popover{z-index:100000;display:block !important;filter:drop-shadow(0 1px 10px var(--color-box-shadow))}.popover__inner{padding:0;color:var(--color-main-text);border-radius:var(--border-radius);background:var(--color-main-background)}.popover__arrow{position:absolute;z-index:1;width:0;height:0;margin:10px;border-style:solid;border-color:var(--color-main-background)}.popover[x-placement^='top']{margin-bottom:10px}.popover[x-placement^='top'] .popover__arrow{bottom:-10px;left:calc(50% - $arrow-width);margin-top:0;margin-bottom:0;border-width:10px 10px 0 10px;border-right-color:transparent !important;border-bottom-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='bottom']{margin-top:10px}.popover[x-placement^='bottom'] .popover__arrow{top:-10px;left:calc(50% - $arrow-width);margin-top:0;margin-bottom:0;border-width:0 10px 10px 10px;border-top-color:transparent !important;border-right-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='right']{margin-left:10px}.popover[x-placement^='right'] .popover__arrow{top:calc(50% - $arrow-width);left:-10px;margin-right:0;margin-left:0;border-width:10px 10px 10px 0;border-top-color:transparent !important;border-bottom-color:transparent !important;border-left-color:transparent !important}.popover[x-placement^='left']{margin-right:10px}.popover[x-placement^='left'] .popover__arrow{top:calc(50% - $arrow-width);right:-10px;margin-right:0;margin-left:0;border-width:10px 0 10px 10px;border-top-color:transparent !important;border-right-color:transparent !important;border-bottom-color:transparent !important}.popover[aria-hidden='true']{visibility:hidden;transition:opacity var(--animation-quick),visibility var(--animation-quick);opacity:0}.popover[aria-hidden='false']{visibility:visible;transition:opacity var(--animation-quick);opacity:1}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./Popover.vue\"],\"names\":[],\"mappings\":\"AAGA,sBACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CC0GxB,SACC,cAAe,CACf,wBAAyB,CAEzB,sDAAuD,CAEvD,gBACC,SAAU,CACV,4BAA6B,CAC7B,kCAAmC,CACnC,uCAAwC,CACxC,gBAGA,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,QAAS,CACT,WApBgB,CAqBhB,kBAAmB,CACnB,yCAA0C,CApB5C,6BAwBE,kBA1BgB,CAElB,6CA2BG,YA7Be,CA8Bf,6BAA8B,CAC9B,YAAa,CACb,eAAgB,CAChB,6BAjCe,CAkCf,yCAA0C,CAC1C,0CAA2C,CAC3C,wCAAyC,CAlC5C,gCAuCE,eAzCgB,CAElB,gDA0CG,SA5Ce,CA6Cf,6BAA8B,CAC9B,YAAa,CACb,eAAgB,CAChB,6BAhDe,CAiDf,uCAAwC,CACxC,yCAA0C,CAC1C,wCAAyC,CAjD5C,+BAsDE,gBAxDgB,CAElB,+CAyDG,4BAA6B,CAC7B,UA5De,CA6Df,cAAe,CACf,aAAc,CACd,6BAAsD,CACtD,uCAAwC,CACxC,0CAA2C,CAC3C,wCAAyC,CAhE5C,8BAqEE,iBAvEgB,CAElB,8CAwEG,4BAA6B,CAC7B,WA3Ee,CA4Ef,cAAe,CACf,aAAc,CACd,6BA9Ee,CA+Ef,uCAAwC,CACxC,yCAA0C,CAC1C,0CAA2C,CA/E9C,6BAoFE,iBAAkB,CAClB,2EAA6E,CAC7E,SAAU,CAtFZ,8BA0FE,kBAAmB,CACnB,yCAA0C,CAC1C,SAAU\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"0a7f1bc\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$arrow-width: 10px;\\n\\n.popover {\\n\\tz-index: 100000;\\n\\tdisplay: block !important;\\n\\n\\tfilter: drop-shadow(0 1px 10px var(--color-box-shadow));\\n\\n\\t&__inner {\\n\\t\\tpadding: 0;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tborder-radius: var(--border-radius);\\n\\t\\tbackground: var(--color-main-background);\\n\\t}\\n\\n\\t&__arrow {\\n\\t\\tposition: absolute;\\n\\t\\tz-index: 1;\\n\\t\\twidth: 0;\\n\\t\\theight: 0;\\n\\t\\tmargin: $arrow-width;\\n\\t\\tborder-style: solid;\\n\\t\\tborder-color: var(--color-main-background);\\n\\t}\\n\\n\\t&[x-placement^='top'] {\\n\\t\\tmargin-bottom: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\tbottom: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width 0 $arrow-width;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='bottom'] {\\n\\t\\tmargin-top: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: -$arrow-width;\\n\\t\\t\\tleft: calc(50% - $arrow-width);\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\tmargin-bottom: 0;\\n\\t\\t\\tborder-width: 0 $arrow-width $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='right'] {\\n\\t\\tmargin-left: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tleft: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width $arrow-width $arrow-width 0;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t\\tborder-left-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[x-placement^='left'] {\\n\\t\\tmargin-right: $arrow-width;\\n\\n\\t\\t.popover__arrow {\\n\\t\\t\\ttop: calc(50% - $arrow-width);\\n\\t\\t\\tright: -$arrow-width;\\n\\t\\t\\tmargin-right: 0;\\n\\t\\t\\tmargin-left: 0;\\n\\t\\t\\tborder-width: $arrow-width 0 $arrow-width $arrow-width;\\n\\t\\t\\tborder-top-color: transparent !important;\\n\\t\\t\\tborder-right-color: transparent !important;\\n\\t\\t\\tborder-bottom-color: transparent !important;\\n\\t\\t}\\n\\t}\\n\\n\\t&[aria-hidden='true'] {\\n\\t\\tvisibility: hidden;\\n\\t\\ttransition: opacity var(--animation-quick), visibility var(--animation-quick);\\n\\t\\topacity: 0;\\n\\t}\\n\\n\\t&[aria-hidden='false'] {\\n\\t\\tvisibility: visible;\\n\\t\\ttransition: opacity var(--animation-quick);\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.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_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".material-design-icon[data-v-aedc7374]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.modal-mask[data-v-aedc7374]{position:fixed;z-index:9998;top:0;left:0;display:block;width:100%;height:100%;background-color:rgba(0,0,0,0.5)}.modal-mask--dark[data-v-aedc7374]{background-color:rgba(0,0,0,0.92)}.modal-header[data-v-aedc7374]{position:absolute;z-index:10001;top:0;right:0;left:0;display:flex !important;align-items:center;justify-content:center;width:100%;height:50px;transition:opacity 250ms, visibility 250ms}.modal-header.invisible[style*='display:none'][data-v-aedc7374],.modal-header.invisible[style*='display: none'][data-v-aedc7374]{visibility:hidden}.modal-header .modal-title[data-v-aedc7374]{overflow-x:hidden;box-sizing:border-box;width:100%;padding:0 132px 0 12px;transition:padding ease 100ms;white-space:nowrap;text-overflow:ellipsis;color:#fff;font-size:14px}@media only screen and (min-width: 512px){.modal-header .modal-title[data-v-aedc7374]{padding-left:132px;text-align:center}}.modal-header .icons-menu[data-v-aedc7374]{position:absolute;right:0;display:flex;align-items:center;justify-content:flex-end}.modal-header .icons-menu .header-close[data-v-aedc7374]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;margin:3px;padding:0}.modal-header .icons-menu .play-pause-icons[data-v-aedc7374]{position:relative;width:50px;height:50px;margin:0;padding:0;cursor:pointer;border:none;background-color:transparent}.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__play[data-v-aedc7374],.modal-header .icons-menu .play-pause-icons:hover .play-pause-icons__pause[data-v-aedc7374],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__play[data-v-aedc7374],.modal-header .icons-menu .play-pause-icons:focus .play-pause-icons__pause[data-v-aedc7374]{opacity:1;border-radius:22px;background-color:rgba(127,127,127,0.25)}.modal-header .icons-menu .play-pause-icons__play[data-v-aedc7374],.modal-header .icons-menu .play-pause-icons__pause[data-v-aedc7374]{box-sizing:border-box;width:44px;height:44px;margin:3px;cursor:pointer;opacity:.7}.modal-header .icons-menu .header-actions[data-v-aedc7374]{margin:3px;color:white}.modal-header .icons-menu .action-item--single[data-v-aedc7374]{box-sizing:border-box;width:44px;height:44px;cursor:pointer;background-position:center;background-size:22px}.modal-header .icons-menu[data-v-aedc7374] button{color:#fff}.modal-header .icons-menu[data-v-aedc7374] .action-item__menutoggle{padding:0}.modal-header .icons-menu[data-v-aedc7374] .action-item__menutoggle span,.modal-header .icons-menu[data-v-aedc7374] .action-item__menutoggle svg{width:var(--icon-size);height:var(--icon-size)}.modal-wrapper[data-v-aedc7374]{display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:100%;height:100%}.modal-wrapper .prev[data-v-aedc7374],.modal-wrapper .next[data-v-aedc7374]{z-index:10000;display:flex !important;align-items:center;justify-content:center;width:15%;min-width:60px;height:100%;transition:opacity 250ms, visibility 250ms}.modal-wrapper .prev.invisible[style*='display:none'][data-v-aedc7374],.modal-wrapper .prev.invisible[style*='display: none'][data-v-aedc7374],.modal-wrapper .next.invisible[style*='display:none'][data-v-aedc7374],.modal-wrapper .next.invisible[style*='display: none'][data-v-aedc7374]{visibility:hidden}.modal-wrapper .icon-next[data-v-aedc7374],.modal-wrapper .icon-previous[data-v-aedc7374]{box-sizing:border-box;width:44px;height:44px;color:white;background-image:none;display:flex}.modal-wrapper .modal-container[data-v-aedc7374]{display:block;overflow:hidden;padding:0;transition:transform 300ms ease;border-radius:var(--border-radius-large);background-color:var(--color-main-background);box-shadow:0 0 40px rgba(0,0,0,0.2)}.modal-wrapper:not(.modal-wrapper--large):not(.modal-wrapper--full) .modal-container[data-v-aedc7374]{max-width:900px;max-height:80%}.modal-wrapper--full .modal-container[data-v-aedc7374]{max-width:100%;max-height:100%;border-radius:0}.modal-wrapper--full .prev[data-v-aedc7374],.modal-wrapper--full .next[data-v-aedc7374],.modal-wrapper--spread-navigation .prev[data-v-aedc7374],.modal-wrapper--spread-navigation .next[data-v-aedc7374]{position:absolute;width:8%;height:35vw}.modal-wrapper--full .prev[data-v-aedc7374],.modal-wrapper--spread-navigation .prev[data-v-aedc7374]{left:0}.modal-wrapper--full .next[data-v-aedc7374],.modal-wrapper--spread-navigation .next[data-v-aedc7374]{right:0}.modal-wrapper--large .modal-container[data-v-aedc7374]{max-width:85%;max-height:90%}.modal-wrapper--large .prev[data-v-aedc7374],.modal-wrapper--large .next[data-v-aedc7374]{width:8%;min-width:44px;height:35vw}.fade-enter-active[data-v-aedc7374],.fade-leave-active[data-v-aedc7374]{transition:opacity 250ms}.fade-enter[data-v-aedc7374],.fade-leave-to[data-v-aedc7374]{opacity:0}.fade-visibility-enter[data-v-aedc7374],.fade-visibility-leave-to[data-v-aedc7374]{visibility:hidden;opacity:0}.modal-in-enter-active[data-v-aedc7374],.modal-in-leave-active[data-v-aedc7374],.modal-out-enter-active[data-v-aedc7374],.modal-out-leave-active[data-v-aedc7374]{transition:opacity 250ms}.modal-in-enter[data-v-aedc7374],.modal-in-leave-to[data-v-aedc7374],.modal-out-enter[data-v-aedc7374],.modal-out-leave-to[data-v-aedc7374]{opacity:0}.modal-in-enter .modal-container[data-v-aedc7374],.modal-in-leave-to .modal-container[data-v-aedc7374]{transform:scale(0.9)}.modal-out-enter .modal-container[data-v-aedc7374],.modal-out-leave-to .modal-container[data-v-aedc7374]{transform:scale(1.1)}.modal-mask .play-pause-icons .progress-ring[data-v-aedc7374]{position:absolute;top:0;left:0;transform:rotate(-90deg)}.modal-mask .play-pause-icons .progress-ring .progress-ring__circle[data-v-aedc7374]{transition:100ms stroke-dashoffset;transform-origin:50% 50%;animation:progressring-data-v-aedc7374 linear var(--slideshow-duration) infinite;stroke-linecap:round;stroke-dashoffset:94.24778;stroke-dasharray:94.24778}.modal-mask .play-pause-icons--paused .icon-pause[data-v-aedc7374]{animation:breath-data-v-aedc7374 2s cubic-bezier(0.4, 0, 0.2, 1) infinite}.modal-mask .play-pause-icons--paused .progress-ring__circle[data-v-aedc7374]{animation-play-state:paused !important}@keyframes progressring-data-v-aedc7374{from{stroke-dashoffset:94.24778}to{stroke-dashoffset:0}}@keyframes breath-data-v-aedc7374{0%{opacity:1}50%{opacity:0}100%{opacity:1}}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./Modal.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCygBxB,6BACC,cAAe,CACf,YAAa,CACb,KAAM,CACN,MAAO,CACP,aAAc,CACd,UAAW,CACX,WAAY,CACZ,gCAAmC,CACnC,mCACC,iCAAoC,CACpC,+BAID,iBAAkB,CAClB,aAAc,CACd,KAAM,CACN,OAAQ,CACR,MAAO,CAGP,uBAAwB,CACxB,kBAAmB,CACnB,sBAAuB,CACvB,UAAW,CACX,WA5BiB,CA6BjB,0CACiB,CAdlB,iIAmBE,iBAAkB,CAnBpB,4CAuBE,iBAAkB,CAClB,qBAAsB,CACtB,UAAW,CACX,sBAAwC,CACxC,6BAA8B,CAC9B,kBAAmB,CACnB,sBAAuB,CACvB,UAAW,CACX,cC7hB8C,CD8hB9C,0CAhCF,4CAqCG,kBAAc,CACd,iBAAkB,CAClB,CAvCH,2CA2CE,iBAAkB,CAClB,OAAQ,CACR,YAAa,CACb,kBAAmB,CACnB,wBAAyB,CA/C3B,yDAkDG,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,qBAAsB,CACtB,UAA4C,CAC5C,SAAU,CAvDb,6DA2DG,iBAAkB,CAClB,UA5Ee,CA6Ef,WA7Ee,CA8Ef,QAAS,CACT,SAAU,CACV,cAAe,CACf,WAAY,CACZ,4BAA6B,CAlEhC,8WAuEK,SC1jBW,CD2jBX,kBAAkC,CAClC,uCCpkBmC,CD2fxC,uIA8EI,qBAAsB,CACtB,UCrlBiB,CDslBjB,WCtlBiB,CDulBjB,UAA4C,CAC5C,cAAe,CACf,UCvkBe,CDofnB,2DAwFG,UAA4C,CAC5C,WAAY,CAzFf,gEA6FG,qBAAsB,CACtB,UCpmBkB,CDqmBlB,WCrmBkB,CDsmBlB,cAAe,CACf,0BAA2B,CAC3B,oBAAqB,CAlGxB,mDAuGG,UAAW,CAvGd,oEA4GG,SAAU,CA5Gb,iJA8GI,sBAAuB,CACvB,uBAAwB,CACxB,gCAMH,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CACvB,qBAAsB,CACtB,UAAW,CACX,WAAY,CANb,4EAWE,aAAc,CAEd,uBAAwB,CACxB,kBAAmB,CACnB,sBAAuB,CACvB,SAAU,CACV,cAAe,CACf,WAAY,CACZ,0CACiB,CApBnB,8RA4BG,iBAAkB,CA5BrB,0FAmCE,qBAAsB,CACtB,UC/pBmB,CDgqBnB,WChqBmB,CDiqBnB,WAAY,CACZ,qBAAsB,CACtB,YAAa,CAxCf,iDA6CE,aAAc,CACd,eAAgB,CAChB,SAAU,CACV,+BAAgC,CAChC,wCAAyC,CACzC,6CAA8C,CAC9C,mCAAsC,CAnDxC,sGAsDE,eAAgB,CAChB,cAAe,CACf,uDAKC,cAAe,CACf,eAAgB,CAChB,eAAgB,CAChB,0MAMA,iBAAkB,CAClB,QAAS,CACT,WAAY,CANb,qGASC,MAAO,CATR,qGAYC,OAAQ,CACR,wDAIA,aAAc,CACd,cAAe,CAHhB,0FAOC,QAAS,CACT,cCptBkB,CDqtBlB,WAAY,CACZ,wEAOF,wBAAyB,CACzB,6DAIA,SAAU,CACV,mFAIA,iBAAkB,CAClB,SAAU,CACV,kKAMA,wBAAyB,CACzB,4IAMA,SAAU,CACV,uGAIA,oBAAoB,CACpB,yGAIA,oBAAqB,CACrB,8DAQC,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,wBAAyB,CAL3B,qFAOG,kCAAmC,CACnC,wBAAyB,CACzB,gFAAiE,CAEjE,oBAAqB,CACrB,0BAfQ,CAgBR,yBAhBQ,CAGX,mEAkBG,yEAAwD,CAlB3D,8EAqBG,sCAAuC,CACvC,wCAMF,KACC,0BAhCS,CAkCV,GACC,mBAAoB,CAAA,CAItB,kCACC,GACC,SAAU,CAEX,IACC,SAAU,CAEX,KACC,SAAU,CAAA\",\"sourcesContent\":[\"/*\\n* Ensure proper alignment of the vue material icons\\n*/\\n.material-design-icon {\\n\\tdisplay: flex;\\n\\talign-self: center;\\n\\tjustify-self: center;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\",\"$scope_version:\\\"0a7f1bc\\\"; @import 'variables'; @import 'material-icons';\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n$header-size: 50px;\\n\\n.modal-mask {\\n\\tposition: fixed;\\n\\tz-index: 9998;\\n\\ttop: 0;\\n\\tleft: 0;\\n\\tdisplay: block;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbackground-color: rgba(0, 0, 0, .5);\\n\\t&--dark {\\n\\t\\tbackground-color: rgba(0, 0, 0, .92);\\n\\t}\\n}\\n\\n.modal-header {\\n\\tposition: absolute;\\n\\tz-index: 10001;\\n\\ttop: 0;\\n\\tright: 0;\\n\\tleft: 0;\\n\\t// prevent vue show to use display:none and reseting\\n\\t// the circle animation loop\\n\\tdisplay: flex !important;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\twidth: 100%;\\n\\theight: $header-size;\\n\\ttransition: opacity 250ms,\\n\\t\\tvisibility 250ms;\\n\\n\\t// replace display by visibility\\n\\t&.invisible[style*='display:none'],\\n\\t&.invisible[style*='display: none'] {\\n\\t\\tvisibility: hidden;\\n\\t}\\n\\n\\t.modal-title {\\n\\t\\toverflow-x: hidden;\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: 100%;\\n\\t\\tpadding: 0 #{$clickable-area * 3} 0 12px; // maximum actions is 3\\n\\t\\ttransition: padding ease 100ms;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: #fff;\\n\\t\\tfont-size: $icon-margin;\\n\\t}\\n\\n\\t// On wider screens the title can be centered\\n\\t@media only screen and (min-width: $breakpoint-mobile/2) {\\n\\t\\t.modal-title {\\n\\t\\t\\tpadding-left: #{$clickable-area * 3}; // maximum actions is 3\\n\\t\\t\\ttext-align: center;\\n\\t\\t}\\n\\t}\\n\\n\\t.icons-menu {\\n\\t\\tposition: absolute;\\n\\t\\tright: 0;\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: flex-end;\\n\\n\\t\\t.header-close {\\n\\t\\t\\tdisplay: flex;\\n\\t\\t\\talign-items: center;\\n\\t\\t\\tjustify-content: center;\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\tmargin: ($header-size - $clickable-area) / 2;\\n\\t\\t\\tpadding: 0;\\n\\t\\t}\\n\\n\\t\\t.play-pause-icons {\\n\\t\\t\\tposition: relative;\\n\\t\\t\\twidth: $header-size;\\n\\t\\t\\theight: $header-size;\\n\\t\\t\\tmargin: 0;\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tborder: none;\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\t.play-pause-icons__play,\\n\\t\\t\\t\\t.play-pause-icons__pause {\\n\\t\\t\\t\\t\\topacity: $opacity_full;\\n\\t\\t\\t\\t\\tborder-radius: $clickable-area / 2;\\n\\t\\t\\t\\t\\tbackground-color: $icon-focus-bg;\\n\\t\\t\\t\\t}\\n\\t\\t\\t}\\n\\t\\t\\t&__play,\\n\\t\\t\\t&__pause {\\n\\t\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\t\\theight: $clickable-area;\\n\\t\\t\\t\\tmargin: ($header-size - $clickable-area) / 2;\\n\\t\\t\\t\\tcursor: pointer;\\n\\t\\t\\t\\topacity: $opacity_normal;\\n\\t\\t\\t}\\n\\t\\t}\\n\\n\\t\\t.header-actions {\\n\\t\\t\\tmargin: ($header-size - $clickable-area) / 2;\\n\\t\\t\\tcolor: white;\\n\\t\\t}\\n\\n\\t\\t.action-item--single {\\n\\t\\t\\tbox-sizing: border-box;\\n\\t\\t\\twidth: $clickable-area;\\n\\t\\t\\theight: $clickable-area;\\n\\t\\t\\tcursor: pointer;\\n\\t\\t\\tbackground-position: center;\\n\\t\\t\\tbackground-size: 22px;\\n\\t\\t}\\n\\n\\t\\t::v-deep button {\\n\\t\\t\\t// force white instead of default main text\\n\\t\\t\\tcolor: #fff;\\n\\t\\t}\\n\\n\\t\\t// Force the Actions menu icon to be the same size as other icons\\n\\t\\t&::v-deep .action-item__menutoggle {\\n\\t\\t\\tpadding: 0;\\n\\t\\t\\tspan, svg {\\n\\t\\t\\t\\twidth: var(--icon-size);\\n\\t\\t\\t\\theight: var(--icon-size);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.modal-wrapper {\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\tbox-sizing: border-box;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\n\\t/* Navigation buttons */\\n\\t.prev,\\n\\t.next {\\n\\t\\tz-index: 10000;\\n\\t\\t// ignore display: none\\n\\t\\tdisplay: flex !important;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: center;\\n\\t\\twidth: 15%;\\n\\t\\tmin-width: 60px;\\n\\t\\theight: 100%;\\n\\t\\ttransition: opacity 250ms,\\n\\t\\t\\tvisibility 250ms;\\n\\n\\t\\t// we want to keep the elements on page\\n\\t\\t// even if hidden to avoid having a unbalanced\\n\\t\\t// centered content\\n\\t\\t// replace display by visibility\\n\\t\\t&.invisible[style*='display:none'],\\n\\t\\t&.invisible[style*='display: none'] {\\n\\t\\t\\tvisibility: hidden;\\n\\t\\t}\\n\\t}\\n\\n\\t// buttons/icons\\n\\t.icon-next,\\n\\t.icon-previous {\\n\\t\\tbox-sizing: border-box;\\n\\t\\twidth: $clickable-area;\\n\\t\\theight: $clickable-area;\\n\\t\\tcolor: white;\\n\\t\\tbackground-image: none;\\n\\t\\tdisplay: flex;\\n\\t}\\n\\n\\t/* Content */\\n\\t.modal-container {\\n\\t\\tdisplay: block;\\n\\t\\toverflow: hidden;\\n\\t\\tpadding: 0;\\n\\t\\ttransition: transform 300ms ease;\\n\\t\\tborder-radius: var(--border-radius-large);\\n\\t\\tbackground-color: var(--color-main-background);\\n\\t\\tbox-shadow: 0 0 40px rgba(0, 0, 0, .2);\\n\\t}\\n\\t&:not(&--large):not(&--full) .modal-container {\\n\\t\\tmax-width: 900px;\\n\\t\\tmax-height: 80%;\\n\\t}\\n\\n\\t// Sizing\\n\\t&--full {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\tmax-height: 100%;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t}\\n\\t}\\n\\t&--full,\\n\\t&--spread-navigation {\\n\\t\\t.prev,\\n\\t\\t.next {\\n\\t\\t\\tposition: absolute;\\n\\t\\t\\twidth: 8%;\\n\\t\\t\\theight: 35vw;\\n\\t\\t}\\n\\t\\t.prev {\\n\\t\\t\\tleft: 0;\\n\\t\\t}\\n\\t\\t.next {\\n\\t\\t\\tright: 0;\\n\\t\\t}\\n\\t}\\n\\t&--large {\\n\\t\\t.modal-container {\\n\\t\\t\\tmax-width: 85%;\\n\\t\\t\\tmax-height: 90%;\\n\\t\\t}\\n\\t\\t.prev,\\n\\t\\t.next {\\n\\t\\t\\twidth: 8%;\\n\\t\\t\\tmin-width: $clickable-area;\\n\\t\\t\\theight: 35vw;\\n\\t\\t}\\n\\t}\\n}\\n\\n/* TRANSITIONS */\\n.fade-enter-active,\\n.fade-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.fade-enter,\\n.fade-leave-to {\\n\\topacity: 0;\\n}\\n\\n.fade-visibility-enter,\\n.fade-visibility-leave-to {\\n\\tvisibility: hidden;\\n\\topacity: 0;\\n}\\n\\n.modal-in-enter-active,\\n.modal-in-leave-active,\\n.modal-out-enter-active,\\n.modal-out-leave-active {\\n\\ttransition: opacity 250ms;\\n}\\n\\n.modal-in-enter,\\n.modal-in-leave-to,\\n.modal-out-enter,\\n.modal-out-leave-to {\\n\\topacity: 0;\\n}\\n\\n.modal-in-enter .modal-container,\\n.modal-in-leave-to .modal-container {\\n\\ttransform: scale(.9);\\n}\\n\\n.modal-out-enter .modal-container,\\n.modal-out-leave-to .modal-container {\\n\\ttransform: scale(1.1);\\n}\\n\\n// animated circle\\n$radius: 15;\\n$pi: 3.14159265358979;\\n\\n.modal-mask .play-pause-icons {\\n\\t.progress-ring {\\n\\t\\tposition: absolute;\\n\\t\\ttop: 0;\\n\\t\\tleft: 0;\\n\\t\\ttransform: rotate(-90deg);\\n\\t\\t.progress-ring__circle {\\n\\t\\t\\ttransition: 100ms stroke-dashoffset;\\n\\t\\t\\ttransform-origin: 50% 50%; // axis compensation\\n\\t\\t\\tanimation: progressring linear var(--slideshow-duration) infinite;\\n\\n\\t\\t\\tstroke-linecap: round;\\n\\t\\t\\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\\n\\t\\t\\tstroke-dasharray: $radius * 2 * $pi; // radius * 2 * PI\\n\\t\\t}\\n\\t}\\n\\t&--paused {\\n\\t\\t.icon-pause {\\n\\t\\t\\tanimation: breath 2s cubic-bezier(.4, 0, .2, 1) infinite;\\n\\t\\t}\\n\\t\\t.progress-ring__circle {\\n\\t\\t\\tanimation-play-state: paused !important;\\n\\t\\t}\\n\\t}\\n}\\n\\n// keyframes get scoped too and break the animation name, we need them unscoped\\n@keyframes progressring {\\n\\tfrom {\\n\\t\\tstroke-dashoffset: $radius * 2 * $pi; // radius * 2 * PI\\n\\t}\\n\\tto {\\n\\t\\tstroke-dashoffset: 0;\\n\\t}\\n}\\n\\n@keyframes breath {\\n\\t0% {\\n\\t\\topacity: 1;\\n\\t}\\n\\t50% {\\n\\t\\topacity: 0;\\n\\t}\\n\\t100% {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n\",\"/**\\n * @copyright Copyright (c) 2019 John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @author John Molakvoæ <skjnldsv@protonmail.com>\\n *\\n * @license GNU AGPL version 3 or any later version\\n *\\n * This program is free software: you can redistribute it and/or modify\\n * it under the terms of the GNU Affero General Public License as\\n * published by the Free Software Foundation, either version 3 of the\\n * License, or (at your option) any later version.\\n *\\n * This program is distributed in the hope that it will be useful,\\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n * GNU Affero General Public License for more details.\\n *\\n * You should have received a copy of the GNU Affero General Public License\\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\\n *\\n */\\n\\n// https://uxplanet.org/7-rules-for-mobile-ui-button-design-e9cf2ea54556\\n// recommended is 48px\\n// 44px is what we choose and have very good visual-to-usability ratio\\n$clickable-area: 44px;\\n\\n// background icon size\\n// also used for the scss icon font\\n$icon-size: 16px;\\n\\n// icon padding for a $clickable-area width and a $icon-size icon\\n// ( 44px - 16px ) / 2\\n$icon-margin: ($clickable-area - $icon-size) / 2;\\n\\n// transparency background for icons\\n$icon-focus-bg: rgba(127, 127, 127, .25);\\n\\n// popovermenu arrow width from the triangle center\\n$arrow-width: 9px;\\n\\n// opacities\\n$opacity_disabled: .5;\\n$opacity_normal: .7;\\n$opacity_full: 1;\\n\\n// menu round background hover feedback\\n// good looking on dark AND white bg\\n$action-background-hover: rgba(127, 127, 127, .25);\\n\\n// various structure data used in the \\n// `AppNavigation` component\\n$header-height: 50px;\\n$navigation-width: 300px;\\n\\n// mobile breakpoint\\n$breakpoint-mobile: 1024px;\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n"],"sourceRoot":""}