@nextcloud/vue 5.2.1 → 5.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 (102) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/Components/ActionCaption.js +1 -1
  3. package/dist/Components/ActionCaption.js.map +1 -1
  4. package/dist/Components/ActionCheckbox.js +1 -1
  5. package/dist/Components/ActionCheckbox.js.map +1 -1
  6. package/dist/Components/ActionInput.js +11 -11
  7. package/dist/Components/ActionInput.js.map +1 -1
  8. package/dist/Components/ActionRadio.js +1 -1
  9. package/dist/Components/ActionRadio.js.map +1 -1
  10. package/dist/Components/ActionSeparator.js +1 -1
  11. package/dist/Components/ActionSeparator.js.map +1 -1
  12. package/dist/Components/ActionText.js +1 -1
  13. package/dist/Components/ActionText.js.map +1 -1
  14. package/dist/Components/ActionTextEditable.js +1 -1
  15. package/dist/Components/ActionTextEditable.js.map +1 -1
  16. package/dist/Components/Actions.js +3 -3
  17. package/dist/Components/Actions.js.map +1 -1
  18. package/dist/Components/AppContent.js +1 -1
  19. package/dist/Components/AppContent.js.map +1 -1
  20. package/dist/Components/AppNavigation.js +3 -3
  21. package/dist/Components/AppNavigation.js.map +1 -1
  22. package/dist/Components/AppNavigationCaption.js +2 -2
  23. package/dist/Components/AppNavigationCaption.js.map +1 -1
  24. package/dist/Components/AppNavigationCounter.js +1 -1
  25. package/dist/Components/AppNavigationCounter.js.map +1 -1
  26. package/dist/Components/AppNavigationIconBullet.js +1 -1
  27. package/dist/Components/AppNavigationIconBullet.js.map +1 -1
  28. package/dist/Components/AppNavigationItem.js +4 -4
  29. package/dist/Components/AppNavigationItem.js.map +1 -1
  30. package/dist/Components/AppNavigationNew.js +1 -1
  31. package/dist/Components/AppNavigationNew.js.map +1 -1
  32. package/dist/Components/AppNavigationNewItem.js +2 -2
  33. package/dist/Components/AppNavigationNewItem.js.map +1 -1
  34. package/dist/Components/AppNavigationSettings.js +2 -2
  35. package/dist/Components/AppNavigationSettings.js.map +1 -1
  36. package/dist/Components/AppNavigationToggle.js +3 -3
  37. package/dist/Components/AppNavigationToggle.js.map +1 -1
  38. package/dist/Components/AppSettingsDialog.js +10 -10
  39. package/dist/Components/AppSettingsDialog.js.map +1 -1
  40. package/dist/Components/AppSettingsSection.js +1 -1
  41. package/dist/Components/AppSettingsSection.js.map +1 -1
  42. package/dist/Components/AppSidebar.js +5 -5
  43. package/dist/Components/AppSidebar.js.map +1 -1
  44. package/dist/Components/AppSidebarTab.js +1 -1
  45. package/dist/Components/AppSidebarTab.js.map +1 -1
  46. package/dist/Components/Avatar.js +3 -3
  47. package/dist/Components/Avatar.js.map +1 -1
  48. package/dist/Components/Breadcrumb.js +4 -4
  49. package/dist/Components/Breadcrumb.js.map +1 -1
  50. package/dist/Components/Breadcrumbs.js +10 -10
  51. package/dist/Components/Breadcrumbs.js.map +1 -1
  52. package/dist/Components/Button.js +2 -2
  53. package/dist/Components/Button.js.map +1 -1
  54. package/dist/Components/CheckboxRadioSwitch.js +1 -1
  55. package/dist/Components/CheckboxRadioSwitch.js.map +1 -1
  56. package/dist/Components/ColorPicker.js +2 -2
  57. package/dist/Components/ColorPicker.js.map +1 -1
  58. package/dist/Components/Content.js +1 -1
  59. package/dist/Components/Content.js.map +1 -1
  60. package/dist/Components/CounterBubble.js +2 -2
  61. package/dist/Components/CounterBubble.js.map +1 -1
  62. package/dist/Components/DatetimePicker.js +6 -6
  63. package/dist/Components/DatetimePicker.js.map +1 -1
  64. package/dist/Components/EmojiPicker.js +2 -2
  65. package/dist/Components/EmojiPicker.js.map +1 -1
  66. package/dist/Components/EmptyContent.js +1 -1
  67. package/dist/Components/EmptyContent.js.map +1 -1
  68. package/dist/Components/ListItem.js +5 -5
  69. package/dist/Components/ListItem.js.map +1 -1
  70. package/dist/Components/ListItemIcon.js +5 -5
  71. package/dist/Components/ListItemIcon.js.map +1 -1
  72. package/dist/Components/Modal.js +5 -5
  73. package/dist/Components/Modal.js.map +1 -1
  74. package/dist/Components/Multiselect.js +6 -6
  75. package/dist/Components/Multiselect.js.map +1 -1
  76. package/dist/Components/MultiselectTags.js +6 -6
  77. package/dist/Components/MultiselectTags.js.map +1 -1
  78. package/dist/Components/Popover.js +1 -1
  79. package/dist/Components/Popover.js.map +1 -1
  80. package/dist/Components/PopoverMenu.js +1 -1
  81. package/dist/Components/PopoverMenu.js.map +1 -1
  82. package/dist/Components/ProgressBar.js +1 -1
  83. package/dist/Components/ProgressBar.js.map +1 -1
  84. package/dist/Components/RichContenteditable.js +2 -2
  85. package/dist/Components/RichContenteditable.js.map +1 -1
  86. package/dist/Components/SettingsInputText.js +1 -1
  87. package/dist/Components/SettingsInputText.js.map +1 -1
  88. package/dist/Components/SettingsSection.js +1 -1
  89. package/dist/Components/SettingsSection.js.map +1 -1
  90. package/dist/Components/SettingsSelectGroup.js +8 -8
  91. package/dist/Components/SettingsSelectGroup.js.map +1 -1
  92. package/dist/Components/TimezonePicker.js +9 -9
  93. package/dist/Components/TimezonePicker.js.map +1 -1
  94. package/dist/Components/UserBubble.js +3 -3
  95. package/dist/Components/UserBubble.js.map +1 -1
  96. package/dist/Directives/Tooltip.js +2 -2
  97. package/dist/Directives/Tooltip.js.map +1 -1
  98. package/dist/Mixins/richEditor.js +1 -1
  99. package/dist/Mixins/richEditor.js.map +1 -1
  100. package/dist/ncvuecomponents.js +11 -11
  101. package/dist/ncvuecomponents.js.map +1 -1
  102. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- !function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Components/Button",[],t):"object"==typeof exports?exports["Components/Button"]=t():(n.NextcloudVue=n.NextcloudVue||{},n.NextcloudVue["Components/Button"]=t())}(window,(function(){return function(n){var t={};function e(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return n[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}return e.m=n,e.c=t,e.d=function(n,t,o){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(e.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var r in n)e.d(o,r,function(t){return n[t]}.bind(null,r));return o},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="/dist/",e(e.s=236)}({0:function(n,t,e){"use strict";function o(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var e=n&&("undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"]);if(null==e)return;var o,r,a=[],i=!0,c=!1;try{for(e=e.call(n);!(i=(o=e.next()).done)&&(a.push(o.value),!t||a.length!==t);i=!0);}catch(n){c=!0,r=n}finally{try{i||null==e.return||e.return()}finally{if(c)throw r}}return a}(n,t)||function(n,t){if(!n)return;if("string"==typeof n)return r(n,t);var e=Object.prototype.toString.call(n).slice(8,-1);"Object"===e&&n.constructor&&(e=n.constructor.name);if("Map"===e||"Set"===e)return Array.from(n);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return r(n,t)}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(n,t){(null==t||t>n.length)&&(t=n.length);for(var e=0,o=new Array(t);e<t;e++)o[e]=n[e];return o}n.exports=function(n){var t=o(n,4),e=t[1],r=t[3];if(!r)return e;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),i="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),c="/*# ".concat(i," */"),u=r.sources.map((function(n){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(n," */")}));return[e].concat(u).concat([c]).join("\n")}return[e].join("\n")}},1:function(n,t,e){"use strict";n.exports=function(n){var t=[];return t.toString=function(){return this.map((function(t){var e=n(t);return t[2]?"@media ".concat(t[2]," {").concat(e,"}"):e})).join("")},t.i=function(n,e,o){"string"==typeof n&&(n=[[null,n,""]]);var r={};if(o)for(var a=0;a<this.length;a++){var i=this[a][0];null!=i&&(r[i]=!0)}for(var c=0;c<n.length;c++){var u=[].concat(n[c]);o&&r[u[0]]||(e&&(u[2]?u[2]="".concat(e," and ").concat(u[2]):u[2]=e),t.push(u))}},t}},188:function(n,t,e){"use strict";var o=e(0),r=e.n(o),a=e(1),i=e.n(a)()(r.a);i.push([n.i,".material-design-icon[data-v-13987eba]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-13987eba]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition:background-color 0.1s linear !important;transition:border 0.1s linear;background-color:var(--color-primary-element-lighter);color:var(--color-primary-light-text)}.button-vue *[data-v-13987eba]{cursor:pointer}.button-vue[data-v-13987eba]:focus{outline:none}.button-vue[data-v-13987eba]:disabled{cursor:default;background-color:var(--color-background-dark);color:var(--color-border-dark)}.button-vue:disabled *[data-v-13987eba]{cursor:default}.button-vue[data-v-13987eba]:disabled:hover{background-color:var(--color-background-dark);color:var(--color-border-dark)}.button-vue[data-v-13987eba]:hover{background-color:var(--color-primary-light-hover)}.button-vue[data-v-13987eba]:active{background-color:var(--color-primary-element-lighter)}.button-vue__wrapper[data-v-13987eba]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-13987eba]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-13987eba]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-13987eba]{width:44px !important}.button-vue--text-only[data-v-13987eba]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-13987eba]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-13987eba]{padding:0 16px 0 4px}.button-vue--wide[data-v-13987eba]{width:100%}.button-vue--tabbed[data-v-13987eba]{box-shadow:0 0 0 2px var(--color-main-text);background-color:var(--color-primary-light-hover)}.button-vue--tabbed.button-vue--vue-primary[data-v-13987eba]{background-color:var(--color-primary-hover)}.button-vue--tabbed.button-vue--vue-secondary[data-v-13987eba]{box-shadow:0 0 0 2px var(--color-main-text)}.button-vue--tabbed.button-vue--vue-tertiary[data-v-13987eba]{color:var(--color-main-text)}.button-vue--tabbed.button-vue--vue-success[data-v-13987eba]{background-color:var(--color-success-hover)}.button-vue--tabbed.button-vue--vue-warning[data-v-13987eba]{background-color:var(--color-warning-hover)}.button-vue--tabbed.button-vue--vue-error[data-v-13987eba]{background-color:var(--color-error-hover)}.button-vue--vue-primary[data-v-13987eba]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-13987eba]:hover{background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-13987eba]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-13987eba]{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-border-dark)}.button-vue--vue-secondary[data-v-13987eba]:hover{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-primary-element)}.button-vue--vue-tertiary[data-v-13987eba]{color:var(--color-text-lighter);background-color:transparent}.button-vue--vue-tertiary[data-v-13987eba]:hover{color:var(--color-main-text);background-color:transparent}.button-vue--vue-success[data-v-13987eba]{background-color:var(--color-success);color:white}.button-vue--vue-success[data-v-13987eba]:hover{background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-13987eba]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-13987eba]{background-color:var(--color-warning);color:white}.button-vue--vue-warning[data-v-13987eba]:hover{background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-13987eba]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-13987eba]{background-color:var(--color-error);color:white}.button-vue--vue-error[data-v-13987eba]:hover{background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-13987eba]:active{background-color:var(--color-error)}\n","",{version:3,sources:["webpack://./../../assets/material-icons.css","webpack://./Button.vue","webpack://./../../assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCgZxB,6BACC,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,QAAS,CACT,SAAU,CACV,kCAAmC,CACnC,gBAAiB,CACjB,eCvYoB,CDwYpB,cCxYoB,CDyYpB,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CAGvB,cAAe,CAIf,kBAAkC,CAClC,kDAAmD,CACnD,6BAA8B,CAqB9B,qDAAsD,CACtD,qCAAsC,CA3CvC,+BAiBE,cAAe,CAjBjB,mCAyBE,YAAa,CAzBf,sCA6BE,cAAe,CAIf,6CAA8C,CAC9C,8BAA+B,CAlCjC,wCA+BG,cAAe,CA/BlB,4CAoCG,6CAA8C,CAC9C,8BAA+B,CArClC,mCA6CE,iDAAkD,CA7CpD,oCAkDE,qDAAsD,CACtD,sCAGA,mBAAoB,CACpB,kBAAmB,CACnB,4BAA6B,CAC7B,mCAGA,WC3bmB,CD4bnB,UC5bmB,CD6bnB,eC7bmB,CD8bnB,cC9bmB,CD+bnB,YAAa,CACb,sBAAuB,CACvB,kBAAmB,CACnB,mCAGA,gBAAiB,CACjB,iBAAkB,CAClB,aAAc,CACd,wCAIA,qBAAiC,CACjC,wCAIA,cAAe,CADf,0DAGC,eAAgB,CAChB,gBAAiB,CACjB,4CAKD,oBAAqB,CACrB,mCAIA,UAAW,CACX,qCAMA,2CAA4C,CAC5C,iDAAkD,CAFlD,6DAIC,2CAA4C,CAJ7C,+DAOC,2CAA4C,CAP7C,8DAUC,4BAA6B,CAV9B,6DAaC,2CAA4C,CAb7C,6DAgBC,2CAA4C,CAhB7C,2DAmBC,yCAA0C,CAC1C,0CAOD,6CAA8C,CAC9C,+BAAgC,CAFhC,gDAIC,mDAAoD,CAJrD,iDASC,6CAA8C,CAC9C,4CAKD,4BAA6B,CAC7B,6CAA8C,CAC9C,6CAA8C,CAH9C,kDAKC,4BAA6B,CAC7B,6CAA8C,CAC9C,iDAAkD,CAClD,2CAKD,+BAAgC,CAChC,4BAA6B,CAF7B,iDAIC,4BAA6B,CAC7B,4BAA6B,CAC7B,0CAKD,qCAAsC,CACtC,WAAY,CAFZ,gDAIC,2CAA4C,CAJ7C,iDASC,qCAAsC,CACtC,0CAKD,qCAAsC,CACtC,WAAY,CAFZ,gDAIC,2CAA4C,CAJ7C,iDASC,qCAAsC,CACtC,wCAKD,mCAAoC,CACpC,WAAY,CAFZ,8CAIC,yCAA0C,CAJ3C,+CASC,mCAAoC",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:\"3ea5590\"; @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.button-vue {\n\tposition: relative;\n\twidth: fit-content;\n\toverflow: hidden;\n\tborder: 0;\n\tpadding: 0;\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\tmin-height: $clickable-area;\n\tmin-width: $clickable-area;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t// Cursor pointer on element and all children\n\tcursor: pointer;\n\t& * {\n\t\tcursor: pointer;\n\t}\n\tborder-radius: $clickable-area / 2;\n\ttransition: background-color 0.1s linear !important;\n\ttransition: border 0.1s linear;\n\n\t// No outline feedback for focus. Handled with a toggled class in js (see data)\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\t& * {\n\t\t\tcursor: default;\n\t\t}\n\t\tbackground-color: var(--color-background-dark);\n\t\tcolor: var(--color-border-dark);\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tcolor: var(--color-border-dark);\n\t\t}\n\t}\n\n\t// Default button type\n\tbackground-color: var(--color-primary-element-lighter);\n\tcolor: var(--color-primary-light-text);\n\t&:hover {\n\t\tbackground-color: var(--color-primary-light-hover);\n\t}\n\t// Back to the default color for this button when active\n\t// TODO: add ripple effect\n\t&:active {\n\t\tbackground-color: var(--color-primary-element-lighter);\n\t}\n\n\t&__wrapper {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: space-around;\n\t}\n\n\t&__icon {\n\t\theight: $clickable-area;\n\t\twidth: $clickable-area;\n\t\tmin-height: $clickable-area;\n\t\tmin-width: $clickable-area;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\n\t&__text {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 1px;\n\t\tpadding: 2px 0;\n\t}\n\n\t// Icon-only button\n\t&--icon-only {\n\t\twidth: $clickable-area !important;\n\t}\n\n\t// Text-only button\n\t&--text-only {\n\t\tpadding: 0 12px;\n\t\t& .button-vue__text {\n\t\t\tmargin-left: 4px;\n\t\t\tmargin-right: 4px;\n\t\t}\n\t}\n\n\t// Icon and text button\n\t&--icon-and-text {\n\t\tpadding: 0 16px 0 4px;\n\t}\n\n\t// Wide button spans the whole width of the container\n\t&--wide {\n\t\twidth: 100%;\n\t}\n\n\t// We use box-shadow around our buttons instead of an outline, so that the added \"border\"\n\t// coincides with the border of the element. It's not possible to add a border-radius to\n\t// the outline\n\t&--tabbed {\n\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\tbackground-color: var(--color-primary-light-hover);\n\t\t&.button-vue--vue-primary {\n\t\t\tbackground-color: var(--color-primary-hover);\n\t\t}\n\t\t&.button-vue--vue-secondary {\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\t}\n\t\t&.button-vue--vue-tertiary {\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t\t&.button-vue--vue-success {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t&.button-vue--vue-warning {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t&.button-vue--vue-error {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t}\n\n\t// Button types\n\n\t// Primary\n\t&--vue-primary {\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-text);\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Secondary\n\t&--vue-secondary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: var(--color-background-dark);\n\t\tbox-shadow: 0 0 0 2px var(--color-border-dark);\n\t\t&:hover {\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tbox-shadow: 0 0 0 2px var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Tertiary\n\t&--vue-tertiary {\n\t\tcolor: var(--color-text-lighter);\n\t\tbackground-color: transparent;\n\t\t&:hover {\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Success\n\t&--vue-success {\n\t\tbackground-color: var(--color-success);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// : add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t}\n\n\t// Warning\n\t&--vue-warning {\n\t\tbackground-color: var(--color-warning);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-warning);\n\t\t}\n\t}\n\n\t// Error\n\t&--vue-error {\n\t\tbackground-color: var(--color-error);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-error);\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:""}]),t.a=i},189:function(n,t){},2:function(n,t,e){"use strict";var o,r=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},a=function(){var n={};return function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(n){e=null}n[t]=e}return n[t]}}(),i=[];function c(n){for(var t=-1,e=0;e<i.length;e++)if(i[e].identifier===n){t=e;break}return t}function u(n,t){for(var e={},o=[],r=0;r<n.length;r++){var a=n[r],u=t.base?a[0]+t.base:a[0],l=e[u]||0,s="".concat(u," ").concat(l);e[u]=l+1;var d=c(s),v={css:a[1],media:a[2],sourceMap:a[3]};-1!==d?(i[d].references++,i[d].updater(v)):i.push({identifier:s,updater:p(v,t),references:1}),o.push(s)}return o}function l(n){var t=document.createElement("style"),o=n.attributes||{};if(void 0===o.nonce){var r=e.nc;r&&(o.nonce=r)}if(Object.keys(o).forEach((function(n){t.setAttribute(n,o[n])})),"function"==typeof n.insert)n.insert(t);else{var i=a(n.insert||"head");if(!i)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");i.appendChild(t)}return t}var s,d=(s=[],function(n,t){return s[n]=t,s.filter(Boolean).join("\n")});function v(n,t,e,o){var r=e?"":o.media?"@media ".concat(o.media," {").concat(o.css,"}"):o.css;if(n.styleSheet)n.styleSheet.cssText=d(t,r);else{var a=document.createTextNode(r),i=n.childNodes;i[t]&&n.removeChild(i[t]),i.length?n.insertBefore(a,i[t]):n.appendChild(a)}}function b(n,t,e){var o=e.css,r=e.media,a=e.sourceMap;if(r?n.setAttribute("media",r):n.removeAttribute("media"),a&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleSheet)n.styleSheet.cssText=o;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(o))}}var A=null,C=0;function p(n,t){var e,o,r;if(t.singleton){var a=C++;e=A||(A=l(t)),o=v.bind(null,e,a,!1),r=v.bind(null,e,a,!0)}else e=l(t),o=b.bind(null,e,t),r=function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)};return o(n),function(t){if(t){if(t.css===n.css&&t.media===n.media&&t.sourceMap===n.sourceMap)return;o(n=t)}else r()}}n.exports=function(n,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=r());var e=u(n=n||[],t);return function(n){if(n=n||[],"[object Array]"===Object.prototype.toString.call(n)){for(var o=0;o<e.length;o++){var r=c(e[o]);i[r].references--}for(var a=u(n,t),l=0;l<e.length;l++){var s=c(e[l]);0===i[s].references&&(i[s].updater(),i.splice(s,1))}e=a}}}},236:function(n,t,e){"use strict";e.r(t);function o(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var r={name:"Button",props:{disabled:{type:Boolean,default:!1},type:{type:String,validator:function(n){return-1!==["primary","secondary","tertiary","error","warning","success"].indexOf(n)},default:"secondary"},nativeType:{type:String,validator:function(n){return-1!==["submit","reset","button"].indexOf(n)},default:"button"},wide:{type:Boolean,default:!1},ariaLabel:{type:String,default:""}},data:function(){return{tabbed:!1,text:this.getText()}},computed:{hasText:function(){return void 0!==this.$slots.default},hasIcon:function(){return void 0!==this.$slots.icon},iconOnly:function(){return this.hasIcon&&!this.hasText},textOnly:function(){return!this.hasIcon&&this.hasText},iconAndText:function(){return this.hasIcon&&this.hasText},buttonClassObject:function(){var n;return o(n={"button-vue--icon-only":this.iconOnly,"button-vue--text-only":this.textOnly,"button-vue--icon-and-text":this.iconAndText},"button-vue--vue-".concat(this.type),this.type),o(n,"button-vue--wide",this.wide),o(n,"button-vue--tabbed",this.tabbed),n}},beforeUpdate:function(){this.text=this.getText()},mounted:function(){this.text&&this.ariaLabel||console.warn("You need to fill either the text or the ariaLabel props in the button component.")},methods:{getText:function(){var n,t,e;return null!==(n=this.$slots)&&void 0!==n&&n.default&&null!==(t=this.$slots)&&void 0!==t&&null!==(e=t.default[0])&&void 0!==e&&e.text?this.$slots.default[0].text.trim():null},handleClick:function(){this.tabbed=!1},handleTabUp:function(){this.tabbed=!0},handleBlur:function(){this.tabbed=!1},makeActive:function(){this.tabbed=!1},makeInactive:function(){this.tabbed=!0}}},a=e(2),i=e.n(a),c=e(188),u={insert:"head",singleton:!1},l=(i()(c.a,u),c.a.locals,e(3)),s=e(189),d=e.n(s),v=Object(l.a)(r,(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("button",n._g(n._b({staticClass:"button-vue",class:n.buttonClassObject,attrs:{"aria-label":n.ariaLabel,type:n.nativeType,disabled:n.disabled},on:{keydown:function(t){return!t.type.indexOf("key")&&n._k(t.keyCode,"enter",13,t.key,"Enter")?null:n.makeActive.apply(null,arguments)},keyup:[function(t){return!t.type.indexOf("key")&&n._k(t.keyCode,"enter",13,t.key,"Enter")?null:n.makeInactive.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&n._k(t.keyCode,"tab",9,t.key,"Tab")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:n.handleTabUp.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&n._k(t.keyCode,"tab",9,t.key,"Tab")?null:t.shiftKey?n.handleTabUp.apply(null,arguments):null}],click:n.handleClick,blur:n.handleBlur}},"button",n.$attrs,!1),n.$listeners),[e("span",{staticClass:"button-vue__wrapper"},[n.hasIcon?e("span",{staticClass:"button-vue__icon"},[n._t("icon")],2):n._e(),n._v(" "),n.hasText?e("span",{staticClass:"button-vue__text"},[n._t("default")],2):n._e()])])}),[],!1,null,"13987eba",null);"function"==typeof d.a&&d()(v);var b=v.exports;
1
+ !function(n,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("Components/Button",[],t):"object"==typeof exports?exports["Components/Button"]=t():(n.NextcloudVue=n.NextcloudVue||{},n.NextcloudVue["Components/Button"]=t())}(window,(function(){return function(n){var t={};function e(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return n[o].call(r.exports,r,r.exports,e),r.l=!0,r.exports}return e.m=n,e.c=t,e.d=function(n,t,o){e.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:o})},e.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},e.t=function(n,t){if(1&t&&(n=e(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var o=Object.create(null);if(e.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var r in n)e.d(o,r,function(t){return n[t]}.bind(null,r));return o},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},e.p="/dist/",e(e.s=236)}({0:function(n,t,e){"use strict";function o(n,t){return function(n){if(Array.isArray(n))return n}(n)||function(n,t){var e=n&&("undefined"!=typeof Symbol&&n[Symbol.iterator]||n["@@iterator"]);if(null==e)return;var o,r,a=[],c=!0,i=!1;try{for(e=e.call(n);!(c=(o=e.next()).done)&&(a.push(o.value),!t||a.length!==t);c=!0);}catch(n){i=!0,r=n}finally{try{c||null==e.return||e.return()}finally{if(i)throw r}}return a}(n,t)||function(n,t){if(!n)return;if("string"==typeof n)return r(n,t);var e=Object.prototype.toString.call(n).slice(8,-1);"Object"===e&&n.constructor&&(e=n.constructor.name);if("Map"===e||"Set"===e)return Array.from(n);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return r(n,t)}(n,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function r(n,t){(null==t||t>n.length)&&(t=n.length);for(var e=0,o=new Array(t);e<t;e++)o[e]=n[e];return o}n.exports=function(n){var t=o(n,4),e=t[1],r=t[3];if(!r)return e;if("function"==typeof btoa){var a=btoa(unescape(encodeURIComponent(JSON.stringify(r)))),c="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(a),i="/*# ".concat(c," */"),u=r.sources.map((function(n){return"/*# sourceURL=".concat(r.sourceRoot||"").concat(n," */")}));return[e].concat(u).concat([i]).join("\n")}return[e].join("\n")}},1:function(n,t,e){"use strict";n.exports=function(n){var t=[];return t.toString=function(){return this.map((function(t){var e=n(t);return t[2]?"@media ".concat(t[2]," {").concat(e,"}"):e})).join("")},t.i=function(n,e,o){"string"==typeof n&&(n=[[null,n,""]]);var r={};if(o)for(var a=0;a<this.length;a++){var c=this[a][0];null!=c&&(r[c]=!0)}for(var i=0;i<n.length;i++){var u=[].concat(n[i]);o&&r[u[0]]||(e&&(u[2]?u[2]="".concat(e," and ").concat(u[2]):u[2]=e),t.push(u))}},t}},188:function(n,t,e){"use strict";var o=e(0),r=e.n(o),a=e(1),c=e.n(a)()(r.a);c.push([n.i,".material-design-icon[data-v-29c15483]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-29c15483]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition:background-color 0.1s linear !important;transition:border 0.1s linear;background-color:var(--color-primary-element-lighter);color:var(--color-primary-light-text)}.button-vue *[data-v-29c15483]{cursor:pointer}.button-vue[data-v-29c15483]:focus{outline:none}.button-vue[data-v-29c15483]:disabled{cursor:default;background-color:var(--color-background-dark);color:var(--color-border-dark)}.button-vue:disabled *[data-v-29c15483]{cursor:default}.button-vue[data-v-29c15483]:disabled:hover{background-color:var(--color-background-dark);color:var(--color-border-dark)}.button-vue[data-v-29c15483]:hover{background-color:var(--color-primary-light-hover)}.button-vue[data-v-29c15483]:active{background-color:var(--color-primary-element-lighter)}.button-vue__wrapper[data-v-29c15483]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-29c15483]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-29c15483]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-29c15483]{width:44px !important}.button-vue--text-only[data-v-29c15483]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-29c15483]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-29c15483]{padding:0 16px 0 4px}.button-vue--wide[data-v-29c15483]{width:100%}.button-vue--tabbed[data-v-29c15483]{box-shadow:0 0 0 2px var(--color-main-text);background-color:var(--color-primary-light-hover)}.button-vue--tabbed.button-vue--vue-primary[data-v-29c15483]{background-color:var(--color-primary-hover)}.button-vue--tabbed.button-vue--vue-secondary[data-v-29c15483]{box-shadow:0 0 0 2px var(--color-main-text)}.button-vue--tabbed.button-vue--vue-tertiary-no-background[data-v-29c15483]{opacity:1}.button-vue--tabbed.button-vue--vue-success[data-v-29c15483]{background-color:var(--color-success-hover)}.button-vue--tabbed.button-vue--vue-warning[data-v-29c15483]{background-color:var(--color-warning-hover)}.button-vue--tabbed.button-vue--vue-error[data-v-29c15483]{background-color:var(--color-error-hover)}.button-vue--vue-primary[data-v-29c15483]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-29c15483]:hover{background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-29c15483]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-29c15483]{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-border-dark)}.button-vue--vue-secondary[data-v-29c15483]:hover{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-primary-element)}.button-vue--vue-tertiary[data-v-29c15483]{color:var(--color-main-text);background-color:transparent}.button-vue--vue-tertiary[data-v-29c15483]:hover{background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-29c15483]{color:var(--color-main-text);background-color:transparent;opacity:.7}.button-vue--vue-tertiary-no-background[data-v-29c15483]:hover{background-color:transparent;opacity:1}.button-vue--vue-success[data-v-29c15483]{background-color:var(--color-success);color:white}.button-vue--vue-success[data-v-29c15483]:hover{background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-29c15483]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-29c15483]{background-color:var(--color-warning);color:white}.button-vue--vue-warning[data-v-29c15483]:hover{background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-29c15483]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-29c15483]{background-color:var(--color-error);color:white}.button-vue--vue-error[data-v-29c15483]:hover{background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-29c15483]:active{background-color:var(--color-error)}\n","",{version:3,sources:["webpack://./../../assets/material-icons.css","webpack://./Button.vue","webpack://./../../assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCwaxB,6BACC,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,QAAS,CACT,SAAU,CACV,kCAAmC,CACnC,gBAAiB,CACjB,eC/ZoB,CDgapB,cChaoB,CDiapB,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CAGvB,cAAe,CAIf,kBAAkC,CAClC,kDAAmD,CACnD,6BAA8B,CAqB9B,qDAAsD,CACtD,qCAAsC,CA3CvC,+BAiBE,cAAe,CAjBjB,mCAyBE,YAAa,CAzBf,sCA6BE,cAAe,CAIf,6CAA8C,CAC9C,8BAA+B,CAlCjC,wCA+BG,cAAe,CA/BlB,4CAoCG,6CAA8C,CAC9C,8BAA+B,CArClC,mCA6CE,iDAAkD,CA7CpD,oCAkDE,qDAAsD,CACtD,sCAGA,mBAAoB,CACpB,kBAAmB,CACnB,4BAA6B,CAC7B,mCAGA,WCndmB,CDodnB,UCpdmB,CDqdnB,eCrdmB,CDsdnB,cCtdmB,CDudnB,YAAa,CACb,sBAAuB,CACvB,kBAAmB,CACnB,mCAGA,gBAAiB,CACjB,iBAAkB,CAClB,aAAc,CACd,wCAIA,qBAAiC,CACjC,wCAIA,cAAe,CADf,0DAGC,eAAgB,CAChB,gBAAiB,CACjB,4CAKD,oBAAqB,CACrB,mCAIA,UAAW,CACX,qCAMA,2CAA4C,CAC5C,iDAAkD,CAFlD,6DAIC,2CAA4C,CAJ7C,+DAOC,2CAA4C,CAP7C,4EAUC,SAAU,CAVX,6DAaC,2CAA4C,CAb7C,6DAgBC,2CAA4C,CAhB7C,2DAmBC,yCAA0C,CAC1C,0CAOD,6CAA8C,CAC9C,+BAAgC,CAFhC,gDAIC,mDAAoD,CAJrD,iDASC,6CAA8C,CAC9C,4CAKD,4BAA6B,CAC7B,6CAA8C,CAC9C,6CAA8C,CAH9C,kDAKC,4BAA6B,CAC7B,6CAA8C,CAC9C,iDAAkD,CAClD,2CAKD,4BAA6B,CAC7B,4BAA6B,CAF7B,iDAIC,6BAA8B,CAC9B,8CAA+C,CAC/C,yDAKD,4BAA6B,CAC7B,4BAA6B,CAC7B,UAAW,CAHX,+DAKC,4BAA6B,CAC7B,SAAU,CACV,0CAKD,qCAAsC,CACtC,WAAY,CAFZ,gDAIC,2CAA4C,CAJ7C,iDASC,qCAAsC,CACtC,0CAKD,qCAAsC,CACtC,WAAY,CAFZ,gDAIC,2CAA4C,CAJ7C,iDASC,qCAAsC,CACtC,wCAKD,mCAAoC,CACpC,WAAY,CAFZ,8CAIC,yCAA0C,CAJ3C,+CASC,mCAAoC",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:\"99f9b17\"; @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.button-vue {\n\tposition: relative;\n\twidth: fit-content;\n\toverflow: hidden;\n\tborder: 0;\n\tpadding: 0;\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\tmin-height: $clickable-area;\n\tmin-width: $clickable-area;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t// Cursor pointer on element and all children\n\tcursor: pointer;\n\t& * {\n\t\tcursor: pointer;\n\t}\n\tborder-radius: $clickable-area / 2;\n\ttransition: background-color 0.1s linear !important;\n\ttransition: border 0.1s linear;\n\n\t// No outline feedback for focus. Handled with a toggled class in js (see data)\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\t& * {\n\t\t\tcursor: default;\n\t\t}\n\t\tbackground-color: var(--color-background-dark);\n\t\tcolor: var(--color-border-dark);\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tcolor: var(--color-border-dark);\n\t\t}\n\t}\n\n\t// Default button type\n\tbackground-color: var(--color-primary-element-lighter);\n\tcolor: var(--color-primary-light-text);\n\t&:hover {\n\t\tbackground-color: var(--color-primary-light-hover);\n\t}\n\t// Back to the default color for this button when active\n\t// TODO: add ripple effect\n\t&:active {\n\t\tbackground-color: var(--color-primary-element-lighter);\n\t}\n\n\t&__wrapper {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: space-around;\n\t}\n\n\t&__icon {\n\t\theight: $clickable-area;\n\t\twidth: $clickable-area;\n\t\tmin-height: $clickable-area;\n\t\tmin-width: $clickable-area;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\n\t&__text {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 1px;\n\t\tpadding: 2px 0;\n\t}\n\n\t// Icon-only button\n\t&--icon-only {\n\t\twidth: $clickable-area !important;\n\t}\n\n\t// Text-only button\n\t&--text-only {\n\t\tpadding: 0 12px;\n\t\t& .button-vue__text {\n\t\t\tmargin-left: 4px;\n\t\t\tmargin-right: 4px;\n\t\t}\n\t}\n\n\t// Icon and text button\n\t&--icon-and-text {\n\t\tpadding: 0 16px 0 4px;\n\t}\n\n\t// Wide button spans the whole width of the container\n\t&--wide {\n\t\twidth: 100%;\n\t}\n\n\t// We use box-shadow around our buttons instead of an outline, so that the added \"border\"\n\t// coincides with the border of the element. It's not possible to add a border-radius to\n\t// the outline\n\t&--tabbed {\n\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\tbackground-color: var(--color-primary-light-hover);\n\t\t&.button-vue--vue-primary {\n\t\t\tbackground-color: var(--color-primary-hover);\n\t\t}\n\t\t&.button-vue--vue-secondary {\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\t}\n\t\t&.button-vue--vue-tertiary-no-background {\n\t\t\topacity: 1;\n\t\t}\n\t\t&.button-vue--vue-success {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t&.button-vue--vue-warning {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t&.button-vue--vue-error {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t}\n\n\t// Button types\n\n\t// Primary\n\t&--vue-primary {\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-text);\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Secondary\n\t&--vue-secondary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: var(--color-background-dark);\n\t\tbox-shadow: 0 0 0 2px var(--color-border-dark);\n\t\t&:hover {\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tbox-shadow: 0 0 0 2px var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Tertiary\n\t&--vue-tertiary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t// Tertiary, no background\n\t&--vue-tertiary-no-background {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\topacity: .7;\n\t\t&:hover {\n\t\t\tbackground-color: transparent;\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t// Success\n\t&--vue-success {\n\t\tbackground-color: var(--color-success);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// : add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t}\n\n\t// Warning\n\t&--vue-warning {\n\t\tbackground-color: var(--color-warning);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-warning);\n\t\t}\n\t}\n\n\t// Error\n\t&--vue-error {\n\t\tbackground-color: var(--color-error);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-error);\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:""}]),t.a=c},189:function(n,t){},2:function(n,t,e){"use strict";var o,r=function(){return void 0===o&&(o=Boolean(window&&document&&document.all&&!window.atob)),o},a=function(){var n={};return function(t){if(void 0===n[t]){var e=document.querySelector(t);if(window.HTMLIFrameElement&&e instanceof window.HTMLIFrameElement)try{e=e.contentDocument.head}catch(n){e=null}n[t]=e}return n[t]}}(),c=[];function i(n){for(var t=-1,e=0;e<c.length;e++)if(c[e].identifier===n){t=e;break}return t}function u(n,t){for(var e={},o=[],r=0;r<n.length;r++){var a=n[r],u=t.base?a[0]+t.base:a[0],l=e[u]||0,d="".concat(u," ").concat(l);e[u]=l+1;var s=i(d),v={css:a[1],media:a[2],sourceMap:a[3]};-1!==s?(c[s].references++,c[s].updater(v)):c.push({identifier:d,updater:p(v,t),references:1}),o.push(d)}return o}function l(n){var t=document.createElement("style"),o=n.attributes||{};if(void 0===o.nonce){var r=e.nc;r&&(o.nonce=r)}if(Object.keys(o).forEach((function(n){t.setAttribute(n,o[n])})),"function"==typeof n.insert)n.insert(t);else{var c=a(n.insert||"head");if(!c)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");c.appendChild(t)}return t}var d,s=(d=[],function(n,t){return d[n]=t,d.filter(Boolean).join("\n")});function v(n,t,e,o){var r=e?"":o.media?"@media ".concat(o.media," {").concat(o.css,"}"):o.css;if(n.styleSheet)n.styleSheet.cssText=s(t,r);else{var a=document.createTextNode(r),c=n.childNodes;c[t]&&n.removeChild(c[t]),c.length?n.insertBefore(a,c[t]):n.appendChild(a)}}function b(n,t,e){var o=e.css,r=e.media,a=e.sourceMap;if(r?n.setAttribute("media",r):n.removeAttribute("media"),a&&"undefined"!=typeof btoa&&(o+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),n.styleSheet)n.styleSheet.cssText=o;else{for(;n.firstChild;)n.removeChild(n.firstChild);n.appendChild(document.createTextNode(o))}}var A=null,C=0;function p(n,t){var e,o,r;if(t.singleton){var a=C++;e=A||(A=l(t)),o=v.bind(null,e,a,!1),r=v.bind(null,e,a,!0)}else e=l(t),o=b.bind(null,e,t),r=function(){!function(n){if(null===n.parentNode)return!1;n.parentNode.removeChild(n)}(e)};return o(n),function(t){if(t){if(t.css===n.css&&t.media===n.media&&t.sourceMap===n.sourceMap)return;o(n=t)}else r()}}n.exports=function(n,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=r());var e=u(n=n||[],t);return function(n){if(n=n||[],"[object Array]"===Object.prototype.toString.call(n)){for(var o=0;o<e.length;o++){var r=i(e[o]);c[r].references--}for(var a=u(n,t),l=0;l<e.length;l++){var d=i(e[l]);0===c[d].references&&(c[d].updater(),c.splice(d,1))}e=a}}}},236:function(n,t,e){"use strict";e.r(t);function o(n,t,e){return t in n?Object.defineProperty(n,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):n[t]=e,n}var r={name:"Button",props:{disabled:{type:Boolean,default:!1},type:{type:String,validator:function(n){return-1!==["primary","secondary","tertiary","tertiary-no-background","error","warning","success"].indexOf(n)},default:"secondary"},nativeType:{type:String,validator:function(n){return-1!==["submit","reset","button"].indexOf(n)},default:"button"},wide:{type:Boolean,default:!1},ariaLabel:{type:String,default:""}},data:function(){return{tabbed:!1,text:this.getText()}},computed:{hasText:function(){return void 0!==this.$slots.default},hasIcon:function(){return void 0!==this.$slots.icon},iconOnly:function(){return this.hasIcon&&!this.hasText},textOnly:function(){return!this.hasIcon&&this.hasText},iconAndText:function(){return this.hasIcon&&this.hasText},buttonClassObject:function(){var n;return o(n={"button-vue--icon-only":this.iconOnly,"button-vue--text-only":this.textOnly,"button-vue--icon-and-text":this.iconAndText},"button-vue--vue-".concat(this.type),this.type),o(n,"button-vue--wide",this.wide),o(n,"button-vue--tabbed",this.tabbed),n}},beforeUpdate:function(){this.text=this.getText()},mounted:function(){this.text&&this.ariaLabel||console.warn("You need to fill either the text or the ariaLabel props in the button component.")},methods:{getText:function(){var n,t,e;return null!==(n=this.$slots)&&void 0!==n&&n.default&&null!==(t=this.$slots)&&void 0!==t&&null!==(e=t.default[0])&&void 0!==e&&e.text?this.$slots.default[0].text.trim():null},handleClick:function(){this.tabbed=!1},handleTabUp:function(){this.tabbed=!0},handleBlur:function(){this.tabbed=!1},makeActive:function(){this.tabbed=!1},makeInactive:function(){this.tabbed=!0}}},a=e(2),c=e.n(a),i=e(188),u={insert:"head",singleton:!1},l=(c()(i.a,u),i.a.locals,e(3)),d=e(189),s=e.n(d),v=Object(l.a)(r,(function(){var n=this,t=n.$createElement,e=n._self._c||t;return e("button",n._g(n._b({staticClass:"button-vue",class:n.buttonClassObject,attrs:{"aria-label":n.ariaLabel,type:n.nativeType,disabled:n.disabled},on:{keydown:function(t){return!t.type.indexOf("key")&&n._k(t.keyCode,"enter",13,t.key,"Enter")?null:n.makeActive.apply(null,arguments)},keyup:[function(t){return!t.type.indexOf("key")&&n._k(t.keyCode,"enter",13,t.key,"Enter")?null:n.makeInactive.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&n._k(t.keyCode,"tab",9,t.key,"Tab")||t.ctrlKey||t.shiftKey||t.altKey||t.metaKey?null:n.handleTabUp.apply(null,arguments)},function(t){return!t.type.indexOf("key")&&n._k(t.keyCode,"tab",9,t.key,"Tab")?null:t.shiftKey?n.handleTabUp.apply(null,arguments):null}],click:n.handleClick,blur:n.handleBlur}},"button",n.$attrs,!1),n.$listeners),[e("span",{staticClass:"button-vue__wrapper"},[n.hasIcon?e("span",{staticClass:"button-vue__icon"},[n._t("icon")],2):n._e(),n._v(" "),n.hasText?e("span",{staticClass:"button-vue__text"},[n._t("default")],2):n._e()])])}),[],!1,null,"29c15483",null);"function"==typeof s.a&&s()(v);var b=v.exports;
2
2
  /**
3
3
  * @copyright Copyright (c) 2020 Marco Ambrosini <marcoambrosini@pm.me>
4
4
  *
@@ -19,5 +19,5 @@
19
19
  * You should have received a copy of the GNU Affero General Public License
20
20
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21
21
  *
22
- */t.default=b},3:function(n,t,e){"use strict";function o(n,t,e,o,r,a,i,c){var u,l="function"==typeof n?n.options:n;if(t&&(l.render=t,l.staticRenderFns=e,l._compiled=!0),o&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),i?(u=function(n){(n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(n=__VUE_SSR_CONTEXT__),r&&r.call(this,n),n&&n._registeredComponents&&n._registeredComponents.add(i)},l._ssrRegister=u):r&&(u=c?function(){r.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:r),u)if(l.functional){l._injectStyles=u;var s=l.render;l.render=function(n,t){return u.call(t),s(n,t)}}else{var d=l.beforeCreate;l.beforeCreate=d?[].concat(d,u):[u]}return{exports:n,options:l}}e.d(t,"a",(function(){return o}))}})}));
22
+ */t.default=b},3:function(n,t,e){"use strict";function o(n,t,e,o,r,a,c,i){var u,l="function"==typeof n?n.options:n;if(t&&(l.render=t,l.staticRenderFns=e,l._compiled=!0),o&&(l.functional=!0),a&&(l._scopeId="data-v-"+a),c?(u=function(n){(n=n||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(n=__VUE_SSR_CONTEXT__),r&&r.call(this,n),n&&n._registeredComponents&&n._registeredComponents.add(c)},l._ssrRegister=u):r&&(u=i?function(){r.call(this,(l.functional?this.parent:this).$root.$options.shadowRoot)}:r),u)if(l.functional){l._injectStyles=u;var d=l.render;l.render=function(n,t){return u.call(t),d(n,t)}}else{var s=l.beforeCreate;l.beforeCreate=s?[].concat(s,u):[u]}return{exports:n,options:l}}e.d(t,"a",(function(){return o}))}})}));
23
23
  //# sourceMappingURL=Button.js.map
