├── .gitignore ├── LICENSE ├── README.md ├── composer.json ├── dist ├── css │ └── field.css └── js │ └── field.js ├── mix-manifest.json ├── package.json ├── resources ├── js │ ├── components │ │ ├── DetailField.vue │ │ ├── FormField.vue │ │ └── IndexField.vue │ └── field.js └── sass │ └── field.scss ├── screenshots ├── colors.png ├── image1.png ├── image2.png ├── image3.png └── image4.png ├── src ├── FieldServiceProvider.php └── Toggle.php └── webpack.mix.js /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /vendor 3 | /node_modules 4 | package-lock.json 5 | composer.phar 6 | composer.lock 7 | phpunit.xml 8 | .phpunit.result.cache 9 | .DS_Store 10 | Thumbs.db 11 | /screenshots 12 | /mix-manifest.json 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Naif Alshaye 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Nova Toggle Switch Field 2 | 3 | ##### * Toggle Switch Field for Nova 4 go to 4 | https://github.com/naifalshaye/toggle-switch-field 5 | 6 | A Laravel Nova toggle switch field 7 | ## Installation 8 | 9 | You can install the package into a Laravel app that uses Nova via composer: 10 | 11 | ```bash 12 | composer require naif/toggle 13 | ``` 14 | 15 | ## Usage: 16 | Add the below to Nova/User.php resource: 17 | 18 | ```php 19 | 20 | # You can set the toggle switch color by color code. 21 | Toggle::make('Toggle')->color('#7e3d2f'), 22 | 23 | # Also you can set the toggle switch true and false colors that displayed in index and detail views by color code. 24 | Toggle::make('Toggle')->color('#7e3d2f')->onColor('#7a38eb')->offColor('#ae0f04'), 25 | 26 | ``` 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | ## Support: 39 | naif@naif.io 40 | 41 | https://www.linkedin.com/in/naif 42 | 43 | ## License 44 | 45 | The MIT License (MIT). Please see [License File](LICENSE.md) for more information. 46 | -------------------------------------------------------------------------------- /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "naif/toggle", 3 | "description": "A Laravel Nova toggle switch field for Nova 3", 4 | "keywords": [ 5 | "laravel", 6 | "nova3", 7 | "field", 8 | "fields", 9 | "toggle", 10 | "switch", 11 | "toggle-switch" 12 | ], 13 | "license": "MIT", 14 | "authors": [ 15 | { 16 | "name": "Naif Alshaye", 17 | "email": "naif@naif.io", 18 | "homepage": "https://www.naif.io" 19 | } 20 | ], 21 | "require": { 22 | "php": ">=7.1.0" 23 | }, 24 | "autoload": { 25 | "psr-4": { 26 | "Naif\\Toggle\\": "src/" 27 | } 28 | }, 29 | "extra": { 30 | "laravel": { 31 | "providers": [ 32 | "Naif\\Toggle\\FieldServiceProvider" 33 | ] 34 | } 35 | }, 36 | "config": { 37 | "sort-packages": true 38 | }, 39 | "minimum-stability": "dev", 40 | "prefer-stable": true 41 | } 42 | -------------------------------------------------------------------------------- /dist/css/field.css: -------------------------------------------------------------------------------- 1 | .dot_off{background-color:#bbb}.dot_off,.dot_on{height:20px;width:20px;border-radius:50%;display:inline-block}.dot_on{background-color:#58ac04}input.green{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;width:50px;height:30px;background-color:#fff;border:1px solid #d9dadc;border-radius:50px;-webkit-box-shadow:inset -20px 0 0 0 #fff;box-shadow:inset -20px 0 0 0 #fff;-webkit-transition-duration:.2s;transition-duration:.2s}input.green:after{content:"";position:absolute;top:1px;left:1px;width:26px;height:26px;background-color:transparent;border-radius:50%;-webkit-box-shadow:2px 4px 6px rgba(0,0,0,.2);box-shadow:2px 4px 6px rgba(0,0,0,.2)}input.green:checked{border-color:#4ed164;-webkit-box-shadow:inset 20px 0 0 0 #4ed164;box-shadow:inset 20px 0 0 0 #4ed164}input.green:checked:after{left:20px;-webkit-box-shadow:-2px 4px 3px rgba(0,0,0,.05);box-shadow:-2px 4px 3px rgba(0,0,0,.05)}input.blue{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;width:50px;height:30px;background-color:#fff;border:1px solid #d9dadc;border-radius:50px;-webkit-box-shadow:inset -20px 0 0 0 #fff;box-shadow:inset -20px 0 0 0 #fff;-webkit-transition-duration:.2s;transition-duration:.2s}input.blue:after{content:"";position:absolute;top:1px;left:1px;width:26px;height:26px;background-color:transparent;border-radius:50%;-webkit-box-shadow:2px 4px 6px rgba(0,0,0,.2);box-shadow:2px 4px 6px rgba(0,0,0,.2)}input.blue:checked{border-color:#2c9fff;-webkit-box-shadow:inset 20px 0 0 0 #2c9fff;box-shadow:inset 20px 0 0 0 #2c9fff}input.blue:checked:after{left:20px;-webkit-box-shadow:-2px 4px 3px rgba(0,0,0,.05);box-shadow:-2px 4px 3px rgba(0,0,0,.05)}input.orange{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;width:50px;height:30px;background-color:#fff;border:1px solid #d9dadc;border-radius:50px;-webkit-box-shadow:inset -20px 0 0 0 #fff;box-shadow:inset -20px 0 0 0 #fff;-webkit-transition-duration:.2s;transition-duration:.2s}input.orange:after{content:"";position:absolute;top:1px;left:1px;width:26px;height:26px;background-color:transparent;border-radius:50%;-webkit-box-shadow:2px 4px 6px rgba(0,0,0,.2);box-shadow:2px 4px 6px rgba(0,0,0,.2)}input.orange:checked{border-color:#ff5b2e;-webkit-box-shadow:inset 20px 0 0 0 #ff5b2e;box-shadow:inset 20px 0 0 0 #ff5b2e}input.orange:checked:after{left:20px;-webkit-box-shadow:-2px 4px 3px rgba(0,0,0,.05);box-shadow:-2px 4px 3px rgba(0,0,0,.05)}input.cyan{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;width:50px;height:30px;background-color:#fff;border:1px solid #d9dadc;border-radius:50px;-webkit-box-shadow:inset -20px 0 0 0 #fff;box-shadow:inset -20px 0 0 0 #fff;-webkit-transition-duration:.2s;transition-duration:.2s}input.cyan:after{content:"";position:absolute;top:1px;left:1px;width:26px;height:26px;background-color:transparent;border-radius:50%;-webkit-box-shadow:2px 4px 6px rgba(0,0,0,.2);box-shadow:2px 4px 6px rgba(0,0,0,.2)}input.cyan:checked{border-color:#52b7d7;-webkit-box-shadow:inset 20px 0 0 0 #52b7d7;box-shadow:inset 20px 0 0 0 #52b7d7}input.cyan:checked:after{left:20px;-webkit-box-shadow:-2px 4px 3px rgba(0,0,0,.05);box-shadow:-2px 4px 3px rgba(0,0,0,.05)}input.red{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;width:50px;height:30px;background-color:#fff;border:1px solid #d9dadc;border-radius:50px;-webkit-box-shadow:inset -20px 0 0 0 #fff;box-shadow:inset -20px 0 0 0 #fff;-webkit-transition-duration:.2s;transition-duration:.2s}input.red:after{content:"";position:absolute;top:1px;left:1px;width:26px;height:26px;background-color:transparent;border-radius:50%;-webkit-box-shadow:2px 4px 6px rgba(0,0,0,.2);box-shadow:2px 4px 6px rgba(0,0,0,.2)}input.red:checked{border-color:#ce4646;-webkit-box-shadow:inset 20px 0 0 0 #ce4646;box-shadow:inset 20px 0 0 0 #ce4646}input.red:checked:after{left:20px;-webkit-box-shadow:-2px 4px 3px rgba(0,0,0,.05);box-shadow:-2px 4px 3px rgba(0,0,0,.05)}input.custom-color{position:relative;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;width:50px;height:30px;background-color:#fff;border:1px solid #d9dadc;border-radius:50px;-webkit-box-shadow:inset -20px 0 0 0 #fff;box-shadow:inset -20px 0 0 0 #fff;-webkit-transition-duration:.2s;transition-duration:.2s}input.custom-color:after{content:"";position:absolute;top:1px;left:1px;width:26px;height:26px;background-color:transparent;border-radius:50%;-webkit-box-shadow:2px 4px 6px rgba(0,0,0,.2);box-shadow:2px 4px 6px rgba(0,0,0,.2)}input.custom-color:checked{-webkit-box-shadow:inset 20px 0 0 0;box-shadow:inset 20px 0 0 0}input.custom-color:checked:after{left:20px;-webkit-box-shadow:-2px 4px 3px rgba(0,0,0,.05);box-shadow:-2px 4px 3px rgba(0,0,0,.05)} -------------------------------------------------------------------------------- /dist/js/field.js: -------------------------------------------------------------------------------- 1 | !function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(t,e){t.exports=function(t,e,n,r,o,i){var u,a=t=t||{},c=typeof t.default;"object"!==c&&"function"!==c||(u=t,a=t.default);var s,f="function"==typeof a?a.options:a;if(e&&(f.render=e.render,f.staticRenderFns=e.staticRenderFns,f._compiled=!0),n&&(f.functional=!0),o&&(f._scopeId=o),i?(s=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),r&&r.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(i)},f._ssrRegister=s):r&&(s=r),s){var l=f.functional,h=l?f.render:f.beforeCreate;l?(f._injectStyles=s,f.render=function(t,e){return s.call(e),h(t,e)}):f.beforeCreate=h?[].concat(h,s):[s]}return{esModule:u,exports:a,options:f}}},function(t,e,n){n(2),t.exports=n(13)},function(t,e,n){Nova.booting(function(t,e){t.component("index-toggle",n(3)),t.component("detail-toggle",n(6)),t.component("form-toggle",n(9))})},function(t,e,n){var r=n(0)(n(4),n(5),!1,null,null,null);t.exports=r.exports},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:["resourceName","field"],data:function(){return[]},methods:{trueStyles:function(){return void 0!==this.field.on_color?{"background-color":this.field.on_color}:{"background-color":"green"}},falseStyles:function(){return void 0!==this.field.off_color?{"background-color":this.field.off_color}:{"background-color":"gray"}}},mounted:function(){}}},function(t,e){t.exports={render:function(){var t=this.$createElement,e=this._self._c||t;return 1===this.field.value?e("span",{staticClass:"dot_on",style:this.trueStyles()}):0===this.field.value?e("span",{staticClass:"dot_off",style:this.falseStyles()}):this._e()},staticRenderFns:[]}},function(t,e,n){var r=n(0)(n(7),n(8),!1,null,null,null);t.exports=r.exports},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={props:["resource","resourceName","resourceId","field"],data:function(){return[]},computed:{},methods:{trueStyles:function(){return void 0!==this.field.on_color?{"background-color":this.field.on_color}:{"background-color":"#ffe"}},falseStyles:function(){return void 0!==this.field.off_color?{"background-color":this.field.off_color}:{"background-color":"#000"}}},created:function(){}}},function(t,e){t.exports={render:function(){var t=this.$createElement,e=this._self._c||t;return e("panel-item",{attrs:{field:this.field}},[e("template",{slot:"value"},[1===this.field.value?e("span",{staticClass:"dot_on",style:this.trueStyles(),attrs:{id:"onspan",name:"onspan"}}):0===this.field.value?e("span",{staticClass:"dot_off",style:this.falseStyles(),attrs:{id:"offspan",name:"offspan"}}):this._e()])],2)},staticRenderFns:[]}},function(t,e,n){var r=n(0)(n(10),n(12),!1,null,null,null);t.exports=r.exports},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(11);n.n(r);e.default={mixins:[r.FormField,r.HandlesValidationErrors],props:["resourceName","resourceId","field"],data:function(){return{is_code:!1}},computed:{},methods:{disabled:function(){return void 0===this.field.extraAttributes?!(!this.field.disabled&&!this.field.readonly):!(!this.field.extraAttributes.disabled&&!this.field.extraAttributes.readonly)||void 0},getCustomStyle:function(){return this.value&&1==this.is_code?"color : "+this.field.color+"; border-color :"+this.field.color:""},setInitialValue:function(){this.value=this.field.value||""},fill:function(t){t.append(this.field.attribute,Number(this.value)||Number(0))},handleChange:function(t){this.value=t},custom_color:function(t){return 0===t.indexOf("#")?(this.is_code=!0,"custom-color"):(this.is_code=!1,this.color)}},created:function(){this.field.color||(this.field.color="#43D559")}}},function(t,e,n){var r;r=function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.i=function(t){return t},n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{configurable:!1,enumerable:!0,get:r})},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=41)}([function(t,e,n){"use strict";var r=n(40),o=n(152),i=Object.prototype.toString;function u(t){return"[object Array]"===i.call(t)}function a(t){return null!==t&&"object"==typeof t}function c(t){return"[object Function]"===i.call(t)}function s(t,e){if(null!==t&&void 0!==t)if("object"!=typeof t&&(t=[t]),u(t))for(var n=0,r=t.length;n=200&&t<300}};c.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],function(t){c.headers[t]={}}),r.forEach(["post","put","patch"],function(t){c.headers[t]=r.merge(i)}),t.exports=c}).call(e,n(70))},function(t,e,n){"use strict";e.__esModule=!0;var r,o=n(109),i=(r=o)&&r.__esModule?r:{default:r};e.default=function(t,e,n){return e in t?(0,i.default)(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},function(t,e,n){var r=n(9),o=n(1).document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e){t.exports=!0},function(t,e,n){"use strict";var r=n(14);t.exports.f=function(t){return new function(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}(t)}},function(t,e,n){var r=n(11).f,o=n(17),i=n(2)("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},function(t,e,n){var r=n(54)("keys"),o=n(59);t.exports=function(t){return r[t]||(r[t]=o(t))}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(48),o=n(21);t.exports=function(t){return r(o(t))}},function(t,e,n){var r=n(18).Symbol;t.exports=r},function(t,e){var n=Array.isArray;t.exports=n},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.mapProps=void 0;var r,o=n(194),i=(r=o)&&r.__esModule?r:{default:r};var u={showHelpText:{type:Boolean,default:!1},shownViaNewRelationModal:{type:Boolean,default:!1},resourceId:{type:[Number,String]},resourceName:{type:String},field:{type:Object,required:!0},viaResource:{type:String,required:!1},viaResourceId:{type:[String,Number],required:!1},viaRelationship:{type:String,required:!1},shouldOverrideMeta:{type:Boolean,default:!1}};e.mapProps=function(t){return i.default.pick(u,t)}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=["1/2","1/3","2/3","1/4","3/4","1/5","2/5","3/5","4/5","1/6","5/6"]},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(150);Object.defineProperty(e,"default",{enumerable:!0,get:function(){return i(r).default}}),Object.defineProperty(e,"Form",{enumerable:!0,get:function(){return i(r).default}});var o=n(60);function i(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"Errors",{enumerable:!0,get:function(){return i(o).default}})},function(t,e,n){"use strict";(function(e){var r=n(0),o=n(97),i=n(100),u=n(106),a=n(104),c=n(39),s="undefined"!=typeof window&&window.btoa&&window.btoa.bind(window)||n(99);t.exports=function(t){return new Promise(function(f,l){var h=t.data,p=t.headers;r.isFormData(h)&&delete p["Content-Type"];var d=new XMLHttpRequest,v="onreadystatechange",g=!1;if("test"===e.env.NODE_ENV||"undefined"==typeof window||!window.XDomainRequest||"withCredentials"in d||a(t.url)||(d=new window.XDomainRequest,v="onload",g=!0,d.onprogress=function(){},d.ontimeout=function(){}),t.auth){var y=t.auth.username||"",_=t.auth.password||"";p.Authorization="Basic "+s(y+":"+_)}if(d.open(t.method.toUpperCase(),i(t.url,t.params,t.paramsSerializer),!0),d.timeout=t.timeout,d[v]=function(){if(d&&(4===d.readyState||g)&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var e="getAllResponseHeaders"in d?u(d.getAllResponseHeaders()):null,n={data:t.responseType&&"text"!==t.responseType?d.response:d.responseText,status:1223===d.status?204:d.status,statusText:1223===d.status?"No Content":d.statusText,headers:e,config:t,request:d};o(f,l,n),d=null}},d.onerror=function(){l(c("Network Error",t,null,d)),d=null},d.ontimeout=function(){l(c("timeout of "+t.timeout+"ms exceeded",t,"ECONNABORTED",d)),d=null},r.isStandardBrowserEnv()){var m=n(102),b=(t.withCredentials||a(t.url))&&t.xsrfCookieName?m.read(t.xsrfCookieName):void 0;b&&(p[t.xsrfHeaderName]=b)}if("setRequestHeader"in d&&r.forEach(p,function(t,e){void 0===h&&"content-type"===e.toLowerCase()?delete p[e]:d.setRequestHeader(e,t)}),t.withCredentials&&(d.withCredentials=!0),t.responseType)try{d.responseType=t.responseType}catch(e){if("json"!==t.responseType)throw e}"function"==typeof t.onDownloadProgress&&d.addEventListener("progress",t.onDownloadProgress),"function"==typeof t.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",t.onUploadProgress),t.cancelToken&&t.cancelToken.promise.then(function(t){d&&(d.abort(),l(t),d=null)}),void 0===h&&(h=null),d.send(h)})}}).call(e,n(70))},function(t,e,n){"use strict";function r(t){this.message=t}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,t.exports=r},function(t,e,n){"use strict";t.exports=function(t){return!(!t||!t.__CANCEL__)}},function(t,e,n){"use strict";var r=n(96);t.exports=function(t,e,n,o,i){var u=new Error(t);return r(u,e,n,o,i)}},function(t,e,n){"use strict";t.exports=function(t,e){return function(){for(var n=new Array(arguments.length),r=0;rn;)e.push(arguments[n++]);return y[++g]=function(){a("function"==typeof t?t:Function(t),e)},r(g),g},p=function(t){delete y[t]},"process"==n(15)(l)?r=function(t){l.nextTick(u(_,t,1))}:v&&v.now?r=function(t){v.now(u(_,t,1))}:d?(i=(o=new d).port2,o.port1.onmessage=m,r=u(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",m,!1)):r="onreadystatechange"in s("script")?function(t){c.appendChild(s("script")).onreadystatechange=function(){c.removeChild(this),_.call(t)}}:function(t){setTimeout(u(_,t,1),0)}),t.exports={set:h,clear:p}},function(t,e,n){var r=n(28),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},function(t,e,n){var r=n(21);t.exports=function(t){return Object(r(t))}},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.record(e)}return r(t,[{key:"all",value:function(){return this.errors}},{key:"has",value:function(t){var e=this.errors.hasOwnProperty(t);e||(e=Object.keys(this.errors).filter(function(e){return e.startsWith(t+".")||e.startsWith(t+"[")}).length>0);return e}},{key:"first",value:function(t){return this.get(t)[0]}},{key:"get",value:function(t){return this.errors[t]||[]}},{key:"any",value:function(){return Object.keys(this.errors).length>0}},{key:"record",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.errors=t}},{key:"clear",value:function(t){if(t){var e=Object.assign({},this.errors);Object.keys(e).filter(function(e){return e===t||e.startsWith(t+".")||e.startsWith(t+"[")}).forEach(function(t){return delete e[t]}),this.errors=e}else this.errors={}}}]),t}();e.default=o},function(t,e,n){(function(e){var n="object"==typeof e&&e&&e.Object===Object&&e;t.exports=n}).call(e,n(71))},function(t,e){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");t.exports=function(t){return n.test(t)}},function(t,e){var n=9007199254740991,r=/^(?:0|[1-9]\d*)$/;t.exports=function(t,e){var o=typeof t;return!!(e=null==e?n:e)&&("number"==o||"symbol"!=o&&r.test(t))&&t>-1&&t%1==0&&t-1&&t%1==0&&t<=n}},function(t,e,n){var r=n(12),o=n(13),i="[object Symbol]";t.exports=function(t){return"symbol"==typeof t||o(t)&&r(t)==i}},function(t,e){var n,r,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function u(){throw new Error("clearTimeout has not been defined")}function a(t){if(n===setTimeout)return setTimeout(t,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(t,0);try{return n(t,0)}catch(e){try{return n.call(null,t,0)}catch(e){return n.call(this,t,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:i}catch(t){n=i}try{r="function"==typeof clearTimeout?clearTimeout:u}catch(t){r=u}}();var c,s=[],f=!1,l=-1;function h(){f&&c&&(f=!1,c.length?s=c.concat(s):l=-1,s.length&&p())}function p(){if(!f){var t=a(h);f=!0;for(var e=s.length;e;){for(c=s,s=[];++l1)for(var n=1;n1&&void 0!==arguments[1]?arguments[1]:null;return this.viaManyToMany?this.detachResources(t):Nova.request({url:"/nova-api/"+this.resourceName,method:"delete",params:(0,i.default)({},this.queryString,{resources:u(t)})}).then(n||function(){e.deleteModalOpen=!1,e.getResources()}).then(function(){Nova.$emit("resources-deleted")})},deleteSelectedResources:function(){this.deleteResources(this.selectedResources)},deleteAllMatchingResources:function(){var t=this;return this.viaManyToMany?this.detachAllMatchingResources():Nova.request({url:this.deleteAllMatchingResourcesEndpoint,method:"delete",params:(0,i.default)({},this.queryString,{resources:"all"})}).then(function(){t.deleteModalOpen=!1,t.getResources()}).then(function(){Nova.$emit("resources-deleted")})},detachResources:function(t){var e=this;return Nova.request({url:"/nova-api/"+this.resourceName+"/detach",method:"delete",params:(0,i.default)({},this.queryString,{resources:u(t)},{pivots:function(t){return _.filter(_.map(t,function(t){return t.id.pivotValue}))}(t)})}).then(function(){e.deleteModalOpen=!1,e.getResources()}).then(function(){Nova.$emit("resources-detached")})},detachAllMatchingResources:function(){var t=this;return Nova.request({url:"/nova-api/"+this.resourceName+"/detach",method:"delete",params:(0,i.default)({},this.queryString,{resources:"all"})}).then(function(){t.deleteModalOpen=!1,t.getResources()}).then(function(){Nova.$emit("resources-detached")})},forceDeleteResources:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return Nova.request({url:"/nova-api/"+this.resourceName+"/force",method:"delete",params:(0,i.default)({},this.queryString,{resources:u(t)})}).then(n||function(){e.deleteModalOpen=!1,e.getResources()}).then(function(){Nova.$emit("resources-deleted")})},forceDeleteSelectedResources:function(){this.forceDeleteResources(this.selectedResources)},forceDeleteAllMatchingResources:function(){var t=this;return Nova.request({url:this.forceDeleteSelectedResourcesEndpoint,method:"delete",params:(0,i.default)({},this.queryString,{resources:"all"})}).then(function(){t.deleteModalOpen=!1,t.getResources()}).then(function(){Nova.$emit("resources-deleted")})},restoreResources:function(t){var e=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;return Nova.request({url:"/nova-api/"+this.resourceName+"/restore",method:"put",params:(0,i.default)({},this.queryString,{resources:u(t)})}).then(n||function(){e.restoreModalOpen=!1,e.getResources()}).then(function(){Nova.$emit("resources-restored")})},restoreSelectedResources:function(){this.restoreResources(this.selectedResources)},restoreAllMatchingResources:function(){var t=this;return Nova.request({url:this.restoreAllMatchingResourcesEndpoint,method:"put",params:(0,i.default)({},this.queryString,{resources:"all"})}).then(function(){t.restoreModalOpen=!1,t.getResources()}).then(function(){Nova.$emit("resources-restored")})}},computed:{deleteAllMatchingResourcesEndpoint:function(){return this.lens?"/nova-api/"+this.resourceName+"/lens/"+this.lens:"/nova-api/"+this.resourceName},forceDeleteSelectedResourcesEndpoint:function(){return this.lens?"/nova-api/"+this.resourceName+"/lens/"+this.lens+"/force":"/nova-api/"+this.resourceName+"/force"},restoreAllMatchingResourcesEndpoint:function(){return this.lens?"/nova-api/"+this.resourceName+"/lens/"+this.lens+"/restore":"/nova-api/"+this.resourceName+"/restore"},queryString:function(){return{search:this.currentSearch,filters:this.encodedFilters,trashed:this.currentTrashed,viaResource:this.viaResource,viaResourceId:this.viaResourceId,viaRelationship:this.viaRelationship}}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(n(44)),o=u(n(20)),i=u(n(43));function u(t){return t&&t.__esModule?t:{default:t}}e.default={methods:{clearSelectedFilters:function(){var t=(0,i.default)(r.default.mark(function t(e){var n;return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!e){t.next=5;break}return t.next=3,this.$store.dispatch(this.resourceName+"/resetFilterState",{resourceName:this.resourceName,lens:e});case 3:t.next=7;break;case 5:return t.next=7,this.$store.dispatch(this.resourceName+"/resetFilterState",{resourceName:this.resourceName});case 7:this.updateQueryString((n={},(0,o.default)(n,this.pageParameter,1),(0,o.default)(n,this.filterParameter,""),n));case 8:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),filterChanged:function(){var t;this.updateQueryString((t={},(0,o.default)(t,this.pageParameter,1),(0,o.default)(t,this.filterParameter,this.$store.getters[this.resourceName+"/currentEncodedFilters"]),t))},initializeFilters:function(){var t=(0,i.default)(r.default.mark(function t(e){return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:return this.$store.commit(this.resourceName+"/clearFilters"),t.next=3,this.$store.dispatch(this.resourceName+"/fetchFilters",{resourceName:this.resourceName,viaResource:this.viaResource,viaResourceId:this.viaResourceId,viaRelationship:this.viaRelationship,lens:e});case 3:return t.next=5,this.initializeState(e);case 5:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}(),initializeState:function(){var t=(0,i.default)(r.default.mark(function t(e){return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.initialEncodedFilters){t.next=5;break}return t.next=3,this.$store.dispatch(this.resourceName+"/initializeCurrentFilterValuesFromQueryString",this.initialEncodedFilters);case 3:t.next=7;break;case 5:return t.next=7,this.$store.dispatch(this.resourceName+"/resetFilterState",{resourceName:this.resourceName,lens:e});case 7:case"end":return t.stop()}},t,this)}));return function(e){return t.apply(this,arguments)}}()},computed:{filterParameter:function(){return this.resourceName+"_filter"}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(33);e.default={props:(0,r.mapProps)(["shownViaNewRelationModal","field","viaResource","viaResourceId","viaRelationship","resourceName","showHelpText"]),data:function(){return{value:""}},mounted:function(){var t=this;this.setInitialValue(),this.field.fill=this.fill,Nova.$on(this.field.attribute+"-value",function(e){t.value=e})},destroyed:function(){Nova.$off(this.field.attribute+"-value")},methods:{setInitialValue:function(){this.value=void 0!==this.field.value&&null!==this.field.value?this.field.value:""},fill:function(t){t.append(this.field.attribute,String(this.value))},handleChange:function(t){this.value=t.target.value,this.field&&Nova.$emit(this.field.attribute+"-change",this.value)}},computed:{isReadonly:function(){return this.field.readonly||_.get(this.field,"extraAttributes.readonly")}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(35);e.default={props:{errors:{default:function(){return new r.Errors}}},data:function(){return{errorClass:"border-danger"}},computed:{errorClasses:function(){return this.hasError?[this.errorClass]:[]},fieldAttribute:function(){return this.field.attribute},validationKey:function(){return this.field.validationKey},hasError:function(){return this.errors.has(this.validationKey)},firstError:function(){if(this.hasError)return this.errors.first(this.validationKey)}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(n(44)),o=u(n(43)),i=u(n(34));function u(t){return t&&t.__esModule?t:{default:t}}e.default={props:{loadCards:{type:Boolean,default:!0}},data:function(){return{cards:[]}},created:function(){this.fetchCards()},watch:{cardsEndpoint:function(){this.fetchCards()}},methods:{fetchCards:function(){var t=(0,o.default)(r.default.mark(function t(){var e,n;return r.default.wrap(function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.loadCards){t.next=6;break}return t.next=3,Nova.request().get(this.cardsEndpoint,{params:this.extraCardParams});case 3:e=t.sent,n=e.data,this.cards=n;case 6:case"end":return t.stop()}},t,this)}));return function(){return t.apply(this,arguments)}}()},computed:{shouldShowCards:function(){return this.cards.length>0},smallCards:function(){return _.filter(this.cards,function(t){return-1!==i.default.indexOf(t.width)})},largeCards:function(){return _.filter(this.cards,function(t){return"full"==t.width})},extraCardParams:function(){return null}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={methods:{toAppTimezone:function(t){return t?moment.tz(t,this.userTimezone).clone().tz(Nova.config.timezone).format("YYYY-MM-DD HH:mm:ss"):t},fromAppTimezone:function(t){return t?moment.tz(t,Nova.config.timezone).clone().tz(this.userTimezone).format("YYYY-MM-DD HH:mm:ss"):t},localizeDateTimeField:function(t){if(!t.value)return t.value;var e=moment.tz(t.value,Nova.config.timezone).clone().tz(this.userTimezone);return t.format?e.format(t.format):this.usesTwelveHourTime?e.format("YYYY-MM-DD h:mm:ss A"):e.format("YYYY-MM-DD HH:mm:ss")},localizeDateField:function(t){if(!t.value)return t.value;var e=moment.tz(t.value,Nova.config.timezone).clone().tz(this.userTimezone);return t.format?e.format(t.format):e.format("YYYY-MM-DD")}},computed:{userTimezone:function(){return Nova.config.userTimezone?Nova.config.userTimezone:moment.tz.guess()},usesTwelveHourTime:function(){return _.endsWith((new Date).toLocaleString(),"AM")||_.endsWith((new Date).toLocaleString(),"PM")}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=n(188),i=(r=o)&&r.__esModule?r:{default:r};e.default={methods:{updateQueryString:function(t){this.$router.push({query:(0,i.default)(t,this.$route.query)}).catch(function(t){if("NavigationDuplicated"!=t.name)throw t})}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={computed:{resourceInformation:function(){var t=this;return _.find(Nova.config.resources,function(e){return e.uriKey==t.resourceName})},viaResourceInformation:function(){var t=this;if(this.viaResource)return _.find(Nova.config.resources,function(e){return e.uriKey==t.viaResource})},authorizedToCreate:function(){return this.resourceInformation.authorizedToCreate}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=n(20),i=(r=o)&&r.__esModule?r:{default:r};e.default={methods:{selectPreviousPage:function(){this.updateQueryString((0,i.default)({},this.pageParameter,this.currentPage-1))},selectNextPage:function(){this.updateQueryString((0,i.default)({},this.pageParameter,this.currentPage+1))}},computed:{currentPage:function(){return parseInt(this.$route.query[this.pageParameter]||1)}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=n(20),i=(r=o)&&r.__esModule?r:{default:r};e.default={data:function(){return{perPage:25}},methods:{initializePerPageFromQueryString:function(){this.perPage=this.currentPerPage},perPageChanged:function(){this.updateQueryString((0,i.default)({},this.perPageParameter,this.perPage))}},computed:{currentPerPage:function(){return this.$route.query[this.perPageParameter]||25}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=n(187),i=(r=o)&&r.__esModule?r:{default:r};e.default={data:function(){return{search:"",selectedResource:"",availableResources:[]}},methods:{selectResource:function(t){this.selectedResource=t,this.field&&Nova.$emit(this.field.attribute+"-change",this.selectedResource.value)},handleSearchCleared:function(){this.availableResources=[]},clearSelection:function(){this.selectedResource="",this.availableResources=[],this.field&&Nova.$emit(this.field.attribute+"-change",null)},performSearch:function(t){var e=this;this.search=t;var n=t.trim();""!=n&&this.debouncer(function(){e.getAvailableResources(n)},500)},debouncer:(0,i.default)(function(t){return t()},500)}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={beforeRouteLeave:function(t,e,n){this.canLeave?n():window.confirm(this.__("Do you really want to leave? You have unsaved changes."))?n():n(!1)},data:function(){return{canLeave:!0}},methods:{updateFormStatus:function(){this.canLeave=!1}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default={data:function(){return{withTrashed:!1}},methods:{toggleWithTrashed:function(){this.withTrashed=!this.withTrashed},enableWithTrashed:function(){this.withTrashed=!0},disableWithTrashed:function(){this.withTrashed=!1}}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return(0,i.default)(t)};var r,o=n(199),i=(r=o)&&r.__esModule?r:{default:r}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r,o=n(42),i=(r=o)&&r.__esModule?r:{default:r};e.default=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return i.default.all([t,new i.default(function(t){setTimeout(function(){return t()},e)})]).then(function(t){return t[0]})}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){if((0,u.default)(e)&&null==e.match(/^(.*)[A-Za-zÀ-ÖØ-öø-ÿ]$/))return e;if(t>1||0==t)return o.Inflector.pluralize(e);return o.Inflector.singularize(e)};var r,o=n(41),i=n(191),u=(r=i)&&r.__esModule?r:{default:r}},function(t,e,n){"use strict";var r={uncountableWords:["equipment","information","rice","money","species","series","fish","sheep","moose","deer","news"],pluralRules:[[new RegExp("(m)an$","gi"),"$1en"],[new RegExp("(pe)rson$","gi"),"$1ople"],[new RegExp("(child)$","gi"),"$1ren"],[new RegExp("^(ox)$","gi"),"$1en"],[new RegExp("(ax|test)is$","gi"),"$1es"],[new RegExp("(octop|vir)us$","gi"),"$1i"],[new RegExp("(alias|status)$","gi"),"$1es"],[new RegExp("(bu)s$","gi"),"$1ses"],[new RegExp("(buffal|tomat|potat)o$","gi"),"$1oes"],[new RegExp("([ti])um$","gi"),"$1a"],[new RegExp("sis$","gi"),"ses"],[new RegExp("(?:([^f])fe|([lr])f)$","gi"),"$1$2ves"],[new RegExp("(hive)$","gi"),"$1s"],[new RegExp("([^aeiouy]|qu)y$","gi"),"$1ies"],[new RegExp("(x|ch|ss|sh)$","gi"),"$1es"],[new RegExp("(matr|vert|ind)ix|ex$","gi"),"$1ices"],[new RegExp("([m|l])ouse$","gi"),"$1ice"],[new RegExp("(quiz)$","gi"),"$1zes"],[new RegExp("s$","gi"),"s"],[new RegExp("$","gi"),"s"]],singularRules:[[new RegExp("(m)en$","gi"),"$1an"],[new RegExp("(pe)ople$","gi"),"$1rson"],[new RegExp("(child)ren$","gi"),"$1"],[new RegExp("([ti])a$","gi"),"$1um"],[new RegExp("((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$","gi"),"$1$2sis"],[new RegExp("(hive)s$","gi"),"$1"],[new RegExp("(tive)s$","gi"),"$1"],[new RegExp("(curve)s$","gi"),"$1"],[new RegExp("([lr])ves$","gi"),"$1f"],[new RegExp("([^fo])ves$","gi"),"$1fe"],[new RegExp("([^aeiouy]|qu)ies$","gi"),"$1y"],[new RegExp("(s)eries$","gi"),"$1eries"],[new RegExp("(m)ovies$","gi"),"$1ovie"],[new RegExp("(x|ch|ss|sh)es$","gi"),"$1"],[new RegExp("([m|l])ice$","gi"),"$1ouse"],[new RegExp("(bus)es$","gi"),"$1"],[new RegExp("(o)es$","gi"),"$1"],[new RegExp("(shoe)s$","gi"),"$1"],[new RegExp("(cris|ax|test)es$","gi"),"$1is"],[new RegExp("(octop|vir)i$","gi"),"$1us"],[new RegExp("(alias|status)es$","gi"),"$1"],[new RegExp("^(ox)en","gi"),"$1"],[new RegExp("(vert|ind)ices$","gi"),"$1ex"],[new RegExp("(matr)ices$","gi"),"$1ix"],[new RegExp("(quiz)zes$","gi"),"$1"],[new RegExp("s$","gi"),""]],nonTitlecasedWords:["and","or","nor","a","an","the","so","but","to","of","at","by","from","into","on","onto","off","out","in","over","with","for"],idSuffix:new RegExp("(_ids|_id)$","g"),underbar:new RegExp("_","g"),spaceOrUnderbar:new RegExp("[ _]","g"),uppercase:new RegExp("([A-Z])","g"),underbarPrefix:new RegExp("^_"),applyRules:function(t,e,n,r){if(r)t=r;else if(!(n.indexOf(t.toLowerCase())>-1))for(var o=0;o>8-a%1*8)){if((n=i.charCodeAt(a+=.75))>255)throw new o;e=e<<8|n}return u}},function(t,e,n){"use strict";var r=n(0);function o(t){return encodeURIComponent(t).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}t.exports=function(t,e,n){if(!e)return t;var i;if(n)i=n(e);else if(r.isURLSearchParams(e))i=e.toString();else{var u=[];r.forEach(e,function(t,e){null!==t&&void 0!==t&&(r.isArray(t)?e+="[]":t=[t],r.forEach(t,function(t){r.isDate(t)?t=t.toISOString():r.isObject(t)&&(t=JSON.stringify(t)),u.push(o(e)+"="+o(t))}))}),i=u.join("&")}return i&&(t+=(-1===t.indexOf("?")?"?":"&")+i),t}},function(t,e,n){"use strict";t.exports=function(t,e){return e?t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):t}},function(t,e,n){"use strict";var r=n(0);t.exports=r.isStandardBrowserEnv()?{write:function(t,e,n,o,i,u){var a=[];a.push(t+"="+encodeURIComponent(e)),r.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),r.isString(o)&&a.push("path="+o),r.isString(i)&&a.push("domain="+i),!0===u&&a.push("secure"),document.cookie=a.join("; ")},read:function(t){var e=document.cookie.match(new RegExp("(^|;\\s*)("+t+")=([^;]*)"));return e?decodeURIComponent(e[3]):null},remove:function(t){this.write(t,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(t,e,n){"use strict";t.exports=function(t){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(t)}},function(t,e,n){"use strict";var r=n(0);t.exports=r.isStandardBrowserEnv()?function(){var t,e=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function o(t){var r=t;return e&&(n.setAttribute("href",r),r=n.href),n.setAttribute("href",r),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=o(window.location.href),function(e){var n=r.isString(e)?o(e):e;return n.protocol===t.protocol&&n.host===t.host}}():function(){return!0}},function(t,e,n){"use strict";var r=n(0);t.exports=function(t,e){r.forEach(t,function(n,r){r!==e&&r.toUpperCase()===e.toUpperCase()&&(t[e]=n,delete t[r])})}},function(t,e,n){"use strict";var r=n(0),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];t.exports=function(t){var e,n,i,u={};return t?(r.forEach(t.split("\n"),function(t){if(i=t.indexOf(":"),e=r.trim(t.substr(0,i)).toLowerCase(),n=r.trim(t.substr(i+1)),e){if(u[e]&&o.indexOf(e)>=0)return;u[e]="set-cookie"===e?(u[e]?u[e]:[]).concat([n]):u[e]?u[e]+", "+n:n}}),u):u}},function(t,e,n){"use strict";t.exports=function(t){return function(e){return t.apply(null,e)}}},function(t,e,n){t.exports={default:n(111),__esModule:!0}},function(t,e,n){t.exports={default:n(112),__esModule:!0}},function(t,e,n){"use strict";e.__esModule=!0;var r,o=n(108),i=(r=o)&&r.__esModule?r:{default:r};e.default=i.default||function(t){for(var e=1;ef;)if((a=c[f++])!=a)return!0}else for(;s>f;f++)if((t||f in c)&&c[f]===n)return t||f||0;return!t&&-1}}},function(t,e,n){var r=n(16),o=n(121),i=n(120),u=n(4),a=n(57),c=n(140),s={},f={};(e=t.exports=function(t,e,n,l,h){var p,d,v,g,y=h?function(){return t}:c(t),_=r(n,l,e?2:1),m=0;if("function"!=typeof y)throw TypeError(t+" is not iterable!");if(i(y)){for(p=a(t.length);p>m;m++)if((g=e?_(u(d=t[m])[0],d[1]):_(t[m]))===s||g===f)return g}else for(v=y.call(t);!(d=v.next()).done;)if((g=o(v,_,d.value,e))===s||g===f)return g}).BREAK=s,e.RETURN=f},function(t,e,n){t.exports=!n(5)&&!n(23)(function(){return 7!=Object.defineProperty(n(22)("div"),"a",{get:function(){return 7}}).a})},function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},function(t,e,n){var r=n(10),o=n(2)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},function(t,e,n){var r=n(4);t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(e){var i=t.return;throw void 0!==i&&r(i.call(t)),e}}},function(t,e,n){"use strict";var r=n(127),o=n(53),i=n(26),u={};n(7)(u,n(2)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(u,{next:o(1,n)}),i(t,e+" Iterator")}},function(t,e,n){var r=n(2)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],u=i[r]();u.next=function(){return{done:n=!0}},i[r]=function(){return u},t(i)}catch(t){}return n}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(1),o=n(56).set,i=r.MutationObserver||r.WebKitMutationObserver,u=r.process,a=r.Promise,c="process"==n(15)(u);t.exports=function(){var t,e,n,s=function(){var r,o;for(c&&(r=u.domain)&&r.exit();t;){o=t.fn,t=t.next;try{o()}catch(r){throw t?n():e=void 0,r}}e=void 0,r&&r.enter()};if(c)n=function(){u.nextTick(s)};else if(!i||r.navigator&&r.navigator.standalone)if(a&&a.resolve){var f=a.resolve(void 0);n=function(){f.then(s)}}else n=function(){o.call(r,s)};else{var l=!0,h=document.createTextNode("");new i(s).observe(h,{characterData:!0}),n=function(){h.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},function(t,e,n){"use strict";var r=n(50),o=n(129),i=n(132),u=n(58),a=n(48),c=Object.assign;t.exports=!c||n(23)(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=c({},t)[n]||Object.keys(c({},e)).join("")!=r})?function(t,e){for(var n=u(t),c=arguments.length,s=1,f=o.f,l=i.f;c>s;)for(var h,p=a(arguments[s++]),d=f?r(p).concat(f(p)):r(p),v=d.length,g=0;v>g;)l.call(p,h=d[g++])&&(n[h]=p[h]);return n}:c},function(t,e,n){var r=n(4),o=n(128),i=n(46),u=n(27)("IE_PROTO"),a=function(){},c=function(){var t,e=n(22)("iframe"),r=i.length;for(e.style.display="none",n(47).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" 46 | -------------------------------------------------------------------------------- /resources/js/components/FormField.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 22 | 95 | -------------------------------------------------------------------------------- /resources/js/components/IndexField.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 42 | -------------------------------------------------------------------------------- /resources/js/field.js: -------------------------------------------------------------------------------- 1 | Nova.booting((Vue, router) => { 2 | Vue.component('index-toggle', require('./components/IndexField')); 3 | Vue.component('detail-toggle', require('./components/DetailField')); 4 | Vue.component('form-toggle', require('./components/FormField')); 5 | }) 6 | -------------------------------------------------------------------------------- /resources/sass/field.scss: -------------------------------------------------------------------------------- 1 | // Nova Tool CSS 2 | .dot_off { 3 | height: 20px; 4 | width: 20px; 5 | background-color: #bbb; 6 | border-radius: 50%; 7 | display: inline-block; 8 | } 9 | .dot_on { 10 | height: 20px; 11 | width: 20px; 12 | background-color: #58AC04; 13 | border-radius: 50%; 14 | display: inline-block; 15 | } 16 | 17 | input.green { 18 | position: relative; 19 | appearance: none; outline: none; 20 | width: 50px; height: 30px; 21 | background-color: #ffffff; border: 1px solid #D9DADC; 22 | border-radius: 50px; box-shadow: inset -20px 0 0 0 #fff; 23 | transition-duration: 200ms; 24 | } 25 | input.green:after { 26 | content: ""; 27 | position: absolute; 28 | top: 1px; left: 1px; 29 | width: 26px; height: 26px; 30 | background-color: transparent; 31 | border-radius: 50%; box-shadow: 2px 4px 6px rgba(0,0,0,0.2); 32 | } 33 | input.green:checked { 34 | border-color: #4ED164; 35 | box-shadow: inset 20px 0 0 0 #4ED164; 36 | } 37 | input.green:checked:after { 38 | left: 20px; 39 | box-shadow: -2px 4px 3px rgba(0,0,0,0.05); 40 | } 41 | 42 | input.blue { 43 | position: relative; 44 | appearance: none; outline: none; 45 | width: 50px; height: 30px; 46 | background-color: #ffffff; border: 1px solid #D9DADC; 47 | border-radius: 50px; box-shadow: inset -20px 0 0 0 #fff; 48 | transition-duration: 200ms; 49 | } 50 | input.blue:after { 51 | content: ""; 52 | position: absolute; 53 | top: 1px; left: 1px; 54 | width: 26px; height: 26px; 55 | background-color: transparent; 56 | border-radius: 50%; box-shadow: 2px 4px 6px rgba(0,0,0,0.2); 57 | } 58 | input.blue:checked { 59 | border-color: #2C9FFF; 60 | box-shadow: inset 20px 0 0 0 #2C9FFF; 61 | } 62 | input.blue:checked:after { 63 | left: 20px; 64 | box-shadow: -2px 4px 3px rgba(0,0,0,0.05); 65 | } 66 | 67 | input.orange { 68 | position: relative; 69 | appearance: none; outline: none; 70 | width: 50px; height: 30px; 71 | background-color: #ffffff; border: 1px solid #D9DADC; 72 | border-radius: 50px; box-shadow: inset -20px 0 0 0 #fff; 73 | transition-duration: 200ms; 74 | } 75 | input.orange:after { 76 | content: ""; 77 | position: absolute; 78 | top: 1px; left: 1px; 79 | width: 26px; height: 26px; 80 | background-color: transparent; 81 | border-radius: 50%; box-shadow: 2px 4px 6px rgba(0,0,0,0.2); 82 | } 83 | input.orange:checked { 84 | border-color: #FF5B2E; 85 | box-shadow: inset 20px 0 0 0 #FF5B2E; 86 | } 87 | input.orange:checked:after { 88 | left: 20px; 89 | box-shadow: -2px 4px 3px rgba(0,0,0,0.05); 90 | } 91 | 92 | input.cyan { 93 | position: relative; 94 | appearance: none; outline: none; 95 | width: 50px; height: 30px; 96 | background-color: #ffffff; border: 1px solid #D9DADC; 97 | border-radius: 50px; box-shadow: inset -20px 0 0 0 #fff; 98 | transition-duration: 200ms; 99 | } 100 | input.cyan:after { 101 | content: ""; 102 | position: absolute; 103 | top: 1px; left: 1px; 104 | width: 26px; height: 26px; 105 | background-color: transparent; 106 | border-radius: 50%; box-shadow: 2px 4px 6px rgba(0,0,0,0.2); 107 | } 108 | input.cyan:checked { 109 | border-color: #52b7d7; 110 | box-shadow: inset 20px 0 0 0 #52b7d7; 111 | } 112 | input.cyan:checked:after { 113 | left: 20px; 114 | box-shadow: -2px 4px 3px rgba(0,0,0,0.05); 115 | } 116 | 117 | input.red { 118 | position: relative; 119 | appearance: none; outline: none; 120 | width: 50px; height: 30px; 121 | background-color: #ffffff; border: 1px solid #D9DADC; 122 | border-radius: 50px; box-shadow: inset -20px 0 0 0 #fff; 123 | transition-duration: 200ms; 124 | } 125 | input.red:after { 126 | content: ""; 127 | position: absolute; 128 | top: 1px; left: 1px; 129 | width: 26px; height: 26px; 130 | background-color: transparent; 131 | border-radius: 50%; box-shadow: 2px 4px 6px rgba(0,0,0,0.2); 132 | } 133 | input.red:checked { 134 | border-color: #CE4646; 135 | box-shadow: inset 20px 0 0 0 #CE4646; 136 | } 137 | input.red:checked:after { 138 | left: 20px; 139 | box-shadow: -2px 4px 3px rgba(0,0,0,0.05); 140 | } 141 | 142 | input.custom-color { 143 | position: relative; 144 | appearance: none; outline: none; 145 | width: 50px; height: 30px; 146 | background-color: #ffffff; border: 1px solid #D9DADC; 147 | border-radius: 50px; box-shadow: inset -20px 0 0 0 #fff; 148 | transition-duration: 200ms; 149 | } 150 | input.custom-color:after { 151 | content: ""; 152 | position: absolute; 153 | top: 1px; left: 1px; 154 | width: 26px; height: 26px; 155 | background-color: transparent; 156 | border-radius: 50%; box-shadow: 2px 4px 6px rgba(0,0,0,0.2); 157 | } 158 | input.custom-color:checked { 159 | box-shadow: inset 20px 0 0 0; 160 | } 161 | input.custom-color:checked:after { 162 | left: 20px; 163 | box-shadow: -2px 4px 3px rgba(0,0,0,0.05); 164 | } 165 | -------------------------------------------------------------------------------- /screenshots/colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/naifalshaye/toggle-switch/7835d92427815efa37297f53fd7151d9a8b12199/screenshots/colors.png -------------------------------------------------------------------------------- /screenshots/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/naifalshaye/toggle-switch/7835d92427815efa37297f53fd7151d9a8b12199/screenshots/image1.png -------------------------------------------------------------------------------- /screenshots/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/naifalshaye/toggle-switch/7835d92427815efa37297f53fd7151d9a8b12199/screenshots/image2.png -------------------------------------------------------------------------------- /screenshots/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/naifalshaye/toggle-switch/7835d92427815efa37297f53fd7151d9a8b12199/screenshots/image3.png -------------------------------------------------------------------------------- /screenshots/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/naifalshaye/toggle-switch/7835d92427815efa37297f53fd7151d9a8b12199/screenshots/image4.png -------------------------------------------------------------------------------- /src/FieldServiceProvider.php: -------------------------------------------------------------------------------- 1 | withMeta([ 19 | 'color' => $color 20 | ]); 21 | } 22 | 23 | public function onColor($on_color) 24 | { 25 | return $this->withMeta([ 26 | 'on_color' => $on_color 27 | ]); 28 | } 29 | 30 | public function offColor($off_color) 31 | { 32 | return $this->withMeta([ 33 | 'off_color' => $off_color 34 | ]); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /webpack.mix.js: -------------------------------------------------------------------------------- 1 | let mix = require('laravel-mix') 2 | 3 | mix.setPublicPath('./') 4 | 5 | mix.js('resources/js/field.js', 'dist/js') 6 | .sass('resources/sass/field.scss', 'dist/css') 7 | .webpackConfig({ 8 | resolve: { 9 | symlinks: false 10 | } 11 | }) 12 | --------------------------------------------------------------------------------