├── composer.json ├── dist └── static │ ├── css │ ├── app.css │ └── app.css.map │ └── js │ ├── app.js │ ├── app.js.map │ ├── manifest.js │ ├── manifest.js.map │ ├── vendor.js │ └── vendor.js.map ├── includes ├── class-wpok-rest-server.php └── views │ └── settings-page.php └── wp-optionskit.php /composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "wp-user-manager/wp-optionskit", 3 | "license": "GPL-3.0-or-later", 4 | "description": "A toolkit for developers to create administration options panels for WordPress powered by Vuejs", 5 | "homepage": "https://github.com/alessandrotesoro/wp-optionskit/", 6 | "authors": [{ 7 | "name": "WP User Manager", 8 | "homepage": "https://wpusermanager.com/" 9 | }], 10 | "keywords": [ 11 | "wordpress", 12 | "optionskit" 13 | ], 14 | "support": { 15 | "issues": "https://github.com/alessandrotesoro/wp-optionskit/issues/" 16 | }, 17 | "require": { 18 | "php": ">=5.3.2", 19 | "composer/installers": "~1.0" 20 | }, 21 | "autoload": { 22 | "classmap": ["wp-optionskit.php"] 23 | }, 24 | "require-dev": { 25 | "phpcompatibility/php-compatibility": "^9.3", 26 | "dealerdirect/phpcodesniffer-composer-installer": "^0.5.0" 27 | } 28 | } -------------------------------------------------------------------------------- /dist/static/css/app.css: -------------------------------------------------------------------------------- 1 | body.optionskit-panel-page #wpcontent{padding-left:0}body.optionskit-panel-page .wrap{margin:0}body.optionskit-panel-page .submit{margin-left:20px;display:inline-block}.optionskit-subnav{background:#edeff0;border-bottom:1px solid #e2e4e7}.optionskit-subnav ul{margin:0;padding:15px 20px}.optionskit-subnav ul li{display:inline-block;margin-right:0;margin-bottom:0}.optionskit-subnav ul li span{opacity:.5;display:inline-block;margin:0 10px}.optionskit-subnav ul li a{text-decoration:none}.optionskit-subnav ul li a.current{font-weight:700}#optionskit-topbar{padding:15px 20px;border-bottom:1px solid #e2e4e7;background:#fff}#optionskit-topbar h1{margin:0;padding:0;font-weight:500;display:inline-block}#optionskit-topbar h1+.hide-notice{display:none}#optionskit-topbar ul{display:inline-block;margin:0 0 0 20px}#optionskit-topbar ul li{display:inline-block;margin-bottom:0}#optionskit-topbar .save-area{float:right}#optionskit-topbar .save-area .submit{display:inline-block;margin:0;padding:0}#optionskit-topbar .vue-wp-notice{margin:20px 0 10px}#optionskit-navigation{margin:-2px 0 0}.optionskit-form .form-table th{padding-left:20px}.optionskit-form .form-table td{padding-right:20px}.optionskit-form .form-table .description{font-style:normal}#optionskit-navigation a.router-link-active{-webkit-box-shadow:none;box-shadow:none;border-bottom:4px solid #0085ba;color:#0085ba}.opk-spinner{float:none}.optionskit-form-wrapper{padding:0 0 0 20px}.optionskit-form-wrapper .description{font-style:normal}#optionskit-panel .opk-submit{margin-left:20px}.opk-form table input{padding:5px}.opk-form table .vue-wp-notice{display:inline-block}.opk-form table .vue-wp-notice p{margin:.5em 0;padding:2px}.opk-form table .formit-radio-wrap span{display:block;margin-bottom:5px}.opk-form table .formit-checkbox-wrapper~p{display:inline-block;position:relative;top:1px}.opk-form table .opk-upload-field-wrapper a.button span{margin-top:5px;margin-right:8px}.optionskit-subnav a.router-link-exact-active{font-weight:700;text-decoration:underline}.optionskit-subnav a.router-link-exact-active:focus{color:#0073aa;-webkit-box-shadow:none;box-shadow:none}.vue-wp-notice{background:#fff;border-left:4px solid #fff;-webkit-box-shadow:0 1px 1px 0 rgba(0,0,0,.1);box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 15px 2px 0;padding:1px 12px}.vue-wp-notice p{margin:.5em 0;padding:2px}.vue-wp-notice--large{padding:10px 20px}.vue-wp-notice.notice-success{border-left-color:#46b450}.vue-wp-notice.notice-warning{border-left-color:#ffb900}.vue-wp-notice.notice-error{border-left-color:#dc3232}.vue-wp-notice.notice-error a{text-decoration:underline}.vue-wp-notice.notice-info{border-left-color:#00a0d2}.vue-wp-notice .notice-dismiss{position:absolute;top:0;right:1px;border:none;margin:0;padding:9px;background:none;color:#72777c;cursor:pointer}.vue-wp-notice .notice-dismiss:before{background:0 0;color:#72777c;content:"\F153";display:block;font:400 16px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.vue-wp-notice .notice-dismiss:focus{outline:none;-webkit-box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}.vue-wp-notice .notice-dismiss:active:before,.vue-wp-notice .notice-dismiss:focus:before,.vue-wp-notice .notice-dismiss:hover:before{color:#c00}.vue-wp-notice.is-dismissible{padding-right:38px;position:relative}.vue-wp-notice.is-alt{-webkit-box-shadow:none;box-shadow:none}.vue-wp-notice.is-alt.notice-success{background-color:#ecf7ed}.vue-wp-notice.is-alt.notice-warning{background-color:#fff8e5}.vue-wp-notice.is-alt.notice-error{background-color:#fbeaea}.vue-wp-notice.is-alt.notice-info{background-color:#e5f5fa}fieldset[disabled] .multiselect{pointer-events:none}.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block}.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:"";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid transparent;border-top-color:#41b883;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent}.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.multiselect__loading-enter-active,.multiselect__loading-leave-active{-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;opacity:1}.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0}.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;-ms-touch-action:manipulation;touch-action:manipulation}.multiselect{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e}.multiselect *{-webkit-box-sizing:border-box;box-sizing:border-box}.multiselect:focus{outline:none}.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6}.multiselect--active{z-index:50}.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0}.multiselect--active .multiselect__select{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0}.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;-webkit-transition:border .1s ease;transition:border .1s ease;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:8px;vertical-align:top}.multiselect__input:-ms-input-placeholder{color:#35495e}.multiselect__input::-webkit-input-placeholder{color:#35495e}.multiselect__input::-moz-placeholder{color:#35495e}.multiselect__input::-ms-input-placeholder{color:#35495e}.multiselect__input::placeholder{color:#35495e}.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto}.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf}.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none}.multiselect__single{padding-left:5px;margin-bottom:8px}.multiselect__tags-wrap{display:inline}.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px}.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis}.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;-webkit-transition:all .2s ease;transition:all .2s ease;border-radius:5px}.multiselect__tag-icon:after{content:"\D7";color:#266d4d;font-size:14px}.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e}.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff}.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8}.multiselect__current,.multiselect__select{line-height:16px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer}.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease,-webkit-transform .2s ease}.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 0;content:""}.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px}.multiselect--active .multiselect__placeholder{display:none}.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch}.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top}.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8}.multiselect__content::webkit-scrollbar{display:none}.multiselect__element{display:block}.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap}.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px}.multiselect__option--highlight{background:#41b883;outline:none;color:#fff}.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff}.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700}.multiselect__option--selected:after{content:attr(data-selected);color:silver}.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6}.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none}.multiselect__option--group{background:#ededed;color:#35495e}.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff}.multiselect__option--group.multiselect__option--highlight:after{background:#35495e}.multiselect__option--disabled.multiselect__option--highlight{background:#dedede}.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff}.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff}.multiselect-enter-active,.multiselect-leave-active{-webkit-transition:all .15s ease;transition:all .15s ease}.multiselect-enter,.multiselect-leave-active{opacity:0}.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top}[dir=rtl] .multiselect{text-align:right}[dir=rtl] .multiselect__select{right:auto;left:1px}[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px}[dir=rtl] .multiselect__content{text-align:right}[dir=rtl] .multiselect__option:after{right:auto;left:0}[dir=rtl] .multiselect__clear{right:auto;left:12px}[dir=rtl] .multiselect__spinner{right:auto;left:1px}@-webkit-keyframes spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(2turn);transform:rotate(2turn)}}@keyframes spinning{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(2turn);transform:rotate(2turn)}}.opk-form table .multiselect__tags{color:#555;border-color:#ccc;background:#f7f7f7;-webkit-box-shadow:0 1px 0 #ccc;box-shadow:0 1px 0 #ccc;border-radius:3px}.opk-form table .multiselect__tags:hover{border-color:#999}.opk-form table .multiselect__input{border:none;background:transparent;-webkit-box-shadow:none;box-shadow:none;padding:0}.opk-form table .opk-multiselect-field-wrapper{display:block;width:25em}.opk-form table .multiselect__content-wrapper{-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2);border:1px solid #ddd;border-radius:0;margin-top:5px}.opk-form table .multiselect__option--highlight,.opk-form table .multiselect__option--highlight:after{background:#0073aa;color:#fff}.opk-form table .multiselect__tags-wrap .multiselect__tag{background:#0085ba;border-radius:3px;margin-bottom:3px;padding:5px 30px 5px 10px}.opk-form table .multiselect__tags-wrap .multiselect__tag i{border-radius:0}.opk-form table .multiselect__tags-wrap .multiselect__tag i:hover{background:#dd3e3e}.opk-form table .multiselect__spinner{background:#f7f7f7}.opk-form table .multiselect__spinner:after,.opk-form table .multiselect__spinner:before{border-color:#0085ba transparent transparent}.opk-form table .multiselect__single{background:transparent} 2 | /*# sourceMappingURL=app.css.map */ -------------------------------------------------------------------------------- /dist/static/css/app.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["app.css"],"names":[],"mappings":"AACA,sCACE,cACF,CACA,iCACE,QACF,CACA,mCACE,gBAAiB,CACjB,oBACF,CACA,mBACE,kBAAmB,CACnB,+BACF,CACA,sBACI,QAAS,CACT,iBACJ,CACA,yBACM,oBAAqB,CACrB,cAAe,CACf,eACN,CACA,8BACQ,UAAY,CACZ,oBAAqB,CACrB,aACR,CACA,2BACQ,oBACR,CACA,mCACU,eACV,CACA,mBACE,iBAAkB,CAClB,+BAAgC,CAChC,eACF,CACA,sBACI,QAAS,CACT,SAAU,CACV,eAAgB,CAChB,oBACJ,CACA,mCACM,YACN,CACA,sBACI,oBAAqB,CACrB,iBACJ,CACA,yBACM,oBAAqB,CACrB,eACN,CACA,8BACI,WACJ,CACA,sCACM,oBAAqB,CACrB,QAAS,CACT,SACN,CACA,kCACI,kBACJ,CACA,uBACE,eACF,CACA,gCACE,iBACF,CACA,gCACE,kBACF,CACA,0CACE,iBACF,CACA,4CACE,uBAAwB,CAChB,eAAgB,CACxB,+BAAgC,CAChC,aACF,CACA,aACE,UACF,CACA,yBACE,kBACF,CACA,sCACI,iBACJ,CACA,8BACE,gBACF,CACA,sBACE,WACF,CACA,+BACE,oBACF,CACA,iCACI,aAAe,CACf,WACJ,CACA,wCACE,aAAc,CACd,iBACF,CACA,2CACE,oBAAqB,CACrB,iBAAkB,CAClB,OACF,CACA,wDACE,cAAe,CACf,gBACF,CAEA,8CACE,eAAiB,CACjB,yBACF,CACA,oDACI,aAAc,CACd,uBAAwB,CAChB,eACZ,CAEA,eACE,eAAgB,CAChB,0BAA2B,CAC3B,6CAAkD,CAC1C,qCAA0C,CAClD,qBAAsB,CACtB,gBACF,CACA,iBACI,aAAe,CACf,WACJ,CACA,sBACI,iBACJ,CACA,8BACI,yBACJ,CACA,8BACI,yBACJ,CACA,4BACI,yBACJ,CACA,8BACM,yBACN,CACA,2BACI,yBACJ,CACA,+BACI,iBAAkB,CAClB,KAAM,CACN,SAAU,CACV,WAAY,CACZ,QAAS,CACT,WAAY,CACZ,eAAgB,CAChB,aAAc,CACd,cACJ,CACA,sCACM,cAAe,CACf,aAAc,CACd,eAAgB,CAChB,aAAc,CACd,4BAA6B,CAC7B,UAAW,CACX,WAAY,CACZ,iBAAkB,CAClB,UAAW,CACX,kCAAmC,CACnC,iCACN,CACA,qCACM,YAAa,CACb,oEAA0E,CAClE,4DACd,CACA,qIACM,UACN,CACA,8BACI,kBAAmB,CACnB,iBACJ,CACA,sBACI,uBAAwB,CAChB,eACZ,CACA,qCACM,wBACN,CACA,qCACM,wBACN,CACA,mCACM,wBACN,CACA,kCACM,wBACN,CAEA,gCAAgC,mBAChC,CACA,sBAAsB,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,eAAe,CAAC,aACjG,CACA,yDAAyD,iBAAiB,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,UAAU,CAAC,WAAW,CAAC,kBAAkB,CAA8B,4BAAwB,CAAxB,wBAAwB,CAAC,wCAAwC,CAAC,gCACrQ,CACA,6BAA6B,4DAA4D,CAAC,oDAAoD,CAAC,0CAA0C,CAAC,kCAC1L,CACA,4BAA4B,4DAA4D,CAAC,oDAAoD,CAAC,0CAA0C,CAAC,kCACzL,CACA,sEAAsE,0CAA0C,CAAC,kCAAkC,CAAC,SACpJ,CACA,+DAA+D,SAC/D,CACA,sDAAsD,mBAAmB,CAAC,cAAc,CAAC,6BAA6B,CAAC,yBACvH,CACA,aAAa,8BAA8B,CAAC,sBAAsB,CAAC,aAAa,CAAC,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,eAAe,CAAC,aAC9I,CACA,eAAe,6BAA6B,CAAC,qBAC7C,CACA,mBAAmB,YACnB,CACA,uBAAuB,kBAAkB,CAAC,mBAAmB,CAAC,UAC9D,CACA,qBAAqB,UACrB,CACA,uMAAuM,2BAA2B,CAAC,4BACnO,CACA,0CAA0C,gCAAgC,CAAC,wBAC3E,CACA,qLAAqL,wBAAwB,CAAC,yBAC9M,CACA,yCAAyC,iBAAiB,CAAC,oBAAoB,CAAC,eAAe,CAAC,gBAAgB,CAAC,WAAW,CAAC,iBAAiB,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,kBAChU,CACA,0CAA0C,aAC1C,CACA,+CAA+C,aAC/C,CACA,sCAAsC,aACtC,CACA,2CAA2C,aAC3C,CACA,iCAAiC,aACjC,CACA,6EAA6E,UAC7E,CACA,qDAAqD,oBACrD,CACA,qDAAqD,oBAAoB,CAAC,YAC1E,CACA,qBAAqB,gBAAgB,CAAC,iBACtC,CACA,wBAAwB,cACxB,CACA,mBAAmB,eAAe,CAAC,aAAa,CAAC,sBAAsB,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,eAAe,CAAC,cACnI,CACA,kBAAkB,iBAAiB,CAAC,oBAAoB,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,CAAC,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,eAAe,CAAC,cAAc,CAAC,sBACvO,CACA,uBAAuB,cAAc,CAAC,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,iBAAiB,CAAC,UAAU,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,+BAA+B,CAAC,uBAAuB,CAAC,iBACvO,CACA,6BAA6B,aAAa,CAAC,aAAa,CAAC,cACzD,CACA,0DAA0D,kBAC1D,CACA,sEAAsE,UACtE,CACA,sBAAsB,eAAe,CAAC,eAAe,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,wBACnH,CACA,2CAA2C,gBAAgB,CAAC,6BAA6B,CAAC,qBAAqB,CAAC,aAAa,CAAC,QAAQ,CAAC,oBAAoB,CAAC,cAC5J,CACA,qBAAqB,iBAAiB,CAAC,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC,6CAA6C,CAAC,qCAAqC,CAAC,6BAA6B,CAAC,wDACpO,CACA,4BAA4B,iBAAiB,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,cAAc,CAA8D,yCAAsB,CAAtB,kBAAsB,CAAtB,sBAAsB,CAAC,UAC5K,CACA,0BAA0B,aAAa,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,eAChF,CACA,+CAA+C,YAC/C,CACA,8BAA8B,iBAAiB,CAAC,aAAa,CAAC,eAAe,CAAC,UAAU,CAAC,gBAAgB,CAAC,aAAa,CAA0B,wBAAe,CAAf,eAAe,CAAC,6BAA6B,CAAC,8BAA8B,CAAC,UAAU,CAAC,gCACzO,CACA,sBAAsB,eAAe,CAAC,oBAAoB,CAAC,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC,kBAC7F,CACA,kDAAkD,WAAW,CAAC,2BAA2B,CAAC,4BAA4B,CAAC,0BAA0B,CAAC,2BAA2B,CAAC,kBAAkB,CAAC,4BACjM,CACA,wCAAwC,YACxC,CACA,sBAAsB,aACtB,CACA,qBAAqB,aAAa,CAAC,YAAY,CAAC,eAAe,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,cAAc,CAAC,kBACjL,CACA,2BAA2B,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,cACjH,CACA,gCAAgC,kBAAkB,CAAC,YAAY,CAAC,UAChE,CACA,sCAAsC,yBAAyB,CAAC,kBAAkB,CAAC,UACnF,CACA,+BAA+B,kBAAkB,CAAC,aAAa,CAAC,eAChE,CACA,qCAAqC,2BAA2B,CAAC,YACjE,CACA,8DAA8D,kBAAkB,CAAC,UACjF,CACA,oEAAoE,kBAAkB,CAAC,2BAA2B,CAAC,UACnH,CACA,yFAAyF,kBAAkB,CAAC,aAC5G,CACA,+BAA+B,4BAA4B,CAAC,uBAAuB,CAAC,WAAW,CAAC,mBAChG,CACA,4BAA4B,kBAAkB,CAAC,aAC/C,CACA,2DAA2D,kBAAkB,CAAC,UAC9E,CACA,iEAAiE,kBACjE,CACA,8DAA8D,kBAC9D,CACA,oEAAoE,kBAAkB,CAAC,UACvF,CACA,0EAA0E,kBAAkB,CAAC,2BAA2B,CAAC,UACzH,CACA,oDAAoD,gCAAgC,CAAC,wBACrF,CACA,6CAA6C,SAC7C,CACA,qBAAqB,iBAAiB,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,kBAC7E,CACA,uBAAuB,gBACvB,CACA,+BAA+B,UAAU,CAAC,QAC1C,CACA,6BAA6B,sBAC7B,CACA,gCAAgC,gBAChC,CACA,qCAAqC,UAAU,CAAC,MAChD,CACA,8BAA8B,UAAU,CAAC,SACzC,CACA,gCAAgC,UAAU,CAAC,QAC3C,CACA,4BACA,GAAG,2BAA2B,CAAC,mBAC/B,CACA,GAAG,+BAA+B,CAAC,uBACnC,CACA,CACA,oBACA,GAAG,2BAA2B,CAAC,mBAC/B,CACA,GAAG,+BAA+B,CAAC,uBACnC,CACA,CACA,mCACE,UAAW,CACX,iBAAkB,CAClB,kBAAmB,CACnB,+BAAgC,CACxB,uBAAwB,CAChC,iBACF,CACA,yCACI,iBACJ,CACA,oCACE,WAAY,CACZ,sBAAuB,CACvB,uBAAwB,CAChB,eAAgB,CACxB,SACF,CACA,+CACE,aAAc,CACd,UACF,CACA,8CACE,2CAAgD,CACxC,mCAAwC,CAChD,qBAAsB,CACtB,eAAgB,CAChB,cACF,CAKA,sGACI,kBAAmB,CACnB,UACJ,CACA,0DACE,kBAAmB,CACnB,iBAAkB,CAClB,iBAAkB,CAClB,yBACF,CACA,4DACI,eACJ,CACA,kEACM,kBACN,CACA,sCACE,kBACF,CACA,yFACI,4CACJ,CACA,qCACE,sBACF","file":"app.css","sourcesContent":["\nbody.optionskit-panel-page #wpcontent {\n padding-left: 0;\n}\nbody.optionskit-panel-page .wrap {\n margin: 0;\n}\nbody.optionskit-panel-page .submit {\n margin-left: 20px;\n display: inline-block;\n}\n.optionskit-subnav {\n background: #edeff0;\n border-bottom: 1px solid #e2e4e7;\n}\n.optionskit-subnav ul {\n margin: 0;\n padding: 15px 20px;\n}\n.optionskit-subnav ul li {\n display: inline-block;\n margin-right: 0;\n margin-bottom: 0;\n}\n.optionskit-subnav ul li span {\n opacity: 0.5;\n display: inline-block;\n margin: 0 10px;\n}\n.optionskit-subnav ul li a {\n text-decoration: none;\n}\n.optionskit-subnav ul li a.current {\n font-weight: bold;\n}\n#optionskit-topbar {\n padding: 15px 20px;\n border-bottom: 1px solid #e2e4e7;\n background: #fff;\n}\n#optionskit-topbar h1 {\n margin: 0;\n padding: 0;\n font-weight: 500;\n display: inline-block;\n}\n#optionskit-topbar h1 + .hide-notice {\n display: none;\n}\n#optionskit-topbar ul {\n display: inline-block;\n margin: 0 0 0 20px;\n}\n#optionskit-topbar ul li {\n display: inline-block;\n margin-bottom: 0;\n}\n#optionskit-topbar .save-area {\n float: right;\n}\n#optionskit-topbar .save-area .submit {\n display: inline-block;\n margin: 0;\n padding: 0;\n}\n#optionskit-topbar .vue-wp-notice {\n margin: 20px 0 10px;\n}\n#optionskit-navigation {\n margin: -2px 0 0 0;\n}\n.optionskit-form .form-table th {\n padding-left: 20px;\n}\n.optionskit-form .form-table td {\n padding-right: 20px;\n}\n.optionskit-form .form-table .description {\n font-style: normal;\n}\n#optionskit-navigation a.router-link-active {\n -webkit-box-shadow: none;\n box-shadow: none;\n border-bottom: 4px solid #0085ba;\n color: #0085ba;\n}\n.opk-spinner {\n float: none;\n}\n.optionskit-form-wrapper {\n padding: 0 0 0 20px;\n}\n.optionskit-form-wrapper .description {\n font-style: normal;\n}\n#optionskit-panel .opk-submit {\n margin-left: 20px;\n}\n.opk-form table input {\n padding: 5px;\n}\n.opk-form table .vue-wp-notice {\n display: inline-block;\n}\n.opk-form table .vue-wp-notice p {\n margin: 0.5em 0;\n padding: 2px;\n}\n.opk-form table .formit-radio-wrap span {\n display: block;\n margin-bottom: 5px;\n}\n.opk-form table .formit-checkbox-wrapper ~ p {\n display: inline-block;\n position: relative;\n top: 1px;\n}\n.opk-form table .opk-upload-field-wrapper a.button span {\n margin-top: 5px;\n margin-right: 8px;\n}\n\n.optionskit-subnav a.router-link-exact-active {\n font-weight: bold;\n text-decoration: underline;\n}\n.optionskit-subnav a.router-link-exact-active:focus {\n color: #0073aa;\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n\n.vue-wp-notice {\n background: #fff;\n border-left: 4px solid #fff;\n -webkit-box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\n box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.1);\n margin: 5px 15px 2px 0;\n padding: 1px 12px;\n}\n.vue-wp-notice p {\n margin: 0.5em 0;\n padding: 2px;\n}\n.vue-wp-notice--large {\n padding: 10px 20px;\n}\n.vue-wp-notice.notice-success {\n border-left-color: #46b450;\n}\n.vue-wp-notice.notice-warning {\n border-left-color: #ffb900;\n}\n.vue-wp-notice.notice-error {\n border-left-color: #dc3232;\n}\n.vue-wp-notice.notice-error a {\n text-decoration: underline;\n}\n.vue-wp-notice.notice-info {\n border-left-color: #00a0d2;\n}\n.vue-wp-notice .notice-dismiss {\n position: absolute;\n top: 0;\n right: 1px;\n border: none;\n margin: 0;\n padding: 9px;\n background: none;\n color: #72777c;\n cursor: pointer;\n}\n.vue-wp-notice .notice-dismiss:before {\n background: 0 0;\n color: #72777c;\n content: \"\\F153\";\n display: block;\n font: 400 16px/20px dashicons;\n speak: none;\n height: 20px;\n text-align: center;\n width: 20px;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n.vue-wp-notice .notice-dismiss:focus {\n outline: none;\n -webkit-box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);\n box-shadow: 0 0 0 1px #5b9dd9, 0 0 2px 1px rgba(30, 140, 190, 0.8);\n}\n.vue-wp-notice .notice-dismiss:hover:before, .vue-wp-notice .notice-dismiss:active:before, .vue-wp-notice .notice-dismiss:focus:before {\n color: #c00;\n}\n.vue-wp-notice.is-dismissible {\n padding-right: 38px;\n position: relative;\n}\n.vue-wp-notice.is-alt {\n -webkit-box-shadow: none;\n box-shadow: none;\n}\n.vue-wp-notice.is-alt.notice-success {\n background-color: #ecf7ed;\n}\n.vue-wp-notice.is-alt.notice-warning {\n background-color: #fff8e5;\n}\n.vue-wp-notice.is-alt.notice-error {\n background-color: #fbeaea;\n}\n.vue-wp-notice.is-alt.notice-info {\n background-color: #e5f5fa;\n}\n\nfieldset[disabled] .multiselect{pointer-events:none\n}\n.multiselect__spinner{position:absolute;right:1px;top:1px;width:48px;height:35px;background:#fff;display:block\n}\n.multiselect__spinner:after,.multiselect__spinner:before{position:absolute;content:\"\";top:50%;left:50%;margin:-8px 0 0 -8px;width:16px;height:16px;border-radius:100%;border:2px solid transparent;border-top-color:#41b883;-webkit-box-shadow:0 0 0 1px transparent;box-shadow:0 0 0 1px transparent\n}\n.multiselect__spinner:before{-webkit-animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);animation:spinning 2.4s cubic-bezier(.41,.26,.2,.62);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite\n}\n.multiselect__spinner:after{-webkit-animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);animation:spinning 2.4s cubic-bezier(.51,.09,.21,.8);-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite\n}\n.multiselect__loading-enter-active,.multiselect__loading-leave-active{-webkit-transition:opacity .4s ease-in-out;transition:opacity .4s ease-in-out;opacity:1\n}\n.multiselect__loading-enter,.multiselect__loading-leave-active{opacity:0\n}\n.multiselect,.multiselect__input,.multiselect__single{font-family:inherit;font-size:16px;-ms-touch-action:manipulation;touch-action:manipulation\n}\n.multiselect{-webkit-box-sizing:content-box;box-sizing:content-box;display:block;position:relative;width:100%;min-height:40px;text-align:left;color:#35495e\n}\n.multiselect *{-webkit-box-sizing:border-box;box-sizing:border-box\n}\n.multiselect:focus{outline:none\n}\n.multiselect--disabled{background:#ededed;pointer-events:none;opacity:.6\n}\n.multiselect--active{z-index:50\n}\n.multiselect--active:not(.multiselect--above) .multiselect__current,.multiselect--active:not(.multiselect--above) .multiselect__input,.multiselect--active:not(.multiselect--above) .multiselect__tags{border-bottom-left-radius:0;border-bottom-right-radius:0\n}\n.multiselect--active .multiselect__select{-webkit-transform:rotate(180deg);transform:rotate(180deg)\n}\n.multiselect--above.multiselect--active .multiselect__current,.multiselect--above.multiselect--active .multiselect__input,.multiselect--above.multiselect--active .multiselect__tags{border-top-left-radius:0;border-top-right-radius:0\n}\n.multiselect__input,.multiselect__single{position:relative;display:inline-block;min-height:20px;line-height:20px;border:none;border-radius:5px;background:#fff;padding:0 0 0 5px;width:100%;-webkit-transition:border .1s ease;transition:border .1s ease;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:8px;vertical-align:top\n}\n.multiselect__input:-ms-input-placeholder{color:#35495e\n}\n.multiselect__input::-webkit-input-placeholder{color:#35495e\n}\n.multiselect__input::-moz-placeholder{color:#35495e\n}\n.multiselect__input::-ms-input-placeholder{color:#35495e\n}\n.multiselect__input::placeholder{color:#35495e\n}\n.multiselect__tag~.multiselect__input,.multiselect__tag~.multiselect__single{width:auto\n}\n.multiselect__input:hover,.multiselect__single:hover{border-color:#cfcfcf\n}\n.multiselect__input:focus,.multiselect__single:focus{border-color:#a8a8a8;outline:none\n}\n.multiselect__single{padding-left:5px;margin-bottom:8px\n}\n.multiselect__tags-wrap{display:inline\n}\n.multiselect__tags{min-height:40px;display:block;padding:8px 40px 0 8px;border-radius:5px;border:1px solid #e8e8e8;background:#fff;font-size:14px\n}\n.multiselect__tag{position:relative;display:inline-block;padding:4px 26px 4px 10px;border-radius:5px;margin-right:10px;color:#fff;line-height:1;background:#41b883;margin-bottom:5px;white-space:nowrap;overflow:hidden;max-width:100%;text-overflow:ellipsis\n}\n.multiselect__tag-icon{cursor:pointer;margin-left:7px;position:absolute;right:0;top:0;bottom:0;font-weight:700;font-style:normal;width:22px;text-align:center;line-height:22px;-webkit-transition:all .2s ease;transition:all .2s ease;border-radius:5px\n}\n.multiselect__tag-icon:after{content:\"\\D7\";color:#266d4d;font-size:14px\n}\n.multiselect__tag-icon:focus,.multiselect__tag-icon:hover{background:#369a6e\n}\n.multiselect__tag-icon:focus:after,.multiselect__tag-icon:hover:after{color:#fff\n}\n.multiselect__current{min-height:40px;overflow:hidden;padding:8px 30px 0 12px;white-space:nowrap;border-radius:5px;border:1px solid #e8e8e8\n}\n.multiselect__current,.multiselect__select{line-height:16px;-webkit-box-sizing:border-box;box-sizing:border-box;display:block;margin:0;text-decoration:none;cursor:pointer\n}\n.multiselect__select{position:absolute;width:40px;height:38px;right:1px;top:1px;padding:4px 8px;text-align:center;-webkit-transition:-webkit-transform .2s ease;transition:-webkit-transform .2s ease;transition:transform .2s ease;transition:transform .2s ease, -webkit-transform .2s ease\n}\n.multiselect__select:before{position:relative;right:0;top:65%;color:#999;margin-top:4px;border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 0;content:\"\"\n}\n.multiselect__placeholder{color:#adadad;display:inline-block;margin-bottom:10px;padding-top:2px\n}\n.multiselect--active .multiselect__placeholder{display:none\n}\n.multiselect__content-wrapper{position:absolute;display:block;background:#fff;width:100%;max-height:240px;overflow:auto;border:1px solid #e8e8e8;border-top:none;border-bottom-left-radius:5px;border-bottom-right-radius:5px;z-index:50;-webkit-overflow-scrolling:touch\n}\n.multiselect__content{list-style:none;display:inline-block;padding:0;margin:0;min-width:100%;vertical-align:top\n}\n.multiselect--above .multiselect__content-wrapper{bottom:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;border-top-left-radius:5px;border-top-right-radius:5px;border-bottom:none;border-top:1px solid #e8e8e8\n}\n.multiselect__content::webkit-scrollbar{display:none\n}\n.multiselect__element{display:block\n}\n.multiselect__option{display:block;padding:12px;min-height:40px;line-height:16px;text-decoration:none;text-transform:none;vertical-align:middle;position:relative;cursor:pointer;white-space:nowrap\n}\n.multiselect__option:after{top:0;right:0;position:absolute;line-height:40px;padding-right:12px;padding-left:20px;font-size:13px\n}\n.multiselect__option--highlight{background:#41b883;outline:none;color:#fff\n}\n.multiselect__option--highlight:after{content:attr(data-select);background:#41b883;color:#fff\n}\n.multiselect__option--selected{background:#f3f3f3;color:#35495e;font-weight:700\n}\n.multiselect__option--selected:after{content:attr(data-selected);color:silver\n}\n.multiselect__option--selected.multiselect__option--highlight{background:#ff6a6a;color:#fff\n}\n.multiselect__option--selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff\n}\n.multiselect--disabled .multiselect__current,.multiselect--disabled .multiselect__select{background:#ededed;color:#a6a6a6\n}\n.multiselect__option--disabled{background:#ededed!important;color:#a6a6a6!important;cursor:text;pointer-events:none\n}\n.multiselect__option--group{background:#ededed;color:#35495e\n}\n.multiselect__option--group.multiselect__option--highlight{background:#35495e;color:#fff\n}\n.multiselect__option--group.multiselect__option--highlight:after{background:#35495e\n}\n.multiselect__option--disabled.multiselect__option--highlight{background:#dedede\n}\n.multiselect__option--group-selected.multiselect__option--highlight{background:#ff6a6a;color:#fff\n}\n.multiselect__option--group-selected.multiselect__option--highlight:after{background:#ff6a6a;content:attr(data-deselect);color:#fff\n}\n.multiselect-enter-active,.multiselect-leave-active{-webkit-transition:all .15s ease;transition:all .15s ease\n}\n.multiselect-enter,.multiselect-leave-active{opacity:0\n}\n.multiselect__strong{margin-bottom:8px;line-height:20px;display:inline-block;vertical-align:top\n}\n[dir=rtl] .multiselect{text-align:right\n}\n[dir=rtl] .multiselect__select{right:auto;left:1px\n}\n[dir=rtl] .multiselect__tags{padding:8px 8px 0 40px\n}\n[dir=rtl] .multiselect__content{text-align:right\n}\n[dir=rtl] .multiselect__option:after{right:auto;left:0\n}\n[dir=rtl] .multiselect__clear{right:auto;left:12px\n}\n[dir=rtl] .multiselect__spinner{right:auto;left:1px\n}\n@-webkit-keyframes spinning{\n0%{-webkit-transform:rotate(0);transform:rotate(0)\n}\nto{-webkit-transform:rotate(2turn);transform:rotate(2turn)\n}\n}\n@keyframes spinning{\n0%{-webkit-transform:rotate(0);transform:rotate(0)\n}\nto{-webkit-transform:rotate(2turn);transform:rotate(2turn)\n}\n}\n.opk-form table .multiselect__tags {\n color: #555;\n border-color: #ccc;\n background: #f7f7f7;\n -webkit-box-shadow: 0 1px 0 #ccc;\n box-shadow: 0 1px 0 #ccc;\n border-radius: 3px;\n}\n.opk-form table .multiselect__tags:hover {\n border-color: #999;\n}\n.opk-form table .multiselect__input {\n border: none;\n background: transparent;\n -webkit-box-shadow: none;\n box-shadow: none;\n padding: 0;\n}\n.opk-form table .opk-multiselect-field-wrapper {\n display: block;\n width: 25em;\n}\n.opk-form table .multiselect__content-wrapper {\n -webkit-box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);\n border: 1px solid #ddd;\n border-radius: 0;\n margin-top: 5px;\n}\n.opk-form table .multiselect__option--highlight {\n background: #0073aa;\n color: #fff;\n}\n.opk-form table .multiselect__option--highlight:after {\n background: #0073aa;\n color: #fff;\n}\n.opk-form table .multiselect__tags-wrap .multiselect__tag {\n background: #0085ba;\n border-radius: 3px;\n margin-bottom: 3px;\n padding: 5px 30px 5px 10px;\n}\n.opk-form table .multiselect__tags-wrap .multiselect__tag i {\n border-radius: 0;\n}\n.opk-form table .multiselect__tags-wrap .multiselect__tag i:hover {\n background: #dd3e3e;\n}\n.opk-form table .multiselect__spinner {\n background: #f7f7f7;\n}\n.opk-form table .multiselect__spinner:before, .opk-form table .multiselect__spinner:after {\n border-color: #0085ba transparent transparent;\n}\n.opk-form table .multiselect__single {\n background: transparent;\n}\n"]} -------------------------------------------------------------------------------- /dist/static/js/app.js: -------------------------------------------------------------------------------- 1 | wpJsonpFlightsWidget([1],{"+drO":function(e,t,n){"use strict";var s={name:"formit-multicheckbox",mixins:[n("JHA3").a],data:function(){return{checkedItems:[]}},created:function(){this.checkedItems=this.currentValue},methods:{isSelected:function(e){return this.currentValue.includes(e)},onChange:function(e){!0===e.target.checked?this.checkedItems.push(e.target.value):this.checkedItems.splice(this.checkedItems.indexOf(e.target.value),1),this.$emit("input",this.checkedItems)}}},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"formit-multicheckbox-wrap"},e._l(e.selectOptions,function(t,s){return n("span",{key:s},[n("label",[n("input",e._b({ref:"input",refInFor:!0,attrs:{type:"checkbox",name:e.name},domProps:{value:s,checked:e.isSelected(s)},on:{change:e.onChange}},"input",e.attributes,!1)),e._v("\n "+e._s(t))]),n("br")])}),0)},staticRenderFns:[]},r=n("VU/8")(s,i,!1,null,null,null);t.a=r.exports},"1FAl":function(e,t,n){"use strict";var s={name:"formit-checkbox",mixins:[n("JHA3").a]},i={render:function(){var e=this.$createElement,t=this._self._c||e;return t("span",{staticClass:"formit-checkbox-wrapper"},[t("label",{attrs:{for:this.name}},[t("input",this._b({ref:"input",attrs:{type:"checkbox",name:this.name},domProps:{checked:this.currentValue},on:{change:this.handleChange}},"input",this.attributes,!1))])])},staticRenderFns:[]},r=n("VU/8")(s,i,!1,null,null,null);t.a=r.exports},"4wDe":function(e,t,n){"use strict";var s={name:"wp-notice",props:{type:String,alternative:Boolean,dismissible:Boolean},computed:{classes:function(){return["vue-wp-notice","notice-"+this.type,this.alternative?"is-alt":"",this.dismissible?"is-dismissible":""]}},data:function(){return{closed:!1}},methods:{close:function(e){this.closed=!0,this.$emit("on-close",e)}}},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return e.closed?e._e():n("div",{class:e.classes},[n("p",[e._t("default")],2),e._v(" "),e.dismissible?n("button",{staticClass:"notice-dismiss",attrs:{type:"button"},on:{click:e.close}},[n("span",{staticClass:"screen-reader-text"},[e._v("Dismiss this notice.")])]):e._e()])},staticRenderFns:[]};var r=n("VU/8")(s,i,!1,function(e){n("D0GN")},null,null);t.a=r.exports},D0GN:function(e,t){},NHnr:function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var s=n("7+uW"),i=n("fZjL"),r=n.n(i),a=n("jnm5"),l={name:"App",data:function(){return{pageTitle:this.$optionsKitSettings.page_title,imgURL:this.$optionsKitSettings.logo,actionButtons:this.$optionsKitSettings.buttons,saveLabel:this.$optionsKitSettings.labels.save,successMessage:this.$optionsKitSettings.labels.success,errorMessage:this.$optionsKitSettings.labels.error,errorLabels:String,items:[],mainItems:[],isMainTab:Boolean,success:!1,model:this.$optionsKitSettings.options,form:new a.a}},created:function(){var e=this;this.detectMainTab(),this.$router.options.routes.forEach(function(t){t.name&&e.items.push({name:t.name,path:t.path,children:t.children})})},watch:{$route:function(){this.detectMainTab(),this.success=!1}},methods:{detectMainTab:function(){void 0===this.$router.currentRoute.meta.id?this.isMainTab=!1:this.isMainTab=!0},submit:function(){var e=this;this.success=!1,this.model.verifynonce=this.$optionsKitSettings.verifynonce,this.form.submit("post",this.$optionsKitSettings.rest_url+"records/",this.model,this.$optionsKitSettings.nonce).then(function(t){e.success=!0,e.model=t,document.body.scrollTop=document.documentElement.scrollTop=0}).catch(function(t){var n=e.form.errorsData,s="";r()(n).map(function(e,t){n[e].label&&(s+='"'+n[e].label+'", ')}),e.errorLabels=s.substring(0,s.length-2),document.body.scrollTop=document.documentElement.scrollTop=0})}}},o={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("section",{staticClass:"optionskit-panel-container wrap",attrs:{id:"optionskit-panel"}},[n("form",{staticClass:"opk-form",on:{submit:function(t){return t.preventDefault(),e.submit.apply(null,arguments)}}},[n("section",{attrs:{id:"optionskit-topbar"}},[n("h1",[e.imgURL?n("img",{attrs:{src:e.imgURL}}):e._e(),e._v(e._s(e.pageTitle))]),e._v(" "),e.actionButtons.length>0?n("ul",{staticClass:"title-links"},e._l(e.actionButtons,function(t){return n("li",{key:t.url},[n("a",{staticClass:"page-title-action",attrs:{href:t.url}},[e._v(e._s(t.title))])])}),0):e._e(),e._v(" "),n("div",{staticClass:"save-area"},[n("div",{directives:[{name:"show",rawName:"v-show",value:e.form.isPending,expression:"form.isPending"}],staticClass:"spinner is-active opk-spinner"}),e._v(" "),n("input",{staticClass:"button button-primary",attrs:{type:"submit",disabled:e.form.isPending},domProps:{value:e.saveLabel}})]),e._v(" "),!0===e.success?n("wp-notice",{attrs:{type:"success",dismissible:"",alternative:""}},[n("strong",[e._v(e._s(e.successMessage))])]):e._e(),e._v(" "),e.form.errors.any()?n("wp-notice",{attrs:{type:"error",dismissible:"",alternative:""}},[n("strong",[e._v(e._s(e.errorMessage)+" "+e._s(e.errorLabels))])]):e._e()],1),e._v(" "),n("div",{staticClass:"optionskit-navigation-wrapper"},[n("div",{staticClass:"wp-filter",attrs:{id:"optionskit-navigation"}},[n("ul",{staticClass:"filter-links"},e._l(e.items,function(t){return n("li",{key:t.path},[t.name?n("router-link",{attrs:{to:t.path}},[e._v(e._s(t.name))]):e._e()],1)}),0)])]),e._v(" "),n("router-view",{attrs:{model:e.model,form:e.form}}),e._v(" "),e.isMainTab?n("router-view",{attrs:{name:"fields",model:e.model,form:e.form}}):e._e(),e._v(" "),n("button",{staticClass:"button button-primary opk-submit",attrs:{type:"submit",disabled:e.form.isPending}},[e._v(e._s(e.saveLabel))]),e._v(" "),n("div",{directives:[{name:"show",rawName:"v-show",value:e.form.isPending,expression:"form.isPending"}],staticClass:"spinner is-active opk-spinner"})],1)])},staticRenderFns:[]};var c=n("VU/8")(l,o,!1,function(e){n("iIHG")},null,null).exports,u=n("/ocq"),d={name:"OptionsKitSubSections",props:{sections:[Object,Array,Boolean],model:{},form:{},parentName:String,parentPath:String}},p={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"optionskit-sub-sections-wrapper"},[e.sections.length>0?n("div",{staticClass:"optionskit-subnav"},[n("ul",[n("li",[n("router-link",{attrs:{to:e.parentPath}},[e._v(e._s(e.parentName))]),n("span",[e._v("|")])],1),e._v(" "),e._l(e.sections,function(t){return n("li",{key:t.path},[t.name?n("router-link",{attrs:{to:t.path}},[e._v(e._s(t.name))]):e._e(),n("span",[e._v("|")])],1)})],2)]):e._e(),e._v(" "),n("router-view",{attrs:{model:e.model,form:e.form}})],1)},staticRenderFns:[]};var h=n("VU/8")(d,p,!1,function(e){n("ViC2")},null,null).exports,m={name:"fields-wrapper",props:{fields:{},model:{},form:{}},methods:{maybeShowField:function(e){if("hidden"===e.type)return!1;if(!e.toggle)return!0;var t=e.toggle;t instanceof Array||(t=[t]);for(var n={"!=":function(e,t){return e!=t},"!==":function(e,t){return e!==t},"==":function(e,t){return e==t},"===":function(e,t){return e===t},">=":function(e,t){return e>=t},">":function(e,t){return e>t},"<=":function(e,t){return e<=t},in:function(e,t){return!e.includes(t)},"not in":function(e,t){return e.includes(t)}},s=0;s"})},ViC2:function(e,t){},WBSg:function(e,t,n){"use strict";var s={name:"formit-text",mixins:[n("JHA3").a]},i={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("input",e._b({ref:"input",attrs:{type:"text",name:e.name},domProps:{value:e.currentValue},on:{input:e.handleInput,change:e.handleChange,focus:e.handleFocus,blur:e.handleBlur}},"input",e.attributes,!1))},staticRenderFns:[]},r=n("VU/8")(s,i,!1,null,null,null);t.a=r.exports},c5a0:function(e,t){},hWF4:function(e,t,n){"use strict";var s={name:"formit-textarea",mixins:[n("JHA3").a]},i={render:function(){var e=this,t=e.$createElement;return(e._self._c||t)("textarea",e._b({ref:"input",attrs:{type:"text",name:e.name,cols:"50",rows:"5"},domProps:{value:e.currentValue},on:{input:e.handleInput,change:e.handleChange,focus:e.handleFocus,blur:e.handleBlur}},"textarea",e.attributes,!1))},staticRenderFns:[]},r=n("VU/8")(s,i,!1,null,null,null);t.a=r.exports},iIHG:function(e,t){},qpkK:function(e,t,n){"use strict";var s={name:"formit-radio",mixins:[n("JHA3").a],data:function(){return{checkedItems:[]}},created:function(){this.checkedItems=this.currentValue},methods:{isSelected:function(e){return this.currentValue.includes(e)}}},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("div",{staticClass:"formit-radio-wrap"},e._l(e.selectOptions,function(t,s){return n("span",{key:s},[n("label",[n("input",e._b({ref:"input",refInFor:!0,attrs:{type:"radio",name:e.name},domProps:{value:s,checked:e.isSelected(s)},on:{input:e.handleInput,change:e.handleChange,focus:e.handleFocus,blur:e.handleBlur}},"input",e.attributes,!1)),e._v("\n "+e._s(t))]),n("br")])}),0)},staticRenderFns:[]},r=n("VU/8")(s,i,!1,null,null,null);t.a=r.exports},ssIX:function(e,t,n){"use strict";var s={name:"formit-select",mixins:[n("JHA3").a]},i={render:function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("select",e._b({ref:"input",attrs:{name:e.name},domProps:{value:e.currentValue},on:{input:e.handleInput,change:e.handleChange,focus:e.handleFocus,blur:e.handleBlur}},"select",e.attributes,!1),e._l(e.selectOptions,function(t,s){return n("option",{key:s,domProps:{value:s}},[e._v("\n "+e._s(t)+"\n ")])}),0)},staticRenderFns:[]},r=n("VU/8")(s,i,!1,null,null,null);t.a=r.exports}},["NHnr"]); 2 | //# sourceMappingURL=app.js.map -------------------------------------------------------------------------------- /dist/static/js/app.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack:///node_modules/vue-formit-fields/src/components/multicheckbox/multicheckbox.vue","webpack:///./node_modules/vue-formit-fields/src/components/multicheckbox/multicheckbox.vue?13c9","webpack:///./node_modules/vue-formit-fields/src/components/multicheckbox/multicheckbox.vue","webpack:///node_modules/vue-formit-fields/src/components/checkbox/checkbox.vue","webpack:///./node_modules/vue-formit-fields/src/components/checkbox/checkbox.vue?d85f","webpack:///./node_modules/vue-formit-fields/src/components/checkbox/checkbox.vue","webpack:///node_modules/vue-wp-notice/src/components/wp-notice/wp-notice.vue","webpack:///./node_modules/vue-wp-notice/src/components/wp-notice/wp-notice.vue?cbb7","webpack:///./node_modules/vue-wp-notice/src/components/wp-notice/wp-notice.vue","webpack:///src/App.vue","webpack:///./src/App.vue?716b","webpack:///./src/App.vue","webpack:///src/components/subsections.vue","webpack:///./src/components/subsections.vue?a538","webpack:///./src/components/subsections.vue","webpack:///src/components/fields-wrapper.vue","webpack:///./src/components/fields-wrapper.vue?0483","webpack:///./src/components/fields-wrapper.vue","webpack:///./src/router/index.js","webpack:///src/components/fields/upload-field/upload-field.vue","webpack:///./src/components/fields/upload-field/upload-field.vue?616c","webpack:///./src/components/fields/upload-field/index.js","webpack:///./src/components/fields/upload-field/upload-field.vue","webpack:///src/components/fields/multiselect/multiselect.vue","webpack:///./src/components/fields/multiselect/multiselect.vue?f9a8","webpack:///./src/components/fields/multiselect/multiselect.vue","webpack:///./src/components/fields/multiselect/index.js","webpack:///src/components/fields/anchor/anchor.vue","webpack:///./src/components/fields/anchor/anchor.vue?e9c1","webpack:///./src/components/fields/anchor/index.js","webpack:///./src/components/fields/anchor/anchor.vue","webpack:///src/components/fields/html/html.vue","webpack:///./src/components/fields/html/html.vue?2480","webpack:///./src/components/fields/html/index.js","webpack:///./src/components/fields/html/html.vue","webpack:///src/components/fields/hidden/hidden.vue","webpack:///./src/components/fields/hidden/hidden.vue?1a77","webpack:///./src/components/fields/hidden/index.js","webpack:///./src/components/fields/hidden/hidden.vue","webpack:///./src/main.js","webpack:///node_modules/vue-formit-fields/src/components/text-field/text-field.vue","webpack:///./node_modules/vue-formit-fields/src/components/text-field/text-field.vue?d913","webpack:///./node_modules/vue-formit-fields/src/components/text-field/text-field.vue","webpack:///node_modules/vue-formit-fields/src/components/textarea/textarea.vue","webpack:///./node_modules/vue-formit-fields/src/components/textarea/textarea.vue?868f","webpack:///./node_modules/vue-formit-fields/src/components/textarea/textarea.vue","webpack:///node_modules/vue-formit-fields/src/components/radio/radio.vue","webpack:///./node_modules/vue-formit-fields/src/components/radio/radio.vue?7030","webpack:///./node_modules/vue-formit-fields/src/components/radio/radio.vue","webpack:///node_modules/vue-formit-fields/src/components/select/select.vue","webpack:///./node_modules/vue-formit-fields/src/components/select/select.vue?e5a3","webpack:///./node_modules/vue-formit-fields/src/components/select/select.vue"],"names":["multicheckbox","name","mixins","data","checkedItems","created","this","currentValue","methods","isSelected","option","includes","onChange","event","target","checked","push","value","splice","indexOf","$emit","multicheckbox_multicheckbox","render","_vm","_h","$createElement","_c","_self","staticClass","_l","key","_b","ref","refInFor","attrs","type","domProps","on","change","attributes","_v","_s","staticRenderFns","Component","__webpack_require__","normalizeComponent","__webpack_exports__","checkbox_checkbox","components_checkbox_checkbox","for","handleChange","wp_notice","props","String","alternative","Boolean","dismissible","computed","classes","closed","close","e","wp_notice_wp_notice","_e","class","_t","click","ssrContext","App","pageTitle","$optionsKitSettings","page_title","imgURL","logo","actionButtons","buttons","saveLabel","labels","successMessage","errorMessage","errorLabels","items","mainItems","isMainTab","success","model","options","form","main","_this","detectMainTab","$router","routes","forEach","route","path","children","watch","$route","currentRoute","meta","id","submit","_this2","verifynonce","rest_url","nonce","then","document","body","scrollTop","documentElement","catch","error","errordata","errorsData","keys_default","map","objectKey","index","label","substring","length","selectortype_template_index_0_src_App","$event","preventDefault","apply","arguments","src","link","url","href","title","directives","rawName","expression","disabled","isPending","errors","any","item","to","src_App","subsections","sections","Object","Array","parentName","parentPath","components_subsections","src_components_subsections","subsections_normalizeComponent","fields_wrapper","fields","maybeShowField","field","toggle","toggleData","operators","!=","a","b","!==","==","===",">=",">","<=","in","not in","i","toggleItem","operator","hasOwnProperty","getFieldComponentName","components_fields_wrapper","has-error","has","scope","tag","callback","$$v","$set","innerHTML","desc","get","src_components_fields_wrapper","fields_wrapper_normalizeComponent","Vue","use","Router","OptionsTabs","redirect","optionsKitSettings","tabs","availableSections","childRoutes","component","FieldsWrapper","settings","components","default","Subsections","router","upload_field","src_main","selectFile","uploader","modalWindow","wp","media","library","button","text","multiple","openMedia","self","attachment","state","first","toJSON","setFile","open","upload_field_upload_field","input","handleInput","focus","handleFocus","blur","handleBlur","UploadField","upload_field_normalizeComponent","multiselect","Multiselect","selected","isMultiple","selectLabel","getLabel","placeholder","SelectedLabel","deselectLabel","mounted","retrievedValue","fieldOptions","entry","result","filter","obj","which","triggerChange","savedValue","element","multiselect_multiselect","track-by","MultiselectField","multiselect_normalizeComponent","anchor_anchor","selectedClass","selectedTarget","fields_anchor_anchor","Anchor","anchor_normalizeComponent","html","html_html","Html","html_normalizeComponent","hidden_hidden","fields_hidden_hidden","Hidden","hidden_normalizeComponent","VueFormitFields","WPNotice","AnchorField","HtmlField","HiddenField","config","productionTip","prototype","el","template","text_field","text_field_text_field","textarea_textarea","components_textarea_textarea","cols","rows","radio_radio","components_radio_radio","select_select","components_select_select"],"mappings":"kEAqBAA,GACAC,KAAA,uBACAC,kBAAA,GACAC,KAHA,WAIA,OACAC,kBAGAC,QARA,WASAC,KAAAF,aAAAE,KAAAC,cAEAC,SACAC,WADA,SACAC,GACA,OAAAJ,KAAAC,aAAAI,SAAAD,IAEAE,SAJA,SAIAC,IACA,IAAAA,EAAAC,OAAAC,QACAT,KAAAF,aAAAY,KAAAH,EAAAC,OAAAG,OAEAX,KAAAF,aAAAc,OAAAZ,KAAAF,aAAAe,QAAAN,EAAAC,OAAAG,OAAA,GAEAX,KAAAc,MAAA,QAAAd,KAAAF,iBCvCeiB,GADEC,OAFjB,WAA0B,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,6BAAwCL,EAAAM,GAAAN,EAAA,uBAAAb,EAAAoB,GAAiD,OAAAJ,EAAA,QAAkBI,QAAQJ,EAAA,SAAAA,EAAA,QAAAH,EAAAQ,IAAiCC,IAAA,QAAAC,UAAA,EAAAC,OAAiCC,KAAA,WAAAlC,KAAAsB,EAAAtB,MAAkCmC,UAAWnB,MAAAa,EAAAf,QAAAQ,EAAAd,WAAAqB,IAA0CO,IAAKC,OAAAf,EAAAX,WAAuB,QAAAW,EAAAgB,YAAA,IAAAhB,EAAAiB,GAAA,aAAAjB,EAAAkB,GAAA/B,MAAAgB,EAAA,UAAiF,IAEldgB,oBCYjBC,EAdyBC,EAAQ,OAcjCC,CACE7C,EACAqB,GATF,EAEA,KAEA,KAEA,MAUeyB,EAAA,EAAAH,EAAiB,iDCLhCI,GACA9C,KAAA,kBACAC,kBAAA,ICjBe8C,GADE1B,OAFjB,WAA0B,IAAaE,EAAblB,KAAamB,eAA0BC,EAAvCpB,KAAuCqB,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,QAAkBE,YAAA,4BAAsCF,EAAA,SAAcQ,OAAOe,IAA5I3C,KAA4IL,QAAgByB,EAAA,QAA5JpB,KAA4JyB,IAAqBC,IAAA,QAAAE,OAAmBC,KAAA,WAAAlC,KAApMK,KAAoML,MAAkCmC,UAAWrB,QAAjPT,KAAiPC,cAA2B8B,IAAKC,OAAjRhC,KAAiR4C,eAA2B,QAA5S5C,KAA4SiC,YAAA,SAErTG,oBCYjBC,EAdyBC,EAAQ,OAcjCC,CACEE,EACAC,GATF,EAEA,KAEA,KAEA,MAUeF,EAAA,EAAAH,EAAiB,6CCsFhC,IAAAQ,GACAlD,KAAA,YACAmD,OACAjB,KAAAkB,OACAC,YAAAC,QACAC,YAAAD,SAEAE,UACAC,QADA,WAEA,OACA,gBACA,UAAApD,KAAA6B,KACA7B,KAAAgD,YAAA,YACAhD,KAAAkD,YAAA,uBAIArD,KAjBA,WAkBA,OACAwD,QAAA,IAGAnD,SACAoD,MADA,SACAC,GACAvD,KAAAqD,QAAA,EACArD,KAAAc,MAAA,WAAAyC,MCnIeC,GADExC,OAFjB,WAA0B,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAD,EAAAoC,OAAsPpC,EAAAwC,KAAtPrC,EAAA,OAA+BsC,MAAAzC,EAAAmC,UAAkBhC,EAAA,KAAAH,EAAA0C,GAAA,eAAA1C,EAAAiB,GAAA,KAAAjB,EAAA,YAAAG,EAAA,UAA2EE,YAAA,iBAAAM,OAAoCC,KAAA,UAAgBE,IAAK6B,MAAA3C,EAAAqC,SAAmBlC,EAAA,QAAaE,YAAA,uBAAiCL,EAAAiB,GAAA,4BAAAjB,EAAAwC,QAE9TrB,oBCCjB,IAcAC,EAdyBC,EAAQ,OAcjCC,CACEM,EACAW,GATF,EAVA,SAAAK,GACEvB,EAAQ,SAaV,KAEA,MAUeE,EAAA,EAAAH,EAAiB,kKC6BhCyB,GACAnE,KAAA,MACAE,KAFA,WAGA,OACAkE,UAAA/D,KAAAgE,oBAAAC,WACAC,OAAAlE,KAAAgE,oBAAAG,KACAC,cAAApE,KAAAgE,oBAAAK,QACAC,UAAAtE,KAAAgE,oBAAAO,OAAA,KACAC,eAAAxE,KAAAgE,oBAAAO,OAAA,QACAE,aAAAzE,KAAAgE,oBAAAO,OAAA,MACAG,YAAA3B,OACA4B,SACAC,aACAC,UAAA5B,QACA6B,SAAA,EACAC,MAAA/E,KAAAgE,oBAAAgB,QACAC,KAAA,IAAAC,EAAA,IAGAnF,QAnBA,WAmBA,IAAAoF,EAAAnF,KAIAA,KAAAoF,gBAIApF,KAAAqF,QAAAL,QAAAM,OAAAC,QAAA,SAAAC,GACAA,EAAA7F,MACAwF,EAAAR,MAAAjE,MACAf,KAAA6F,EAAA7F,KACA8F,KAAAD,EAAAC,KACAC,SAAAF,EAAAE,cAKAC,OACAC,OADA,WAEA5F,KAAAoF,gBACApF,KAAA8E,SAAA,IAGA5E,SAKAkF,cALA,gBAMA,IAAApF,KAAAqF,QAAAQ,aAAAC,KAAAC,GACA/F,KAAA6E,WAAA,EAEA7E,KAAA6E,WAAA,GAMAmB,OAfA,WAeA,IAAAC,EAAAjG,KACAA,KAAA8E,SAAA,EAGA9E,KAAA+E,MAAAmB,YAAAlG,KAAAgE,oBAAAkC,YAEAlG,KAAAiF,KAAAe,OACA,OACAhG,KAAAgE,oBAAAmC,SAAA,WACAnG,KAAA+E,MACA/E,KAAAgE,oBAAAoC,OAEAC,KAAA,SAAAxG,GACAoG,EAAAnB,SAAA,EACAmB,EAAAlB,MAAAlF,EAEAyG,SAAAC,KAAAC,UAAAF,SAAAG,gBAAAD,UAAA,IACAE,MAAA,SAAAC,GAIA,IAAAC,EAAAX,EAAAhB,KAAA4B,WACAtC,EAAA,GACIuC,IAAJF,GAAAG,IAAA,SAAAC,EAAAC,GACAL,EAAAI,GAAAE,QACA3C,GAAA,IAAAqC,EAAAI,GAAAE,MAAA,SAGAjB,EAAAvB,YAAAH,EAAA4C,UAAA,EAAA5C,EAAA6C,OAAA,GAEAd,SAAAC,KAAAC,UAAAF,SAAAG,gBAAAD,UAAA,OC5Iea,GADErG,OAFjB,WAA0B,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,WAAqBE,YAAA,kCAAAM,OAAqDmE,GAAA,sBAAyB3E,EAAA,QAAaE,YAAA,WAAAS,IAA2BiE,OAAA,SAAAsB,GAAkD,OAAxBA,EAAAC,iBAAwBtG,EAAA+E,OAAAwB,MAAA,KAAAC,eAA2CrG,EAAA,WAAgBQ,OAAOmE,GAAA,uBAA0B3E,EAAA,MAAAH,EAAA,OAAAG,EAAA,OAAkCQ,OAAO8F,IAAAzG,EAAAiD,UAAkBjD,EAAAwC,KAAAxC,EAAAiB,GAAAjB,EAAAkB,GAAAlB,EAAA8C,cAAA9C,EAAAiB,GAAA,KAAAjB,EAAAmD,cAAAgD,OAAA,EAAAhG,EAAA,MAA+FE,YAAA,eAA0BL,EAAAM,GAAAN,EAAA,uBAAA0G,GAA2C,OAAAvG,EAAA,MAAgBI,IAAAmG,EAAAC,MAAaxG,EAAA,KAAUE,YAAA,oBAAAM,OAAuCiG,KAAAF,EAAAC,OAAiB3G,EAAAiB,GAAAjB,EAAAkB,GAAAwF,EAAAG,cAAiC,GAAA7G,EAAAwC,KAAAxC,EAAAiB,GAAA,KAAAd,EAAA,OAAoCE,YAAA,cAAwBF,EAAA,OAAY2G,aAAapI,KAAA,OAAAqI,QAAA,SAAArH,MAAAM,EAAAgE,KAAA,UAAAgD,WAAA,mBAAoF3G,YAAA,kCAA8CL,EAAAiB,GAAA,KAAAd,EAAA,SAA0BE,YAAA,wBAAAM,OAA2CC,KAAA,SAAAqG,SAAAjH,EAAAgE,KAAAkD,WAA8CrG,UAAWnB,MAAAM,EAAAqD,eAAuBrD,EAAAiB,GAAA,UAAAjB,EAAA6D,QAAA1D,EAAA,aAAuDQ,OAAOC,KAAA,UAAAqB,YAAA,GAAAF,YAAA,MAAoD5B,EAAA,UAAAH,EAAAiB,GAAAjB,EAAAkB,GAAAlB,EAAAuD,qBAAAvD,EAAAwC,KAAAxC,EAAAiB,GAAA,KAAAjB,EAAAgE,KAAAmD,OAAAC,MAAAjH,EAAA,aAAmHQ,OAAOC,KAAA,QAAAqB,YAAA,GAAAF,YAAA,MAAkD5B,EAAA,UAAAH,EAAAiB,GAAAjB,EAAAkB,GAAAlB,EAAAwD,cAAA,IAAAxD,EAAAkB,GAAAlB,EAAAyD,kBAAAzD,EAAAwC,MAAA,GAAAxC,EAAAiB,GAAA,KAAAd,EAAA,OAAmHE,YAAA,kCAA4CF,EAAA,OAAYE,YAAA,YAAAM,OAA+BmE,GAAA,2BAA8B3E,EAAA,MAAWE,YAAA,gBAA2BL,EAAAM,GAAAN,EAAA,eAAAqH,GAAmC,OAAAlH,EAAA,MAAgBI,IAAA8G,EAAA7C,OAAc6C,EAAA,KAAAlH,EAAA,eAAgCQ,OAAO2G,GAAAD,EAAA7C,QAAgBxE,EAAAiB,GAAAjB,EAAAkB,GAAAmG,EAAA3I,SAAAsB,EAAAwC,MAAA,KAA2C,OAAAxC,EAAAiB,GAAA,KAAAd,EAAA,eAAuCQ,OAAOmD,MAAA9D,EAAA8D,MAAAE,KAAAhE,EAAAgE,QAAmChE,EAAAiB,GAAA,KAAAjB,EAAA,UAAAG,EAAA,eAAgDQ,OAAOjC,KAAA,SAAAoF,MAAA9D,EAAA8D,MAAAE,KAAAhE,EAAAgE,QAAmDhE,EAAAwC,KAAAxC,EAAAiB,GAAA,KAAAd,EAAA,UAAoCE,YAAA,mCAAAM,OAAsDC,KAAA,SAAAqG,SAAAjH,EAAAgE,KAAAkD,aAA+ClH,EAAAiB,GAAAjB,EAAAkB,GAAAlB,EAAAqD,cAAArD,EAAAiB,GAAA,KAAAd,EAAA,OAAwD2G,aAAapI,KAAA,OAAAqI,QAAA,SAAArH,MAAAM,EAAAgE,KAAA,UAAAgD,WAAA,mBAAoF3G,YAAA,mCAA8C,MAEtwEc,oBCCjB,IAuBeoG,EAvBUlG,EAAQ,OAcjCC,CACEuB,EACAuD,GATF,EAVA,SAAAxD,GACEvB,EAAQ,SAaV,KAEA,MAUgC,oBCThCmG,GACA9I,KAAA,wBACAmD,OAIA4F,UAAAC,OAAAC,MAAA3F,SAIA8B,SAIAE,QAIA4D,WAAA9F,OACA+F,WAAA/F,SCjCegG,GADE/H,OAFP,WAAgB,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,oCAA8CL,EAAAyH,SAAAtB,OAAA,EAAAhG,EAAA,OAAsCE,YAAA,sBAAgCF,EAAA,MAAAA,EAAA,MAAAA,EAAA,eAAsCQ,OAAO2G,GAAAtH,EAAA6H,cAAqB7H,EAAAiB,GAAAjB,EAAAkB,GAAAlB,EAAA4H,eAAAzH,EAAA,QAAAH,EAAAiB,GAAA,WAAAjB,EAAAiB,GAAA,KAAAjB,EAAAM,GAAAN,EAAA,kBAAAqH,GAAiH,OAAAlH,EAAA,MAAgBI,IAAA8G,EAAA7C,OAAc6C,EAAA,KAAAlH,EAAA,eAAgCQ,OAAO2G,GAAAD,EAAA7C,QAAgBxE,EAAAiB,GAAAjB,EAAAkB,GAAAmG,EAAA3I,SAAAsB,EAAAwC,KAAArC,EAAA,QAAAH,EAAAiB,GAAA,cAAoE,KAAAjB,EAAAwC,KAAAxC,EAAAiB,GAAA,KAAAd,EAAA,eAA+CQ,OAAOmD,MAAA9D,EAAA8D,MAAAE,KAAAhE,EAAAgE,SAAmC,IAEnmB7C,oBCChC,IAuBe4G,EAvBU1G,EAAQ,OAcjB2G,CACdR,EACAM,GAT6B,EAV/B,SAAoBlF,GAClBvB,EAAQ,SAaS,KAEU,MAUG,QCPhC4G,GACAvJ,KAAA,iBACAmD,OAIAqG,UAIApE,SAIAE,SAEA/E,SACAkJ,eADA,SACAC,GACA,cAAAA,EAAAxH,KACA,SAGA,IAAAwH,EAAAC,OACA,SAGA,IAAAC,EAAAF,EAAAC,OAEAC,aAAAX,QACAW,OAiBA,IAdA,IAEAC,GACAC,KAAA,SAAAC,EAAAC,GAAA,OAAAD,GAAAC,GACAC,MAAA,SAAAF,EAAAC,GAAA,OAAAD,IAAAC,GACAE,KAAA,SAAAH,EAAAC,GAAA,OAAAD,GAAAC,GACAG,MAAA,SAAAJ,EAAAC,GAAA,OAAAD,IAAAC,GACAI,KAAA,SAAAL,EAAAC,GAAA,OAAAD,GAAAC,GACAK,IAAA,SAAAN,EAAAC,GAAA,OAAAD,EAAAC,GACAM,KAAA,SAAAP,EAAAC,GAAA,OAAAD,GAAAC,GACAO,GAAA,SAAAR,EAAAC,GAAA,OAAAD,EAAArJ,SAAAsJ,IACAQ,SAAA,SAAAT,EAAAC,GAAA,OAAAD,EAAArJ,SAAAsJ,KAGAS,EAAA,EAAAA,EAAAb,EAAAnC,OAAAgD,IAAA,CACA,IAAAC,EAAAd,EAAAa,GACAE,EAAA,KAKA,GAJAD,EAAAE,eAAA,cACAD,EAAAD,EAAAC,UAGAd,EAAAc,GAAAtK,KAAA+E,MAAAsF,EAAA7I,KAAA6I,EAAA1J,OACA,SAIA,OA1BA,GAgCAyC,QAhDA,SAgDAvB,GACA,OACA,YACA,QAAAA,EAAA,oBAMA2I,sBAzDA,SAyDA3I,GACA,gBAAAA,KC1Fe4I,GADEzJ,OAFP,WAAgB,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,4BAAsCF,EAAA,SAAcE,YAAA,cAAyBL,EAAAM,GAAAN,EAAA,gBAAAoI,GAAqC,OAAAjI,EAAA,MAAgB2G,aAAapI,KAAA,OAAAqI,QAAA,SAAArH,MAAAM,EAAAmI,eAAAC,GAAApB,WAAA,0BAAkGzG,IAAA6H,EAAAtD,GAAArC,OAAsBgH,YAAAzJ,EAAAgE,KAAAmD,OAAAuC,IAAAtB,EAAAtD,OAA8C3E,EAAA,MAAWQ,OAAOgJ,MAAA,SAAexJ,EAAA,SAAcQ,OAAOe,IAAA0G,EAAAtD,MAAgB9E,EAAAiB,GAAAjB,EAAAkB,GAAAkH,EAAA1J,WAAAsB,EAAAiB,GAAA,KAAAd,EAAA,MAAAA,EAAAH,EAAAuJ,sBAAAnB,EAAAxH,OAAgGgJ,IAAA,YAAAnH,MAAAzC,EAAAmC,QAAAiG,EAAAxH,MAAAD,OAAqDyH,SAActE,OAAQpE,MAAAM,EAAA8D,MAAAsE,EAAAtD,IAAA+E,SAAA,SAAAC,GAAqD9J,EAAA+J,KAAA/J,EAAA8D,MAAAsE,EAAAtD,GAAAgF,IAAmC9C,WAAA,qBAA+BhH,EAAAiB,GAAA,KAAAmH,EAAA,KAAAjI,EAAA,KAAmCE,YAAA,cAAAQ,UAAoCmJ,UAAAhK,EAAAkB,GAAAkH,EAAA6B,SAAgCjK,EAAAwC,KAAAxC,EAAAiB,GAAA,KAAAd,EAAA,aAAuC2G,aAAapI,KAAA,OAAAqI,QAAA,SAAArH,MAAAM,EAAAgE,KAAAmD,OAAAuC,IAAAtB,EAAAtD,IAAAkC,WAAA,8BAA0GrG,OAASC,KAAA,QAAAmB,YAAA,MAAiC5B,EAAA,UAAAH,EAAAiB,GAAAjB,EAAAkB,GAAAlB,EAAAgE,KAAAmD,OAAA+C,IAAA9B,EAAAtD,WAAA,OAAuE,MAE7lC3D,oBCqBjBgJ,EAvBU9I,EAAQ,OAcjB+I,CACdnC,EACAuB,GAT6B,EAEb,KAEC,KAEU,MAUG,QClBhCa,IAAIC,IAAIC,KAER,IAAMC,KAINA,EAAY/K,MAEV+E,KAAM,IACNiG,SAAU5E,IAAY6E,mBAAmBC,MAAM,KAIjD9E,IAAY6E,mBAAmBC,MAAMrG,QAAQ,SAAU/D,GAEtD,IAAIiE,EAAO,IAAMjE,EAGbqK,EAAoBF,mBAAmBjD,SAASlH,GAChDsK,UAE+B,IAAvBD,GACX/E,IAAY+E,GAAmBtG,QAAQ,SAAU/D,GAChDsK,EAAYpL,MACX+E,KAAMA,EAAO,IAAMjE,EACnB7B,KAAMkM,EAAkBrK,GACxBuK,UAAWC,EACXlJ,OACCqG,OAAQwC,mBAAmBM,SAASzK,QAOxCiK,EAAY/K,MAEV+E,KAAMA,EACN9F,KAAMgM,mBAAmBC,KAAKpK,GAC9B0K,YACCC,QAASC,EACTjD,OAAQ6C,GAETlG,MACCC,GAAIN,EAAK0B,UAAU,IAEpBrE,OACCqJ,SACCzD,SAAUoD,EACVhD,WAAYrD,EACZoD,WAAY8C,mBAAmBC,KAAKpK,IAErC2H,QACCA,OAAQwC,mBAAmBM,SAAUxG,EAAK0B,UAAU,MAGtDzB,SAAUoG,MAKE,IAAAO,EAAA,IAAIb,KAClBlG,OAAQmG,4BC9CTa,GACA3M,KAAA,cACAC,QAAA2M,EAAA,GACA1M,KAHA,WAIA,OACA2M,WAAAxM,KAAAgE,oBAAAO,OAAA,OACAkI,cAGA1M,QATA,WAUA,IAAA2M,EAAAC,GAAAC,OACA9E,MAAA9H,KAAAwM,WACAK,SACAhL,KAAA,SAEAiL,QACAC,KAAA/M,KAAAwM,YAEAQ,UAAA,IAEAhN,KAAAyM,SAAAC,GAEAxM,SACA+M,UADA,WAEA,IAAAR,EAAAzM,KAAAyM,SACAS,EAAAlN,KACAyM,EAAA1K,GAAA,oBACA,IAAAoL,EAAAV,EAAAW,QAAAjC,IAAA,aAAAkC,QAAAC,SACAJ,EAAAK,QAAAJ,EAAAvF,OAEA6E,EAAAe,QAEAD,QAVA,SAUA3F,GACA5H,KAAAc,MAAA,QAAA8G,MCnDe6F,GADEzM,OAFP,WAAgB,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,QAAkBE,YAAA,6BAAuCF,EAAA,QAAAH,EAAAQ,IAAqBC,IAAA,QAAAJ,YAAA,eAAAM,OAA8CC,KAAA,OAAAlC,KAAAsB,EAAAtB,MAA8BmC,UAAWnB,MAAAM,EAAAhB,cAAyB8B,IAAK2L,MAAAzM,EAAA0M,YAAA3L,OAAAf,EAAA2B,aAAAgL,MAAA3M,EAAA4M,YAAAC,KAAA7M,EAAA8M,aAAiG,QAAA9M,EAAAgB,YAAA,IAAAhB,EAAAiB,GAAA,KAAAd,EAAA,KAAoDE,YAAA,SAAAM,OAA4BiG,KAAA,KAAW9F,IAAK6B,MAAA,SAAA0D,GAAyB,OAAArG,EAAAgM,gBAAyB7L,EAAA,QAAaE,YAAA,6BAAuCL,EAAAiB,GAAAjB,EAAAkB,GAAAlB,EAAAuL,kBAEniBpK,oBCAjB4L,ECFU1L,EAAQ,OAcjB2L,CACd3B,EACAmB,GAT6B,EAEb,KAEC,KAEU,MAUG,oBC+DhCS,GACAvO,KAAA,qBACAuM,YACAiC,mBAAAzE,GAEA5G,OACAuG,UAEAxJ,KARA,WASA,OACAuO,SAAA,KACApB,SAAAhN,KAAAqO,aACAC,YAAAtO,KAAAuO,SAAA,eACAC,YAAAxO,KAAAuO,SAAA,eACAE,cAAAzO,KAAAuO,SAAA,iBACAG,cAAA1O,KAAAuO,SAAA,iBACAvJ,QAAAhF,KAAAqJ,MAAArE,UAGA2J,QAnBA,WAuBA,IAAAC,EAAA5O,KAAAgE,oBAAAgB,QAAAhF,KAAAqJ,MAAAtD,IACA8I,EAAA7O,KAAAqJ,MAAArE,QACA/E,KAEA,GAAA2O,aAAAhG,MACAgG,EAAArJ,QAAA,SAAAuJ,GACA,IAAAC,EAAAF,EAAAG,OAAA,SAAAC,GACA,OAAAA,EAAAtO,OAAAmO,IAEAC,EAAA3H,QACAnH,EAAAS,MACAwG,MAAA6H,EAAA,GAAA7H,MACAvG,MAAAoO,EAAA,GAAApO,UAIAX,KAAAoO,SAAAnO,OACA,OAAA2O,EACA5O,KAAAoO,SAAA,SACA,CACA,IAAAW,EAAAF,EAAAG,OAAA,SAAAC,GACA,OAAAA,EAAAtO,OAAAiO,IAEAG,EAAA3H,QACAnH,EAAAS,MACAwG,MAAA6H,EAAA,GAAA7H,MACAvG,MAAAoO,EAAA,GAAApO,QAGAX,KAAAoO,SAAAnO,IAGAC,SAOAqO,SAPA,SAOAW,GACA,OAAAlP,KAAAqJ,MAAA9E,OACAvE,KAAAqJ,MAAA9E,OAAA2K,GAEAlP,KAAAgE,oBAAAO,OAAA2J,YAAAgB,IAMAb,WAjBA,WAkBA,QAAArO,KAAAqJ,MAAA2D,UAKAmC,cAvBA,SAuBAxO,GAEA,IAAAyO,EAAAzO,GAEA,IAAAX,KAAAgN,UACAoC,KACAzO,EAAA4E,QAAA,SAAA8J,GACAD,EAAA1O,KAAA2O,EAAA1O,UAGAyO,EADA,OAAAA,EACA,KAEAA,EAAAzO,MAGAX,KAAAc,MAAA,QAAAsO,MChLeE,GADEtO,OAFP,WAAgB,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,QAAkBE,YAAA,kCAA4CF,EAAA,eAAoBQ,OAAOoD,QAAA/D,EAAA+D,QAAAgI,SAAA/L,EAAA+L,SAAAsB,YAAArN,EAAAqN,YAAAE,YAAAvN,EAAAuN,YAAAC,cAAAxN,EAAAwN,cAAAC,cAAAzN,EAAAyN,cAAAa,WAAA,QAAArI,MAAA,SAAiNnF,IAAK2L,MAAAzM,EAAAkO,eAA0BpK,OAAQpE,MAAAM,EAAA,SAAA6J,SAAA,SAAAC,GAA8C9J,EAAAmN,SAAArD,GAAiB9C,WAAA,eAAwB,IAEje7F,oBCChC,ICDeoN,EDCUlN,EAAQ,OAcjBmN,CACdvB,EACAoB,GAT6B,EAV/B,SAAoBzL,GAClBvB,EAAQ,SAaS,KAEU,MAUG,QEhBhCoN,GACA/P,KAAA,gBACAC,QAAA2M,EAAA,GACA1M,KAHA,WAIA,OACAqH,MAAAlH,KAAAqJ,MAAAnC,MACAW,KAAA7H,KAAAqJ,MAAAxB,KACA8H,cAAA3P,KAAAqJ,MAAA3F,MAAA1D,KAAAqJ,MAAA3F,MAAA,GACAkM,eAAA5P,KAAAqJ,MAAA7I,OAAAR,KAAAqJ,MAAA7I,OAAA,MCfeqP,GADE7O,OAFP,WAAgB,IAAaE,EAAblB,KAAamB,eAAkD,OAA/DnB,KAAuCqB,MAAAD,IAAAF,GAAwB,KAAewC,MAA9E1D,KAA8E2P,cAAA/N,OAA+BiG,KAA7G7H,KAA6G6H,KAAArH,OAA7GR,KAA6G4P,kBAA7G5P,KAA0JkC,GAA1JlC,KAA0JmC,GAA1JnC,KAA0JkH,WAEpJ9E,oBCAjB0N,ECFUxN,EAAQ,OAcjByN,CACdL,EACAG,GAT6B,EAEb,KAEC,KAEU,MAUG,QChBhCG,GACArQ,KAAA,cACAC,QAAA2M,EAAA,GACA1M,KAHA,WAIA,OACAqH,MAAAlH,KAAAqJ,MAAAnC,MACA8I,KAAAhQ,KAAAqJ,MAAA2G,QCVeC,GADEjP,OAFP,WAAgB,IAAaE,EAAblB,KAAamB,eAAkD,OAA/DnB,KAAuCqB,MAAAD,IAAAF,GAAwB,OAAiBY,UAAUmJ,UAA1FjL,KAA0FmC,GAA1FnC,KAA0FgQ,UAEpF5N,oBCAjB8N,ECFU5N,EAAQ,OAcjB6N,CACdH,EACAC,GAT6B,EAEb,KAEC,KAEU,MAUG,QCNhCG,GACAzQ,KAAA,gBACAC,QAAA2M,EAAA,IChBe8D,GADErP,OAFP,WAAgB,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAAkD,OAAxBF,EAAAI,MAAAD,IAAAF,GAAwB,QAAAD,EAAAQ,IAA0BC,IAAA,QAAAE,OAAmBC,KAAA,SAAAlC,KAAAsB,EAAAtB,MAAgCmC,UAAWnB,MAAAM,EAAAhB,cAAyB8B,IAAK2L,MAAAzM,EAAA0M,YAAA3L,OAAAf,EAAA2B,aAAAgL,MAAA3M,EAAA4M,YAAAC,KAAA7M,EAAA8M,aAAiG,QAAA9M,EAAAgB,YAAA,KAEhRG,oBCAjBkO,ECFUhO,EAAQ,OAcjBiO,CACdH,EACAC,GAT6B,EAEb,KAEC,KAEU,MAUG,QCVhC/E,IAAIC,IAAIiF,KACRlF,IAAIC,IAAIkF,KAGRnF,IAAIS,UAAU,cAAeiC,GAC7B1C,IAAIS,UAAU,qBAAsByD,GACpClE,IAAIS,UAAU,gBAAiB2E,GAC/BpF,IAAIS,UAAU,cAAe4E,GAC7BrF,IAAIS,UAAU,gBAAiB6E,GAE/BtF,IAAIuF,OAAOC,eAAgB,EAE3BxF,IAAIyF,UAAU/M,oBAAsB2H,mBAGpC,IAAIL,KACH0F,GAAI,mBACJ3E,SACAH,YACCpI,OAEDmN,SAAU,uECjBXC,GACAvR,KAAA,cACAC,kBAAA,IChBeuR,GADEnQ,OAFjB,WAA0B,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAAkD,OAAxBF,EAAAI,MAAAD,IAAAF,GAAwB,QAAAD,EAAAQ,IAA0BC,IAAA,QAAAE,OAAmBC,KAAA,OAAAlC,KAAAsB,EAAAtB,MAA8BmC,UAAWnB,MAAAM,EAAAhB,cAAyB8B,IAAK2L,MAAAzM,EAAA0M,YAAA3L,OAAAf,EAAA2B,aAAAgL,MAAA3M,EAAA4M,YAAAC,KAAA7M,EAAA8M,aAAiG,QAAA9M,EAAAgB,YAAA,KAE7RG,oBCYjBC,EAdyBC,EAAQ,OAcjCC,CACE2O,EACAC,GATF,EAEA,KAEA,KAEA,MAUe3O,EAAA,EAAAH,EAAiB,oECLhC+O,GACAzR,KAAA,kBACAC,kBAAA,ICjBeyR,GADErQ,OAFjB,WAA0B,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAAkD,OAAxBF,EAAAI,MAAAD,IAAAF,GAAwB,WAAAD,EAAAQ,IAA6BC,IAAA,QAAAE,OAAmBC,KAAA,OAAAlC,KAAAsB,EAAAtB,KAAA2R,KAAA,KAAAC,KAAA,KAAqDzP,UAAWnB,MAAAM,EAAAhB,cAAyB8B,IAAK2L,MAAAzM,EAAA0M,YAAA3L,OAAAf,EAAA2B,aAAAgL,MAAA3M,EAAA4M,YAAAC,KAAA7M,EAAA8M,aAAiG,WAAA9M,EAAAgB,YAAA,KAEvTG,oBCYjBC,EAdyBC,EAAQ,OAcjCC,CACE6O,EACAC,GATF,EAEA,KAEA,KAEA,MAUe7O,EAAA,EAAAH,EAAiB,oECChCmP,GACA7R,KAAA,eACAC,kBAAA,GACAC,KAHA,WAIA,OACAC,kBAGAC,QARA,WASAC,KAAAF,aAAAE,KAAAC,cAEAC,SACAC,WADA,SACAC,GACA,OAAAJ,KAAAC,aAAAI,SAAAD,MClCeqR,GADEzQ,OAFjB,WAA0B,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,OAAiBE,YAAA,qBAAgCL,EAAAM,GAAAN,EAAA,uBAAAb,EAAAoB,GAAiD,OAAAJ,EAAA,QAAkBI,QAAQJ,EAAA,SAAAA,EAAA,QAAAH,EAAAQ,IAAiCC,IAAA,QAAAC,UAAA,EAAAC,OAAiCC,KAAA,QAAAlC,KAAAsB,EAAAtB,MAA+BmC,UAAWnB,MAAAa,EAAAf,QAAAQ,EAAAd,WAAAqB,IAA0CO,IAAK2L,MAAAzM,EAAA0M,YAAA3L,OAAAf,EAAA2B,aAAAgL,MAAA3M,EAAA4M,YAAAC,KAAA7M,EAAA8M,aAAiG,QAAA9M,EAAAgB,YAAA,IAAAhB,EAAAiB,GAAA,aAAAjB,EAAAkB,GAAA/B,MAAAgB,EAAA,UAAiF,IAEjhBgB,oBCYjBC,EAdyBC,EAAQ,OAcjCC,CACEiP,EACAC,GATF,EAEA,KAEA,KAEA,MAUejP,EAAA,EAAAH,EAAiB,+CCEhCqP,GACA/R,KAAA,gBACAC,kBAAA,ICxBe+R,GADE3Q,OAFjB,WAA0B,IAAAC,EAAAjB,KAAakB,EAAAD,EAAAE,eAA0BC,EAAAH,EAAAI,MAAAD,IAAAF,EAAwB,OAAAE,EAAA,SAAAH,EAAAQ,IAA2BC,IAAA,QAAAE,OAAmBjC,KAAAsB,EAAAtB,MAAgBmC,UAAWnB,MAAAM,EAAAhB,cAAyB8B,IAAK2L,MAAAzM,EAAA0M,YAAA3L,OAAAf,EAAA2B,aAAAgL,MAAA3M,EAAA4M,YAAAC,KAAA7M,EAAA8M,aAAiG,SAAA9M,EAAAgB,YAAA,GAAAhB,EAAAM,GAAAN,EAAA,uBAAAb,EAAAoB,GAAgF,OAAAJ,EAAA,UAAoBI,MAAAM,UAAkBnB,MAAAa,KAAaP,EAAAiB,GAAA,iBAAAjB,EAAAkB,GAAA/B,GAAA,kBAAyD,IAE5cgC,oBCYjBC,EAdyBC,EAAQ,OAcjCC,CACEmP,EACAC,GATF,EAEA,KAEA,KAEA,MAUenP,EAAA,EAAAH,EAAiB","file":"static/js/app.js","sourcesContent":["\n \n \n \n \n {{option}}\n \n \n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/vue-formit-fields/src/components/multicheckbox/multicheckbox.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"formit-multicheckbox-wrap\"},_vm._l((_vm.selectOptions),function(option,key){return _c('span',{key:key},[_c('label',[_c('input',_vm._b({ref:\"input\",refInFor:true,attrs:{\"type\":\"checkbox\",\"name\":_vm.name},domProps:{\"value\":key,\"checked\":_vm.isSelected(key)},on:{\"change\":_vm.onChange}},'input',_vm.attributes,false)),_vm._v(\"\\n \"+_vm._s(option))]),_c('br')])}),0)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-4f3e1e8c\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/vue-formit-fields/src/components/multicheckbox/multicheckbox.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../../../vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./multicheckbox.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./multicheckbox.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-4f3e1e8c\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../vue-loader/lib/selector?type=template&index=0!./multicheckbox.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-formit-fields/src/components/multicheckbox/multicheckbox.vue\n// module id = null\n// module chunks = ","\n \n \n \n \n \n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/vue-formit-fields/src/components/checkbox/checkbox.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"formit-checkbox-wrapper\"},[_c('label',{attrs:{\"for\":_vm.name}},[_c('input',_vm._b({ref:\"input\",attrs:{\"type\":\"checkbox\",\"name\":_vm.name},domProps:{\"checked\":_vm.currentValue},on:{\"change\":_vm.handleChange}},'input',_vm.attributes,false))])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-528aa6f4\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/vue-formit-fields/src/components/checkbox/checkbox.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../../../vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./checkbox.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./checkbox.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-528aa6f4\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../vue-loader/lib/selector?type=template&index=0!./checkbox.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-formit-fields/src/components/checkbox/checkbox.vue\n// module id = null\n// module chunks = ","\n\t\n\t\t\n\t\t\n\t\t\tDismiss this notice.\n\t\t\n\t\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/vue-wp-notice/src/components/wp-notice/wp-notice.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.closed)?_c('div',{class:_vm.classes},[_c('p',[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.dismissible)?_c('button',{staticClass:\"notice-dismiss\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.close}},[_c('span',{staticClass:\"screen-reader-text\"},[_vm._v(\"Dismiss this notice.\")])]):_vm._e()]):_vm._e()}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-3835a44d\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/vue-wp-notice/src/components/wp-notice/wp-notice.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-3835a44d\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../../vue-loader/lib/selector?type=styles&index=0!./wp-notice.vue\")\n}\nvar normalizeComponent = require(\"!../../../../vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./wp-notice.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./wp-notice.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-3835a44d\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../vue-loader/lib/selector?type=template&index=0!./wp-notice.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-wp-notice/src/components/wp-notice/wp-notice.vue\n// module id = null\n// module chunks = ","\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\t{{pageTitle}}\n\t\t\t\t 0\">\n\t\t\t\t\t\n\t\t\t\t\t\t{{link.title}}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{{successMessage}}\n\t\t\t\t\n\n\t\t\t\t\n\t\t\t\t\t{{errorMessage}} {{errorLabels}}\n\t\t\t\t\n\n\t\t\t\n\t\t\t\n\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{{item.name}}\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\n\t\t\t\n {{saveLabel}}\n\t\t\t\n\n\t\t\n\t\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/App.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"optionskit-panel-container wrap\",attrs:{\"id\":\"optionskit-panel\"}},[_c('form',{staticClass:\"opk-form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit.apply(null, arguments)}}},[_c('section',{attrs:{\"id\":\"optionskit-topbar\"}},[_c('h1',[(_vm.imgURL)?_c('img',{attrs:{\"src\":_vm.imgURL}}):_vm._e(),_vm._v(_vm._s(_vm.pageTitle))]),_vm._v(\" \"),(_vm.actionButtons.length > 0)?_c('ul',{staticClass:\"title-links\"},_vm._l((_vm.actionButtons),function(link){return _c('li',{key:link.url},[_c('a',{staticClass:\"page-title-action\",attrs:{\"href\":link.url}},[_vm._v(_vm._s(link.title))])])}),0):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"save-area\"},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.form.isPending),expression:\"form.isPending\"}],staticClass:\"spinner is-active opk-spinner\"}),_vm._v(\" \"),_c('input',{staticClass:\"button button-primary\",attrs:{\"type\":\"submit\",\"disabled\":_vm.form.isPending},domProps:{\"value\":_vm.saveLabel}})]),_vm._v(\" \"),(_vm.success === true)?_c('wp-notice',{attrs:{\"type\":\"success\",\"dismissible\":\"\",\"alternative\":\"\"}},[_c('strong',[_vm._v(_vm._s(_vm.successMessage))])]):_vm._e(),_vm._v(\" \"),(_vm.form.errors.any())?_c('wp-notice',{attrs:{\"type\":\"error\",\"dismissible\":\"\",\"alternative\":\"\"}},[_c('strong',[_vm._v(_vm._s(_vm.errorMessage)+\" \"+_vm._s(_vm.errorLabels))])]):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"optionskit-navigation-wrapper\"},[_c('div',{staticClass:\"wp-filter\",attrs:{\"id\":\"optionskit-navigation\"}},[_c('ul',{staticClass:\"filter-links\"},_vm._l((_vm.items),function(item){return _c('li',{key:item.path},[(item.name)?_c('router-link',{attrs:{\"to\":item.path}},[_vm._v(_vm._s(item.name))]):_vm._e()],1)}),0)])]),_vm._v(\" \"),_c('router-view',{attrs:{\"model\":_vm.model,\"form\":_vm.form}}),_vm._v(\" \"),(_vm.isMainTab)?_c('router-view',{attrs:{\"name\":\"fields\",\"model\":_vm.model,\"form\":_vm.form}}):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"button button-primary opk-submit\",attrs:{\"type\":\"submit\",\"disabled\":_vm.form.isPending}},[_vm._v(_vm._s(_vm.saveLabel))]),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.form.isPending),expression:\"form.isPending\"}],staticClass:\"spinner is-active opk-spinner\"})],1)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-ed5352ac\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/App.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-ed5352ac\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../node_modules/vue-loader/lib/selector?type=styles&index=0!./App.vue\")\n}\nvar normalizeComponent = require(\"!../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\nimport __vue_script__ from \"!!babel-loader!../node_modules/vue-loader/lib/selector?type=script&index=0!./App.vue\"\n/* template */\nimport __vue_template__ from \"!!../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-ed5352ac\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../node_modules/vue-loader/lib/selector?type=template&index=0!./App.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/App.vue\n// module id = null\n// module chunks = ","\n\t\n\t\t 0\">\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{parentName}}|\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{item.name}}|\n\t\t\t\t\n\t\t\t\n\t\t\n\t\t\n\t\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/subsections.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"optionskit-sub-sections-wrapper\"},[(_vm.sections.length > 0)?_c('div',{staticClass:\"optionskit-subnav\"},[_c('ul',[_c('li',[_c('router-link',{attrs:{\"to\":_vm.parentPath}},[_vm._v(_vm._s(_vm.parentName))]),_c('span',[_vm._v(\"|\")])],1),_vm._v(\" \"),_vm._l((_vm.sections),function(item){return _c('li',{key:item.path},[(item.name)?_c('router-link',{attrs:{\"to\":item.path}},[_vm._v(_vm._s(item.name))]):_vm._e(),_c('span',[_vm._v(\"|\")])],1)})],2)]):_vm._e(),_vm._v(\" \"),_c('router-view',{attrs:{\"model\":_vm.model,\"form\":_vm.form}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-d46bad02\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/subsections.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-d46bad02\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../node_modules/vue-loader/lib/selector?type=styles&index=0!./subsections.vue\")\n}\nvar normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./subsections.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./subsections.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-d46bad02\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./subsections.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/subsections.vue\n// module id = null\n// module chunks = ","\n\t\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{{field.name}}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{{form.errors.get(field.id)}}\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/fields-wrapper.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"optionskit-form-wrapper\"},[_c('table',{staticClass:\"form-table\"},_vm._l((_vm.fields),function(field){return _c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.maybeShowField(field)),expression:\"maybeShowField(field)\"}],key:field.id,class:{ 'has-error': _vm.form.errors.has(field.id) }},[_c('th',{attrs:{\"scope\":\"row\"}},[_c('label',{attrs:{\"for\":field.id}},[_vm._v(_vm._s(field.name))])]),_vm._v(\" \"),_c('td',[_c(_vm.getFieldComponentName(field.type),{tag:\"component\",class:_vm.classes(field.type),attrs:{\"field\":field},model:{value:(_vm.model[field.id]),callback:function ($$v) {_vm.$set(_vm.model, field.id, $$v)},expression:\"model[field.id]\"}}),_vm._v(\" \"),(field.desc)?_c('p',{staticClass:\"description\",domProps:{\"innerHTML\":_vm._s(field.desc)}}):_vm._e(),_vm._v(\" \"),_c('wp-notice',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.form.errors.has(field.id)),expression:\"form.errors.has(field.id)\"}],attrs:{\"type\":\"error\",\"alternative\":\"\"}},[_c('strong',[_vm._v(_vm._s(_vm.form.errors.get(field.id)))])])],1)])}),0)])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-79b7fa12\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/fields-wrapper.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./fields-wrapper.vue\"\nimport __vue_script__ from \"!!babel-loader!../../node_modules/vue-loader/lib/selector?type=script&index=0!./fields-wrapper.vue\"\n/* template */\nimport __vue_template__ from \"!!../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-79b7fa12\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../node_modules/vue-loader/lib/selector?type=template&index=0!./fields-wrapper.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/fields-wrapper.vue\n// module id = null\n// module chunks = ","import Vue from 'vue'\nimport Router from 'vue-router'\nimport Subsections from '@/components/subsections'\nimport FieldsWrapper from '@/components/fields-wrapper'\n\nVue.use(Router)\n\nconst OptionsTabs = []\n\n// Set redirect for the first path to redirect\n// to the first available tab.\nOptionsTabs.push(\n\t{\n\t\tpath: '/',\n\t\tredirect: Object.keys(optionsKitSettings.tabs)[0]\n\t}\n)\n\nObject.keys(optionsKitSettings.tabs).forEach(function (key) {\n\t// Setup the starting path.\n\tlet path = '/' + key\n\n\t// Define child routes for the router based on available sections.\n\tlet availableSections = optionsKitSettings.sections[key]\n\tlet childRoutes = []\n\n\tif (typeof (availableSections) !== 'undefined') {\n\t\tObject.keys(availableSections).forEach(function (key) {\n\t\t\tchildRoutes.push({\n\t\t\t\tpath: path + '/' + key,\n\t\t\t\tname: availableSections[key],\n\t\t\t\tcomponent: FieldsWrapper,\n\t\t\t\tprops: {\n\t\t\t\t\tfields: optionsKitSettings.settings[key]\n\t\t\t\t}\n\t\t\t})\n\t\t})\n\t}\n\n\t// Create main route and child routes if any.\n\tOptionsTabs.push(\n\t\t{\n\t\t\tpath: path,\n\t\t\tname: optionsKitSettings.tabs[key],\n\t\t\tcomponents: {\n\t\t\t\tdefault: Subsections,\n\t\t\t\tfields: FieldsWrapper\n\t\t\t},\n\t\t\tmeta: {\n\t\t\t\tid: path.substring(1)\n\t\t\t},\n\t\t\tprops: {\n\t\t\t\tdefault: {\n\t\t\t\t\tsections: childRoutes,\n\t\t\t\t\tparentPath: path,\n\t\t\t\t\tparentName: optionsKitSettings.tabs[key]\n\t\t\t\t},\n\t\t\t\tfields: {\n\t\t\t\t\tfields: optionsKitSettings.settings[ path.substring(1) ]\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: childRoutes\n\t\t}\n\t)\n})\n\nexport default new Router({\n\troutes: OptionsTabs\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/router/index.js","\n\t\n\t\t\n\t\t{{selectFile}}\n\t\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/fields/upload-field/upload-field.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"opk-upload-field-wrapper\"},[_c('input',_vm._b({ref:\"input\",staticClass:\"regular-text\",attrs:{\"type\":\"text\",\"name\":_vm.name},domProps:{\"value\":_vm.currentValue},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur}},'input',_vm.attributes,false)),_vm._v(\" \"),_c('a',{staticClass:\"button\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.openMedia()}}},[_c('span',{staticClass:\"dashicons dashicons-plus\"}),_vm._v(_vm._s(_vm.selectFile))])])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-68aadbc5\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/fields/upload-field/upload-field.vue\n// module id = null\n// module chunks = ","import UploadField from './upload-field'\n\nexport default UploadField\n\n\n// WEBPACK FOOTER //\n// ./src/components/fields/upload-field/index.js","var normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./upload-field.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./upload-field.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-68aadbc5\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./upload-field.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/fields/upload-field/upload-field.vue\n// module id = null\n// module chunks = ","\n\t\n \n \n\t\n\n\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/fields/multiselect/multiselect.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"opk-multiselect-field-wrapper\"},[_c('multiselect',{attrs:{\"options\":_vm.options,\"multiple\":_vm.multiple,\"selectLabel\":_vm.selectLabel,\"placeholder\":_vm.placeholder,\"SelectedLabel\":_vm.SelectedLabel,\"deselectLabel\":_vm.deselectLabel,\"track-by\":\"value\",\"label\":\"label\"},on:{\"input\":_vm.triggerChange},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-c1ce4ed2\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/fields/multiselect/multiselect.vue\n// module id = null\n// module chunks = ","function injectStyle (ssrContext) {\n require(\"!!../../../../node_modules/extract-text-webpack-plugin/dist/loader.js?{\\\"omit\\\":1,\\\"remove\\\":true}!vue-style-loader!css-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/style-compiler/index?{\\\"vue\\\":true,\\\"id\\\":\\\"data-v-c1ce4ed2\\\",\\\"scoped\\\":false,\\\"hasInlineConfig\\\":false}!sass-loader?{\\\"sourceMap\\\":true}!../../../../node_modules/vue-loader/lib/selector?type=styles&index=0!./multiselect.vue\")\n}\nvar normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./multiselect.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./multiselect.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-c1ce4ed2\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./multiselect.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = injectStyle\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/fields/multiselect/multiselect.vue\n// module id = null\n// module chunks = ","import MultiselectField from './multiselect'\n\nexport default MultiselectField\n\n\n// WEBPACK FOOTER //\n// ./src/components/fields/multiselect/index.js","\n\t{{label}}\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/fields/anchor/anchor.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{class:_vm.selectedClass,attrs:{\"href\":_vm.href,\"target\":_vm.selectedTarget}},[_vm._v(_vm._s(_vm.label))])}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-9b6c4122\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/fields/anchor/anchor.vue\n// module id = null\n// module chunks = ","import Anchor from './anchor'\n\nexport default Anchor\n\n\n// WEBPACK FOOTER //\n// ./src/components/fields/anchor/index.js","var normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./anchor.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./anchor.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-9b6c4122\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./anchor.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/fields/anchor/anchor.vue\n// module id = null\n// module chunks = ","\n\t\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/fields/html/html.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{domProps:{\"innerHTML\":_vm._s(_vm.html)}})}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-41a4b371\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/fields/html/html.vue\n// module id = null\n// module chunks = ","import Html from './html'\n\nexport default Html\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/fields/html/index.js","var normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./html.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./html.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-41a4b371\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./html.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/fields/html/html.vue\n// module id = null\n// module chunks = ","\n\t\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// src/components/fields/hidden/hidden.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',_vm._b({ref:\"input\",attrs:{\"type\":\"hidden\",\"name\":_vm.name},domProps:{\"value\":_vm.currentValue},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur}},'input',_vm.attributes,false))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-adadcf1e\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./src/components/fields/hidden/hidden.vue\n// module id = null\n// module chunks = ","import Hidden from './hidden'\n\nexport default Hidden\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/fields/hidden/index.js","var normalizeComponent = require(\"!../../../../node_modules/vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./hidden.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../node_modules/vue-loader/lib/selector?type=script&index=0!./hidden.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../node_modules/vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-adadcf1e\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../node_modules/vue-loader/lib/selector?type=template&index=0!./hidden.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/fields/hidden/hidden.vue\n// module id = null\n// module chunks = ","// The Vue build version to load with the `import` command\n// (runtime-only or standalone) has been set in webpack.base.conf with an alias.\nimport Vue from 'vue'\nimport App from './App'\nimport router from './router'\nimport VueFormitFields from 'vue-formit-fields'\nimport WPNotice from 'vue-wp-notice'\nimport UploadField from './components/fields/upload-field'\nimport MultiselectField from './components/fields/multiselect'\nimport AnchorField from './components/fields/anchor'\nimport HtmlField from './components/fields/html'\nimport HiddenField from './components/fields/hidden'\n\nVue.use(VueFormitFields)\nVue.use(WPNotice)\n\n// Load custom fields from this app.\nVue.component('formit-file', UploadField)\nVue.component('formit-multiselect', MultiselectField)\nVue.component('formit-anchor', AnchorField)\nVue.component('formit-html', HtmlField)\nVue.component('formit-hidden', HiddenField)\n\nVue.config.productionTip = false\n// Import options panel configuration.\nVue.prototype.$optionsKitSettings = optionsKitSettings\n\n/* eslint-disable no-new */\nnew Vue({\n\tel: '#optionskit-page',\n\trouter,\n\tcomponents: {\n\t\tApp\n\t},\n\ttemplate: ''\n})\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","\n\t\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/vue-formit-fields/src/components/text-field/text-field.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('input',_vm._b({ref:\"input\",attrs:{\"type\":\"text\",\"name\":_vm.name},domProps:{\"value\":_vm.currentValue},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur}},'input',_vm.attributes,false))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-935077f0\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/vue-formit-fields/src/components/text-field/text-field.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../../../vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./text-field.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./text-field.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-935077f0\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../vue-loader/lib/selector?type=template&index=0!./text-field.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-formit-fields/src/components/text-field/text-field.vue\n// module id = null\n// module chunks = ","\n\t\n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/vue-formit-fields/src/components/textarea/textarea.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('textarea',_vm._b({ref:\"input\",attrs:{\"type\":\"text\",\"name\":_vm.name,\"cols\":\"50\",\"rows\":\"5\"},domProps:{\"value\":_vm.currentValue},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur}},'textarea',_vm.attributes,false))}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-63e82fc8\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/vue-formit-fields/src/components/textarea/textarea.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../../../vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./textarea.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./textarea.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-63e82fc8\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../vue-loader/lib/selector?type=template&index=0!./textarea.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-formit-fields/src/components/textarea/textarea.vue\n// module id = null\n// module chunks = ","\n \n \n \n \n {{option}}\n \n \n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/vue-formit-fields/src/components/radio/radio.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"formit-radio-wrap\"},_vm._l((_vm.selectOptions),function(option,key){return _c('span',{key:key},[_c('label',[_c('input',_vm._b({ref:\"input\",refInFor:true,attrs:{\"type\":\"radio\",\"name\":_vm.name},domProps:{\"value\":key,\"checked\":_vm.isSelected(key)},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur}},'input',_vm.attributes,false)),_vm._v(\"\\n \"+_vm._s(option))]),_c('br')])}),0)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-66cd495c\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/vue-formit-fields/src/components/radio/radio.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../../../vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./radio.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./radio.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-66cd495c\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../vue-loader/lib/selector?type=template&index=0!./radio.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-formit-fields/src/components/radio/radio.vue\n// module id = null\n// module chunks = ","\n\t\n \n {{option}}\n \n \n\n\n\n\n\n\n// WEBPACK FOOTER //\n// node_modules/vue-formit-fields/src/components/select/select.vue","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('select',_vm._b({ref:\"input\",attrs:{\"name\":_vm.name},domProps:{\"value\":_vm.currentValue},on:{\"input\":_vm.handleInput,\"change\":_vm.handleChange,\"focus\":_vm.handleFocus,\"blur\":_vm.handleBlur}},'select',_vm.attributes,false),_vm._l((_vm.selectOptions),function(option,key){return _c('option',{key:key,domProps:{\"value\":key}},[_vm._v(\"\\n \"+_vm._s(option)+\"\\n \")])}),0)}\nvar staticRenderFns = []\nvar esExports = { render: render, staticRenderFns: staticRenderFns }\nexport default esExports\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-loader/lib/template-compiler?{\"id\":\"data-v-be64374a\",\"hasScoped\":false,\"transformToRequire\":{\"video\":[\"src\",\"poster\"],\"source\":\"src\",\"img\":\"src\",\"image\":\"xlink:href\"},\"buble\":{\"transforms\":{}}}!./node_modules/vue-loader/lib/selector.js?type=template&index=0!./node_modules/vue-formit-fields/src/components/select/select.vue\n// module id = null\n// module chunks = ","var normalizeComponent = require(\"!../../../../vue-loader/lib/component-normalizer\")\n/* script */\nexport * from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./select.vue\"\nimport __vue_script__ from \"!!babel-loader!../../../../vue-loader/lib/selector?type=script&index=0!./select.vue\"\n/* template */\nimport __vue_template__ from \"!!../../../../vue-loader/lib/template-compiler/index?{\\\"id\\\":\\\"data-v-be64374a\\\",\\\"hasScoped\\\":false,\\\"transformToRequire\\\":{\\\"video\\\":[\\\"src\\\",\\\"poster\\\"],\\\"source\\\":\\\"src\\\",\\\"img\\\":\\\"src\\\",\\\"image\\\":\\\"xlink:href\\\"},\\\"buble\\\":{\\\"transforms\\\":{}}}!../../../../vue-loader/lib/selector?type=template&index=0!./select.vue\"\n/* template functional */\nvar __vue_template_functional__ = false\n/* styles */\nvar __vue_styles__ = null\n/* scopeId */\nvar __vue_scopeId__ = null\n/* moduleIdentifier (server only) */\nvar __vue_module_identifier__ = null\nvar Component = normalizeComponent(\n __vue_script__,\n __vue_template__,\n __vue_template_functional__,\n __vue_styles__,\n __vue_scopeId__,\n __vue_module_identifier__\n)\n\nexport default Component.exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/vue-formit-fields/src/components/select/select.vue\n// module id = null\n// module chunks = "],"sourceRoot":""} -------------------------------------------------------------------------------- /dist/static/js/manifest.js: -------------------------------------------------------------------------------- 1 | !function(r){var t=window.wpJsonpFlightsWidget;window.wpJsonpFlightsWidget=function(n,i,u){for(var f,c,l,p=0,s=[];pversion = 'v1'; 71 | $this->slug = $slug; 72 | $this->settings = $settings; 73 | $this->namespace = 'wpok/' . $this->slug . '/' . $this->version; 74 | 75 | // Create a new instance of WP_Error 76 | $this->errors = new \WP_Error(); 77 | 78 | add_filter( $this->slug . '_settings_sanitize_text', array( $this, 'sanitize_text_field' ), 3, 10 ); 79 | add_filter( $this->slug . '_settings_sanitize_textarea', array( $this, 'sanitize_textarea_field' ), 3, 10 ); 80 | add_filter( $this->slug . '_settings_sanitize_radio', array( $this, 'sanitize_text_field' ), 3, 10 ); 81 | add_filter( $this->slug . '_settings_sanitize_select', array( $this, 'sanitize_text_field' ), 3, 10 ); 82 | add_filter( $this->slug . '_settings_sanitize_checkbox', array( $this, 'sanitize_checkbox_field' ), 3, 10 ); 83 | add_filter( $this->slug . '_settings_sanitize_multiselect', array( $this, 'sanitize_multiple_field' ), 3, 10 ); 84 | add_filter( $this->slug . '_settings_sanitize_multicheckbox', array( $this, 'sanitize_multiple_field' ), 3, 10 ); 85 | add_filter( $this->slug . '_settings_sanitize_file', array( $this, 'sanitize_file_field' ), 3, 10 ); 86 | 87 | } 88 | 89 | /** 90 | * Register new routes for the options kit panel. 91 | * 92 | * @return void 93 | */ 94 | public function register_routes() { 95 | 96 | register_rest_route( $this->namespace, '/records', array( 97 | array( 98 | 'methods' => \WP_REST_Server::EDITABLE, 99 | 'callback' => array( $this, 'save_options' ), 100 | 'permission_callback' => array( $this, 'get_options_permission' ), 101 | ), 102 | ) ); 103 | 104 | } 105 | 106 | /** 107 | * Detect if the user can submit options. 108 | * 109 | * @return bool|\WP_Error 110 | */ 111 | public function get_options_permission() { 112 | if ( ! current_user_can( 'manage_options' ) ) { 113 | return new \WP_Error( 'rest_forbidden', 'WPOK: Permission Denied.', array( 'status' => 401 ) ); 114 | } 115 | 116 | return true; 117 | } 118 | 119 | /** 120 | * Sanitize the text field. 121 | * 122 | * @param string $input 123 | * @param object $errors 124 | * @param array $setting 125 | * @return string 126 | */ 127 | public function sanitize_text_field( $input, $errors, $setting ) { 128 | return trim( wp_strip_all_tags( $input, true ) ); 129 | } 130 | 131 | /** 132 | * Sanitize textarea field. 133 | * 134 | * @param string $input 135 | * @param object $errors 136 | * @param array $setting 137 | * @return string 138 | */ 139 | public function sanitize_textarea_field( $input, $errors, $setting ) { 140 | return stripslashes( wp_kses_post( $input ) ); 141 | } 142 | 143 | /** 144 | * Sanitize multiselect and multicheck field. 145 | * 146 | * @param mixed $input 147 | * @param object $errors 148 | * @param array $setting 149 | * @return array 150 | */ 151 | public function sanitize_multiple_field( $input, $errors, $setting ) { 152 | 153 | $new_input = array(); 154 | 155 | if ( is_array( $input ) && ! empty( $input ) ) { 156 | foreach ( $input as $key => $value ) { 157 | $new_input[ sanitize_key( $key ) ] = sanitize_text_field( $value ); 158 | } 159 | } 160 | 161 | if ( ! empty( $input ) && ! is_array( $input ) ) { 162 | $input = explode( ',', $input ); 163 | foreach ( $input as $key => $value ) { 164 | $new_input[ sanitize_key( $key ) ] = sanitize_text_field( $value ); 165 | } 166 | } 167 | 168 | return $new_input; 169 | 170 | } 171 | 172 | /** 173 | * Sanitize urls for the file field. 174 | * 175 | * @param string $input 176 | * @param object $errors 177 | * @param array $setting 178 | * @return void 179 | */ 180 | public function sanitize_file_field( $input, $errors, $setting ) { 181 | return esc_url( $input ); 182 | } 183 | 184 | /** 185 | * Sanitize the checkbox field. 186 | * 187 | * @param string $input 188 | * @param object $errors 189 | * @param array $setting 190 | * @return void 191 | */ 192 | public function sanitize_checkbox_field( $input, $errors, $setting ) { 193 | 194 | $pass = false; 195 | 196 | if ( $input == 'true' ) { 197 | $pass = true; 198 | } 199 | 200 | return $pass; 201 | 202 | } 203 | 204 | /** 205 | * Save options to the database. Sanitize them first. 206 | * 207 | * @param \WP_REST_Request $request 208 | * @return void 209 | */ 210 | public function save_options( \WP_REST_Request $request ) { 211 | 212 | check_ajax_referer( 'wpok_verifynonce', 'verifynonce' ); 213 | 214 | $registered_settings = $this->settings; 215 | $settings_received = $_POST; 216 | $data_to_save = array(); 217 | 218 | if ( is_array( $registered_settings ) && ! empty( $registered_settings ) ) { 219 | foreach ( $registered_settings as $setting_section ) { 220 | foreach ( $setting_section as $setting ) { 221 | // Skip if no setting type. 222 | if ( ! $setting['type'] ) { 223 | continue; 224 | } 225 | 226 | // Skip if the ID doesn't exist in the data received. 227 | if ( ! array_key_exists( $setting['id'], $settings_received ) ) { 228 | continue; 229 | } 230 | 231 | // Sanitize the input. 232 | $setting_type = $setting['type']; 233 | $output = apply_filters( $this->slug . '_settings_sanitize_' . $setting_type, $settings_received[ $setting['id'] ], $this->errors, $setting ); 234 | $output = apply_filters( $this->slug . '_settings_sanitize_' . $setting['id'], $output, $this->errors, $setting ); 235 | 236 | if ( $setting_type == 'checkbox' && $output == false ) { 237 | continue; 238 | } 239 | 240 | // Add the option to the list of ones that we need to save. 241 | if ( ! empty( $output ) && ! is_wp_error( $output ) ) { 242 | $data_to_save[ $setting['id'] ] = $output; 243 | } 244 | } 245 | } 246 | } 247 | 248 | if ( ! empty( $this->errors->get_error_codes() ) ) { 249 | return new \WP_REST_Response( $this->errors, 422 ); 250 | } 251 | 252 | update_option( $this->slug . '_settings', $data_to_save ); 253 | 254 | return rest_ensure_response( $data_to_save ); 255 | 256 | } 257 | 258 | } 259 | -------------------------------------------------------------------------------- /includes/views/settings-page.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /wp-optionskit.php: -------------------------------------------------------------------------------- 1 | slug = $slug; 100 | $this->func = str_replace( '-', '_', $slug ); 101 | $this->labels = $this->get_labels(); 102 | $GLOBALS[ $this->func . '_options' ] = get_option( $this->func . '_settings', true ); 103 | 104 | $this->hooks(); 105 | 106 | } 107 | 108 | /** 109 | * Set the title for the page. 110 | * 111 | * @param string $page_title 112 | * @return void 113 | */ 114 | public function set_page_title( $page_title = '' ) { 115 | $this->page_title = $page_title; 116 | } 117 | 118 | /** 119 | * Add action button to the header. 120 | * 121 | * @param array $args 122 | * @return void 123 | */ 124 | public function add_action_button( $args ) { 125 | 126 | $defaults = array( 127 | 'title' => '', 128 | 'url' => '', 129 | ); 130 | 131 | $this->action_buttons[] = wp_parse_args( $args, $defaults ); 132 | 133 | } 134 | 135 | /** 136 | * Set an image for the options panel title. 137 | * 138 | * @param string $url 139 | * @return void 140 | */ 141 | public function add_image( $url ) { 142 | $this->image = esc_url( $url ); 143 | } 144 | 145 | /** 146 | * Hook into WordPress and run things. 147 | * 148 | * @return void 149 | */ 150 | private function hooks() { 151 | 152 | add_action( 'admin_menu', array( $this, 'add_settings_page' ), apply_filters( $this->func . '_admin_menu_priority', 10 ) ); 153 | add_filter( 'admin_body_class', array( $this, 'admin_body_class' ) ); 154 | add_action( 'admin_enqueue_scripts', array( $this, 'enqueue_scripts' ), 100 ); 155 | add_action( 'rest_api_init', array( $this, 'register_rest_controller' ) ); 156 | 157 | } 158 | 159 | /** 160 | * Register the WP API controller for the options panel. 161 | * 162 | * @return void 163 | */ 164 | public function register_rest_controller() { 165 | require_once 'includes/class-wpok-rest-server.php'; 166 | $controller = new \TDP\WPOK_Rest_Server( $this->func, $this->get_registered_settings() ); 167 | $controller->register_routes(); 168 | 169 | } 170 | 171 | /** 172 | * Return the rest url for the options panel. 173 | * 174 | * @return string 175 | */ 176 | private function get_rest_url() { 177 | return get_rest_url( null, '/wpok/' . $this->func . '/v1/' ); 178 | } 179 | 180 | /** 181 | * Retrieve labels. 182 | * 183 | * @return void 184 | */ 185 | private function get_labels() { 186 | 187 | $defaults = array( 188 | 'save' => 'Save Changes', 189 | 'success' => 'Settings successfully saved.', 190 | 'upload' => 'Select file', 191 | 'upload-title' => 'Insert file', 192 | 'multiselect' => array( 193 | 'selectLabel' => 'Press enter to select', 194 | 'SelectedLabel' => 'Selected', 195 | 'deselectLabel' => 'Press enter to remove', 196 | 'placeholder' => 'Select option', 197 | ), 198 | 'error' => 'Whoops! Something went wrong. Please check the following fields for more info:', 199 | ); 200 | 201 | return apply_filters( $this->func . '_labels', $defaults ); 202 | 203 | } 204 | 205 | /** 206 | * Add settings page to the WordPress menu. 207 | * 208 | * @return void 209 | */ 210 | public function add_settings_page() { 211 | 212 | $menu = apply_filters( 213 | $this->func . '_menu', array( 214 | 'parent' => 'options-general.php', 215 | 'page_title' => 'Settings Panel', 216 | 'menu_title' => 'Settings Panel', 217 | 'capability' => 'manage_options', 218 | ) 219 | ); 220 | 221 | $page = add_submenu_page( 222 | $menu['parent'], 223 | $menu['page_title'], 224 | $menu['menu_title'], 225 | $menu['capability'], 226 | $this->slug . '-settings', 227 | array( $this, 'render_settings_page' ) 228 | ); 229 | 230 | } 231 | 232 | /** 233 | * Determine wether we're on an options page generated by WPOK. 234 | * 235 | * @return boolean 236 | */ 237 | private function is_options_page() { 238 | 239 | $is_page = false; 240 | $screen = get_current_screen(); 241 | $check = $this->slug . '-settings'; 242 | 243 | if ( preg_match( "/{$check}/", $screen->base ) ) { 244 | $is_page = true; 245 | } 246 | 247 | return $is_page; 248 | 249 | } 250 | 251 | /** 252 | * Add a new class to the body tag. 253 | * The class will be used to adjust the layout. 254 | * 255 | * @param string $classes 256 | * 257 | * @return string 258 | */ 259 | public function admin_body_class( $classes ) { 260 | $screen = get_current_screen(); 261 | $check = $this->slug . '-settings'; 262 | 263 | if ( preg_match( "/{$check}/", $screen->base ) ) { 264 | $classes .= ' optionskit-panel-page'; 265 | } 266 | 267 | return $classes; 268 | } 269 | 270 | /** 271 | * Load require styles and scripts for the options panel. 272 | * 273 | * @return void 274 | */ 275 | public function enqueue_scripts() { 276 | 277 | $path = plugin_dir_url( __FILE__ ); 278 | 279 | if ( $this->is_options_page() ) { 280 | 281 | if ( defined( 'WP_DEBUG' ) && WP_DEBUG === true && defined( 'OPK_DEBUG' ) && OPK_DEBUG === true ) { 282 | $vue_dev_port = defined( 'OPK_VUE_DEV_PORT' ) ? OPK_VUE_DEV_PORT : '8080'; 283 | wp_enqueue_script( $this->func . '_opk', 'http://localhost:' . $vue_dev_port .'/app.js', array(), false, true ); 284 | } else { 285 | wp_enqueue_script( $this->func . '_opk2', $path . 'dist/static/js/manifest.js', array(), false, true ); 286 | wp_enqueue_script( $this->func . '_opk', $path . 'dist/static/js/vendor.js', array(), false, true ); 287 | wp_enqueue_script( $this->func . '_opk3', $path . 'dist/static/js/app.js', array(), false, true ); 288 | wp_enqueue_style( $this->func . '_opkcss', $path . 'dist/static/css/app.css', array(), $this->version ); 289 | } 290 | $options_panel_settings = array( 291 | 'rest_url' => esc_url( $this->get_rest_url() ), 292 | 'nonce' => wp_create_nonce( 'wp_rest' ), 293 | 'verifynonce' => wp_create_nonce( 'wpok_verifynonce' ), 294 | 'page_title' => esc_html( $this->page_title ), 295 | 'logo' => $this->image, 296 | 'buttons' => $this->action_buttons, 297 | 'labels' => $this->labels, 298 | 'tabs' => $this->get_settings_tabs(), 299 | 'sections' => $this->get_registered_settings_sections(), 300 | 'settings' => $this->get_registered_settings(), 301 | 'options' => $this->get_options(), 302 | ); 303 | wp_enqueue_media(); 304 | wp_localize_script( $this->func . '_opk', 'optionsKitSettings', $options_panel_settings ); 305 | } 306 | 307 | } 308 | 309 | /** 310 | * Retrieve the default tab. 311 | * The default tab, will be the first available tab. 312 | * 313 | * @return string 314 | */ 315 | private function get_default_tab() { 316 | 317 | $default = ''; 318 | $tabs = $this->get_settings_tabs(); 319 | 320 | if ( is_array( $tabs ) ) { 321 | $default = key( $tabs ); 322 | } 323 | 324 | return $default; 325 | 326 | } 327 | 328 | /** 329 | * Retrieve the currently active tab. 330 | * 331 | * @return string 332 | */ 333 | private function get_active_tab() { 334 | 335 | return isset( $_GET['tab'] ) && array_key_exists( $_GET['tab'], $this->get_settings_tabs() ) ? $_GET['tab'] : $this->get_default_tab(); 336 | 337 | } 338 | 339 | /** 340 | * Retrieve the settings tabs. 341 | * 342 | * @return array 343 | */ 344 | private function get_settings_tabs() { 345 | return apply_filters( $this->func . '_settings_tabs', array() ); 346 | } 347 | 348 | /** 349 | * Retrieve sections for the currently selected tab. 350 | * 351 | * @param mixed $tab 352 | * @return mixed 353 | */ 354 | private function get_settings_tab_sections( $tab = false ) { 355 | 356 | $tabs = false; 357 | $sections = $this->get_registered_settings_sections(); 358 | 359 | if ( $tab && ! empty( $sections[ $tab ] ) ) { 360 | $tabs = $sections[ $tab ]; 361 | } elseif ( $tab ) { 362 | $tabs = false; 363 | } 364 | 365 | return $tabs; 366 | 367 | } 368 | 369 | /** 370 | * Retrieve the registered sections. 371 | * 372 | * @return array 373 | */ 374 | private function get_registered_settings_sections() { 375 | 376 | $sections = apply_filters( $this->func . '_registered_settings_sections', array() ); 377 | 378 | return $sections; 379 | 380 | } 381 | 382 | /** 383 | * Retrieve the settings for this options panel. 384 | * 385 | * @return array 386 | */ 387 | private function get_registered_settings() { 388 | return apply_filters( $this->func . '_registered_settings', array() ); 389 | } 390 | 391 | /** 392 | * Get a specific option of this panel from the database. 393 | * 394 | * @param string $key 395 | * @param boolean $default 396 | * @return mixed 397 | */ 398 | private function get_option( $key = '', $default = false ) { 399 | $option_key = $this->func . '_options'; 400 | $options = $GLOBALS[ $option_key ]; 401 | 402 | $value = ! empty( $options[ $key ] ) ? $options[ $key ] : $default; 403 | $value = apply_filters( $this->func . '_get_option', $value, $key, $default ); 404 | 405 | return apply_filters( $this->func . '_get_option_' . $key, $value, $key, $default ); 406 | } 407 | 408 | /** 409 | * Retrieve stored options from WordPress and populate the model into Vue.js 410 | * 411 | * @return array 412 | */ 413 | private function get_options() { 414 | 415 | $settings = array(); 416 | 417 | // First retrieve all the registered settings. 418 | $registered_settings = $this->get_registered_settings(); 419 | 420 | // Loop through each available setting, and setup the setting into the array. 421 | foreach ( $registered_settings as $setting_section ) { 422 | foreach ( $setting_section as $setting ) { 423 | $default = isset( $setting['std'] ) ? $setting['std'] : ''; 424 | $settings[ $setting['id'] ] = $this->get_option( $setting['id'], $default ); 425 | } 426 | } 427 | 428 | // Check if the option for this panel exists into the database. 429 | // If not, create an empty one. 430 | // If option exists, merge with available settings. 431 | if ( ! get_option( $this->func . '_settings' ) ) { 432 | update_option( $this->func . '_settings', $settings ); 433 | } else { 434 | $settings = array_merge( $settings, get_option( $this->func . '_settings' ) ); 435 | } 436 | 437 | return apply_filters( $this->func . '_get_settings', $settings ); 438 | 439 | } 440 | 441 | /** 442 | * Renders the settings page. 443 | * 444 | * @return void 445 | */ 446 | public function render_settings_page() { 447 | ob_start(); 448 | include_once 'includes/views/settings-page.php'; 449 | echo ob_get_clean(); 450 | } 451 | 452 | } 453 | 454 | } 455 | --------------------------------------------------------------------------------