@@ -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/components/Button/Button.vue?c3a0","webpack://NextcloudVue.[name]/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://NextcloudVue.[name]/src/components/Button/Button.vue","webpack://NextcloudVue.[name]/./src/components/Button/Button.vue?3ac4","webpack://NextcloudVue.[name]/./src/components/Button/Button.vue?bb91","webpack://NextcloudVue.[name]/./src/components/Button/Button.vue","webpack://NextcloudVue.[name]/./src/components/Button/Button.vue?67a6","webpack://NextcloudVue.[name]/./src/components/Button/index.js","webpack://NextcloudVue.[name]/./node_modules/vue-loader/lib/runtime/componentNormalizer.js"],"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__","memo","isOldIE","Boolean","document","all","atob","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","index","obj","css","media","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","nc","keys","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","splice","Button_Buttonvue_type_script_lang_js_","props","disabled","type","default","String","validator","indexOf","nativeType","wide","ariaLabel","tabbed","text","getText","computed","hasText","undefined","$slots","hasIcon","icon","iconOnly","textOnly","iconAndText","buttonClassObject","_ref","_defineProperty","button-vue--icon-only","button-vue--text-only","button-vue--icon-and-text","beforeUpdate","mounted","console","warn","methods","_this$$slots","_this$$slots2","_this$$slots2$default","trim","handleClick","handleTabUp","handleBlur","makeActive","makeInactive","injectStylesIntoStyleTag_default","Buttonvue_type_style_index_0_id_13987eba_lang_scss_scoped_true_","locals","component","componentNormalizer","_vm","_h","$createElement","_c","_self","_g","_b","staticClass","class","attrs","aria-label","on","keydown","$event","_k","keyCode","apply","arguments","keyup","ctrlKey","shiftKey","altKey","metaKey","click","blur","$attrs","$listeners","_t","_v","Buttonvue_type_custom_index_0_blockType_docs_default","Button","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate"],"mappings":"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","file":"Components/Button.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/Button\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/Button\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/Button\"] = 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 = 236);\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};","// 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-13987eba]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-13987eba]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition:background-color 0.1s linear !important;transition:border 0.1s linear;background-color:var(--color-primary-element-lighter);color:var(--color-primary-light-text)}.button-vue *[data-v-13987eba]{cursor:pointer}.button-vue[data-v-13987eba]:focus{outline:none}.button-vue[data-v-13987eba]:disabled{cursor:default;background-color:var(--color-background-dark);color:var(--color-border-dark)}.button-vue:disabled *[data-v-13987eba]{cursor:default}.button-vue[data-v-13987eba]:disabled:hover{background-color:var(--color-background-dark);color:var(--color-border-dark)}.button-vue[data-v-13987eba]:hover{background-color:var(--color-primary-light-hover)}.button-vue[data-v-13987eba]:active{background-color:var(--color-primary-element-lighter)}.button-vue__wrapper[data-v-13987eba]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-13987eba]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-13987eba]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-13987eba]{width:44px !important}.button-vue--text-only[data-v-13987eba]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-13987eba]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-13987eba]{padding:0 16px 0 4px}.button-vue--wide[data-v-13987eba]{width:100%}.button-vue--tabbed[data-v-13987eba]{box-shadow:0 0 0 2px var(--color-main-text);background-color:var(--color-primary-light-hover)}.button-vue--tabbed.button-vue--vue-primary[data-v-13987eba]{background-color:var(--color-primary-hover)}.button-vue--tabbed.button-vue--vue-secondary[data-v-13987eba]{box-shadow:0 0 0 2px var(--color-main-text)}.button-vue--tabbed.button-vue--vue-tertiary[data-v-13987eba]{color:var(--color-main-text)}.button-vue--tabbed.button-vue--vue-success[data-v-13987eba]{background-color:var(--color-success-hover)}.button-vue--tabbed.button-vue--vue-warning[data-v-13987eba]{background-color:var(--color-warning-hover)}.button-vue--tabbed.button-vue--vue-error[data-v-13987eba]{background-color:var(--color-error-hover)}.button-vue--vue-primary[data-v-13987eba]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-13987eba]:hover{background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-13987eba]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-13987eba]{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-border-dark)}.button-vue--vue-secondary[data-v-13987eba]:hover{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-primary-element)}.button-vue--vue-tertiary[data-v-13987eba]{color:var(--color-text-lighter);background-color:transparent}.button-vue--vue-tertiary[data-v-13987eba]:hover{color:var(--color-main-text);background-color:transparent}.button-vue--vue-success[data-v-13987eba]{background-color:var(--color-success);color:white}.button-vue--vue-success[data-v-13987eba]:hover{background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-13987eba]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-13987eba]{background-color:var(--color-warning);color:white}.button-vue--vue-warning[data-v-13987eba]:hover{background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-13987eba]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-13987eba]{background-color:var(--color-error);color:white}.button-vue--vue-error[data-v-13987eba]:hover{background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-13987eba]:active{background-color:var(--color-error)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./Button.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCgZxB,6BACC,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,QAAS,CACT,SAAU,CACV,kCAAmC,CACnC,gBAAiB,CACjB,eCvYoB,CDwYpB,cCxYoB,CDyYpB,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CAGvB,cAAe,CAIf,kBAAkC,CAClC,kDAAmD,CACnD,6BAA8B,CAqB9B,qDAAsD,CACtD,qCAAsC,CA3CvC,+BAiBE,cAAe,CAjBjB,mCAyBE,YAAa,CAzBf,sCA6BE,cAAe,CAIf,6CAA8C,CAC9C,8BAA+B,CAlCjC,wCA+BG,cAAe,CA/BlB,4CAoCG,6CAA8C,CAC9C,8BAA+B,CArClC,mCA6CE,iDAAkD,CA7CpD,oCAkDE,qDAAsD,CACtD,sCAGA,mBAAoB,CACpB,kBAAmB,CACnB,4BAA6B,CAC7B,mCAGA,WC3bmB,CD4bnB,UC5bmB,CD6bnB,eC7bmB,CD8bnB,cC9bmB,CD+bnB,YAAa,CACb,sBAAuB,CACvB,kBAAmB,CACnB,mCAGA,gBAAiB,CACjB,iBAAkB,CAClB,aAAc,CACd,wCAIA,qBAAiC,CACjC,wCAIA,cAAe,CADf,0DAGC,eAAgB,CAChB,gBAAiB,CACjB,4CAKD,oBAAqB,CACrB,mCAIA,UAAW,CACX,qCAMA,2CAA4C,CAC5C,iDAAkD,CAFlD,6DAIC,2CAA4C,CAJ7C,+DAOC,2CAA4C,CAP7C,8DAUC,4BAA6B,CAV9B,6DAaC,2CAA4C,CAb7C,6DAgBC,2CAA4C,CAhB7C,2DAmBC,yCAA0C,CAC1C,0CAOD,6CAA8C,CAC9C,+BAAgC,CAFhC,gDAIC,mDAAoD,CAJrD,iDASC,6CAA8C,CAC9C,4CAKD,4BAA6B,CAC7B,6CAA8C,CAC9C,6CAA8C,CAH9C,kDAKC,4BAA6B,CAC7B,6CAA8C,CAC9C,iDAAkD,CAClD,2CAKD,+BAAgC,CAChC,4BAA6B,CAF7B,iDAIC,4BAA6B,CAC7B,4BAA6B,CAC7B,0CAKD,qCAAsC,CACtC,WAAY,CAFZ,gDAIC,2CAA4C,CAJ7C,iDASC,qCAAsC,CACtC,0CAKD,qCAAsC,CACtC,WAAY,CAFZ,gDAIC,2CAA4C,CAJ7C,iDASC,qCAAsC,CACtC,wCAKD,mCAAoC,CACpC,WAAY,CAFZ,8CAIC,yCAA0C,CAJ3C,+CASC,mCAAoC\",\"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:\\\"3ea5590\\\"; @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.button-vue {\\n\\tposition: relative;\\n\\twidth: fit-content;\\n\\toverflow: hidden;\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\tfont-size: var(--default-font-size);\\n\\tfont-weight: bold;\\n\\tmin-height: $clickable-area;\\n\\tmin-width: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t// Cursor pointer on element and all children\\n\\tcursor: pointer;\\n\\t& * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\tborder-radius: $clickable-area / 2;\\n\\ttransition: background-color 0.1s linear !important;\\n\\ttransition: border 0.1s linear;\\n\\n\\t// No outline feedback for focus. Handled with a toggled class in js (see data)\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\t& * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tcolor: var(--color-border-dark);\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tcolor: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t// Default button type\\n\\tbackground-color: var(--color-primary-element-lighter);\\n\\tcolor: var(--color-primary-light-text);\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t}\\n\\t// Back to the default color for this button when active\\n\\t// TODO: add ripple effect\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-primary-element-lighter);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-around;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\theight: $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__text {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-bottom: 1px;\\n\\t\\tpadding: 2px 0;\\n\\t}\\n\\n\\t// Icon-only button\\n\\t&--icon-only {\\n\\t\\twidth: $clickable-area !important;\\n\\t}\\n\\n\\t// Text-only button\\n\\t&--text-only {\\n\\t\\tpadding: 0 12px;\\n\\t\\t& .button-vue__text {\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon and text button\\n\\t&--icon-and-text {\\n\\t\\tpadding: 0 16px 0 4px;\\n\\t}\\n\\n\\t// Wide button spans the whole width of the container\\n\\t&--wide {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t// We use box-shadow around our buttons instead of an outline, so that the added \\\"border\\\"\\n\\t// coincides with the border of the element. It's not possible to add a border-radius to\\n\\t// the outline\\n\\t&--tabbed {\\n\\t\\tbox-shadow: 0 0 0 2px var(--color-main-text);\\n\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t\\t&.button-vue--vue-primary {\\n\\t\\t\\tbackground-color: var(--color-primary-hover);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-secondary {\\n\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-main-text);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-tertiary {\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-success {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-warning {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-error {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Button types\\n\\n\\t// Primary\\n\\t&--vue-primary {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-primary-element-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Secondary\\n\\t&--vue-secondary {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tbox-shadow: 0 0 0 2px var(--color-border-dark);\\n\\t\\t&:hover {\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary\\n\\t&--vue-tertiary {\\n\\t\\tcolor: var(--color-text-lighter);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover {\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t}\\n\\t}\\n\\n\\t// Success\\n\\t&--vue-success {\\n\\t\\tbackground-color: var(--color-success);\\n\\t\\tcolor: white;\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// : add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t}\\n\\n\\t// Warning\\n\\t&--vue-warning {\\n\\t\\tbackground-color: var(--color-warning);\\n\\t\\tcolor: white;\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-warning);\\n\\t\\t}\\n\\t}\\n\\n\\t// Error\\n\\t&--vue-error {\\n\\t\\tbackground-color: var(--color-error);\\n\\t\\tcolor: white;\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-error);\\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","\"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) 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\n<docs>\n\n### General description\nGeneral purpose button component. See props for different options.\n[Use material design icons only for icons](https://www.npmjs.com/package/vue-material-design-icons) and remember to set their size to 20.\n\n### Usage\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<div class=\"wrapper\">\n\t<!-- Icon only -->\n\t<h5>Icon only buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<Button\n\t\t\ttype=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</Button>\n\t\t<Button>\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"primary\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</Button>\n\t</div>\n\n\t<!-- Text only -->\n\t<h5>Text only buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<Button\n\t\t\ttype=\"tertiary\">\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"primary\">\n\t\t\tExample text\n\t\t</Button>\n\t</div>\n\n\t<!-- Icon and text -->\n\t<h5>Icon and text buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<Button\n\t\t\ttype=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button>\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"primary\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t</div>\n\n\t<!-- Wide button -->\n\t<h5>Wide button</h5>\n\t<Button\n\t\ttext=\"Example text\"\n\t\t:wide=\"true\">\n\t\t<template #icon>\n\t\t\t<Video\n\t\t\t\ttitle=\"\"\n\t\t\t\t:size=\"20\" />\n\t\t</template>\n\t\tExample text\n\t</Button>\n\n\t<!-- Special buttons -->\n\t<h5>Special buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Success</p>\n\t\t<p>Warning</p>\n\t\t<p>Error</p>\n\t\t<Button\n\t\t\ttype=\"success\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"warning\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"error\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t</div>\n</div>\n\n</template>\n<script>\nimport Video from 'vue-material-design-icons/Video'\n\nexport default {\n\tcomponents: {\n\t\tVideo,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false\n\t\t}\n\t}\n}\n</script>\n<style lang=\"scss\" scoped>\n\n.wrapper {\n\tpadding: 0 12px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr 1fr;\n\tgrid-template-rows: repeat(auto-fill, auto);\n\tposition: relative;\n\tmargin: 12px 0;\n}\n\nh5 {\n\tfont-weight: bold;\n\tmargin: 40px 0 20px 0;\n}\n\np {\n\ttext-align: center;\n\tmargin: 4px 0 12px 0;\n\tcolor: var(--color-text-lighter)\n}\n\nbutton {\n\tmargin: auto;\n}\n</style>\n```\n\n</docs>\n\n<template>\n\t<button\n\t\tclass=\"button-vue\"\n\t\tv-bind=\"$attrs\"\n\t\t:class=\"buttonClassObject\"\n\t\t:aria-label=\"ariaLabel\"\n\t\t:type=\"nativeType\"\n\t\t:disabled=\"disabled\"\n\t\tv-on=\"$listeners\"\n\t\t@keydown.enter=\"makeActive\"\n\t\t@keyup.enter=\"makeInactive\"\n\t\t@click=\"handleClick\"\n\t\t@blur=\"handleBlur\"\n\t\t@keyup.tab.exact=\"handleTabUp\"\n\t\t@keyup.shift.tab=\"handleTabUp\">\n\t\t<span class=\"button-vue__wrapper\">\n\t\t\t<span v-if=\"hasIcon\" class=\"button-vue__icon\">\n\t\t\t\t<!-- @slot The material design icon slot -->\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</span>\n\t\t\t<span v-if=\"hasText\" class=\"button-vue__text\">\n\t\t\t\t<slot />\n\t\t\t</span>\n\t\t</span>\n\t</button>\n</template>\n<script>\n\nexport default {\n\tname: 'Button',\n\n\tprops: {\n\t\t/**\n\t\t * Toggles the disabled state of the button on and off.\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Specifies the button type\n\t\t * Accepted values: primary, secondary, tertiary, error, warning, success. If left empty,\n\t\t * the default button style will be applied.\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['primary', 'secondary', 'tertiary', 'error', 'warning', 'success'].indexOf(value) !== -1\n\t\t\t},\n\t\t\tdefault: 'secondary',\n\t\t},\n\n\t\t/**\n\t\t * Specifies the button native type\n\t\t * Accepted values: submit, reset, button. If left empty,\n\t\t * the default \"button\" type will be used.\n\t\t */\n\t\tnativeType: {\n\t\t\ttype: String,\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['submit', 'reset', 'button'].indexOf(value) !== -1\n\t\t\t},\n\t\t\tdefault: 'button',\n\t\t},\n\n\t\t/**\n\t\t * Specifies whether the button should span all the available width.\n\t\t * By default, buttons span the whole width of the container.\n\t\t */\n\t\twide: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Always try to provide an aria-label to your button. Make it more\n\t\t * specific than the button's title by provide some more context. E.g. if\n\t\t * the title of the button is \"send\" in the Mail app, the aria label could\n\t\t * be \"Send email\".\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Keeps track of whether the element's focus status is due to having\n\t\t\t * tabbed to it. We use this to display a thick 'focus outline' only\n\t\t\t * when the user is navigating with the keyboard.\n\t\t\t */\n\t\t\ttabbed: false,\n\t\t\t/**\n\t\t\t * $slots are not reactive.\n\t\t\t * We need to update the content manually\n\t\t\t */\n\t\t\ttext: this.getText(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\thasText() {\n\t\t\treturn this.$slots.default !== undefined\n\t\t},\n\n\t\thasIcon() {\n\t\t\treturn this.$slots.icon !== undefined\n\t\t},\n\n\t\ticonOnly() {\n\t\t\treturn this.hasIcon && !this.hasText\n\t\t},\n\n\t\ttextOnly() {\n\t\t\treturn !this.hasIcon && this.hasText\n\t\t},\n\n\t\ticonAndText() {\n\t\t\treturn this.hasIcon && this.hasText\n\t\t},\n\n\t\t// Classes applied to the button element\n\t\tbuttonClassObject() {\n\t\t\treturn {\n\t\t\t\t// If icon only, some additional css rules are required\n\t\t\t\t'button-vue--icon-only': this.iconOnly,\n\t\t\t\t'button-vue--text-only': this.textOnly,\n\t\t\t\t'button-vue--icon-and-text': this.iconAndText,\n\t\t\t\t[`button-vue--vue-${this.type}`]: this.type,\n\t\t\t\t'button-vue--wide': this.wide,\n\t\t\t\t'button-vue--tabbed': this.tabbed,\n\t\t\t}\n\t\t},\n\t},\n\n\tbeforeUpdate() {\n\t\tthis.text = this.getText()\n\t},\n\n\tmounted() {\n\t\t/**\n\t\t * Always fill either the text prop or the ariaLabel one.\n\t\t */\n\t\tif (!(this.text && this.ariaLabel)) {\n\t\t\tconsole.warn('You need to fill either the text or the ariaLabel props in the button component.')\n\t\t}\n\t},\n\n\tmethods: {\n\t\tgetText() {\n\t\t\treturn this.$slots?.default && this.$slots?.default[0]?.text ? this.$slots.default[0].text.trim() : null\n\t\t},\n\n\t\t/**\n\t\t * Removes the tabbed state of the button.\n\t\t */\n\t\thandleClick() {\n\t\t\tthis.tabbed = false\n\t\t},\n\n\t\t/**\n\t\t * When the tab key is lifted, the button has been \"tabbed in\",\n\t\t * see comments on the `tabbed` variable declared in the data.\n\t\t */\n\t\thandleTabUp() {\n\t\t\tthis.tabbed = true\n\t\t},\n\n\t\t/**\n\t\t * Everytime the button is blurred, we remove the tabbed state.\n\t\t */\n\t\thandleBlur() {\n\t\t\tthis.tabbed = false\n\t\t},\n\n\t\t/**\n\t\t * When the button is reached via keyboard navigation and pressed using\n\t\t * the enter key, we slightly change the styles to provide an \"active-like\"\n\t\t * feedback. When using the mouse this is achieved with the ripple effect.\n\t\t */\n\t\tmakeActive() {\n\t\t\tthis.tabbed = false\n\t\t},\n\n\t\tmakeInactive() {\n\t\t\tthis.tabbed = true\n\t\t},\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n\n.button-vue {\n\tposition: relative;\n\twidth: fit-content;\n\toverflow: hidden;\n\tborder: 0;\n\tpadding: 0;\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\tmin-height: $clickable-area;\n\tmin-width: $clickable-area;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t// Cursor pointer on element and all children\n\tcursor: pointer;\n\t& * {\n\t\tcursor: pointer;\n\t}\n\tborder-radius: $clickable-area / 2;\n\ttransition: background-color 0.1s linear !important;\n\ttransition: border 0.1s linear;\n\n\t// No outline feedback for focus. Handled with a toggled class in js (see data)\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\t& * {\n\t\t\tcursor: default;\n\t\t}\n\t\tbackground-color: var(--color-background-dark);\n\t\tcolor: var(--color-border-dark);\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tcolor: var(--color-border-dark);\n\t\t}\n\t}\n\n\t// Default button type\n\tbackground-color: var(--color-primary-element-lighter);\n\tcolor: var(--color-primary-light-text);\n\t&:hover {\n\t\tbackground-color: var(--color-primary-light-hover);\n\t}\n\t// Back to the default color for this button when active\n\t// TODO: add ripple effect\n\t&:active {\n\t\tbackground-color: var(--color-primary-element-lighter);\n\t}\n\n\t&__wrapper {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: space-around;\n\t}\n\n\t&__icon {\n\t\theight: $clickable-area;\n\t\twidth: $clickable-area;\n\t\tmin-height: $clickable-area;\n\t\tmin-width: $clickable-area;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\n\t&__text {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 1px;\n\t\tpadding: 2px 0;\n\t}\n\n\t// Icon-only button\n\t&--icon-only {\n\t\twidth: $clickable-area !important;\n\t}\n\n\t// Text-only button\n\t&--text-only {\n\t\tpadding: 0 12px;\n\t\t& .button-vue__text {\n\t\t\tmargin-left: 4px;\n\t\t\tmargin-right: 4px;\n\t\t}\n\t}\n\n\t// Icon and text button\n\t&--icon-and-text {\n\t\tpadding: 0 16px 0 4px;\n\t}\n\n\t// Wide button spans the whole width of the container\n\t&--wide {\n\t\twidth: 100%;\n\t}\n\n\t// We use box-shadow around our buttons instead of an outline, so that the added \"border\"\n\t// coincides with the border of the element. It's not possible to add a border-radius to\n\t// the outline\n\t&--tabbed {\n\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\tbackground-color: var(--color-primary-light-hover);\n\t\t&.button-vue--vue-primary {\n\t\t\tbackground-color: var(--color-primary-hover);\n\t\t}\n\t\t&.button-vue--vue-secondary {\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\t}\n\t\t&.button-vue--vue-tertiary {\n\t\t\tcolor: var(--color-main-text);\n\t\t}\n\t\t&.button-vue--vue-success {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t&.button-vue--vue-warning {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t&.button-vue--vue-error {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t}\n\n\t// Button types\n\n\t// Primary\n\t&--vue-primary {\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-text);\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Secondary\n\t&--vue-secondary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: var(--color-background-dark);\n\t\tbox-shadow: 0 0 0 2px var(--color-border-dark);\n\t\t&:hover {\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tbox-shadow: 0 0 0 2px var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Tertiary\n\t&--vue-tertiary {\n\t\tcolor: var(--color-text-lighter);\n\t\tbackground-color: transparent;\n\t\t&:hover {\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground-color: transparent;\n\t\t}\n\t}\n\n\t// Success\n\t&--vue-success {\n\t\tbackground-color: var(--color-success);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// : add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t}\n\n\t// Warning\n\t&--vue-warning {\n\t\tbackground-color: var(--color-warning);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-warning);\n\t\t}\n\t}\n\n\t// Error\n\t&--vue-error {\n\t\tbackground-color: var(--color-error);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-error);\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!./Button.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!./Button.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!./Button.vue?vue&type=style&index=0&id=13987eba&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 \"./Button.vue?vue&type=template&id=13987eba&scoped=true&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Button.vue?vue&type=style&index=0&id=13987eba&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 \"13987eba\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Button.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('button',_vm._g(_vm._b({staticClass:\"button-vue\",class:_vm.buttonClassObject,attrs:{\"aria-label\":_vm.ariaLabel,\"type\":_vm.nativeType,\"disabled\":_vm.disabled},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.makeActive.apply(null, arguments)},\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.makeInactive.apply(null, arguments)},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.handleTabUp.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if(!$event.shiftKey){ return null; }return _vm.handleTabUp.apply(null, arguments)}],\"click\":_vm.handleClick,\"blur\":_vm.handleBlur}},'button',_vm.$attrs,false),_vm.$listeners),[_c('span',{staticClass:\"button-vue__wrapper\"},[(_vm.hasIcon)?_c('span',{staticClass:\"button-vue__icon\"},[_vm._t(\"icon\")],2):_vm._e(),_vm._v(\" \"),(_vm.hasText)?_c('span',{staticClass:\"button-vue__text\"},[_vm._t(\"default\")],2):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\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 Button from './Button'\n\nexport default Button\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"],"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/components/Button/Button.vue?ad14","webpack://NextcloudVue.[name]/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://NextcloudVue.[name]/src/components/Button/Button.vue","webpack://NextcloudVue.[name]/./src/components/Button/Button.vue?3ac4","webpack://NextcloudVue.[name]/./src/components/Button/Button.vue?ffeb","webpack://NextcloudVue.[name]/./src/components/Button/Button.vue","webpack://NextcloudVue.[name]/./src/components/Button/Button.vue?3e24","webpack://NextcloudVue.[name]/./src/components/Button/index.js","webpack://NextcloudVue.[name]/./node_modules/vue-loader/lib/runtime/componentNormalizer.js"],"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__","memo","isOldIE","Boolean","document","all","atob","getTarget","target","styleTarget","querySelector","HTMLIFrameElement","contentDocument","head","e","stylesInDom","getIndexByIdentifier","identifier","result","modulesToDom","options","idCountMap","identifiers","base","count","index","obj","css","media","sourceMap","references","updater","addStyle","insertStyleElement","style","createElement","attributes","nonce","nc","keys","forEach","setAttribute","insert","Error","appendChild","textStore","replaceText","replacement","filter","applyToSingletonTag","remove","styleSheet","cssText","cssNode","createTextNode","childNodes","removeChild","insertBefore","applyToTag","removeAttribute","firstChild","singleton","singletonCounter","update","styleIndex","parentNode","removeStyleElement","newObj","lastIdentifiers","newList","newLastIdentifiers","_index","splice","Button_Buttonvue_type_script_lang_js_","props","disabled","type","default","String","validator","indexOf","nativeType","wide","ariaLabel","tabbed","text","getText","computed","hasText","undefined","$slots","hasIcon","icon","iconOnly","textOnly","iconAndText","buttonClassObject","_ref","_defineProperty","button-vue--icon-only","button-vue--text-only","button-vue--icon-and-text","beforeUpdate","mounted","console","warn","methods","_this$$slots","_this$$slots2","_this$$slots2$default","trim","handleClick","handleTabUp","handleBlur","makeActive","makeInactive","injectStylesIntoStyleTag_default","Buttonvue_type_style_index_0_id_29c15483_lang_scss_scoped_true_","locals","component","componentNormalizer","_vm","_h","$createElement","_c","_self","_g","_b","staticClass","class","attrs","aria-label","on","keydown","$event","_k","keyCode","apply","arguments","keyup","ctrlKey","shiftKey","altKey","metaKey","click","blur","$attrs","$listeners","_t","_v","Buttonvue_type_custom_index_0_blockType_docs_default","Button","normalizeComponent","scriptExports","render","staticRenderFns","functionalTemplate","injectStyles","scopeId","moduleIdentifier","shadowMode","hook","_compiled","functional","_scopeId","context","$vnode","ssrContext","parent","__VUE_SSR_CONTEXT__","_registeredComponents","add","_ssrRegister","$root","$options","shadowRoot","_injectStyles","originalRender","h","existing","beforeCreate"],"mappings":"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","file":"Components/Button.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/Button\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Components/Button\"] = factory();\n\telse\n\t\troot[\"NextcloudVue\"] = root[\"NextcloudVue\"] || {}, root[\"NextcloudVue\"][\"Components/Button\"] = 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 = 236);\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};","// 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-29c15483]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.button-vue[data-v-29c15483]{position:relative;width:fit-content;overflow:hidden;border:0;padding:0;font-size:var(--default-font-size);font-weight:bold;min-height:44px;min-width:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:22px;transition:background-color 0.1s linear !important;transition:border 0.1s linear;background-color:var(--color-primary-element-lighter);color:var(--color-primary-light-text)}.button-vue *[data-v-29c15483]{cursor:pointer}.button-vue[data-v-29c15483]:focus{outline:none}.button-vue[data-v-29c15483]:disabled{cursor:default;background-color:var(--color-background-dark);color:var(--color-border-dark)}.button-vue:disabled *[data-v-29c15483]{cursor:default}.button-vue[data-v-29c15483]:disabled:hover{background-color:var(--color-background-dark);color:var(--color-border-dark)}.button-vue[data-v-29c15483]:hover{background-color:var(--color-primary-light-hover)}.button-vue[data-v-29c15483]:active{background-color:var(--color-primary-element-lighter)}.button-vue__wrapper[data-v-29c15483]{display:inline-flex;align-items:center;justify-content:space-around}.button-vue__icon[data-v-29c15483]{height:44px;width:44px;min-height:44px;min-width:44px;display:flex;justify-content:center;align-items:center}.button-vue__text[data-v-29c15483]{font-weight:bold;margin-bottom:1px;padding:2px 0}.button-vue--icon-only[data-v-29c15483]{width:44px !important}.button-vue--text-only[data-v-29c15483]{padding:0 12px}.button-vue--text-only .button-vue__text[data-v-29c15483]{margin-left:4px;margin-right:4px}.button-vue--icon-and-text[data-v-29c15483]{padding:0 16px 0 4px}.button-vue--wide[data-v-29c15483]{width:100%}.button-vue--tabbed[data-v-29c15483]{box-shadow:0 0 0 2px var(--color-main-text);background-color:var(--color-primary-light-hover)}.button-vue--tabbed.button-vue--vue-primary[data-v-29c15483]{background-color:var(--color-primary-hover)}.button-vue--tabbed.button-vue--vue-secondary[data-v-29c15483]{box-shadow:0 0 0 2px var(--color-main-text)}.button-vue--tabbed.button-vue--vue-tertiary-no-background[data-v-29c15483]{opacity:1}.button-vue--tabbed.button-vue--vue-success[data-v-29c15483]{background-color:var(--color-success-hover)}.button-vue--tabbed.button-vue--vue-warning[data-v-29c15483]{background-color:var(--color-warning-hover)}.button-vue--tabbed.button-vue--vue-error[data-v-29c15483]{background-color:var(--color-error-hover)}.button-vue--vue-primary[data-v-29c15483]{background-color:var(--color-primary-element);color:var(--color-primary-text)}.button-vue--vue-primary[data-v-29c15483]:hover{background-color:var(--color-primary-element-hover)}.button-vue--vue-primary[data-v-29c15483]:active{background-color:var(--color-primary-element)}.button-vue--vue-secondary[data-v-29c15483]{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-border-dark)}.button-vue--vue-secondary[data-v-29c15483]:hover{color:var(--color-main-text);background-color:var(--color-background-dark);box-shadow:0 0 0 2px var(--color-primary-element)}.button-vue--vue-tertiary[data-v-29c15483]{color:var(--color-main-text);background-color:transparent}.button-vue--vue-tertiary[data-v-29c15483]:hover{background-color:var(--color);background-color:var(--color-background-hover)}.button-vue--vue-tertiary-no-background[data-v-29c15483]{color:var(--color-main-text);background-color:transparent;opacity:.7}.button-vue--vue-tertiary-no-background[data-v-29c15483]:hover{background-color:transparent;opacity:1}.button-vue--vue-success[data-v-29c15483]{background-color:var(--color-success);color:white}.button-vue--vue-success[data-v-29c15483]:hover{background-color:var(--color-success-hover)}.button-vue--vue-success[data-v-29c15483]:active{background-color:var(--color-success)}.button-vue--vue-warning[data-v-29c15483]{background-color:var(--color-warning);color:white}.button-vue--vue-warning[data-v-29c15483]:hover{background-color:var(--color-warning-hover)}.button-vue--vue-warning[data-v-29c15483]:active{background-color:var(--color-warning)}.button-vue--vue-error[data-v-29c15483]{background-color:var(--color-error);color:white}.button-vue--vue-error[data-v-29c15483]:hover{background-color:var(--color-error-hover)}.button-vue--vue-error[data-v-29c15483]:active{background-color:var(--color-error)}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./../../assets/material-icons.css\",\"webpack://./Button.vue\",\"webpack://./../../assets/variables.scss\"],\"names\":[],\"mappings\":\"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CCwaxB,6BACC,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,QAAS,CACT,SAAU,CACV,kCAAmC,CACnC,gBAAiB,CACjB,eC/ZoB,CDgapB,cChaoB,CDiapB,YAAa,CACb,kBAAmB,CACnB,sBAAuB,CAGvB,cAAe,CAIf,kBAAkC,CAClC,kDAAmD,CACnD,6BAA8B,CAqB9B,qDAAsD,CACtD,qCAAsC,CA3CvC,+BAiBE,cAAe,CAjBjB,mCAyBE,YAAa,CAzBf,sCA6BE,cAAe,CAIf,6CAA8C,CAC9C,8BAA+B,CAlCjC,wCA+BG,cAAe,CA/BlB,4CAoCG,6CAA8C,CAC9C,8BAA+B,CArClC,mCA6CE,iDAAkD,CA7CpD,oCAkDE,qDAAsD,CACtD,sCAGA,mBAAoB,CACpB,kBAAmB,CACnB,4BAA6B,CAC7B,mCAGA,WCndmB,CDodnB,UCpdmB,CDqdnB,eCrdmB,CDsdnB,cCtdmB,CDudnB,YAAa,CACb,sBAAuB,CACvB,kBAAmB,CACnB,mCAGA,gBAAiB,CACjB,iBAAkB,CAClB,aAAc,CACd,wCAIA,qBAAiC,CACjC,wCAIA,cAAe,CADf,0DAGC,eAAgB,CAChB,gBAAiB,CACjB,4CAKD,oBAAqB,CACrB,mCAIA,UAAW,CACX,qCAMA,2CAA4C,CAC5C,iDAAkD,CAFlD,6DAIC,2CAA4C,CAJ7C,+DAOC,2CAA4C,CAP7C,4EAUC,SAAU,CAVX,6DAaC,2CAA4C,CAb7C,6DAgBC,2CAA4C,CAhB7C,2DAmBC,yCAA0C,CAC1C,0CAOD,6CAA8C,CAC9C,+BAAgC,CAFhC,gDAIC,mDAAoD,CAJrD,iDASC,6CAA8C,CAC9C,4CAKD,4BAA6B,CAC7B,6CAA8C,CAC9C,6CAA8C,CAH9C,kDAKC,4BAA6B,CAC7B,6CAA8C,CAC9C,iDAAkD,CAClD,2CAKD,4BAA6B,CAC7B,4BAA6B,CAF7B,iDAIC,6BAA8B,CAC9B,8CAA+C,CAC/C,yDAKD,4BAA6B,CAC7B,4BAA6B,CAC7B,UAAW,CAHX,+DAKC,4BAA6B,CAC7B,SAAU,CACV,0CAKD,qCAAsC,CACtC,WAAY,CAFZ,gDAIC,2CAA4C,CAJ7C,iDASC,qCAAsC,CACtC,0CAKD,qCAAsC,CACtC,WAAY,CAFZ,gDAIC,2CAA4C,CAJ7C,iDASC,qCAAsC,CACtC,wCAKD,mCAAoC,CACpC,WAAY,CAFZ,8CAIC,yCAA0C,CAJ3C,+CASC,mCAAoC\",\"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:\\\"99f9b17\\\"; @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.button-vue {\\n\\tposition: relative;\\n\\twidth: fit-content;\\n\\toverflow: hidden;\\n\\tborder: 0;\\n\\tpadding: 0;\\n\\tfont-size: var(--default-font-size);\\n\\tfont-weight: bold;\\n\\tmin-height: $clickable-area;\\n\\tmin-width: $clickable-area;\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n\\n\\t// Cursor pointer on element and all children\\n\\tcursor: pointer;\\n\\t& * {\\n\\t\\tcursor: pointer;\\n\\t}\\n\\tborder-radius: $clickable-area / 2;\\n\\ttransition: background-color 0.1s linear !important;\\n\\ttransition: border 0.1s linear;\\n\\n\\t// No outline feedback for focus. Handled with a toggled class in js (see data)\\n\\t&:focus {\\n\\t\\toutline: none;\\n\\t}\\n\\n\\t&:disabled {\\n\\t\\tcursor: default;\\n\\t\\t& * {\\n\\t\\t\\tcursor: default;\\n\\t\\t}\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tcolor: var(--color-border-dark);\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tcolor: var(--color-border-dark);\\n\\t\\t}\\n\\t}\\n\\n\\t// Default button type\\n\\tbackground-color: var(--color-primary-element-lighter);\\n\\tcolor: var(--color-primary-light-text);\\n\\t&:hover {\\n\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t}\\n\\t// Back to the default color for this button when active\\n\\t// TODO: add ripple effect\\n\\t&:active {\\n\\t\\tbackground-color: var(--color-primary-element-lighter);\\n\\t}\\n\\n\\t&__wrapper {\\n\\t\\tdisplay: inline-flex;\\n\\t\\talign-items: center;\\n\\t\\tjustify-content: space-around;\\n\\t}\\n\\n\\t&__icon {\\n\\t\\theight: $clickable-area;\\n\\t\\twidth: $clickable-area;\\n\\t\\tmin-height: $clickable-area;\\n\\t\\tmin-width: $clickable-area;\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\talign-items: center;\\n\\t}\\n\\n\\t&__text {\\n\\t\\tfont-weight: bold;\\n\\t\\tmargin-bottom: 1px;\\n\\t\\tpadding: 2px 0;\\n\\t}\\n\\n\\t// Icon-only button\\n\\t&--icon-only {\\n\\t\\twidth: $clickable-area !important;\\n\\t}\\n\\n\\t// Text-only button\\n\\t&--text-only {\\n\\t\\tpadding: 0 12px;\\n\\t\\t& .button-vue__text {\\n\\t\\t\\tmargin-left: 4px;\\n\\t\\t\\tmargin-right: 4px;\\n\\t\\t}\\n\\t}\\n\\n\\t// Icon and text button\\n\\t&--icon-and-text {\\n\\t\\tpadding: 0 16px 0 4px;\\n\\t}\\n\\n\\t// Wide button spans the whole width of the container\\n\\t&--wide {\\n\\t\\twidth: 100%;\\n\\t}\\n\\n\\t// We use box-shadow around our buttons instead of an outline, so that the added \\\"border\\\"\\n\\t// coincides with the border of the element. It's not possible to add a border-radius to\\n\\t// the outline\\n\\t&--tabbed {\\n\\t\\tbox-shadow: 0 0 0 2px var(--color-main-text);\\n\\t\\tbackground-color: var(--color-primary-light-hover);\\n\\t\\t&.button-vue--vue-primary {\\n\\t\\t\\tbackground-color: var(--color-primary-hover);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-secondary {\\n\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-main-text);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-tertiary-no-background {\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t\\t&.button-vue--vue-success {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-warning {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t&.button-vue--vue-error {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Button types\\n\\n\\t// Primary\\n\\t&--vue-primary {\\n\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\tcolor: var(--color-primary-text);\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-primary-element-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Secondary\\n\\t&--vue-secondary {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\tbox-shadow: 0 0 0 2px var(--color-border-dark);\\n\\t\\t&:hover {\\n\\t\\t\\tcolor: var(--color-main-text);\\n\\t\\t\\tbackground-color: var(--color-background-dark);\\n\\t\\t\\tbox-shadow: 0 0 0 2px var(--color-primary-element);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary\\n\\t&--vue-tertiary {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color);\\n\\t\\t\\tbackground-color: var(--color-background-hover);\\n\\t\\t}\\n\\t}\\n\\n\\t// Tertiary, no background\\n\\t&--vue-tertiary-no-background {\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tbackground-color: transparent;\\n\\t\\topacity: .7;\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: transparent;\\n\\t\\t\\topacity: 1;\\n\\t\\t}\\n\\t}\\n\\n\\t// Success\\n\\t&--vue-success {\\n\\t\\tbackground-color: var(--color-success);\\n\\t\\tcolor: white;\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-success-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// : add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-success);\\n\\t\\t}\\n\\t}\\n\\n\\t// Warning\\n\\t&--vue-warning {\\n\\t\\tbackground-color: var(--color-warning);\\n\\t\\tcolor: white;\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-warning-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-warning);\\n\\t\\t}\\n\\t}\\n\\n\\t// Error\\n\\t&--vue-error {\\n\\t\\tbackground-color: var(--color-error);\\n\\t\\tcolor: white;\\n\\t\\t&:hover {\\n\\t\\t\\tbackground-color: var(--color-error-hover);\\n\\t\\t}\\n\\t\\t// Back to the default color for this button when active\\n\\t\\t// TODO: add ripple effect\\n\\t\\t&:active {\\n\\t\\t\\tbackground-color: var(--color-error);\\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","\"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) 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\n<docs>\n\n### General description\nGeneral purpose button component. See props for different options.\n[Use material design icons only for icons](https://www.npmjs.com/package/vue-material-design-icons) and remember to set their size to 20.\n\n### Usage\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<div class=\"wrapper\">\n\t<!-- Icon only -->\n\t<h5>Icon only buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary, no background</p>\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<Button\n\t\t\ttype=\"tertiary-no-background\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</Button>\n\t\t<Button>\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"primary\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t</Button>\n\t</div>\n\n\t<!-- Text only -->\n\t<h5>Text only buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary, no background</p>\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<Button\n\t\t\ttype=\"tertiary-no-background\">\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"tertiary\">\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"primary\">\n\t\t\tExample text\n\t\t</Button>\n\t</div>\n\n\t<!-- Icon and text -->\n\t<h5>Icon and text buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Tertiary, no background</p>\n\t\t<p>Tertiary</p>\n\t\t<p>Secondary</p>\n\t\t<p>Primary</p>\n\t\t<Button\n\t\t\ttype=\"tertiary-no-background\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"tertiary\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button>\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"primary\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t</div>\n\n\t<!-- Wide button -->\n\t<h5>Wide button</h5>\n\t<Button\n\t\ttext=\"Example text\"\n\t\t:wide=\"true\">\n\t\t<template #icon>\n\t\t\t<Video\n\t\t\t\ttitle=\"\"\n\t\t\t\t:size=\"20\" />\n\t\t</template>\n\t\tExample text\n\t</Button>\n\n\t<!-- Special buttons -->\n\t<h5>Special buttons</h5>\n\t<div class=\"grid\">\n\t\t<p>Success</p>\n\t\t<p>Warning</p>\n\t\t<p>Error</p>\n\t\t<p> - </p>\n\t\t<Button\n\t\t\ttype=\"success\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"warning\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\ttitle=\"\"\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<Button\n\t\t\ttype=\"error\">\n\t\t\t<template #icon>\n\t\t\t\t<Video\n\t\t\t\t\t:size=\"20\" />\n\t\t\t</template>\n\t\t\tExample text\n\t\t</Button>\n\t\t<p> - </p>\n\t</div>\n</div>\n\n</template>\n<script>\nimport Video from 'vue-material-design-icons/Video'\n\nexport default {\n\tcomponents: {\n\t\tVideo,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\ttoggled: false\n\t\t}\n\t}\n}\n</script>\n<style lang=\"scss\" scoped>\n\n.wrapper {\n\tpadding: 0 12px;\n}\n\n.grid {\n\tdisplay: grid;\n\tgrid-template-columns: 1fr 1fr 1fr 1fr;\n\tgrid-template-rows: repeat(auto-fill, auto);\n\tposition: relative;\n\tmargin: 12px 0;\n}\n\nh5 {\n\tfont-weight: bold;\n\tmargin: 40px 0 20px 0;\n}\n\np {\n\ttext-align: center;\n\tmargin: 4px 0 12px 0;\n\tcolor: var(--color-text-lighter)\n}\n\nbutton {\n\tmargin: auto;\n}\n</style>\n```\n\n</docs>\n\n<template>\n\t<button\n\t\tclass=\"button-vue\"\n\t\tv-bind=\"$attrs\"\n\t\t:class=\"buttonClassObject\"\n\t\t:aria-label=\"ariaLabel\"\n\t\t:type=\"nativeType\"\n\t\t:disabled=\"disabled\"\n\t\tv-on=\"$listeners\"\n\t\t@keydown.enter=\"makeActive\"\n\t\t@keyup.enter=\"makeInactive\"\n\t\t@click=\"handleClick\"\n\t\t@blur=\"handleBlur\"\n\t\t@keyup.tab.exact=\"handleTabUp\"\n\t\t@keyup.shift.tab=\"handleTabUp\">\n\t\t<span class=\"button-vue__wrapper\">\n\t\t\t<span v-if=\"hasIcon\" class=\"button-vue__icon\">\n\t\t\t\t<!-- @slot The material design icon slot -->\n\t\t\t\t<slot name=\"icon\" />\n\t\t\t</span>\n\t\t\t<span v-if=\"hasText\" class=\"button-vue__text\">\n\t\t\t\t<slot />\n\t\t\t</span>\n\t\t</span>\n\t</button>\n</template>\n<script>\n\nexport default {\n\tname: 'Button',\n\n\tprops: {\n\t\t/**\n\t\t * Toggles the disabled state of the button on and off.\n\t\t */\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Specifies the button type\n\t\t * Accepted values: primary, secondary, tertiary, error, warning, success. If left empty,\n\t\t * the default button style will be applied.\n\t\t */\n\t\ttype: {\n\t\t\ttype: String,\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['primary', 'secondary', 'tertiary', 'tertiary-no-background', 'error', 'warning', 'success'].indexOf(value) !== -1\n\t\t\t},\n\t\t\tdefault: 'secondary',\n\t\t},\n\n\t\t/**\n\t\t * Specifies the button native type\n\t\t * Accepted values: submit, reset, button. If left empty,\n\t\t * the default \"button\" type will be used.\n\t\t */\n\t\tnativeType: {\n\t\t\ttype: String,\n\t\t\tvalidator(value) {\n\t\t\t\treturn ['submit', 'reset', 'button'].indexOf(value) !== -1\n\t\t\t},\n\t\t\tdefault: 'button',\n\t\t},\n\n\t\t/**\n\t\t * Specifies whether the button should span all the available width.\n\t\t * By default, buttons span the whole width of the container.\n\t\t */\n\t\twide: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\n\t\t/**\n\t\t * Always try to provide an aria-label to your button. Make it more\n\t\t * specific than the button's title by provide some more context. E.g. if\n\t\t * the title of the button is \"send\" in the Mail app, the aria label could\n\t\t * be \"Send email\".\n\t\t */\n\t\tariaLabel: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\t/**\n\t\t\t * Keeps track of whether the element's focus status is due to having\n\t\t\t * tabbed to it. We use this to display a thick 'focus outline' only\n\t\t\t * when the user is navigating with the keyboard.\n\t\t\t */\n\t\t\ttabbed: false,\n\t\t\t/**\n\t\t\t * $slots are not reactive.\n\t\t\t * We need to update the content manually\n\t\t\t */\n\t\t\ttext: this.getText(),\n\t\t}\n\t},\n\n\tcomputed: {\n\t\thasText() {\n\t\t\treturn this.$slots.default !== undefined\n\t\t},\n\n\t\thasIcon() {\n\t\t\treturn this.$slots.icon !== undefined\n\t\t},\n\n\t\ticonOnly() {\n\t\t\treturn this.hasIcon && !this.hasText\n\t\t},\n\n\t\ttextOnly() {\n\t\t\treturn !this.hasIcon && this.hasText\n\t\t},\n\n\t\ticonAndText() {\n\t\t\treturn this.hasIcon && this.hasText\n\t\t},\n\n\t\t// Classes applied to the button element\n\t\tbuttonClassObject() {\n\t\t\treturn {\n\t\t\t\t// If icon only, some additional css rules are required\n\t\t\t\t'button-vue--icon-only': this.iconOnly,\n\t\t\t\t'button-vue--text-only': this.textOnly,\n\t\t\t\t'button-vue--icon-and-text': this.iconAndText,\n\t\t\t\t[`button-vue--vue-${this.type}`]: this.type,\n\t\t\t\t'button-vue--wide': this.wide,\n\t\t\t\t'button-vue--tabbed': this.tabbed,\n\t\t\t}\n\t\t},\n\t},\n\n\tbeforeUpdate() {\n\t\tthis.text = this.getText()\n\t},\n\n\tmounted() {\n\t\t/**\n\t\t * Always fill either the text prop or the ariaLabel one.\n\t\t */\n\t\tif (!(this.text && this.ariaLabel)) {\n\t\t\tconsole.warn('You need to fill either the text or the ariaLabel props in the button component.')\n\t\t}\n\t},\n\n\tmethods: {\n\t\tgetText() {\n\t\t\treturn this.$slots?.default && this.$slots?.default[0]?.text ? this.$slots.default[0].text.trim() : null\n\t\t},\n\n\t\t/**\n\t\t * Removes the tabbed state of the button.\n\t\t */\n\t\thandleClick() {\n\t\t\tthis.tabbed = false\n\t\t},\n\n\t\t/**\n\t\t * When the tab key is lifted, the button has been \"tabbed in\",\n\t\t * see comments on the `tabbed` variable declared in the data.\n\t\t */\n\t\thandleTabUp() {\n\t\t\tthis.tabbed = true\n\t\t},\n\n\t\t/**\n\t\t * Everytime the button is blurred, we remove the tabbed state.\n\t\t */\n\t\thandleBlur() {\n\t\t\tthis.tabbed = false\n\t\t},\n\n\t\t/**\n\t\t * When the button is reached via keyboard navigation and pressed using\n\t\t * the enter key, we slightly change the styles to provide an \"active-like\"\n\t\t * feedback. When using the mouse this is achieved with the ripple effect.\n\t\t */\n\t\tmakeActive() {\n\t\t\tthis.tabbed = false\n\t\t},\n\n\t\tmakeInactive() {\n\t\t\tthis.tabbed = true\n\t\t},\n\t},\n}\n\n</script>\n\n<style lang=\"scss\" scoped>\n\n.button-vue {\n\tposition: relative;\n\twidth: fit-content;\n\toverflow: hidden;\n\tborder: 0;\n\tpadding: 0;\n\tfont-size: var(--default-font-size);\n\tfont-weight: bold;\n\tmin-height: $clickable-area;\n\tmin-width: $clickable-area;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n\n\t// Cursor pointer on element and all children\n\tcursor: pointer;\n\t& * {\n\t\tcursor: pointer;\n\t}\n\tborder-radius: $clickable-area / 2;\n\ttransition: background-color 0.1s linear !important;\n\ttransition: border 0.1s linear;\n\n\t// No outline feedback for focus. Handled with a toggled class in js (see data)\n\t&:focus {\n\t\toutline: none;\n\t}\n\n\t&:disabled {\n\t\tcursor: default;\n\t\t& * {\n\t\t\tcursor: default;\n\t\t}\n\t\tbackground-color: var(--color-background-dark);\n\t\tcolor: var(--color-border-dark);\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tcolor: var(--color-border-dark);\n\t\t}\n\t}\n\n\t// Default button type\n\tbackground-color: var(--color-primary-element-lighter);\n\tcolor: var(--color-primary-light-text);\n\t&:hover {\n\t\tbackground-color: var(--color-primary-light-hover);\n\t}\n\t// Back to the default color for this button when active\n\t// TODO: add ripple effect\n\t&:active {\n\t\tbackground-color: var(--color-primary-element-lighter);\n\t}\n\n\t&__wrapper {\n\t\tdisplay: inline-flex;\n\t\talign-items: center;\n\t\tjustify-content: space-around;\n\t}\n\n\t&__icon {\n\t\theight: $clickable-area;\n\t\twidth: $clickable-area;\n\t\tmin-height: $clickable-area;\n\t\tmin-width: $clickable-area;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t}\n\n\t&__text {\n\t\tfont-weight: bold;\n\t\tmargin-bottom: 1px;\n\t\tpadding: 2px 0;\n\t}\n\n\t// Icon-only button\n\t&--icon-only {\n\t\twidth: $clickable-area !important;\n\t}\n\n\t// Text-only button\n\t&--text-only {\n\t\tpadding: 0 12px;\n\t\t& .button-vue__text {\n\t\t\tmargin-left: 4px;\n\t\t\tmargin-right: 4px;\n\t\t}\n\t}\n\n\t// Icon and text button\n\t&--icon-and-text {\n\t\tpadding: 0 16px 0 4px;\n\t}\n\n\t// Wide button spans the whole width of the container\n\t&--wide {\n\t\twidth: 100%;\n\t}\n\n\t// We use box-shadow around our buttons instead of an outline, so that the added \"border\"\n\t// coincides with the border of the element. It's not possible to add a border-radius to\n\t// the outline\n\t&--tabbed {\n\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\tbackground-color: var(--color-primary-light-hover);\n\t\t&.button-vue--vue-primary {\n\t\t\tbackground-color: var(--color-primary-hover);\n\t\t}\n\t\t&.button-vue--vue-secondary {\n\t\t\tbox-shadow: 0 0 0 2px var(--color-main-text);\n\t\t}\n\t\t&.button-vue--vue-tertiary-no-background {\n\t\t\topacity: 1;\n\t\t}\n\t\t&.button-vue--vue-success {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t&.button-vue--vue-warning {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t&.button-vue--vue-error {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t}\n\n\t// Button types\n\n\t// Primary\n\t&--vue-primary {\n\t\tbackground-color: var(--color-primary-element);\n\t\tcolor: var(--color-primary-text);\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-primary-element-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Secondary\n\t&--vue-secondary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: var(--color-background-dark);\n\t\tbox-shadow: 0 0 0 2px var(--color-border-dark);\n\t\t&:hover {\n\t\t\tcolor: var(--color-main-text);\n\t\t\tbackground-color: var(--color-background-dark);\n\t\t\tbox-shadow: 0 0 0 2px var(--color-primary-element);\n\t\t}\n\t}\n\n\t// Tertiary\n\t&--vue-tertiary {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color);\n\t\t\tbackground-color: var(--color-background-hover);\n\t\t}\n\t}\n\n\t// Tertiary, no background\n\t&--vue-tertiary-no-background {\n\t\tcolor: var(--color-main-text);\n\t\tbackground-color: transparent;\n\t\topacity: .7;\n\t\t&:hover {\n\t\t\tbackground-color: transparent;\n\t\t\topacity: 1;\n\t\t}\n\t}\n\n\t// Success\n\t&--vue-success {\n\t\tbackground-color: var(--color-success);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-success-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// : add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-success);\n\t\t}\n\t}\n\n\t// Warning\n\t&--vue-warning {\n\t\tbackground-color: var(--color-warning);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-warning-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-warning);\n\t\t}\n\t}\n\n\t// Error\n\t&--vue-error {\n\t\tbackground-color: var(--color-error);\n\t\tcolor: white;\n\t\t&:hover {\n\t\t\tbackground-color: var(--color-error-hover);\n\t\t}\n\t\t// Back to the default color for this button when active\n\t\t// TODO: add ripple effect\n\t\t&:active {\n\t\t\tbackground-color: var(--color-error);\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!./Button.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!./Button.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!./Button.vue?vue&type=style&index=0&id=29c15483&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 \"./Button.vue?vue&type=template&id=29c15483&scoped=true&\"\nimport script from \"./Button.vue?vue&type=script&lang=js&\"\nexport * from \"./Button.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Button.vue?vue&type=style&index=0&id=29c15483&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 \"29c15483\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./Button.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('button',_vm._g(_vm._b({staticClass:\"button-vue\",class:_vm.buttonClassObject,attrs:{\"aria-label\":_vm.ariaLabel,\"type\":_vm.nativeType,\"disabled\":_vm.disabled},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.makeActive.apply(null, arguments)},\"keyup\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.makeInactive.apply(null, arguments)},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.handleTabUp.apply(null, arguments)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }if(!$event.shiftKey){ return null; }return _vm.handleTabUp.apply(null, arguments)}],\"click\":_vm.handleClick,\"blur\":_vm.handleBlur}},'button',_vm.$attrs,false),_vm.$listeners),[_c('span',{staticClass:\"button-vue__wrapper\"},[(_vm.hasIcon)?_c('span',{staticClass:\"button-vue__icon\"},[_vm._t(\"icon\")],2):_vm._e(),_vm._v(\" \"),(_vm.hasText)?_c('span',{staticClass:\"button-vue__text\"},[_vm._t(\"default\")],2):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\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 Button from './Button'\n\nexport default Button\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"],"sourceRoot":""}
@@ -19,7 +19,7 @@
19
19
  * You should have received a copy of the GNU Affero General Public License
