Plugin Directory

Changeset 2426960


Ignore:
Timestamp:
11/27/2020 12:39:36 AM (5 years ago)
Author:
tourwriter
Message:

Update to version 2.0

Location:
minim-by-tourwriter/trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • minim-by-tourwriter/trunk/config.php

    r2265565 r2426960  
    22// Define all global parameters here
    33// Default enpoint is provided in case there is no setting in .env
    4 define('MINIM_DEFAULT_ENDPOINT', 'https://minim-api.tourwriter.com:3030/');
     4define('MINIM_DEFAULT_ENDPOINT', 'https://minim-api.tourwriter.com/');
    55
    66// The if statements are here incase we decide to change global variables in the .env
     
    2121// Define how different item types should show
    2222if (!defined('MINIM_ITEM_TYPES_TO_HIDE')) define('MINIM_ITEM_TYPES_TO_HIDE', ['direction']);
    23 if (!defined('MINIM_SKINNY_TYPES')) define('MINIM_SKINNY_TYPES', ['guide', 'transfer']);
    2423
    2524// Define where in the post or page the itinerary should be displayed
     
    3130}
    3231
    33 // Register admin styles and scripts
     32// Register admin & wp styles and scripts
    3433add_action('admin_enqueue_scripts', 'minim_enqueue_admin_scripts');
     34add_action('wp_enqueue_scripts', 'minim_enqueue_wp_scripts');
    3535
    3636// Register plugin options
     
    4646add_filter('the_content', 'minim_append_itinerary');
    4747
     48// Shortcode
     49add_shortcode( 'minim_itinerary', 'show_minim_itinerary' );
     50
    4851function minim_enqueue_admin_scripts() {
    49   wp_enqueue_script( 'minim-styles', plugin_dir_url(__FILE__) . 'dist/js/minim-by-tourwriter-admin.js');
     52  wp_enqueue_script( 'minim-admin-scripts', plugin_dir_url(__FILE__) . 'dist/js/minim-by-tourwriter-admin.js');
    5053  wp_enqueue_style( 'minim-admin-styles', plugin_dir_url(__FILE__) . 'dist/css/minim-by-tourwriter-admin.css');
     54}
    5155
     56function minim_enqueue_wp_scripts() {
     57    $rand = rand( 1, 99999999999 );
     58  wp_enqueue_style( 'minim-styles', plugin_dir_url(__FILE__) . 'dist/css/minim-by-tourwriter.css', '', $rand );
     59  wp_enqueue_script( 'minim-scripts', plugin_dir_url(__FILE__) . 'dist/js/minim-by-tourwriter.js', ['jquery']);
    5260}
  • minim-by-tourwriter/trunk/dist/js/minim-by-tourwriter-admin.js

    r2265565 r2426960  
    1 !function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=13)}([function(e,t,r){"use strict";var n=r(2),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function c(e){return"[object Function]"===o.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:i,isArrayBuffer:function(e){return"[object ArrayBuffer]"===o.call(e)},isBuffer:function(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isUndefined:a,isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:c,isStream:function(e){return s(e)&&c(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:u,merge:function e(){var t={};function r(r,n){"object"==typeof t[n]&&"object"==typeof r?t[n]=e(t[n],r):t[n]=r}for(var n=0,o=arguments.length;n<o;n++)u(arguments[n],r);return t},deepMerge:function e(){var t={};function r(r,n){"object"==typeof t[n]&&"object"==typeof r?t[n]=e(t[n],r):t[n]="object"==typeof r?e({},r):r}for(var n=0,o=arguments.length;n<o;n++)u(arguments[n],r);return t},extend:function(e,t,r){return u(t,(function(t,o){e[o]=r&&"function"==typeof t?n(t,r):t})),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,o=Array.isArray,i=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),a=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r};e.exports={arrayToObject:a,assign:function(e,t){return Object.keys(t).reduce((function(e,r){return e[r]=t[r],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var i=t[n],a=i.obj[i.prop],s=Object.keys(a),c=0;c<s.length;++c){var u=s[c],f=a[u];"object"==typeof f&&null!==f&&-1===r.indexOf(f)&&(t.push({obj:a,prop:u}),r.push(f))}return function(e){for(;e.length>1;){var t=e.pop(),r=t.obj[t.prop];if(o(r)){for(var n=[],i=0;i<r.length;++i)void 0!==r[i]&&n.push(r[i]);t.obj[t.prop]=n}}}(t),e},decode:function(e,t,r){var n=e.replace(/\+/g," ");if("iso-8859-1"===r)return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch(e){return n}},encode:function(e,t,r){if(0===e.length)return e;var n=e;if("symbol"==typeof e?n=Symbol.prototype.toString.call(e):"string"!=typeof e&&(n=String(e)),"iso-8859-1"===r)return escape(n).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var o="",a=0;a<n.length;++a){var s=n.charCodeAt(a);45===s||46===s||95===s||126===s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122?o+=n.charAt(a):s<128?o+=i[s]:s<2048?o+=i[192|s>>6]+i[128|63&s]:s<55296||s>=57344?o+=i[224|s>>12]+i[128|s>>6&63]+i[128|63&s]:(a+=1,s=65536+((1023&s)<<10|1023&n.charCodeAt(a)),o+=i[240|s>>18]+i[128|s>>12&63]+i[128|s>>6&63]+i[128|63&s])}return o},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},merge:function e(t,r,i){if(!r)return t;if("object"!=typeof r){if(o(t))t.push(r);else{if(!t||"object"!=typeof t)return[t,r];(i&&(i.plainObjects||i.allowPrototypes)||!n.call(Object.prototype,r))&&(t[r]=!0)}return t}if(!t||"object"!=typeof t)return[t].concat(r);var s=t;return o(t)&&!o(r)&&(s=a(t,i)),o(t)&&o(r)?(r.forEach((function(r,o){if(n.call(t,o)){var a=t[o];a&&"object"==typeof a&&r&&"object"==typeof r?t[o]=e(a,r,i):t.push(r)}else t[o]=r})),t):Object.keys(r).reduce((function(t,o){var a=r[o];return n.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),s)}}},function(e,t,r){"use strict";e.exports=function(e,t){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return e.apply(t,r)}}},function(e,t,r){"use strict";var n=r(0);function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,r){if(!t)return e;var i;if(r)i=r(t);else if(n.isURLSearchParams(t))i=t.toString();else{var a=[];n.forEach(t,(function(e,t){null!=e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,(function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))})))})),i=a.join("&")}if(i){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},function(e,t,r){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,r){"use strict";(function(t){var n=r(0),o=r(20),i={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,c={adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==t&&"[object process]"===Object.prototype.toString.call(t))&&(s=r(6)),s),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e)?e:n.isArrayBufferView(e)?e.buffer:n.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):n.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};c.headers={common:{Accept:"application/json, text/plain, */*"}},n.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),n.forEach(["post","put","patch"],(function(e){c.headers[e]=n.merge(i)})),e.exports=c}).call(this,r(19))},function(e,t,r){"use strict";var n=r(0),o=r(21),i=r(3),a=r(23),s=r(26),c=r(27),u=r(7);e.exports=function(e){return new Promise((function(t,f){var l=e.data,p=e.headers;n.isFormData(l)&&delete p["Content-Type"];var d=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";p.Authorization="Basic "+btoa(h+":"+m)}var y=a(e.baseURL,e.url);if(d.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),d.timeout=e.timeout,d.onreadystatechange=function(){if(d&&4===d.readyState&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in d?s(d.getAllResponseHeaders()):null,n={data:e.responseType&&"text"!==e.responseType?d.response:d.responseText,status:d.status,statusText:d.statusText,headers:r,config:e,request:d};o(t,f,n),d=null}},d.onabort=function(){d&&(f(u("Request aborted",e,"ECONNABORTED",d)),d=null)},d.onerror=function(){f(u("Network Error",e,null,d)),d=null},d.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),f(u(t,e,"ECONNABORTED",d)),d=null},n.isStandardBrowserEnv()){var v=r(28),g=(e.withCredentials||c(y))&&e.xsrfCookieName?v.read(e.xsrfCookieName):void 0;g&&(p[e.xsrfHeaderName]=g)}if("setRequestHeader"in d&&n.forEach(p,(function(e,t){void 0===l&&"content-type"===t.toLowerCase()?delete p[t]:d.setRequestHeader(t,e)})),n.isUndefined(e.withCredentials)||(d.withCredentials=!!e.withCredentials),e.responseType)try{d.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&d.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){d&&(d.abort(),f(e),d=null)})),void 0===l&&(l=null),d.send(l)}))}},function(e,t,r){"use strict";var n=r(22);e.exports=function(e,t,r,o,i){var a=new Error(e);return n(a,t,r,o,i)}},function(e,t,r){"use strict";var n=r(0);e.exports=function(e,t){t=t||{};var r={},o=["url","method","params","data"],i=["headers","auth","proxy"],a=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];n.forEach(o,(function(e){void 0!==t[e]&&(r[e]=t[e])})),n.forEach(i,(function(o){n.isObject(t[o])?r[o]=n.deepMerge(e[o],t[o]):void 0!==t[o]?r[o]=t[o]:n.isObject(e[o])?r[o]=n.deepMerge(e[o]):void 0!==e[o]&&(r[o]=e[o])})),n.forEach(a,(function(n){void 0!==t[n]?r[n]=t[n]:void 0!==e[n]&&(r[n]=e[n])}));var s=o.concat(i).concat(a),c=Object.keys(t).filter((function(e){return-1===s.indexOf(e)}));return n.forEach(c,(function(n){void 0!==t[n]?r[n]=t[n]:void 0!==e[n]&&(r[n]=e[n])})),r}},function(e,t,r){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,r){"use strict";var n=String.prototype.replace,o=/%20/g,i=r(1),a={RFC1738:"RFC1738",RFC3986:"RFC3986"};e.exports=i.assign({default:a.RFC3986,formatters:{RFC1738:function(e){return n.call(e,o,"+")},RFC3986:function(e){return String(e)}}},a)},function(e,t,r){e.exports=r(14)},function(e,t,r){"use strict";var n=r(31),o=r(32),i=r(10);e.exports={formats:i,parse:o,stringify:n}},function(e,t,r){r(34),e.exports=r(33)},function(e,t,r){"use strict";var n=r(0),o=r(2),i=r(15),a=r(8);function s(e){var t=new i(e),r=o(i.prototype.request,t);return n.extend(r,i.prototype,t),n.extend(r,t),r}var c=s(r(5));c.Axios=i,c.create=function(e){return s(a(c.defaults,e))},c.Cancel=r(9),c.CancelToken=r(29),c.isCancel=r(4),c.all=function(e){return Promise.all(e)},c.spread=r(30),e.exports=c,e.exports.default=c},function(e,t,r){"use strict";var n=r(0),o=r(3),i=r(16),a=r(17),s=r(8);function c(e){this.defaults=e,this.interceptors={request:new i,response:new i}}c.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[a,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)r=r.then(t.shift(),t.shift());return r},c.prototype.getUri=function(e){return e=s(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function(e){c.prototype[e]=function(t,r){return this.request(n.merge(r||{},{method:e,url:t}))}})),n.forEach(["post","put","patch"],(function(e){c.prototype[e]=function(t,r,o){return this.request(n.merge(o||{},{method:e,url:t,data:r}))}})),e.exports=c},function(e,t,r){"use strict";var n=r(0);function o(){this.handlers=[]}o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){n.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},function(e,t,r){"use strict";var n=r(0),o=r(18),i=r(4),a=r(5);function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return s(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return s(e),t.data=o(t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(s(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},function(e,t,r){"use strict";var n=r(0);e.exports=function(e,t,r){return n.forEach(r,(function(r){e=r(e,t)})),e}},function(e,t){var r,n,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var c,u=[],f=!1,l=-1;function p(){f&&c&&(f=!1,c.length?u=c.concat(u):l=-1,u.length&&d())}function d(){if(!f){var e=s(p);f=!0;for(var t=u.length;t;){for(c=u,u=[];++l<t;)c&&c[l].run();l=-1,t=u.length}c=null,f=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===a||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new h(e,t)),1!==u.length||f||s(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,r){"use strict";var n=r(0);e.exports=function(e,t){n.forEach(e,(function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])}))}},function(e,t,r){"use strict";var n=r(7);e.exports=function(e,t,r){var o=r.config.validateStatus;!o||o(r.status)?e(r):t(n("Request failed with status code "+r.status,r.config,null,r.request,r))}},function(e,t,r){"use strict";e.exports=function(e,t,r,n,o){return e.config=t,r&&(e.code=r),e.request=n,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,r){"use strict";var n=r(24),o=r(25);e.exports=function(e,t){return e&&!n(t)?o(e,t):t}},function(e,t,r){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,r){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,r){"use strict";var n=r(0),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,r,i,a={};return e?(n.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=n.trim(e.substr(0,i)).toLowerCase(),r=n.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([r]):a[t]?a[t]+", "+r:r}})),a):a}},function(e,t,r){"use strict";var n=r(0);e.exports=n.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function o(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=o(window.location.href),function(t){var r=n.isString(t)?o(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0}},function(e,t,r){"use strict";var n=r(0);e.exports=n.isStandardBrowserEnv()?{write:function(e,t,r,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&s.push("expires="+new Date(r).toGMTString()),n.isString(o)&&s.push("path="+o),n.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,t,r){"use strict";var n=r(9);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var r=this;e((function(e){r.reason||(r.reason=new n(e),t(r.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},function(e,t,r){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,r){"use strict";var n=r(1),o=r(10),i=Object.prototype.hasOwnProperty,a={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},s=Array.isArray,c=Array.prototype.push,u=function(e,t){c.apply(e,s(t)?t:[t])},f=Date.prototype.toISOString,l=o.default,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:n.encode,encodeValuesOnly:!1,format:l,formatter:o.formatters[l],indices:!1,serializeDate:function(e){return f.call(e)},skipNulls:!1,strictNullHandling:!1},d=function e(t,r,o,i,a,c,f,l,d,h,m,y,v){var g,b=t;if("function"==typeof f?b=f(r,b):b instanceof Date?b=h(b):"comma"===o&&s(b)&&(b=b.join(",")),null===b){if(i)return c&&!y?c(r,p.encoder,v,"key"):r;b=""}if("string"==typeof(g=b)||"number"==typeof g||"boolean"==typeof g||"symbol"==typeof g||"bigint"==typeof g||n.isBuffer(b))return c?[m(y?r:c(r,p.encoder,v,"key"))+"="+m(c(b,p.encoder,v,"value"))]:[m(r)+"="+m(String(b))];var w,x=[];if(void 0===b)return x;if(s(f))w=f;else{var j=Object.keys(b);w=l?j.sort(l):j}for(var O=0;O<w.length;++O){var E=w[O];a&&null===b[E]||(s(b)?u(x,e(b[E],"function"==typeof o?o(r,E):r,o,i,a,c,f,l,d,h,m,y,v)):u(x,e(b[E],r+(d?"."+E:"["+E+"]"),o,i,a,c,f,l,d,h,m,y,v)))}return x};e.exports=function(e,t){var r,n=e,c=function(e){if(!e)return p;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=o.default;if(void 0!==e.format){if(!i.call(o.formatters,e.format))throw new TypeError("Unknown format option provided.");r=e.format}var n=o.formatters[r],a=p.filter;return("function"==typeof e.filter||s(e.filter))&&(a=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:void 0===e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:void 0===e.delimiter?p.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:p.encode,encoder:"function"==typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:a,formatter:n,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"==typeof c.filter?n=(0,c.filter)("",n):s(c.filter)&&(r=c.filter);var f,l=[];if("object"!=typeof n||null===n)return"";f=t&&t.arrayFormat in a?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var h=a[f];r||(r=Object.keys(n)),c.sort&&r.sort(c.sort);for(var m=0;m<r.length;++m){var y=r[m];c.skipNulls&&null===n[y]||u(l,d(n[y],y,h,c.strictNullHandling,c.skipNulls,c.encode?c.encoder:null,c.filter,c.sort,c.allowDots,c.serializeDate,c.formatter,c.encodeValuesOnly,c.charset))}var v=l.join(c.delimiter),g=!0===c.addQueryPrefix?"?":"";return c.charsetSentinel&&("iso-8859-1"===c.charset?g+="utf8=%26%2310003%3B&":g+="utf8=%E2%9C%93&"),v.length>0?g+v:""}},function(e,t,r){"use strict";var n=r(1),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:n.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},c=function(e,t,r){if(e){var n=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,i=/(\[[^[\]]*])/g,a=r.depth>0&&/(\[[^[\]]*])/.exec(n),s=a?n.slice(0,a.index):n,c=[];if(s){if(!r.plainObjects&&o.call(Object.prototype,s)&&!r.allowPrototypes)return;c.push(s)}for(var u=0;r.depth>0&&null!==(a=i.exec(n))&&u<r.depth;){if(u+=1,!r.plainObjects&&o.call(Object.prototype,a[1].slice(1,-1))&&!r.allowPrototypes)return;c.push(a[1])}return a&&c.push("["+n.slice(a.index)+"]"),function(e,t,r){for(var n=t,o=e.length-1;o>=0;--o){var i,a=e[o];if("[]"===a&&r.parseArrays)i=[].concat(n);else{i=r.plainObjects?Object.create(null):{};var s="["===a.charAt(0)&&"]"===a.charAt(a.length-1)?a.slice(1,-1):a,c=parseInt(s,10);r.parseArrays||""!==s?!isNaN(c)&&a!==s&&String(c)===s&&c>=0&&r.parseArrays&&c<=r.arrayLimit?(i=[])[c]=n:i[s]=n:i={0:n}}n=i}return n}(c,t,r)}};e.exports=function(e,t){var r=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new Error("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?a.charset:e.charset;return{allowDots:void 0===e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:a.comma,decoder:"function"==typeof e.decoder?e.decoder:a.decoder,delimiter:"string"==typeof e.delimiter||n.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null==e)return r.plainObjects?Object.create(null):{};for(var u="string"==typeof e?function(e,t){var r,c={},u=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,f=t.parameterLimit===1/0?void 0:t.parameterLimit,l=u.split(t.delimiter,f),p=-1,d=t.charset;if(t.charsetSentinel)for(r=0;r<l.length;++r)0===l[r].indexOf("utf8=")&&("utf8=%E2%9C%93"===l[r]?d="utf-8":"utf8=%26%2310003%3B"===l[r]&&(d="iso-8859-1"),p=r,r=l.length);for(r=0;r<l.length;++r)if(r!==p){var h,m,y=l[r],v=y.indexOf("]="),g=-1===v?y.indexOf("="):v+1;-1===g?(h=t.decoder(y,a.decoder,d,"key"),m=t.strictNullHandling?null:""):(h=t.decoder(y.slice(0,g),a.decoder,d,"key"),m=t.decoder(y.slice(g+1),a.decoder,d,"value")),m&&t.interpretNumericEntities&&"iso-8859-1"===d&&(m=s(m)),m&&"string"==typeof m&&t.comma&&m.indexOf(",")>-1&&(m=m.split(",")),y.indexOf("[]=")>-1&&(m=i(m)?[m]:m),o.call(c,h)?c[h]=n.combine(c[h],m):c[h]=m}return c}(e,r):e,f=r.plainObjects?Object.create(null):{},l=Object.keys(u),p=0;p<l.length;++p){var d=l[p],h=c(d,u[d],r);f=n.merge(f,h,r)}return n.compact(f)}},function(e,t,r){e.exports=r.p+"css/minim-by-tourwriter-admin.css"},function(e,t,r){"use strict";r.r(t);var n=r(11),o=r.n(n),i=r(12),a=r.n(i);const s=window.origin.includes("localhost:")?"https://development-api.tourwriter.com:3030":"https://minim-api.tourwriter.com:3030";var c=async function(){const e=document.getElementById("minim-validate-button"),t=document.getElementById("minim-info");e&&e.addEventListener("click",async e=>{e.preventDefault();const r=document.getElementById("minim-key");if(t.classList.remove("minim-info--success","minim-info--error"),r.value.length>0)try{await(async e=>(await o.a.post(`${s}/authentication`,a.a.stringify({classic_key:e,strategy:"classic"}),{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data)(r.value)&&t.classList.add("minim-info--success")}catch(e){t.classList.add("minim-info--error")}else t.classList.add("minim-info--error")})};window.onload=function(){c()}}]);
     1!function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=13)}([function(e,t,r){"use strict";var n=r(2),o=Object.prototype.toString;function i(e){return"[object Array]"===o.call(e)}function a(e){return void 0===e}function s(e){return null!==e&&"object"==typeof e}function c(e){return"[object Function]"===o.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),i(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.call(null,e[o],o,e)}e.exports={isArray:i,isArrayBuffer:function(e){return"[object ArrayBuffer]"===o.call(e)},isBuffer:function(e){return null!==e&&!a(e)&&null!==e.constructor&&!a(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){return"undefined"!=typeof FormData&&e instanceof FormData},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&e.buffer instanceof ArrayBuffer},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:s,isUndefined:a,isDate:function(e){return"[object Date]"===o.call(e)},isFile:function(e){return"[object File]"===o.call(e)},isBlob:function(e){return"[object Blob]"===o.call(e)},isFunction:c,isStream:function(e){return s(e)&&c(e.pipe)},isURLSearchParams:function(e){return"undefined"!=typeof URLSearchParams&&e instanceof URLSearchParams},isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:u,merge:function e(){var t={};function r(r,n){"object"==typeof t[n]&&"object"==typeof r?t[n]=e(t[n],r):t[n]=r}for(var n=0,o=arguments.length;n<o;n++)u(arguments[n],r);return t},deepMerge:function e(){var t={};function r(r,n){"object"==typeof t[n]&&"object"==typeof r?t[n]=e(t[n],r):t[n]="object"==typeof r?e({},r):r}for(var n=0,o=arguments.length;n<o;n++)u(arguments[n],r);return t},extend:function(e,t,r){return u(t,(function(t,o){e[o]=r&&"function"==typeof t?n(t,r):t})),e},trim:function(e){return e.replace(/^\s*/,"").replace(/\s*$/,"")}}},function(e,t,r){"use strict";var n=Object.prototype.hasOwnProperty,o=Array.isArray,i=function(){for(var e=[],t=0;t<256;++t)e.push("%"+((t<16?"0":"")+t.toString(16)).toUpperCase());return e}(),a=function(e,t){for(var r=t&&t.plainObjects?Object.create(null):{},n=0;n<e.length;++n)void 0!==e[n]&&(r[n]=e[n]);return r};e.exports={arrayToObject:a,assign:function(e,t){return Object.keys(t).reduce((function(e,r){return e[r]=t[r],e}),e)},combine:function(e,t){return[].concat(e,t)},compact:function(e){for(var t=[{obj:{o:e},prop:"o"}],r=[],n=0;n<t.length;++n)for(var i=t[n],a=i.obj[i.prop],s=Object.keys(a),c=0;c<s.length;++c){var u=s[c],f=a[u];"object"==typeof f&&null!==f&&-1===r.indexOf(f)&&(t.push({obj:a,prop:u}),r.push(f))}return function(e){for(;e.length>1;){var t=e.pop(),r=t.obj[t.prop];if(o(r)){for(var n=[],i=0;i<r.length;++i)void 0!==r[i]&&n.push(r[i]);t.obj[t.prop]=n}}}(t),e},decode:function(e,t,r){var n=e.replace(/\+/g," ");if("iso-8859-1"===r)return n.replace(/%[0-9a-f]{2}/gi,unescape);try{return decodeURIComponent(n)}catch(e){return n}},encode:function(e,t,r){if(0===e.length)return e;var n=e;if("symbol"==typeof e?n=Symbol.prototype.toString.call(e):"string"!=typeof e&&(n=String(e)),"iso-8859-1"===r)return escape(n).replace(/%u[0-9a-f]{4}/gi,(function(e){return"%26%23"+parseInt(e.slice(2),16)+"%3B"}));for(var o="",a=0;a<n.length;++a){var s=n.charCodeAt(a);45===s||46===s||95===s||126===s||s>=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122?o+=n.charAt(a):s<128?o+=i[s]:s<2048?o+=i[192|s>>6]+i[128|63&s]:s<55296||s>=57344?o+=i[224|s>>12]+i[128|s>>6&63]+i[128|63&s]:(a+=1,s=65536+((1023&s)<<10|1023&n.charCodeAt(a)),o+=i[240|s>>18]+i[128|s>>12&63]+i[128|s>>6&63]+i[128|63&s])}return o},isBuffer:function(e){return!(!e||"object"!=typeof e)&&!!(e.constructor&&e.constructor.isBuffer&&e.constructor.isBuffer(e))},isRegExp:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},maybeMap:function(e,t){if(o(e)){for(var r=[],n=0;n<e.length;n+=1)r.push(t(e[n]));return r}return t(e)},merge:function e(t,r,i){if(!r)return t;if("object"!=typeof r){if(o(t))t.push(r);else{if(!t||"object"!=typeof t)return[t,r];(i&&(i.plainObjects||i.allowPrototypes)||!n.call(Object.prototype,r))&&(t[r]=!0)}return t}if(!t||"object"!=typeof t)return[t].concat(r);var s=t;return o(t)&&!o(r)&&(s=a(t,i)),o(t)&&o(r)?(r.forEach((function(r,o){if(n.call(t,o)){var a=t[o];a&&"object"==typeof a&&r&&"object"==typeof r?t[o]=e(a,r,i):t.push(r)}else t[o]=r})),t):Object.keys(r).reduce((function(t,o){var a=r[o];return n.call(t,o)?t[o]=e(t[o],a,i):t[o]=a,t}),s)}}},function(e,t,r){"use strict";e.exports=function(e,t){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return e.apply(t,r)}}},function(e,t,r){"use strict";var n=r(0);function o(e){return encodeURIComponent(e).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}e.exports=function(e,t,r){if(!t)return e;var i;if(r)i=r(t);else if(n.isURLSearchParams(t))i=t.toString();else{var a=[];n.forEach(t,(function(e,t){null!=e&&(n.isArray(e)?t+="[]":e=[e],n.forEach(e,(function(e){n.isDate(e)?e=e.toISOString():n.isObject(e)&&(e=JSON.stringify(e)),a.push(o(t)+"="+o(e))})))})),i=a.join("&")}if(i){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+i}return e}},function(e,t,r){"use strict";e.exports=function(e){return!(!e||!e.__CANCEL__)}},function(e,t,r){"use strict";(function(t){var n=r(0),o=r(20),i={"Content-Type":"application/x-www-form-urlencoded"};function a(e,t){!n.isUndefined(e)&&n.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var s,c={adapter:(("undefined"!=typeof XMLHttpRequest||void 0!==t&&"[object process]"===Object.prototype.toString.call(t))&&(s=r(6)),s),transformRequest:[function(e,t){return o(t,"Accept"),o(t,"Content-Type"),n.isFormData(e)||n.isArrayBuffer(e)||n.isBuffer(e)||n.isStream(e)||n.isFile(e)||n.isBlob(e)?e:n.isArrayBufferView(e)?e.buffer:n.isURLSearchParams(e)?(a(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString()):n.isObject(e)?(a(t,"application/json;charset=utf-8"),JSON.stringify(e)):e}],transformResponse:[function(e){if("string"==typeof e)try{e=JSON.parse(e)}catch(e){}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,validateStatus:function(e){return e>=200&&e<300}};c.headers={common:{Accept:"application/json, text/plain, */*"}},n.forEach(["delete","get","head"],(function(e){c.headers[e]={}})),n.forEach(["post","put","patch"],(function(e){c.headers[e]=n.merge(i)})),e.exports=c}).call(this,r(19))},function(e,t,r){"use strict";var n=r(0),o=r(21),i=r(3),a=r(23),s=r(26),c=r(27),u=r(7);e.exports=function(e){return new Promise((function(t,f){var l=e.data,p=e.headers;n.isFormData(l)&&delete p["Content-Type"];var d=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";p.Authorization="Basic "+btoa(h+":"+m)}var y=a(e.baseURL,e.url);if(d.open(e.method.toUpperCase(),i(y,e.params,e.paramsSerializer),!0),d.timeout=e.timeout,d.onreadystatechange=function(){if(d&&4===d.readyState&&(0!==d.status||d.responseURL&&0===d.responseURL.indexOf("file:"))){var r="getAllResponseHeaders"in d?s(d.getAllResponseHeaders()):null,n={data:e.responseType&&"text"!==e.responseType?d.response:d.responseText,status:d.status,statusText:d.statusText,headers:r,config:e,request:d};o(t,f,n),d=null}},d.onabort=function(){d&&(f(u("Request aborted",e,"ECONNABORTED",d)),d=null)},d.onerror=function(){f(u("Network Error",e,null,d)),d=null},d.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),f(u(t,e,"ECONNABORTED",d)),d=null},n.isStandardBrowserEnv()){var v=r(28),g=(e.withCredentials||c(y))&&e.xsrfCookieName?v.read(e.xsrfCookieName):void 0;g&&(p[e.xsrfHeaderName]=g)}if("setRequestHeader"in d&&n.forEach(p,(function(e,t){void 0===l&&"content-type"===t.toLowerCase()?delete p[t]:d.setRequestHeader(t,e)})),n.isUndefined(e.withCredentials)||(d.withCredentials=!!e.withCredentials),e.responseType)try{d.responseType=e.responseType}catch(t){if("json"!==e.responseType)throw t}"function"==typeof e.onDownloadProgress&&d.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&d.upload&&d.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){d&&(d.abort(),f(e),d=null)})),void 0===l&&(l=null),d.send(l)}))}},function(e,t,r){"use strict";var n=r(22);e.exports=function(e,t,r,o,i){var a=new Error(e);return n(a,t,r,o,i)}},function(e,t,r){"use strict";var n=r(0);e.exports=function(e,t){t=t||{};var r={},o=["url","method","params","data"],i=["headers","auth","proxy"],a=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];n.forEach(o,(function(e){void 0!==t[e]&&(r[e]=t[e])})),n.forEach(i,(function(o){n.isObject(t[o])?r[o]=n.deepMerge(e[o],t[o]):void 0!==t[o]?r[o]=t[o]:n.isObject(e[o])?r[o]=n.deepMerge(e[o]):void 0!==e[o]&&(r[o]=e[o])})),n.forEach(a,(function(n){void 0!==t[n]?r[n]=t[n]:void 0!==e[n]&&(r[n]=e[n])}));var s=o.concat(i).concat(a),c=Object.keys(t).filter((function(e){return-1===s.indexOf(e)}));return n.forEach(c,(function(n){void 0!==t[n]?r[n]=t[n]:void 0!==e[n]&&(r[n]=e[n])})),r}},function(e,t,r){"use strict";function n(e){this.message=e}n.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},n.prototype.__CANCEL__=!0,e.exports=n},function(e,t,r){"use strict";var n=String.prototype.replace,o=/%20/g,i=r(1),a={RFC1738:"RFC1738",RFC3986:"RFC3986"};e.exports=i.assign({default:a.RFC3986,formatters:{RFC1738:function(e){return n.call(e,o,"+")},RFC3986:function(e){return String(e)}}},a)},function(e,t,r){e.exports=r(14)},function(e,t,r){"use strict";var n=r(31),o=r(32),i=r(10);e.exports={formats:i,parse:o,stringify:n}},function(e,t,r){r(35),r(33),e.exports=r(34)},function(e,t,r){"use strict";var n=r(0),o=r(2),i=r(15),a=r(8);function s(e){var t=new i(e),r=o(i.prototype.request,t);return n.extend(r,i.prototype,t),n.extend(r,t),r}var c=s(r(5));c.Axios=i,c.create=function(e){return s(a(c.defaults,e))},c.Cancel=r(9),c.CancelToken=r(29),c.isCancel=r(4),c.all=function(e){return Promise.all(e)},c.spread=r(30),e.exports=c,e.exports.default=c},function(e,t,r){"use strict";var n=r(0),o=r(3),i=r(16),a=r(17),s=r(8);function c(e){this.defaults=e,this.interceptors={request:new i,response:new i}}c.prototype.request=function(e){"string"==typeof e?(e=arguments[1]||{}).url=arguments[0]:e=e||{},(e=s(this.defaults,e)).method?e.method=e.method.toLowerCase():this.defaults.method?e.method=this.defaults.method.toLowerCase():e.method="get";var t=[a,void 0],r=Promise.resolve(e);for(this.interceptors.request.forEach((function(e){t.unshift(e.fulfilled,e.rejected)})),this.interceptors.response.forEach((function(e){t.push(e.fulfilled,e.rejected)}));t.length;)r=r.then(t.shift(),t.shift());return r},c.prototype.getUri=function(e){return e=s(this.defaults,e),o(e.url,e.params,e.paramsSerializer).replace(/^\?/,"")},n.forEach(["delete","get","head","options"],(function(e){c.prototype[e]=function(t,r){return this.request(n.merge(r||{},{method:e,url:t}))}})),n.forEach(["post","put","patch"],(function(e){c.prototype[e]=function(t,r,o){return this.request(n.merge(o||{},{method:e,url:t,data:r}))}})),e.exports=c},function(e,t,r){"use strict";var n=r(0);function o(){this.handlers=[]}o.prototype.use=function(e,t){return this.handlers.push({fulfilled:e,rejected:t}),this.handlers.length-1},o.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},o.prototype.forEach=function(e){n.forEach(this.handlers,(function(t){null!==t&&e(t)}))},e.exports=o},function(e,t,r){"use strict";var n=r(0),o=r(18),i=r(4),a=r(5);function s(e){e.cancelToken&&e.cancelToken.throwIfRequested()}e.exports=function(e){return s(e),e.headers=e.headers||{},e.data=o(e.data,e.headers,e.transformRequest),e.headers=n.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),n.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||a.adapter)(e).then((function(t){return s(e),t.data=o(t.data,t.headers,e.transformResponse),t}),(function(t){return i(t)||(s(e),t&&t.response&&(t.response.data=o(t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))}},function(e,t,r){"use strict";var n=r(0);e.exports=function(e,t,r){return n.forEach(r,(function(r){e=r(e,t)})),e}},function(e,t){var r,n,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var c,u=[],f=!1,l=-1;function p(){f&&c&&(f=!1,c.length?u=c.concat(u):l=-1,u.length&&d())}function d(){if(!f){var e=s(p);f=!0;for(var t=u.length;t;){for(c=u,u=[];++l<t;)c&&c[l].run();l=-1,t=u.length}c=null,f=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===a||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];u.push(new h(e,t)),1!==u.length||f||s(d)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,r){"use strict";var n=r(0);e.exports=function(e,t){n.forEach(e,(function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])}))}},function(e,t,r){"use strict";var n=r(7);e.exports=function(e,t,r){var o=r.config.validateStatus;!o||o(r.status)?e(r):t(n("Request failed with status code "+r.status,r.config,null,r.request,r))}},function(e,t,r){"use strict";e.exports=function(e,t,r,n,o){return e.config=t,r&&(e.code=r),e.request=n,e.response=o,e.isAxiosError=!0,e.toJSON=function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code}},e}},function(e,t,r){"use strict";var n=r(24),o=r(25);e.exports=function(e,t){return e&&!n(t)?o(e,t):t}},function(e,t,r){"use strict";e.exports=function(e){return/^([a-z][a-z\d\+\-\.]*:)?\/\//i.test(e)}},function(e,t,r){"use strict";e.exports=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e}},function(e,t,r){"use strict";var n=r(0),o=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];e.exports=function(e){var t,r,i,a={};return e?(n.forEach(e.split("\n"),(function(e){if(i=e.indexOf(":"),t=n.trim(e.substr(0,i)).toLowerCase(),r=n.trim(e.substr(i+1)),t){if(a[t]&&o.indexOf(t)>=0)return;a[t]="set-cookie"===t?(a[t]?a[t]:[]).concat([r]):a[t]?a[t]+", "+r:r}})),a):a}},function(e,t,r){"use strict";var n=r(0);e.exports=n.isStandardBrowserEnv()?function(){var e,t=/(msie|trident)/i.test(navigator.userAgent),r=document.createElement("a");function o(e){var n=e;return t&&(r.setAttribute("href",n),n=r.href),r.setAttribute("href",n),{href:r.href,protocol:r.protocol?r.protocol.replace(/:$/,""):"",host:r.host,search:r.search?r.search.replace(/^\?/,""):"",hash:r.hash?r.hash.replace(/^#/,""):"",hostname:r.hostname,port:r.port,pathname:"/"===r.pathname.charAt(0)?r.pathname:"/"+r.pathname}}return e=o(window.location.href),function(t){var r=n.isString(t)?o(t):t;return r.protocol===e.protocol&&r.host===e.host}}():function(){return!0}},function(e,t,r){"use strict";var n=r(0);e.exports=n.isStandardBrowserEnv()?{write:function(e,t,r,o,i,a){var s=[];s.push(e+"="+encodeURIComponent(t)),n.isNumber(r)&&s.push("expires="+new Date(r).toGMTString()),n.isString(o)&&s.push("path="+o),n.isString(i)&&s.push("domain="+i),!0===a&&s.push("secure"),document.cookie=s.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}:{write:function(){},read:function(){return null},remove:function(){}}},function(e,t,r){"use strict";var n=r(9);function o(e){if("function"!=typeof e)throw new TypeError("executor must be a function.");var t;this.promise=new Promise((function(e){t=e}));var r=this;e((function(e){r.reason||(r.reason=new n(e),t(r.reason))}))}o.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},o.source=function(){var e;return{token:new o((function(t){e=t})),cancel:e}},e.exports=o},function(e,t,r){"use strict";e.exports=function(e){return function(t){return e.apply(null,t)}}},function(e,t,r){"use strict";var n=r(1),o=r(10),i=Object.prototype.hasOwnProperty,a={brackets:function(e){return e+"[]"},comma:"comma",indices:function(e,t){return e+"["+t+"]"},repeat:function(e){return e}},s=Array.isArray,c=Array.prototype.push,u=function(e,t){c.apply(e,s(t)?t:[t])},f=Date.prototype.toISOString,l=o.default,p={addQueryPrefix:!1,allowDots:!1,charset:"utf-8",charsetSentinel:!1,delimiter:"&",encode:!0,encoder:n.encode,encodeValuesOnly:!1,format:l,formatter:o.formatters[l],indices:!1,serializeDate:function(e){return f.call(e)},skipNulls:!1,strictNullHandling:!1},d=function e(t,r,o,i,a,c,f,l,d,h,m,y,v){var g,b=t;if("function"==typeof f?b=f(r,b):b instanceof Date?b=h(b):"comma"===o&&s(b)&&(b=n.maybeMap(b,(function(e){return e instanceof Date?h(e):e})).join(",")),null===b){if(i)return c&&!y?c(r,p.encoder,v,"key"):r;b=""}if("string"==typeof(g=b)||"number"==typeof g||"boolean"==typeof g||"symbol"==typeof g||"bigint"==typeof g||n.isBuffer(b))return c?[m(y?r:c(r,p.encoder,v,"key"))+"="+m(c(b,p.encoder,v,"value"))]:[m(r)+"="+m(String(b))];var w,x=[];if(void 0===b)return x;if(s(f))w=f;else{var j=Object.keys(b);w=l?j.sort(l):j}for(var O=0;O<w.length;++O){var E=w[O],S=b[E];if(!a||null!==S){var N=s(b)?"function"==typeof o?o(r,E):r:r+(d?"."+E:"["+E+"]");u(x,e(S,N,o,i,a,c,f,l,d,h,m,y,v))}}return x};e.exports=function(e,t){var r,n=e,c=function(e){if(!e)return p;if(null!==e.encoder&&void 0!==e.encoder&&"function"!=typeof e.encoder)throw new TypeError("Encoder has to be a function.");var t=e.charset||p.charset;if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var r=o.default;if(void 0!==e.format){if(!i.call(o.formatters,e.format))throw new TypeError("Unknown format option provided.");r=e.format}var n=o.formatters[r],a=p.filter;return("function"==typeof e.filter||s(e.filter))&&(a=e.filter),{addQueryPrefix:"boolean"==typeof e.addQueryPrefix?e.addQueryPrefix:p.addQueryPrefix,allowDots:void 0===e.allowDots?p.allowDots:!!e.allowDots,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:p.charsetSentinel,delimiter:void 0===e.delimiter?p.delimiter:e.delimiter,encode:"boolean"==typeof e.encode?e.encode:p.encode,encoder:"function"==typeof e.encoder?e.encoder:p.encoder,encodeValuesOnly:"boolean"==typeof e.encodeValuesOnly?e.encodeValuesOnly:p.encodeValuesOnly,filter:a,formatter:n,serializeDate:"function"==typeof e.serializeDate?e.serializeDate:p.serializeDate,skipNulls:"boolean"==typeof e.skipNulls?e.skipNulls:p.skipNulls,sort:"function"==typeof e.sort?e.sort:null,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:p.strictNullHandling}}(t);"function"==typeof c.filter?n=(0,c.filter)("",n):s(c.filter)&&(r=c.filter);var f,l=[];if("object"!=typeof n||null===n)return"";f=t&&t.arrayFormat in a?t.arrayFormat:t&&"indices"in t?t.indices?"indices":"repeat":"indices";var h=a[f];r||(r=Object.keys(n)),c.sort&&r.sort(c.sort);for(var m=0;m<r.length;++m){var y=r[m];c.skipNulls&&null===n[y]||u(l,d(n[y],y,h,c.strictNullHandling,c.skipNulls,c.encode?c.encoder:null,c.filter,c.sort,c.allowDots,c.serializeDate,c.formatter,c.encodeValuesOnly,c.charset))}var v=l.join(c.delimiter),g=!0===c.addQueryPrefix?"?":"";return c.charsetSentinel&&("iso-8859-1"===c.charset?g+="utf8=%26%2310003%3B&":g+="utf8=%E2%9C%93&"),v.length>0?g+v:""}},function(e,t,r){"use strict";var n=r(1),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowPrototypes:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decoder:n.decode,delimiter:"&",depth:5,ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictNullHandling:!1},s=function(e){return e.replace(/&#(\d+);/g,(function(e,t){return String.fromCharCode(parseInt(t,10))}))},c=function(e,t){return e&&"string"==typeof e&&t.comma&&e.indexOf(",")>-1?e.split(","):e},u=function(e,t,r,n){if(e){var i=r.allowDots?e.replace(/\.([^.[]+)/g,"[$1]"):e,a=/(\[[^[\]]*])/g,s=r.depth>0&&/(\[[^[\]]*])/.exec(i),u=s?i.slice(0,s.index):i,f=[];if(u){if(!r.plainObjects&&o.call(Object.prototype,u)&&!r.allowPrototypes)return;f.push(u)}for(var l=0;r.depth>0&&null!==(s=a.exec(i))&&l<r.depth;){if(l+=1,!r.plainObjects&&o.call(Object.prototype,s[1].slice(1,-1))&&!r.allowPrototypes)return;f.push(s[1])}return s&&f.push("["+i.slice(s.index)+"]"),function(e,t,r,n){for(var o=n?t:c(t,r),i=e.length-1;i>=0;--i){var a,s=e[i];if("[]"===s&&r.parseArrays)a=[].concat(o);else{a=r.plainObjects?Object.create(null):{};var u="["===s.charAt(0)&&"]"===s.charAt(s.length-1)?s.slice(1,-1):s,f=parseInt(u,10);r.parseArrays||""!==u?!isNaN(f)&&s!==u&&String(f)===u&&f>=0&&r.parseArrays&&f<=r.arrayLimit?(a=[])[f]=o:a[u]=o:a={0:o}}o=a}return o}(f,t,r,n)}};e.exports=function(e,t){var r=function(e){if(!e)return a;if(null!==e.decoder&&void 0!==e.decoder&&"function"!=typeof e.decoder)throw new TypeError("Decoder has to be a function.");if(void 0!==e.charset&&"utf-8"!==e.charset&&"iso-8859-1"!==e.charset)throw new TypeError("The charset option must be either utf-8, iso-8859-1, or undefined");var t=void 0===e.charset?a.charset:e.charset;return{allowDots:void 0===e.allowDots?a.allowDots:!!e.allowDots,allowPrototypes:"boolean"==typeof e.allowPrototypes?e.allowPrototypes:a.allowPrototypes,arrayLimit:"number"==typeof e.arrayLimit?e.arrayLimit:a.arrayLimit,charset:t,charsetSentinel:"boolean"==typeof e.charsetSentinel?e.charsetSentinel:a.charsetSentinel,comma:"boolean"==typeof e.comma?e.comma:a.comma,decoder:"function"==typeof e.decoder?e.decoder:a.decoder,delimiter:"string"==typeof e.delimiter||n.isRegExp(e.delimiter)?e.delimiter:a.delimiter,depth:"number"==typeof e.depth||!1===e.depth?+e.depth:a.depth,ignoreQueryPrefix:!0===e.ignoreQueryPrefix,interpretNumericEntities:"boolean"==typeof e.interpretNumericEntities?e.interpretNumericEntities:a.interpretNumericEntities,parameterLimit:"number"==typeof e.parameterLimit?e.parameterLimit:a.parameterLimit,parseArrays:!1!==e.parseArrays,plainObjects:"boolean"==typeof e.plainObjects?e.plainObjects:a.plainObjects,strictNullHandling:"boolean"==typeof e.strictNullHandling?e.strictNullHandling:a.strictNullHandling}}(t);if(""===e||null==e)return r.plainObjects?Object.create(null):{};for(var f="string"==typeof e?function(e,t){var r,u={},f=t.ignoreQueryPrefix?e.replace(/^\?/,""):e,l=t.parameterLimit===1/0?void 0:t.parameterLimit,p=f.split(t.delimiter,l),d=-1,h=t.charset;if(t.charsetSentinel)for(r=0;r<p.length;++r)0===p[r].indexOf("utf8=")&&("utf8=%E2%9C%93"===p[r]?h="utf-8":"utf8=%26%2310003%3B"===p[r]&&(h="iso-8859-1"),d=r,r=p.length);for(r=0;r<p.length;++r)if(r!==d){var m,y,v=p[r],g=v.indexOf("]="),b=-1===g?v.indexOf("="):g+1;-1===b?(m=t.decoder(v,a.decoder,h,"key"),y=t.strictNullHandling?null:""):(m=t.decoder(v.slice(0,b),a.decoder,h,"key"),y=n.maybeMap(c(v.slice(b+1),t),(function(e){return t.decoder(e,a.decoder,h,"value")}))),y&&t.interpretNumericEntities&&"iso-8859-1"===h&&(y=s(y)),v.indexOf("[]=")>-1&&(y=i(y)?[y]:y),o.call(u,m)?u[m]=n.combine(u[m],y):u[m]=y}return u}(e,r):e,l=r.plainObjects?Object.create(null):{},p=Object.keys(f),d=0;d<p.length;++d){var h=p[d],m=u(h,f[h],r,"string"==typeof e);l=n.merge(l,m,r)}return n.compact(l)}},function(e,t,r){e.exports=r.p+"css/minim-by-tourwriter-admin.css"},function(e,t,r){e.exports=r.p+"css/minim-by-tourwriter.css"},function(e,t,r){"use strict";r.r(t);var n=r(11),o=r.n(n),i=r(12),a=r.n(i);const s=window.origin.includes("localhost:")?"https://development-api.tourwriter.com:3030":"https://minim-api.tourwriter.com:3030";var c=async function(){const e=document.getElementById("minim-validate-button"),t=document.getElementById("minim-info");e&&e.addEventListener("click",async e=>{e.preventDefault();const r=document.getElementById("minim-key");if(t.classList.remove("minim-info--success","minim-info--error"),r.value.length>0)try{await(async e=>(await o.a.post(s+"/authentication",a.a.stringify({classic_key:e,strategy:"classic"}),{headers:{"Content-Type":"application/x-www-form-urlencoded"}})).data)(r.value)&&t.classList.add("minim-info--success")}catch(e){t.classList.add("minim-info--error")}else t.classList.add("minim-info--error")})};window.onload=function(){c()}}]);
  • minim-by-tourwriter/trunk/includes/admin/options-output.php

    r2305320 r2426960  
    103103 
    104104    </form>
     105    <div>
     106      <h3>Shortcode</h3>
     107      <p>The Minim itinerary shortcode makes it possible to display a Minim itinerary on any page or post.</p>
     108      <p>The shortcode acccepts 1 parameter:</p>
     109      <p><strong>id</strong> : this is the ID of the itinerary which can be found in Minim</p>
     110      <h3>Example implementation</h3>
     111      <p>[minim_itinerary id=&quot;MinimID&quot;]</p>
     112    </div>
    105113  </div>
    106114  <?php
  • minim-by-tourwriter/trunk/includes/minim/custom-fields.php

    r2305320 r2426960  
    66  return [
    77    'itinerary_id',
    8     'itinerary_display'
     8    'itinerary_display',
     9    'itinerary_key'
    910  ];
    1011}
     
    3132  $itinerary_ID = get_post_meta( $post_id , 'itinerary_id', true );
    3233  $itinerary_display = get_post_meta( $post_id , 'itinerary_display', true );
     34  $itinerary_key = get_post_meta( $post_id , 'itinerary_key', true );
    3335
    3436  // Ensure default display option is selected if no value is present
     
    8385    <span>Hide itinerary</span>
    8486  </label>
     87  <label for="itinerary_key">
     88    <strong class="minim-title"><?php _e('Minim Classic Key', 'minim-by-tourwriter') ?></strong>
     89    <?php _e('If you want to use a different API key to the one specified in the settings you can add that here.') ?>
     90    <div>
     91      <input
     92        class="minim-id widefat"
     93        id="itinerary_key"
     94        name="itinerary_key"
     95        type="text"
     96        value="<?php echo esc_attr( $itinerary_key ); ?>">
     97    </div>
     98  </label>
    8599  <?php
    86100}
     
    131145          }
    132146        break;
     147        case 'itinerary_key':
     148          $value = sanitize_text_field( $_POST[$field] );
     149        break;
    133150        default:
    134151          $value = '';
  • minim-by-tourwriter/trunk/includes/minim/functions.php

    r2305320 r2426960  
    1010    if( $a['orders'] || $b['orders'] ) {
    1111
    12       // Always set item lower if it's value is 0
    13       if( $a['orders'][0]['order'] === 0 ) {
     12      // Always set item lower if it's value is 0 or there is no order set
     13      if(!is_array($a['orders']) || !is_array($b['orders']) || $a['orders'][0]['order'] === 0) {
    1414        return -1;
    1515      }
     
    3232// Each itinerary contains assets, bookable_items and non_bookable_items
    3333function minim_get_itinerary_items( $itinerary ) {
     34  // Abort if there are no items in the itinerary
     35  if(!isset($itinerary['items'])) {
     36    return;
     37  }
     38
    3439  $items = [];
    3540
     
    3944    $nb_items = $i['non_bookable_items'];
    4045
    41     // Add non_bookable items
    42     if( is_array( $nb_items ) && !empty( $nb_items ) ) {
    43       $item = $nb_items[0];
    44 
    45       // Change 'date' to 'start_date' to match bookable items data structure
    46       if( !array_key_exists( 'start_date', $item ) && isset( $item['date'] ) ) {
    47         $item['start_date'] = $item['date'];
    48         unset( $item['date'] );
    49         array_push( $items, $item );
    50       }
    51     }
    52 
    53     // Add bookable items
    54     if( is_array( $b_items ) && !empty( $b_items ) ) {
    55 
    56       if( $b_items[0]['type'] !== 'fee' ) {
    57         array_push( $items, $b_items[0] );
    58       }
    59      
     46    // Check for multiple non bookable items
     47    foreach($nb_items as $nb) {
     48      // Add non_bookable items
     49      if( is_array( $nb ) && !empty( $nb ) ) {
     50        $item = $nb;
     51
     52        // Change 'date' to 'start_date' to match bookable items data structure
     53        if( !array_key_exists( 'start_date', $item ) && isset( $item['date'] ) ) {
     54          $item['start_date'] = $item['date'];
     55          unset( $item['date'] );
     56          array_push( $items, $item );
     57        }
     58      }
     59    }
     60    // Multiple bookable items per supplier may exist
     61    foreach($b_items as $b) {
     62      // Add bookable items
     63      if( is_array( $b ) && !empty( $b ) ) {
     64
     65        if( $b['type'] !== 'fee' ) {
     66          array_push( $items, $b );
     67        }
     68       
     69      }
    6070    }
    6171  }
     
    6878
    6979function minim_get_itinerary_item_image( $item ) {
    70   $imgSize = minim_get_itinerary_item_image_size( $item );
    71   $imgClass = minim_get_itinerary_item_image_class( $imgSize );
    72 
    7380  if( is_array( $item['assets'] ) && !empty( $item['assets'] ) ) {
    7481    $assets = $item['assets'][0];
     
    7986      if( isset( $image['thumbnail'] ) ) {
    8087        $thumb = esc_html( $image['thumbnail'] );
    81         $src = str_replace( 'thumbnail', '/'.$imgSize.'/assets/', $thumb );
    82 
    83         return '<figure class="wp-block-image minim-itinerary-item-image'.$imgClass.'"><img src="'.$src.'" alt="'.$item_name.'"></figure>';
     88        $src = str_replace( 'thumbnail', '/'.MINIM_IMAGE_STANDARD.'/assets/', $thumb );
     89
     90        return'
     91        <div class="minim-itinerary-item-image">
     92          <img src="'.$src.'" alt="'.$item_name.'">
     93        </div>';
    8494      }
    8595    }
     
    102112}
    103113
    104 function minim_get_itinerary_item_image_size( $item ) {
    105   $size = MINIM_IMAGE_STANDARD;
    106   $infoLength = strlen( $item['name'] ) * 3 + strlen( $item['description'] );
    107 
    108   // Use square image if info size is quite long
    109   if( $infoLength > 500 ) {
    110     $size = MINIM_IMAGE_SQUARE;
    111   }
    112 
    113   // Use thumbnail if item should show as "skinny"
    114   if( in_array( $item['type'], MINIM_SKINNY_TYPES ) ) {
    115     $size = MINIM_IMAGE_THUMBNAIL;
    116   }
    117 
    118   return $size;
    119 }
    120 
    121114function minim_get_item_addons( $item ) {
    122115  $item_addons = isset( $item['addons'] ) ? $item['addons'] : '';
     
    145138  $title = '';
    146139  $start = $item['start_date'];
    147   $end = $item['end_date'];
    148140
    149141  if( isset( $item['name'] ) ) {
    150     $title = '<h2 class="minim-itinerary-item-title">'.$item['name'];
    151 
    152     if( isset( $end ) && $start !== $end ) {
    153       $numDays = minim_get_day_difference( $start, $end );
     142    $item_title = isset( $item['name'] ) ? esc_html( $item['name'] ) : '';
     143    if( isset( $item['classic_override'] ))
     144      $item_title = esc_html( $item['classic_override'] );
     145     
     146    $title = '<h3 class="minim-itinerary-item-title">'.$item_title;
     147
     148    if( isset( $item['end_date'] ) && $start !== $item['end_date'] ) {
     149      $numDays = minim_get_day_difference( $start, $item['end_date'] );
    154150
    155151      if( $item['type'] === 'accommodation' ) {
     
    159155      }
    160156    }
    161     $title .= '</h2>';
     157    $title .= '</h3>';
    162158  }
    163159
     
    168164  $html = '';
    169165  $day = 0;
     166
     167  if(!$items) {
     168    return;
     169  }
    170170
    171171  // Assume that the first item in an itinerary appears on the first day
     
    190190    if( $daysPassed !== $day ){
    191191      $day = $daysPassed;
    192       $html .= '<h3 class="minim-itinerary-day"><span>Day '.$day.'</span></h3>';
    193     }
    194 
    195     // Add a CSS class for skinny items
    196     if( in_array( $item_type, MINIM_SKINNY_TYPES ) ) {
    197       $itemClass .= ' minim-itinerary-item--skinny';
     192      $html .= '<h4>Day '.$day.'</h4>';
    198193    }
    199194
     
    224219  $itinerary_ID = get_post_meta( $post_ID, 'itinerary_id', true );
    225220  $itinerary_display = get_post_meta( $post_ID, 'itinerary_display', true );
     221  $itinerary_key = get_post_meta( $post_ID, 'itinerary_key', true );
    226222  $minim_API = minim_get_options();
    227223  $itineraryContent = '';
    228224
    229225  if( $itinerary_ID && $minim_API['minim_key'] !== '' ){
    230     $itinerary = minim_get_itinerary_data( $itinerary_ID );
     226    // Use Classic Key set on the itinerary level if it exists
     227    if($itinerary_key && $itinerary_key !== '') {
     228      $itinerary = minim_get_itinerary_data( $itinerary_ID, $itinerary_key );
     229    } else {
     230      $itinerary = minim_get_itinerary_data( $itinerary_ID );
     231    }
     232   
    231233    if ( isset( $itinerary['items'] ) ){
    232234
     
    271273  return new WP_Error( 'itinerary', __( 'This content cannot be displayed. Please ensure that you have entered the correct Itinerary ID.', 'minim-by-tourwriter' ) );
    272274}
     275
     276function show_minim_itinerary( $atts ) {
     277  // normalize attribute keys, lowercase
     278  $atts = array_change_key_case((array)$atts, CASE_LOWER);
     279
     280  // Return empty string if there is no itinerary ID set
     281  if(!isset($atts['id'])) {
     282    return '';
     283  }
     284
     285  $id = $atts['id'];
     286
     287  // Use the classic key from the shortcode if it exists
     288  if(isset($atts['classic-key'])) {
     289    $key = $atts['classic-key'];
     290  } else {
     291    $key = MINIM_API_KEY;
     292  }
     293
     294  // Don't return any content if we can't find the classic key
     295  if($key === '') {
     296    return '';
     297  }
     298
     299  // Get the itinerary content using the itinerary ID and classic key
     300  $itinerary = minim_get_itinerary_data($id, $key);
     301  $items = minim_get_itinerary_items($itinerary);
     302  $content = minim_format_itinerary_items($items);
     303
     304  return $content;
     305}
     306 
  • minim-by-tourwriter/trunk/includes/minim/requests.php

    r2305320 r2426960  
    1515}
    1616
    17 function minim_get_access_token() {
     17function minim_get_access_token($key) {
    1818  $url = MINIM_ENDPOINT.'authentication';
    1919  $data = [
    20     'classic_key' => MINIM_API_KEY,
     20    'classic_key' => $key,
    2121    'strategy' => 'classic'
    2222  ];
     
    3535}
    3636
    37 function minim_get_request_headers() {
    38   $tokenResult = minim_get_access_token();
     37function minim_get_request_headers($key) {
     38  $tokenResult = minim_get_access_token($key);
    3939
    4040  if(!is_array($tokenResult)) {
     
    6464/*
    6565* $id (string) Minim itinerary ID
     66* $key (string) Minim Classic Key, defaults to global key if not set on the itinerary
    6667*/
    67 function minim_get_itinerary_data( $id ) {
    68   $url = MINIM_ENDPOINT.'itineraries/'.$id.MINIM_REQUEST_PARAMS;
     68function minim_get_itinerary_data( $id, $key = MINIM_API_KEY ) {
     69  $cache_dir = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache/minim-cache';
     70  $cache_file = $_SERVER['DOCUMENT_ROOT'] . '/wp-content/cache/minim-cache/'. $id . '.json';
     71  $json_data = '';
    6972
    70   $headers = minim_get_request_headers();
    71   if( !$headers ) return false;
     73  if (!file_exists($cache_dir)) {
     74    mkdir($cache_dir, 0777, true);
     75  }
     76 
     77  if (file_exists($cache_file) && (filemtime($cache_file) > (time() - 60 * 60 * 24 ))) {
     78    // Cache file is less than five minutes old.
     79    // Don't bother refreshing, just use the file as-is.
     80    $json_data = file_get_contents($cache_file);
     81 } else {
     82    // Our cache is out-of-date, so load the data from our remote server,
     83    // and also save it over our cache for next time.
     84    $url = MINIM_ENDPOINT.'itineraries/'.$id.MINIM_REQUEST_PARAMS;
    7285
    73   $response = wp_remote_get( $url, ['headers' => $headers] );
     86    $headers = minim_get_request_headers($key);
     87    if( !$headers ) return false;
     88 
     89    $response = wp_remote_get( $url, ['headers' => $headers] );
     90 
     91    if ( is_wp_error( $response ) ) {
     92      if( WP_DEBUG ) {
     93        $error_message = $response->get_error_message();
     94        echo "Something went wrong with the GET request: $error_message";
     95        var_dump( $response );
     96      }
     97      return false;
     98    } else {
     99      $json_data = $response['body'];
     100    }
     101      file_put_contents($cache_file, $json_data, LOCK_EX);
     102 }
    74103
    75   if ( is_wp_error( $response ) ) {
    76     if( WP_DEBUG ) {
    77       $error_message = $response->get_error_message();
    78       echo "Something went wrong with the GET request: $error_message";
    79       var_dump( $response );
    80     }
    81     return false;
    82   } else {
    83     return json_decode( $response['body'], true );
    84   }
     104  return json_decode( $json_data, true );
    85105}
    86 
    87 function minim_get_itineraries_data( $limit=100 ) {
    88   $url = MINIM_ENDPOINT.'itineraries'.MINIM_REQUEST_PARAMS.'&$limit='.$limit;
    89 
    90   $headers = minim_get_request_headers();
    91   if( !$headers ) return false;
    92 
    93   return minim_fetch_data( $url, $headers );
    94 }
    95 
    96 function minim_get_itineraries_content( $postsPerPage=100 ) {
    97   $posts = get_posts( ['posts_per_page' => $postsPerPage, 'post_type' => 'itinerary'] );
    98   $itineraries = minim_get_itineraries_data();
    99 
    100   if( !$itineraries ) {
    101     return '<p class="minim-error">ERROR: unable to retrieve itineraries from Minim</p>';
    102   }
    103 
    104   // Return error message is no data was returned from Minim
    105   if( !array_key_exists( 'data', $itineraries ) ) {
    106     return '<p class="minim-error">ERROR: No itineraries were found.</p>';
    107   }
    108 
    109   // Return error message if the access token is incorrect
    110   if( array_key_exists( 'name', $itineraries['data'] ) ) {
    111     if( $itineraries['data']['name'] == 'JsonWebTokenError' ) {
    112       return '<p class="minim-error">ERROR: There was a problem generating an access token for the Minim API request</p>';
    113     }
    114   }
    115 
    116   $html = '';
    117 
    118   foreach( $posts as $post ){
    119     $itin_ID = get_post_meta( $post->ID, 'itinerary_id' );
    120     $html .= '<div class="minim-itineraries-list-item">';
    121     $html .= '<a href="/'.$post->post_name.'"><h2>'.$post->post_title.'</h2></a>';
    122 
    123     foreach( $itineraries['data'] as $image ){
    124       if( $image['id'] === $itin_ID ){
    125         if( empty( $image['heros'] ) ){
    126           $itin_img = get_post_meta( $post->ID, 'itinerary_image' );
    127           $html .= '<img src="'.$itin_img['sizes']['large'].'" alt="'.TW_PLACEHOLDER_IMG_URL.'">';
    128         } else {
    129           foreach( $image['heros'] as $img ){
    130             $html .= '<img src="'.$img['image_urls']['square'].'" alt="'.$img['image_urls']['square'].'">';
    131           }
    132         }
    133       }
    134     }
    135     $html .= '</div>';
    136   }
    137 
    138   return $html;
    139 }
  • minim-by-tourwriter/trunk/languages/minim-by-tourwriter.pot

    r2305320 r2426960  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Minim by Tourwriter 1.0.1\n"
     5"Project-Id-Version: Minim by Tourwriter 2.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/minim-by-tourwriter\n"
    7 "Last-Translator: Graeme Thornber <[email protected]>\n"
    8 "Language-Team: \n"
     7"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     8"Language-Team: LANGUAGE <[email protected]>\n"
    99"MIME-Version: 1.0\n"
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2020-04-14T23:16:20+00:00\n"
    13 "PO-Revision-Date: 2020-04-14T23:16:20+00:00\n"
     12"POT-Creation-Date: 2020-11-27T00:24:38+00:00\n"
     13"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.4.0\n"
    1515"X-Domain: minim-by-tourwriter\n"
    1616
    1717#. Plugin Name of the plugin
    18 #: includes/minim/custom-fields.php:17
     18#: includes/minim/custom-fields.php:18
    1919msgid "Minim by Tourwriter"
    2020msgstr ""
     
    4949
    5050#: includes/admin/options-output.php:30
     51#: includes/minim/custom-fields.php:88
    5152msgid "Minim Classic Key"
    5253msgstr ""
     
    9293msgstr ""
    9394
    94 #: includes/minim/custom-fields.php:61
     95#: includes/minim/custom-fields.php:63
    9596msgid "Itinerary ID"
    9697msgstr ""
    9798
    98 #: includes/minim/custom-fields.php:62
     99#: includes/minim/custom-fields.php:64
    99100msgid "The ID of the itinerary you would like to show. This is a random string of letters and numbers around 30 characters long and can be found in the URL (address bar) of your itinerary in Minim."
    100101msgstr ""
    101102
    102 #: includes/minim/custom-fields.php:72
     103#: includes/minim/custom-fields.php:74
    103104msgid "Itinerary placement"
    104105msgstr ""
    105106
    106 #: includes/minim/functions.php:241
     107#: includes/minim/functions.php:243
    107108msgid "This itinerary does not seem to contain any viewable items. Please update the itinerary in Minim to view the items here."
    108109msgstr ""
    109110
    110 #: includes/minim/functions.php:271
     111#: includes/minim/functions.php:273
    111112msgid "This content cannot be displayed. Please ensure that you have entered the correct Itinerary ID."
    112113msgstr ""
  • minim-by-tourwriter/trunk/minim-by-tourwriter.php

    r2305320 r2426960  
    55Description: Integrate Tourwriter's Minim software with your Wordpress website to display beautiful itineraries
    66Author: Tourwriter
    7 Version: 1.0.1
     7Version: 2.0
    88Author URI: https://www.tourwriter.com
    99Text Domain: minim-by-tourwriter
     
    2424
    2525// Admin Panel folders
    26 require_once MINIM_PLUGIN_DIR . 'includes/admin/options-output.php'; // Add option to side menus
     26require_once MINIM_PLUGIN_DIR . 'includes/admin/options-output.php'; // Add fields to settings page
    2727require_once MINIM_PLUGIN_DIR . 'includes/admin/options.php'; // this loads inside the output.
    2828
     
    3131
    3232// Custom Fields
    33 require_once MINIM_PLUGIN_DIR . 'includes/minim/custom-fields.php';
     33// TEMPORARILY DISABLE THE SIDEBAR, IT WILL BE REMOVED ALTOGETHER IN A FUTURE VERSION
     34// require_once MINIM_PLUGIN_DIR . 'includes/minim/custom-fields.php';
    3435
    3536// Minim integration - minim folder
  • minim-by-tourwriter/trunk/readme.txt

    r2305320 r2426960  
    44Plugin Name: Minim by Tourwriter
    55Plugin URI: https://websitebuilder.tourwriter.com
    6 Tags: travel, itinerary, tours, software, tour operator, dmc, tourwriter, minim
     6Tags: itinerary, software, tour operators, tours, travel, itinerary builder software
    77Requires at least: 4.4
    8 Tested up to: 5.4.1
     8Tested up to: 5.5.3
    99Requires PHP: 5.2
    10 Stable tag: 1.0.1
     10Stable tag: 2.0
    1111
    1212== Description ==
     
    1414= Easily display your Minim itineraries on your website =
    1515
    16 Integrates Minim tour operator software with Wordpress by allowing itineraries created in Minim to be embedded in your Wordpress posts and pages.
     16Minim is beautifully simple itinerary builder software that allows tour operators to craft, book, and manage their itineraries.
    1717
    18 Displaying Minim itineraries on your website is now as simple as creating regular posts.
     18The **Minim by Tourwriter** plugin allows you to integrate your website with Minim. Together, you can seamlessly showcase your Minim itineraries on your website for your current and potential customers to see.
    1919
    20 == Installation ==
     20Not currently using Minim to build your itineraries? [Start a 21 day free trial now](https://minim.tourwriter.com/free-trial?ref=plugin).
    2121
    22 = An active Minim account is required to use this plugin =
     22= How it works =
    2323
    24 If you don't have a Minim account you can [sign up for a free trial](https://minim.tourwriter.com/free-trial?ref=plugin).
    25 
    26 Once the plugin is installed and activated go to **Settings->Minim by Tourwriter** and follow the instructions to add your **Minim Classic Key** which can be found on the profile page in Minim. This acts as an API key to allow your website to access itineraries on your Minim account.
    27 
    28 Now when you navigate to a post or page in your Wordpress admin you should see a new **Minim by Tourwriter** tab in the right hand sidebar of the edit screen. Obtain from Minim the ID of the itinerary you want to display and paste it into the Itinerary ID field.
    29 
    30 Once your changes are saved you should be able to visit the page and see your Minim Itinerary embedded as part of the page content.
     24Simply build your itinerary in Minim and then use the **Minim by Tourwriter** shortcode to embed the itinerary on any post or page on your website.
    3125
    3226== Links ==
    3327
    34 Here's a sample website that uses **Minim by Tourwriter** to display itineraries: [https://asgard.tourwriter.com](https://asgard.tourwriter.com/?ref=plugin)
     28Here's a sample website that uses **Minim by Tourwriter** to display itineraries: [https://asgard.tourwriter.com](https://asgard.tourwriter.com/?ref=plugin).
     29
     30[Visit our help article](https://itinerarybuilder.tourwriter.com/help-articles/integrations/wordpress-plugin/?ref=plugin) for a more detailed overview of the plugin set up.
    3531
    3632== Screenshots ==
    3733
    38 1. The plugin in action with the [Minim Website Builder](https://websitebuilder.tourwriter.com/?ref=plugin)
     341. The plugin in action with a generic Wordpress theme
    3935
    4036== Frequently Asked Questions ==
     
    4238= What is Minim? =
    4339
    44 [Minim](https://itinerarybuilder.tourwriter.com/?ref=plugin) is an online itinerary builder built by [Tourwriter](https://www.tourwriter.com/?ref=plugin) designed to help tour operators thrive by saving huge amounts of time in their daily business.
     40[Minim](https://itinerarybuilder.tourwriter.com/?ref=plugin) is an online itinerary builder built by the team at [Tourwriter](https://www.tourwriter.com/?ref=plugin). Complete with beautiful mobile optimised digital itineraries, automatic bookings functionality, complex pricing management, traveller collaboration and more. Minim is perfect for tour operators that want to take their business to the next level.
     41
     42The **Minim by Tourwriter** plugin allows you to embed your Minim itineraries directly onto your WordPress website.
     43
     44Not currently using Minim to build your itineraries? [Start a 21 day free trial now](https://minim.tourwriter.com/free-trial?ref=plugin).
    4545
    4646= How do I show Minim itineraries on my website? =
    4747
    48 See installation instructions in the section above.
     48[Visit our help article](https://itinerarybuilder.tourwriter.com/help-articles/integrations/wordpress-plugin/?ref=plugin) for a more detailed overview of the plugin set up.
    4949
    5050= Where do I find the ID of an itinerary in Minim? =
     
    5656It should give you a verification message that the key you have entered is valid, or an error message if the key is not valid.
    5757
    58 If you don't see any message at all it does not mean that the rest of the plugin's features are not working, so you can proceed with setup instructions in this case as long as you know your **Minim Classic Key** is correct.
    59 
    6058When you first enter your **Minim Classic Key**, clicking the **Check API Key** button only validates the key, but does not save it. You still need to click the **Save Settings** button before you can start using the plugin.
    6159
    62 = Why doesn't the Itinerary ID field appear on the edit screen of my post? =
     60== Installation ==
    6361
    64 * The **Minim by Tourwriter** tab containing the Itinerary ID field will appear on regular Wordpress posts and pages only. If you're using Custom Post Types it won't appear unless the name of the post type is Itinerary.
     62= An active Minim account is required to use this plugin =
    6563
    66 * Check that you have saved your **Minim Classic Key** in **Settings->Minim by Tourwriter**.
     64If you don't have a Minim account you can [start a 21 day free trial now](https://minim.tourwriter.com/free-trial/?ref=plugin).
    6765
    68 * These fields may not appear if you're using a version of Wordpress older than what is required.
     66Once the plugin is installed and activated on your WordPress website go to **Settings->Minim by Tourwriter** and follow the instructions to add your **Minim Classic Key** which can be found on the profile page in Minim.
     67
     68The **Minim by Tourwriter** plugin uses a shortcode which you can paste onto any page or post on your WordPress website. Simply copy from Minim the ID of the itinerary you want to display and paste it into the plugin shortcode to embed your itinerary on your website. [minim_itinerary id="MinimID"]
     69
     70Once your changes are saved you should be able to visit the page and see your Minim Itinerary embedded in the place where you inserted the shortcode.
    6971
    7072== Changelog ==
     73
     74= 2.0 =
     75*Release Date - 27 November 2020*
     76
     77* New - Add ability to insert itinerary using shortcode instead of attaching it to the main content area via a custom field.
     78* Enhancement - Add basic layout styling for itinerary items
     79* Enhancement - Use heading tags for itinerary item titles to better adopt existing website styling.
     80* Enhancement - Add caching for data returned from the Minim API
     81* Fix - Prevent PHP errors and warnings when WP_DEBUG="true"
     82
    7183
    7284= 1.0.1 =
    7385*Release Date - 15 May 2020*
    7486
    75 * Enhance - Improve error reporting for API requests
    76 * Fix - add missing /languages and .pot file
    77 * Minor - Modify readme content
    78 * WP - Tested up to 5.4.1
     87* Enhancement - Improve error reporting for API requests.
     88* Fix - Add missing /languages and .pot file.
     89* Minor - Modify readme content.
    7990
    80 = 1.0.0 =
     91= 1.0 =
    8192*Release Date - 23 March 2020*
    8293
    8394* Minim by Tourwriter
     95
     96== Upgrade Notice ==
     97
     98= 2.0 =
     99This version changes the way itineraries are inserted on pages and posts by introducing the use of shortcodes rather than attaching an itinerary to the main content area via a custom field. It also greatly improves how itineraries are displayed by adopting the style of your website, providing a more seamless integration for the end user. Upgrade is highly recommended. [Visit our help article](https://itinerarybuilder.tourwriter.com/help-articles/integrations/wordpress-plugin/?ref=plugin) for more information.
     100
     101= 1.0.1 =
     102This version contains minor updates and fixes.
Note: See TracChangeset for help on using the changeset viewer.