UNPKG

vue-apply-darkmode

Version:
1 lines 2.54 kB
var VueApplyDarkmode=function(t){"use strict";function e(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var r=t&&("undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"]);if(null==r)return;var n,a,i=[],o=!0,s=!1;try{for(r=r.call(t);!(o=(n=r.next()).done)&&(i.push(n.value),!e||i.length!==e);o=!0);}catch(t){s=!0,a=t}finally{try{o||null==r.return||r.return()}finally{if(s)throw a}}return i}(t,e)||function(t,e){if(!t)return;if("string"==typeof t)return r(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);"Object"===n&&t.constructor&&(n=t.constructor.name);if("Map"===n||"Set"===n)return Array.from(t);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return r(t,e)}(t,e)||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(t,e){(null==e||e>t.length)&&(e=t.length);for(var r=0,n=new Array(e);r<e;r++)n[r]=t[r];return n}var n={props:{dark:{type:Boolean,default:!1},watchSystem:{type:Boolean,default:!1},brightness:{type:Number,default:100},contrast:{type:Number,default:90},sepia:{type:Number,default:10}},data:function(){return{activeDark:this.dark,systemDark:!1,mq:null}},computed:{appearanceSettings:function(){return String(this.brightness).padStart(3,0)+String(this.contrast).padStart(3,0)+String(this.sepia).padStart(3,0)}},watch:{activeDark:function(){this.toggleDarkMode()},systemDark:function(){this.toggleDarkMode()},appearanceSettings:function(){this.toggleDarkMode()}},mounted:function(){null===this.mq&&window&&(this.mq=window.matchMedia("(prefers-color-scheme: dark)"),this.mq.addEventListener("change",this.updateSystemTheme)),this.toggleDarkMode()},beforeDestroy:function(){null!==this.mq&&this.mq.removeEventListener("change",this.updateSystemTheme)},methods:{updateSystemTheme:function(t){this.systemDark=t.matches},toggleDarkMode:function(){if(window){var t=require("darkreader"),e=t.enable,r=t.disable;this.activeDark||!this.activeDark&&this.systemDark?e({brightness:this.brightness,contrast:this.contrast,sepia:this.sepia}):r()}}}},a={class:"vue-apply-darkmode"};n.render=function(e,r,n,i,o,s){return t.openBlock(),t.createBlock("div",a,[t.renderSlot(e.$slots,"default")])};var i=function(){var t=n;return t.install=function(e){e.component("VueApplyDarkmode",t)},t}(),o=Object.freeze({__proto__:null,default:i});return Object.entries(o).forEach((function(t){var r=e(t,2),n=r[0],a=r[1];"default"!==n&&(i[n]=a)})),i}(Vue);