20
20
  * along with this program. If not, see <http://www.gnu.org/licenses/>.
21
21
  *
22
- */t.a=function(e){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,e||5)}},170:function(e,t,a){"use strict";var n=a(0),i=a.n(n),o=a(1),s=a.n(o)()(i.a);s.push([e.i,".material-design-icon[data-v-5cec6b50]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-5cec6b50]{display:flex}.checkbox-radio-switch__input[data-v-5cec6b50]{position:fixed;z-index:-1;top:-5000px;left:-5000px;opacity:0}.checkbox-radio-switch__label[data-v-5cec6b50]{display:flex;align-items:center;user-select:none;height:44px;border-radius:44px;padding:0 14px;margin:0 -14px}.checkbox-radio-switch__label[data-v-5cec6b50],.checkbox-radio-switch__label *[data-v-5cec6b50]{cursor:pointer}.checkbox-radio-switch__icon[data-v-5cec6b50]{margin-right:4px;margin-left:-2px;color:var(--color-primary-element);width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch--disabled .checkbox-radio-switch__label[data-v-5cec6b50]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__label .checkbox-radio-switch__icon[data-v-5cec6b50]{color:var(--color-text-light)}.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__input:hover+.checkbox-radio-switch__label[data-v-5cec6b50],.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__input:focus+.checkbox-radio-switch__label[data-v-5cec6b50]{background-color:var(--color-primary-light)}.checkbox-radio-switch-switch:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon[data-v-5cec6b50]{color:var(--color-text-lighter)}.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked .checkbox-radio-switch__icon[data-v-5cec6b50]{color:var(--color-primary-element-light)}\n","",{version:3,sources:["webpack://./../../assets/material-icons.css","webpack://./CheckboxRadioSwitch.vue","webpack://./../../assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CC6YxB,wCACC,YAAa,CAEb,+CACC,cAAe,CACf,UAAW,CACX,WAAY,CACZ,YAAa,CACb,SAAU,CACV,+CAGA,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,WC3YmB,CD4YnB,kBC5YmB,CD6YnB,cCrY8C,CDsY9C,cAA0B,CAP1B,gGAUC,cAAe,CACf,8CAID,gBA5BW,CA8BX,gBAAiB,CACjB,kCAAmC,CACnC,sBAAuB,CACvB,uBAAwB,CACxB,gFAGA,UC9YmB,CD6YnB,6GAGC,6BAA8B,CArCjC,gSA2CE,2CAA4C,CAC5C,iHAIA,+BAAgC,CAChC,2IAIA,wCAAyC",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:\"3ea5590\"; @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$spacing: 4px;\n\n.checkbox-radio-switch {\n\tdisplay: flex;\n\n\t&__input {\n\t\tposition: fixed;\n\t\tz-index: -1;\n\t\ttop: -5000px;\n\t\tleft: -5000px;\n\t\topacity: 0;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tuser-select: none;\n\t\theight: $clickable-area;\n\t\tborder-radius: $clickable-area;\n\t\tpadding: 0 $icon-margin;\n\t\tmargin: 0 #{-$icon-margin};\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t&__icon {\n\t\tmargin-right: $spacing;\n\t\t// Remove the left margin of material design icons to align text\n\t\tmargin-left: -2px;\n\t\tcolor: var(--color-primary-element);\n\t\twidth: var(--icon-size);\n\t\theight: var(--icon-size);\n\t}\n\n\t&--disabled &__label {\n\t\topacity: $opacity_disabled;\n\t\t.checkbox-radio-switch__icon {\n\t\t\tcolor: var(--color-text-light)\n\t\t}\n\t}\n\n\t&:not(&--disabled) &__input:hover + &__label,\n\t&:not(&--disabled) &__input:focus + &__label {\n\t\tbackground-color: var(--color-primary-light);\n\t}\n\n\t// Switch specific rules\n\t&-switch:not(&--checked) &__icon {\n\t\tcolor: var(--color-text-lighter);\n\t}\n\n\t// If switch is checked AND disabled, use the fade primary colour\n\t&-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked &__icon {\n\t\tcolor: var(--color-primary-element-light);\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:""}]),t.a=s},171:function(e,t){},196:function(e,t){e.exports=require("vue-material-design-icons/CheckboxBlankOutline")},197:function(e,t){e.exports=require("vue-material-design-icons/MinusBox")},198:function(e,t){e.exports=require("vue-material-design-icons/CheckboxMarked")},199:function(e,t){e.exports=require("vue-material-design-icons/RadioboxMarked")},2:function(e,t,a){"use strict";var n,i=function(){return void 0===n&&(n=Boolean(window&&document&&document.all&&!window.atob)),n},o=function(){var e={};return function(t){if(void 0===e[t]){var a=document.querySelector(t);if(window.HTMLIFrameElement&&a instanceof window.HTMLIFrameElement)try{a=a.contentDocument.head}catch(e){a=null}e[t]=a}return e[t]}}(),s=[];function r(e){for(var t=-1,a=0;a<s.length;a++)if(s[a].identifier===e){t=a;break}return t}function l(e,t){for(var a={},n=[],i=0;i<e.length;i++){var o=e[i],l=t.base?o[0]+t.base:o[0],c=a[l]||0,u="".concat(l," ").concat(c);a[l]=c+1;var m=r(u),d={css:o[1],media:o[2],sourceMap:o[3]};-1!==m?(s[m].references++,s[m].updater(d)):s.push({identifier:u,updater:v(d,t),references:1}),n.push(u)}return n}function c(e){var t=document.createElement("style"),n=e.attributes||{};if(void 0===n.nonce){var i=a.nc;i&&(n.nonce=i)}if(Object.keys(n).forEach((function(e){t.setAttribute(e,n[e])})),"function"==typeof e.insert)e.insert(t);else{var s=o(e.insert||"head");if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(t)}return t}var u,m=(u=[],function(e,t){return u[e]=t,u.filter(Boolean).join("\n")});function d(e,t,a,n){var i=a?"":n.media?"@media ".concat(n.media," {").concat(n.css,"}"):n.css;if(e.styleSheet)e.styleSheet.cssText=m(t,i);else{var o=document.createTextNode(i),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function g(e,t,a){var n=a.css,i=a.media,o=a.sourceMap;if(i?e.setAttribute("media",i):e.removeAttribute("media"),o&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}var h=null,p=0;function v(e,t){var a,n,i;if(t.singleton){var o=p++;a=h||(h=c(t)),n=d.bind(null,a,o,!1),i=d.bind(null,a,o,!0)}else a=c(t),n=g.bind(null,a,t),i=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(a)};return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else i()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=i());var a=l(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var n=0;n<a.length;n++){var i=r(a[n]);s[i].references--}for(var o=l(e,t),c=0;c<a.length;c++){var u=r(a[c]);0===s[u].references&&(s[u].updater(),s.splice(u,1))}a=o}}}},200:function(e,t){e.exports=require("vue-material-design-icons/RadioboxBlank")},201:function(e,t){e.exports=require("vue-material-design-icons/ToggleSwitchOff")},202:function(e,t){e.exports=require("vue-material-design-icons/ToggleSwitch")},231:function(e,t,a){"use strict";a.r(t);var n=a(196),i=a.n(n),o=a(197),s=a.n(o),r=a(198),l=a.n(r),c=a(199),u=a.n(c),m=a(200),d=a.n(m),g=a(201),h=a.n(g),p=a(202),v=a.n(p),b=a(15),k=a(26);function y(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return f(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return f(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var S={name:"CheckboxRadioSwitch",mixins:[k.a],props:{id:{type:String,default:function(){return"checkbox-radio-switch-"+Object(b.a)()},validator:function(e){return""!==e.trim()}},name:{type:String,default:null},type:{type:String,default:"checkbox",validator:function(e){return"checkbox"===e||"radio"===e||"switch"===e}},checked:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:"span"}},computed:{size:function(){return"switch"===this.type?36:24},cssVars:function(){return{"--icon-size":this.size+"px"}},inputType:function(){return"radio"===this.type?"radio":"checkbox"},isChecked:function(){return null!==this.value?Array.isArray(this.checked)?y(this.checked).indexOf(this.value)>-1:this.checked===this.value:!0===this.checked},checkboxRadioIconElement:function(){return"radio"===this.type?this.isChecked?u.a:d.a:"switch"===this.type?this.isChecked?v.a:h.a:this.indeterminate?s.a:this.isChecked?l.a:i.a}},mounted:function(){if(this.name&&"checkbox"===this.type&&!Array.isArray(this.checked))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&"switch"===this.type)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if("boolean"!=typeof this.checked&&"switch"===this.type)throw new Error("Switches can only be used with boolean as checked prop.")},methods:{onToggle:function(){if(!this.disabled)if("radio"!==this.type)if("switch"!==this.type)if("boolean"!=typeof this.checked){var e=this.getInputsSet().filter((function(e){return e.checked})).map((function(e){return e.value}));this.$emit("update:checked",e)}else this.$emit("update:checked",!this.isChecked);else this.$emit("update:checked",!this.isChecked);else this.$emit("update:checked",this.value)},getInputsSet:function(){return y(document.getElementsByName(this.name))}}},A=a(2),C=a.n(A),N=a(170),j={insert:"head",singleton:!1},z=(C()(N.a,j),N.a.locals,a(3)),P=a(171),w=a.n(P),x=Object(z.a)(S,(function(){var e,t=this,a=t.$createElement,n=t._self._c||a;return n(t.wrapperElement,{tag:"element",staticClass:"checkbox-radio-switch",class:(e={},e["checkbox-radio-switch-"+t.type]=t.type,e["checkbox-radio-switch--checked"]=t.isChecked,e["checkbox-radio-switch--disabled"]=t.disabled,e["checkbox-radio-switch--indeterminate"]=t.indeterminate,e),style:t.cssVars},[n("input",{staticClass:"checkbox-radio-switch__input",attrs:{id:t.id,disabled:t.disabled,indeterminate:t.indeterminate,name:t.name,type:t.inputType},domProps:{checked:t.isChecked,value:t.value},on:{change:t.onToggle}}),t._v(" "),n("label",{staticClass:"checkbox-radio-switch__label",attrs:{for:t.id}},[t.loading?n("div",{staticClass:"icon-loading-small checkbox-radio-switch__icon"}):n(t.checkboxRadioIconElement,{tag:"icon",staticClass:"checkbox-radio-switch__icon",attrs:{size:t.size,title:"",decorative:""}}),t._v(" "),t._t("default")],2)])}),[],!1,null,"5cec6b50",null);"function"==typeof w.a&&w()(x);var E=x.exports;
22
+ */t.a=function(e){return Math.random().toString(36).replace(/[^a-z]+/g,"").substr(0,e||5)}},170:function(e,t,a){"use strict";var n=a(0),i=a.n(n),o=a(1),s=a.n(o)()(i.a);s.push([e.i,".material-design-icon[data-v-5cec6b50]{display:flex;align-self:center;justify-self:center;align-items:center;justify-content:center}.checkbox-radio-switch[data-v-5cec6b50]{display:flex}.checkbox-radio-switch__input[data-v-5cec6b50]{position:fixed;z-index:-1;top:-5000px;left:-5000px;opacity:0}.checkbox-radio-switch__label[data-v-5cec6b50]{display:flex;align-items:center;user-select:none;height:44px;border-radius:44px;padding:0 14px;margin:0 -14px}.checkbox-radio-switch__label[data-v-5cec6b50],.checkbox-radio-switch__label *[data-v-5cec6b50]{cursor:pointer}.checkbox-radio-switch__icon[data-v-5cec6b50]{margin-right:4px;margin-left:-2px;color:var(--color-primary-element);width:var(--icon-size);height:var(--icon-size)}.checkbox-radio-switch--disabled .checkbox-radio-switch__label[data-v-5cec6b50]{opacity:.5}.checkbox-radio-switch--disabled .checkbox-radio-switch__label .checkbox-radio-switch__icon[data-v-5cec6b50]{color:var(--color-text-light)}.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__input:hover+.checkbox-radio-switch__label[data-v-5cec6b50],.checkbox-radio-switch:not(.checkbox-radio-switch--disabled) .checkbox-radio-switch__input:focus+.checkbox-radio-switch__label[data-v-5cec6b50]{background-color:var(--color-primary-light)}.checkbox-radio-switch-switch:not(.checkbox-radio-switch--checked) .checkbox-radio-switch__icon[data-v-5cec6b50]{color:var(--color-text-lighter)}.checkbox-radio-switch-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked .checkbox-radio-switch__icon[data-v-5cec6b50]{color:var(--color-primary-element-light)}\n","",{version:3,sources:["webpack://./../../assets/material-icons.css","webpack://./CheckboxRadioSwitch.vue","webpack://./../../assets/variables.scss"],names:[],mappings:"AAGA,uCACC,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,kBAAmB,CACnB,sBAAuB,CC6YxB,wCACC,YAAa,CAEb,+CACC,cAAe,CACf,UAAW,CACX,WAAY,CACZ,YAAa,CACb,SAAU,CACV,+CAGA,YAAa,CACb,kBAAmB,CACnB,gBAAiB,CACjB,WC3YmB,CD4YnB,kBC5YmB,CD6YnB,cCrY8C,CDsY9C,cAA0B,CAP1B,gGAUC,cAAe,CACf,8CAID,gBA5BW,CA8BX,gBAAiB,CACjB,kCAAmC,CACnC,sBAAuB,CACvB,uBAAwB,CACxB,gFAGA,UC9YmB,CD6YnB,6GAGC,6BAA8B,CArCjC,gSA2CE,2CAA4C,CAC5C,iHAIA,+BAAgC,CAChC,2IAIA,wCAAyC",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:\"99f9b17\"; @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$spacing: 4px;\n\n.checkbox-radio-switch {\n\tdisplay: flex;\n\n\t&__input {\n\t\tposition: fixed;\n\t\tz-index: -1;\n\t\ttop: -5000px;\n\t\tleft: -5000px;\n\t\topacity: 0;\n\t}\n\n\t&__label {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tuser-select: none;\n\t\theight: $clickable-area;\n\t\tborder-radius: $clickable-area;\n\t\tpadding: 0 $icon-margin;\n\t\tmargin: 0 #{-$icon-margin};\n\n\t\t&, * {\n\t\t\tcursor: pointer;\n\t\t}\n\t}\n\n\t&__icon {\n\t\tmargin-right: $spacing;\n\t\t// Remove the left margin of material design icons to align text\n\t\tmargin-left: -2px;\n\t\tcolor: var(--color-primary-element);\n\t\twidth: var(--icon-size);\n\t\theight: var(--icon-size);\n\t}\n\n\t&--disabled &__label {\n\t\topacity: $opacity_disabled;\n\t\t.checkbox-radio-switch__icon {\n\t\t\tcolor: var(--color-text-light)\n\t\t}\n\t}\n\n\t&:not(&--disabled) &__input:hover + &__label,\n\t&:not(&--disabled) &__input:focus + &__label {\n\t\tbackground-color: var(--color-primary-light);\n\t}\n\n\t// Switch specific rules\n\t&-switch:not(&--checked) &__icon {\n\t\tcolor: var(--color-text-lighter);\n\t}\n\n\t// If switch is checked AND disabled, use the fade primary colour\n\t&-switch.checkbox-radio-switch--disabled.checkbox-radio-switch--checked &__icon {\n\t\tcolor: var(--color-primary-element-light);\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:""}]),t.a=s},171:function(e,t){},196:function(e,t){e.exports=require("vue-material-design-icons/CheckboxBlankOutline")},197:function(e,t){e.exports=require("vue-material-design-icons/MinusBox")},198:function(e,t){e.exports=require("vue-material-design-icons/CheckboxMarked")},199:function(e,t){e.exports=require("vue-material-design-icons/RadioboxMarked")},2:function(e,t,a){"use strict";var n,i=function(){return void 0===n&&(n=Boolean(window&&document&&document.all&&!window.atob)),n},o=function(){var e={};return function(t){if(void 0===e[t]){var a=document.querySelector(t);if(window.HTMLIFrameElement&&a instanceof window.HTMLIFrameElement)try{a=a.contentDocument.head}catch(e){a=null}e[t]=a}return e[t]}}(),s=[];function r(e){for(var t=-1,a=0;a<s.length;a++)if(s[a].identifier===e){t=a;break}return t}function l(e,t){for(var a={},n=[],i=0;i<e.length;i++){var o=e[i],l=t.base?o[0]+t.base:o[0],c=a[l]||0,u="".concat(l," ").concat(c);a[l]=c+1;var m=r(u),d={css:o[1],media:o[2],sourceMap:o[3]};-1!==m?(s[m].references++,s[m].updater(d)):s.push({identifier:u,updater:v(d,t),references:1}),n.push(u)}return n}function c(e){var t=document.createElement("style"),n=e.attributes||{};if(void 0===n.nonce){var i=a.nc;i&&(n.nonce=i)}if(Object.keys(n).forEach((function(e){t.setAttribute(e,n[e])})),"function"==typeof e.insert)e.insert(t);else{var s=o(e.insert||"head");if(!s)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");s.appendChild(t)}return t}var u,m=(u=[],function(e,t){return u[e]=t,u.filter(Boolean).join("\n")});function d(e,t,a,n){var i=a?"":n.media?"@media ".concat(n.media," {").concat(n.css,"}"):n.css;if(e.styleSheet)e.styleSheet.cssText=m(t,i);else{var o=document.createTextNode(i),s=e.childNodes;s[t]&&e.removeChild(s[t]),s.length?e.insertBefore(o,s[t]):e.appendChild(o)}}function g(e,t,a){var n=a.css,i=a.media,o=a.sourceMap;if(i?e.setAttribute("media",i):e.removeAttribute("media"),o&&"undefined"!=typeof btoa&&(n+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}var h=null,p=0;function v(e,t){var a,n,i;if(t.singleton){var o=p++;a=h||(h=c(t)),n=d.bind(null,a,o,!1),i=d.bind(null,a,o,!0)}else a=c(t),n=g.bind(null,a,t),i=function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(a)};return n(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;n(e=t)}else i()}}e.exports=function(e,t){(t=t||{}).singleton||"boolean"==typeof t.singleton||(t.singleton=i());var a=l(e=e||[],t);return function(e){if(e=e||[],"[object Array]"===Object.prototype.toString.call(e)){for(var n=0;n<a.length;n++){var i=r(a[n]);s[i].references--}for(var o=l(e,t),c=0;c<a.length;c++){var u=r(a[c]);0===s[u].references&&(s[u].updater(),s.splice(u,1))}a=o}}}},200:function(e,t){e.exports=require("vue-material-design-icons/RadioboxBlank")},201:function(e,t){e.exports=require("vue-material-design-icons/ToggleSwitchOff")},202:function(e,t){e.exports=require("vue-material-design-icons/ToggleSwitch")},231:function(e,t,a){"use strict";a.r(t);var n=a(196),i=a.n(n),o=a(197),s=a.n(o),r=a(198),l=a.n(r),c=a(199),u=a.n(c),m=a(200),d=a.n(m),g=a(201),h=a.n(g),p=a(202),v=a.n(p),b=a(15),k=a(26);function y(e){return function(e){if(Array.isArray(e))return f(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return f(e,t);var a=Object.prototype.toString.call(e).slice(8,-1);"Object"===a&&e.constructor&&(a=e.constructor.name);if("Map"===a||"Set"===a)return Array.from(e);if("Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a))return f(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function f(e,t){(null==t||t>e.length)&&(t=e.length);for(var a=0,n=new Array(t);a<t;a++)n[a]=e[a];return n}var S={name:"CheckboxRadioSwitch",mixins:[k.a],props:{id:{type:String,default:function(){return"checkbox-radio-switch-"+Object(b.a)()},validator:function(e){return""!==e.trim()}},name:{type:String,default:null},type:{type:String,default:"checkbox",validator:function(e){return"checkbox"===e||"radio"===e||"switch"===e}},checked:{type:[Boolean,Array,String],default:!1},value:{type:String,default:null},disabled:{type:Boolean,default:!1},indeterminate:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},wrapperElement:{type:String,default:"span"}},computed:{size:function(){return"switch"===this.type?36:24},cssVars:function(){return{"--icon-size":this.size+"px"}},inputType:function(){return"radio"===this.type?"radio":"checkbox"},isChecked:function(){return null!==this.value?Array.isArray(this.checked)?y(this.checked).indexOf(this.value)>-1:this.checked===this.value:!0===this.checked},checkboxRadioIconElement:function(){return"radio"===this.type?this.isChecked?u.a:d.a:"switch"===this.type?this.isChecked?v.a:h.a:this.indeterminate?s.a:this.isChecked?l.a:i.a}},mounted:function(){if(this.name&&"checkbox"===this.type&&!Array.isArray(this.checked))throw new Error("When using groups of checkboxes, the updated value will be an array.");if(this.name&&"switch"===this.type)throw new Error("Switches are not made to be used for data sets. Please use checkboxes instead.");if("boolean"!=typeof this.checked&&"switch"===this.type)throw new Error("Switches can only be used with boolean as checked prop.")},methods:{onToggle:function(){if(!this.disabled)if("radio"!==this.type)if("switch"!==this.type)if("boolean"!=typeof this.checked){var e=this.getInputsSet().filter((function(e){return e.checked})).map((function(e){return e.value}));this.$emit("update:checked",e)}else this.$emit("update:checked",!this.isChecked);else this.$emit("update:checked",!this.isChecked);else this.$emit("update:checked",this.value)},getInputsSet:function(){return y(document.getElementsByName(this.name))}}},A=a(2),C=a.n(A),N=a(170),j={insert:"head",singleton:!1},z=(C()(N.a,j),N.a.locals,a(3)),P=a(171),w=a.n(P),x=Object(z.a)(S,(function(){var e,t=this,a=t.$createElement,n=t._self._c||a;return n(t.wrapperElement,{tag:"element",staticClass:"checkbox-radio-switch",class:(e={},e["checkbox-radio-switch-"+t.type]=t.type,e["checkbox-radio-switch--checked"]=t.isChecked,e["checkbox-radio-switch--disabled"]=t.disabled,e["checkbox-radio-switch--indeterminate"]=t.indeterminate,e),style:t.cssVars},[n("input",{staticClass:"checkbox-radio-switch__input",attrs:{id:t.id,disabled:t.disabled,indeterminate:t.indeterminate,name:t.name,type:t.inputType},domProps:{checked:t.isChecked,value:t.value},on:{change:t.onToggle}}),t._v(" "),n("label",{staticClass:"checkbox-radio-switch__label",attrs:{for:t.id}},[t.loading?n("div",{staticClass:"icon-loading-small checkbox-radio-switch__icon"}):n(t.checkboxRadioIconElement,{tag:"icon",staticClass:"checkbox-radio-switch__icon",attrs:{size:t.size,title:"",decorative:""}}),t._v(" "),t._t("default")],2)])}),[],!1,null,"5cec6b50",null);"function"==typeof w.a&&w()(x);var E=x.exports;
23
23
  /**
24
24
  * @copyright Copyright (c) 2021 John Molakvoæ <skjnldsv@protonmail.com>
25
25
  *