UNPKG

mindstream-react-gravity-form

Version:

A component for including Gravity Forms on React apps via the Wordpress API

2 lines 29.9 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports["default"]=void 0;var _react=_interopRequireWildcard(require("react")),_reactDropzone=_interopRequireDefault(require("react-dropzone")),_GFDropzone=_interopRequireDefault(require("./GFDropzone")),_InputLabel=_interopRequireDefault(require("../../FormElements/InputLabel"));function _interopRequireDefault(a){return a&&a.__esModule?a:{default:a}}function _getRequireWildcardCache(){if("function"!=typeof WeakMap)return null;var a=new WeakMap;return _getRequireWildcardCache=function(){return a},a}function _interopRequireWildcard(a){if(a&&a.__esModule)return a;if(null===a||"object"!==_typeof(a)&&"function"!=typeof a)return{default:a};var b=_getRequireWildcardCache();if(b&&b.has(a))return b.get(a);var c={},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var e in a)if(Object.prototype.hasOwnProperty.call(a,e)){var f=d?Object.getOwnPropertyDescriptor(a,e):null;f&&(f.get||f.set)?Object.defineProperty(c,e,f):c[e]=a[e]}return c["default"]=a,b&&b.set(a,c),c}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),a}function _inherits(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),b&&_setPrototypeOf(a,b)}function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf||function(a,b){return a.__proto__=b,a},_setPrototypeOf(a,b)}function _createSuper(a){var b=_isNativeReflectConstruct();return function(){var c,d=_getPrototypeOf(a);if(b){var e=_getPrototypeOf(this).constructor;c=Reflect.construct(d,arguments,e)}else c=d.apply(this,arguments);return _possibleConstructorReturn(this,c)}}function _possibleConstructorReturn(a,b){return b&&("object"===_typeof(b)||"function"==typeof b)?b:_assertThisInitialized(a)}function _assertThisInitialized(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(a){return!1}}function _getPrototypeOf(a){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)},_getPrototypeOf(a)}function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}var Fileupload=function(a){function b(){var a;_classCallCheck(this,b);for(var d=arguments.length,e=Array(d),f=0;f<d;f++)e[f]=arguments[f];return a=c.call.apply(c,[this].concat(e)),_defineProperty(_assertThisInitialized(a),"state",{imagePreviewUrl:a.props.field.preview||null,selectedFile:!!a.props.field.preview||null,uploadFileText:"No file chosen",previewID:a.props.value||null,errorText:a.props.error||!1}),_defineProperty(_assertThisInitialized(a),"inputFile",_react["default"].createRef()),_defineProperty(_assertThisInitialized(a),"onChangeHandler",function(b){var c=a.props.field,d=c.hasPreview,e=c.allowedExtensions;if(a.setState({imagePreviewUrl:null,selectedFile:b.target.files[0],uploadFileText:b.target.files[0]?b.target.files[0].name:"No file chosen"}),d&&b.target&&b.target.files[0]){var f=b.target.files[0].name.split(".").pop().toLowerCase(),g=-1<e.indexOf(f);if(g){var h=new FileReader;h.onloadend=function(){a.setState({imagePreviewUrl:h.result,previewID:!1})},h.readAsDataURL(b.target.files[0])}}}),_defineProperty(_assertThisInitialized(a),"removeFilePreview",function(){var b=a.props,c=b.field,d=b.unsetError;a.inputFile.current.value="",a.setState({imagePreviewUrl:null,selectedFile:null,previewID:!1}),d(c.id)}),_defineProperty(_assertThisInitialized(a),"prepareAllowedTypes",function(a){var b=a.split(",");return b=b.map(function(a){return".".concat(a.replace(/\s/g,""))}).join(", "),b}),_defineProperty(_assertThisInitialized(a),"onButtonClickHandler",function(){a.inputFile.current.click()}),_defineProperty(_assertThisInitialized(a),"removeFile",function(b,c){b.preventDefault();var d=a.props.updateForm;d({target:{value:""}},c),a.inputFile.current.value="",a.setState({imagePreviewUrl:!1,selectedFile:!1,previewID:!1,uploadFileText:"No file chosen"})}),a}_inherits(b,a);var c=_createSuper(b);return _createClass(b,[{key:"render",value:function render(){var a=this,b=this.state,c=b.selectedFile,d=b.uploadFileText,e=b.imagePreviewUrl,f=b.previewID,g=this.props,h=g.field,i=g.value,j=g.validationMessage,k=g.touched,l=g.setTouched,m=g.hideField,n=g.updateForm,o=g.formID,p=g.fieldError,q=g.styledComponents,r=g.error,s=g.unsetError,t=g.dropzoneText,u=h.id,v=h.type,w=h.label,x=h.cssClass,y=h.isRequired,z=h.description,A=h.descriptionPlacement,B=h.labelPlacement,C=h.width,D=h.allowedExtensions,E=h.buttonText,F=h.hasPreview,G=h.maxFileSize,H=q||!1,I=H.Button,J=void 0===I?"button":I,K=H.Label,L=void 0===K?"label":K,M=H.FileWrapper,N=void 0===M?"div":M,O=H.Box,P=void 0===O?"div":O,Q=-1<x.indexOf("dropzone");return console.log("hasDropzone",Q),_react["default"].createElement(P,{width:C,className:j&&k||r?"form-field error ".concat(x):"form-field ".concat(x),style:{display:m?"none":void 0}},_react["default"].createElement(N,{className:v},_react["default"].createElement(_InputLabel["default"],{formId:o,id:u,label:w,labelPlacement:B,isRequired:y,styledComponent:q}),"above"===A&&z&&z&&_react["default"].createElement("div",{className:"description"},z),Q?_react["default"].createElement(_GFDropzone["default"],{dropzoneText:t,field:h,id:u,formID:o,isRequired:y,updateForm:n,setTouched:l,unsetError:s}):_react["default"].createElement(_react["default"].Fragment,null,G&&_react["default"].createElement("input",{type:"hidden",name:"MAX_FILE_SIZE",value:1048576*G}),_react["default"].createElement("input",{id:"input_".concat(o,"_").concat(u),name:"input_".concat(u),type:"file",required:y,ref:this.inputFile,onChange:function onChange(b){var c,d,e;a.onChangeHandler(b),n({target:{value:null===b||void 0===b||null===(c=b.target)||void 0===c||null===(d=c.files)||void 0===d||null===(e=d[0])||void 0===e?void 0:e.name}},h),l(u),s(u)},onBlur:function onBlur(a){var b,c,d;n({target:{value:null===a||void 0===a||null===(b=a.target)||void 0===b||null===(c=b.files)||void 0===c||null===(d=c[0])||void 0===d?void 0:d.name}},h),l(u)},accept:this.prepareAllowedTypes(D)||void 0,"aria-label":w,"aria-describedby":"error_".concat(o,"_").concat(u),"aria-invalid":!!j||!!r,hidden:"hidden"}),f&&h.preview&&_react["default"].createElement("input",{type:"hidden",name:"file-upload-preview",value:f}),F&&_react["default"].createElement("div",{className:"file-preview",style:c&&e?{backgroundImage:"url(".concat(e,")")}:void 0},c&&e&&_react["default"].createElement("button",{type:"button",className:"remove-file",onClick:function onClick(){return a.removeFilePreview()}})),_react["default"].createElement("div",{"aria-pressed":"false",tabIndex:"0",role:"button",className:"fileUpload",onClick:this.onButtonClickHandler},_react["default"].createElement(J,{color:"yellow",tabIndex:"-1",type:"button"},E||"Choose a file"),!c&&_react["default"].createElement("span",{className:"no-file"},d)),c&&_react["default"].createElement("div",null,_react["default"].createElement("button",{type:"button",onClick:function onClick(b){return a.removeFile(b,h)}},"remove file"),_react["default"].createElement("span",null,d)),z&&"above"!==A&&_react["default"].createElement("div",{className:"description"},z)),(j&&k||r)&&_react["default"].createElement("span",{className:"error-message",id:"error_".concat(u)},j||r),p&&_react["default"].createElement("span",{className:"error-message",id:"error_".concat(o,"_").concat(u)},p)))}}]),b}(_react.Component),_default=Fileupload;exports["default"]=_default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9GaWVsZHMvRmlsZXVwbG9hZC9GaWxldXBsb2FkLmpzeCJdLCJuYW1lcyI6WyJGaWxldXBsb2FkIiwiaW1hZ2VQcmV2aWV3VXJsIiwicHJvcHMiLCJmaWVsZCIsInByZXZpZXciLCJzZWxlY3RlZEZpbGUiLCJ1cGxvYWRGaWxlVGV4dCIsInByZXZpZXdJRCIsInZhbHVlIiwiZXJyb3JUZXh0IiwiZXJyb3IiLCJSZWFjdCIsImNyZWF0ZVJlZiIsImV2ZW50IiwiaGFzUHJldmlldyIsImFsbG93ZWRFeHRlbnNpb25zIiwic2V0U3RhdGUiLCJ0YXJnZXQiLCJmaWxlcyIsIm5hbWUiLCJleHRlbnNpb24iLCJzcGxpdCIsInBvcCIsInRvTG93ZXJDYXNlIiwiaXNTdWNjZXNzIiwiaW5kZXhPZiIsInJlYWRlciIsIkZpbGVSZWFkZXIiLCJvbmxvYWRlbmQiLCJyZXN1bHQiLCJyZWFkQXNEYXRhVVJMIiwidW5zZXRFcnJvciIsImlucHV0RmlsZSIsImN1cnJlbnQiLCJpZCIsInR5cGVzIiwiYWNjZXB0IiwibWFwIiwic3RyIiwicmVwbGFjZSIsImpvaW4iLCJjbGljayIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInVwZGF0ZUZvcm0iLCJzdGF0ZSIsInZhbGlkYXRpb25NZXNzYWdlIiwidG91Y2hlZCIsInNldFRvdWNoZWQiLCJoaWRlRmllbGQiLCJmb3JtSUQiLCJmaWVsZEVycm9yIiwic3R5bGVkQ29tcG9uZW50cyIsImRyb3B6b25lVGV4dCIsInR5cGUiLCJsYWJlbCIsImNzc0NsYXNzIiwiaXNSZXF1aXJlZCIsImRlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb25QbGFjZW1lbnQiLCJsYWJlbFBsYWNlbWVudCIsIndpZHRoIiwiYnV0dG9uVGV4dCIsIm1heEZpbGVTaXplIiwiQnV0dG9uIiwiTGFiZWwiLCJGaWxlV3JhcHBlciIsIkJveCIsImhhc0Ryb3B6b25lIiwiY29uc29sZSIsImxvZyIsImRpc3BsYXkiLCJvbkNoYW5nZUhhbmRsZXIiLCJwcmVwYXJlQWxsb3dlZFR5cGVzIiwiYmFja2dyb3VuZEltYWdlIiwicmVtb3ZlRmlsZVByZXZpZXciLCJvbkJ1dHRvbkNsaWNrSGFuZGxlciIsInJlbW92ZUZpbGUiLCJDb21wb25lbnQiXSwibWFwcGluZ3MiOiJpb0dBS01BLENBQUFBLFUsd05BQ0ksQ0FDTkMsZUFBZSxDQUFFLEVBQUtDLEtBQUwsQ0FBV0MsS0FBWCxDQUFpQkMsT0FBakIsRUFBNEIsSUFEdkMsQ0FFTkMsWUFBWSxHQUFFLEVBQUtILEtBQUwsQ0FBV0MsS0FBWCxDQUFpQkMsT0FBbkIsRUFBb0MsSUFGMUMsQ0FHTkUsY0FBYyxDQUFFLGdCQUhWLENBSU5DLFNBQVMsQ0FBRSxFQUFLTCxLQUFMLENBQVdNLEtBQVgsRUFBb0IsSUFKekIsQ0FLTkMsU0FBUyxDQUFFLEVBQUtQLEtBQUwsQ0FBV1EsS0FBWCxJQUxMLEMsd0RBUUlDLGtCQUFNQyxTQUFOLEUsOERBRU0sU0FBQ0MsQ0FBRCxDQUFXLE9BQ2UsRUFBS1gsS0FBTCxDQUFXQyxLQUQxQixDQUNuQlcsQ0FEbUIsR0FDbkJBLFVBRG1CLENBQ1BDLENBRE8sR0FDUEEsaUJBRE8sQ0FVM0IsR0FSQSxFQUFLQyxRQUFMLENBQWMsQ0FDWmYsZUFBZSxDQUFFLElBREwsQ0FFWkksWUFBWSxDQUFFUSxDQUFLLENBQUNJLE1BQU4sQ0FBYUMsS0FBYixDQUFtQixDQUFuQixDQUZGLENBR1paLGNBQWMsQ0FBRU8sQ0FBSyxDQUFDSSxNQUFOLENBQWFDLEtBQWIsQ0FBbUIsQ0FBbkIsRUFDWkwsQ0FBSyxDQUFDSSxNQUFOLENBQWFDLEtBQWIsQ0FBbUIsQ0FBbkIsRUFBc0JDLElBRFYsQ0FFWixnQkFMUSxDQUFkLENBUUEsQ0FBSUwsQ0FBVSxFQUFJRCxDQUFLLENBQUNJLE1BQXBCLEVBQThCSixDQUFLLENBQUNJLE1BQU4sQ0FBYUMsS0FBYixDQUFtQixDQUFuQixDQUFsQyxDQUF5RCxJQUVqREUsQ0FBQUEsQ0FBUyxDQUFHUCxDQUFLLENBQUNJLE1BQU4sQ0FBYUMsS0FBYixDQUFtQixDQUFu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LENBREgsQ0EzSEosQ0FURixDQTJJSCxDLE9BclFzQjJCLGdCLFdBd1FWOUUsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyBDb21wb25lbnQgfSBmcm9tIFwicmVhY3RcIjtcclxuaW1wb3J0IERyb3B6b25lIGZyb20gXCJyZWFjdC1kcm9wem9uZVwiO1xyXG5pbXBvcnQgR0ZEcm9wem9uZSBmcm9tIFwiLi9HRkRyb3B6b25lXCI7XHJcbmltcG9ydCBJbnB1dExhYmVsIGZyb20gXCIuLi8uLi9Gb3JtRWxlbWVudHMvSW5wdXRMYWJlbFwiO1xyXG5cclxuY2xhc3MgRmlsZXVwbG9hZCBleHRlbmRzIENvbXBvbmVudCB7XHJcbiAgc3RhdGUgPSB7XHJcbiAgICBpbWFnZVByZXZpZXdVcmw6IHRoaXMucHJvcHMuZmllbGQucHJldmlldyB8fCBudWxsLFxyXG4gICAgc2VsZWN0ZWRGaWxlOiB0aGlzLnByb3BzLmZpZWxkLnByZXZpZXcgPyB0cnVlIDogbnVsbCxcclxuICAgIHVwbG9hZEZpbGVUZXh0OiBcIk5vIGZpbGUgY2hvc2VuXCIsXHJcbiAgICBwcmV2aWV3SUQ6IHRoaXMucHJvcHMudmFsdWUgfHwgbnVsbCxcclxuICAgIGVycm9yVGV4dDogdGhpcy5wcm9wcy5lcnJvciB8fCBmYWxzZSxcclxuICB9O1xyXG5cclxuICBpbnB1dEZpbGUgPSBSZWFjdC5jcmVhdGVSZWYoKTtcclxuXHJcbiAgb25DaGFuZ2VIYW5kbGVyID0gKGV2ZW50KSA9PiB7XHJcbiAgICBjb25zdCB7IGhhc1ByZXZpZXcsIGFsbG93ZWRFeHRlbnNpb25zIH0gPSB0aGlzLnByb3BzLmZpZWxkO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGltYWdlUHJldmlld1VybDogbnVsbCxcclxuICAgICAgc2VsZWN0ZWRGaWxlOiBldmVudC50YXJnZXQuZmlsZXNbMF0sXHJcbiAgICAgIHVwbG9hZEZpbGVUZXh0OiBldmVudC50YXJnZXQuZmlsZXNbMF1cclxuICAgICAgICA/IGV2ZW50LnRhcmdldC5maWxlc1swXS5uYW1lXHJcbiAgICAgICAgOiBcIk5vIGZpbGUgY2hvc2VuXCIsXHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAoaGFzUHJldmlldyAmJiBldmVudC50YXJnZXQgJiYgZXZlbnQudGFyZ2V0LmZpbGVzWzBdKSB7XHJcbiAgICAgIC8vIGNoZWNrIGZpbGUgdHlwZVxyXG4gICAgICBjb25zdCBleHRlbnNpb24gPSBldmVudC50YXJnZXQuZmlsZXNbMF0ubmFtZVxyXG4gICAgICAgIC5zcGxpdChcIi5cIilcclxuICAgICAgICAucG9wKClcclxuICAgICAgICAudG9Mb3dlckNhc2UoKTsgLy8gZmlsZSBleHRlbnNpb24gZnJvbSBpbnB1dCBmaWxlXHJcbiAgICAgIGNvbnN0IGlzU3VjY2VzcyA9IGFsbG93ZWRFeHRlbnNpb25zLmluZGV4T2YoZXh0ZW5zaW9uKSA+IC0xOyAvLyBpcyBleHRlbnNpb24gaW4gYWNjZXB0YWJsZSB0eXBlc1xyXG4gICAgICBpZiAoaXNTdWNjZXNzKSB7XHJcbiAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcclxuXHJcbiAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe1xyXG4gICAgICAgICAgICBpbWFnZVByZXZpZXdVcmw6IHJlYWRlci5yZXN1bHQsXHJcbiAgICAgICAgICAgIHByZXZpZXdJRDogZmFsc2UsXHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChldmVudC50YXJnZXQuZmlsZXNbMF0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgcmVtb3ZlRmlsZVByZXZpZXcgPSAoKSA9PiB7XHJcbiAgICBjb25zdCB7IGZpZWxkLCB1bnNldEVycm9yIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgdGhpcy5pbnB1dEZpbGUuY3VycmVudC52YWx1ZSA9IFwiXCI7XHJcbiAgICB0aGlzLnNldFN0YXRlKHtcclxuICAgICAgaW1hZ2VQcmV2aWV3VXJsOiBudWxsLFxyXG4gICAgICBzZWxlY3RlZEZpbGU6IG51bGwsXHJcbiAgICAgIHByZXZpZXdJRDogZmFsc2UsXHJcbiAgICB9KTtcclxuICAgIHVuc2V0RXJyb3IoZmllbGQuaWQpO1xyXG4gIH07XHJcblxyXG4gIHByZXBhcmVBbGxvd2VkVHlwZXMgPSAodHlwZXMpID0+IHtcclxuICAgIGxldCBhY2NlcHQgPSB0eXBlcy5zcGxpdChcIixcIik7XHJcbiAgICBhY2NlcHQgPSBhY2NlcHQubWFwKChzdHIpID0+IGAuJHtzdHIucmVwbGFjZSgvXFxzL2csIFwiXCIpfWApLmpvaW4oXCIsIFwiKTtcclxuICAgIHJldHVybiBhY2NlcHQ7XHJcbiAgfTtcclxuXHJcbiAgb25CdXR0b25DbGlja0hhbmRsZXIgPSAoKSA9PiB7XHJcbiAgICB0aGlzLmlucHV0RmlsZS5jdXJyZW50LmNsaWNrKCk7XHJcbiAgfTtcclxuXHJcbiAgcmVtb3ZlRmlsZSA9IChlLCBmaWVsZCkgPT4ge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xyXG4gICAgY29uc3QgeyB1cGRhdGVGb3JtIH0gPSB0aGlzLnByb3BzO1xyXG4gICAgdXBkYXRlRm9ybSh7IHRhcmdldDogeyB2YWx1ZTogXCJcIiB9IH0sIGZpZWxkKTtcclxuICAgIHRoaXMuaW5wdXRGaWxlLmN1cnJlbnQudmFsdWUgPSBcIlwiO1xyXG4gICAgdGhpcy5zZXRTdGF0ZSh7XHJcbiAgICAgIGltYWdlUHJldmlld1VybDogZmFsc2UsXHJcbiAgICAgIHNlbGVjdGVkRmlsZTogZmFsc2UsXHJcbiAgICAgIHByZXZpZXdJRDogZmFsc2UsXHJcbiAgICAgIHVwbG9hZEZpbGVUZXh0OiBcIk5vIGZpbGUgY2hvc2VuXCIsXHJcbiAgICB9KTtcclxuICB9O1xyXG5cclxuICByZW5kZXIoKSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkRmlsZSwgdXBsb2FkRmlsZVRleHQsIGltYWdlUHJldmlld1VybCwgcHJldmlld0lEIH0gPVxyXG4gICAgICB0aGlzLnN0YXRlO1xyXG5cclxuICAgIGNvbnN0IHtcclxuICAgICAgZmllbGQsXHJcbiAgICAgIHZhbHVlLFxyXG4gICAgICB2YWxpZGF0aW9uTWVzc2FnZSxcclxuICAgICAgdG91Y2hlZCxcclxuICAgICAgc2V0VG91Y2hlZCxcclxuICAgICAgaGlkZUZpZWxkLFxyXG4gICAgICB1cGRhdGVGb3JtLFxyXG4gICAgICBmb3JtSUQsXHJcbiAgICAgIGZpZWxkRXJyb3IsXHJcbiAgICAgIHN0eWxlZENvbXBvbmVudHMsXHJcbiAgICAgIGVycm9yLFxyXG4gICAgICB1bnNldEVycm9yLFxyXG4gICAgICBkcm9wem9uZVRleHQsXHJcbiAgICB9ID0gdGhpcy5wcm9wcztcclxuICAgIGNvbnN0IHtcclxuICAgICAgaWQsXHJcbiAgICAgIHR5cGUsXHJcbiAgICAgIGxhYmVsLFxyXG4gICAgICBjc3NDbGFzcyxcclxuICAgICAgaXNSZXF1aXJlZCxcclxuICAgICAgZGVzY3JpcHRpb24sXHJcbiAgICAgIGRlc2NyaXB0aW9uUGxhY2VtZW50LFxyXG4gICAgICBsYWJlbFBsYWNlbWVudCxcclxuICAgICAgd2lkdGgsXHJcbiAgICAgIGFsbG93ZWRFeHRlbnNpb25zLFxyXG4gICAgICBidXR0b25UZXh0LFxyXG4gICAgICBoYXNQcmV2aWV3LFxyXG4gICAgICBtYXhGaWxlU2l6ZSxcclxuICAgIH0gPSBmaWVsZDtcclxuICAgIGNvbnN0IHtcclxuICAgICAgQnV0dG9uID0gXCJidXR0b25cIixcclxuICAgICAgTGFiZWwgPSBcImxhYmVsXCIsXHJcbiAgICAgIEZpbGVXcmFwcGVyID0gXCJkaXZcIixcclxuICAgICAgQm94ID0gXCJkaXZcIixcclxuICAgIH0gPSBzdHlsZWRDb21wb25lbnRzIHx8IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0IGhhc0Ryb3B6b25lID0gY3NzQ2xhc3MuaW5kZXhPZihcImRyb3B6b25lXCIpID4gLTE7XHJcblxyXG4gICAgY29uc29sZS5sb2coXCJoYXNEcm9wem9uZVwiLCBoYXNEcm9wem9uZSk7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICA8Qm94XHJcbiAgICAgICAgd2lkdGg9e3dpZHRofVxyXG4gICAgICAgIGNsYXNzTmFtZT17XHJcbiAgICAgICAgICAodmFsaWRhdGlvbk1lc3NhZ2UgJiYgdG91Y2hlZCkgfHwgZXJyb3JcclxuICAgICAgICAgICAgPyBgZm9ybS1maWVsZCBlcnJvciAke2Nzc0NsYXNzfWBcclxuICAgICAgICAgICAgOiBgZm9ybS1maWVsZCAke2Nzc0NsYXNzfWBcclxuICAgICAgICB9XHJcbiAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogaGlkZUZpZWxkID8gXCJub25lXCIgOiB1bmRlZmluZWQgfX1cclxuICAgICAgPlxyXG4gICAgICAgIDxGaWxlV3JhcHBlciBjbGFzc05hbWU9e3R5cGV9PlxyXG4gICAgICAgICAgPElucHV0TGFiZWxcclxuICAgICAgICAgICAgZm9ybUlkPXtmb3JtSUR9XHJcbiAgICAgICAgICAgIGlkPXtpZH1cclxuICAgICAgICAgICAgbGFiZWw9e2xhYmVsfVxyXG4gICAgICAgICAgICBsYWJlbFBsYWNlbWVudD17bGFiZWxQbGFjZW1lbnR9XHJcbiAgICAgICAgICAgIGlzUmVxdWlyZWQ9e2lzUmVxdWlyZWR9XHJcbiAgICAgICAgICAgIHN0eWxlZENvbXBvbmVudD17c3R5bGVkQ29tcG9uZW50c31cclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICB7ZGVzY3JpcHRpb25QbGFjZW1lbnQgPT09IFwiYWJvdmVcIiAmJiBkZXNjcmlwdGlvbiAmJiBkZXNjcmlwdGlvbiAmJiAoXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj57ZGVzY3JpcHRpb259PC9kaXY+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2hhc0Ryb3B6b25lID8gKFxyXG4gICAgICAgICAgICA8R0ZEcm9wem9uZVxyXG4gICAgICAgICAgICAgIGRyb3B6b25lVGV4dD17ZHJvcHpvbmVUZXh0fVxyXG4gICAgICAgICAgICAgIGZpZWxkPXtmaWVsZH1cclxuICAgICAgICAgICAgICBpZD17aWR9XHJcbiAgICAgICAgICAgICAgZm9ybUlEPXtmb3JtSUR9XHJcbiAgICAgICAgICAgICAgaXNSZXF1aXJlZD17aXNSZXF1aXJlZH1cclxuICAgICAgICAgICAgICB1cGRhdGVGb3JtPXt1cGRhdGVGb3JtfVxyXG4gICAgICAgICAgICAgIHNldFRvdWNoZWQ9e3NldFRvdWNoZWR9XHJcbiAgICAgICAgICAgICAgdW5zZXRFcnJvcj17dW5zZXRFcnJvcn1cclxuICAgICAgICAgICAgLz5cclxuICAgICAgICAgICkgOiAoXHJcbiAgICAgICAgICAgIDw+XHJcbiAgICAgICAgICAgICAge21heEZpbGVTaXplICYmIChcclxuICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcclxuICAgICAgICAgICAgICAgICAgbmFtZT1cIk1BWF9GSUxFX1NJWkVcIlxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17bWF4RmlsZVNpemUgKiAxMDQ4NTc2fVxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgaWQ9e2BpbnB1dF8ke2Zvcm1JRH1fJHtpZH1gfVxyXG4gICAgICAgICAgICAgICAgbmFtZT17YGlucHV0XyR7aWR9YH1cclxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtpc1JlcXVpcmVkfVxyXG4gICAgICAgICAgICAgICAgcmVmPXt0aGlzLmlucHV0RmlsZX1cclxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUhhbmRsZXIoZXZlbnQpO1xyXG4gICAgICAgICAgICAgICAgICB1cGRhdGVGb3JtKFxyXG4gICAgICAgICAgICAgICAgICAgIHsgdGFyZ2V0OiB7IHZhbHVlOiBldmVudD8udGFyZ2V0Py5maWxlcz8uWzBdPy5uYW1lIH0gfSxcclxuICAgICAgICAgICAgICAgICAgICBmaWVsZFxyXG4gICAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgICBzZXRUb3VjaGVkKGlkKTtcclxuICAgICAgICAgICAgICAgICAgdW5zZXRFcnJvcihpZCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgb25CbHVyPXsoZXZlbnQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdXBkYXRlRm9ybShcclxuICAgICAgICAgICAgICAgICAgICB7IHRhcmdldDogeyB2YWx1ZTogZXZlbnQ/LnRhcmdldD8uZmlsZXM/LlswXT8ubmFtZSB9IH0sXHJcbiAgICAgICAgICAgICAgICAgICAgZmllbGRcclxuICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgICAgc2V0VG91Y2hlZChpZCk7XHJcbiAgICAgICAgICAgICAgICB9fVxyXG4gICAgICAgICAgICAgICAgYWNjZXB0PXtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5wcmVwYXJlQWxsb3dlZFR5cGVzKGFsbG93ZWRFeHRlbnNpb25zKSB8fCB1bmRlZmluZWRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxyXG4gICAgICAgICAgICAgICAgYXJpYS1kZXNjcmliZWRieT17YGVycm9yXyR7Zm9ybUlEfV8ke2lkfWB9XHJcbiAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9eyEhdmFsaWRhdGlvbk1lc3NhZ2UgfHwgISFlcnJvcn1cclxuICAgICAgICAgICAgICAgIGhpZGRlbj1cImhpZGRlblwiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB7cHJldmlld0lEICYmIGZpZWxkLnByZXZpZXcgJiYgKFxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxyXG4gICAgICAgICAgICAgICAgICBuYW1lPVwiZmlsZS11cGxvYWQtcHJldmlld1wiXHJcbiAgICAgICAgICAgICAgICAgIHZhbHVlPXtwcmV2aWV3SUR9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAge2hhc1ByZXZpZXcgJiYgKFxyXG4gICAgICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWxlLXByZXZpZXdcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT17XHJcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRGaWxlICYmIGltYWdlUHJldmlld1VybFxyXG4gICAgICAgICAgICAgICAgICAgICAgPyB7IGJhY2tncm91bmRJbWFnZTogYHVybCgke2ltYWdlUHJldmlld1VybH0pYCB9XHJcbiAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZFxyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgIHtzZWxlY3RlZEZpbGUgJiYgaW1hZ2VQcmV2aWV3VXJsICYmIChcclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlbW92ZS1maWxlXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHRoaXMucmVtb3ZlRmlsZVByZXZpZXcoKX1cclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICB0YWJJbmRleD1cIjBcIlxyXG4gICAgICAgICAgICAgICAgcm9sZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJmaWxlVXBsb2FkXCJcclxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e3RoaXMub25CdXR0b25DbGlja0hhbmRsZXJ9XHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPEJ1dHRvbiBjb2xvcj1cInllbGxvd1wiIHRhYkluZGV4PVwiLTFcIiB0eXBlPVwiYnV0dG9uXCI+XHJcbiAgICAgICAgICAgICAgICAgIHtidXR0b25UZXh0IHx8IFwiQ2hvb3NlIGEgZmlsZVwifVxyXG4gICAgICAgICAgICAgICAgPC9CdXR0b24+XHJcbiAgICAgICAgICAgICAgICB7IXNlbGVjdGVkRmlsZSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm5vLWZpbGVcIj57dXBsb2FkRmlsZVRleHR9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICB7c2VsZWN0ZWRGaWxlICYmIChcclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoZSkgPT4gdGhpcy5yZW1vdmVGaWxlKGUsIGZpZWxkKX1cclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZSBmaWxlXHJcbiAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8c3Bhbj57dXBsb2FkRmlsZVRleHR9PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICB7ZGVzY3JpcHRpb24gJiYgZGVzY3JpcHRpb25QbGFjZW1lbnQgIT09IFwiYWJvdmVcIiAmJiAoXHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+e2Rlc2NyaXB0aW9ufTwvZGl2PlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICAgIHsoKHZhbGlkYXRpb25NZXNzYWdlICYmIHRvdWNoZWQpIHx8IGVycm9yKSAmJiAoXHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImVycm9yLW1lc3NhZ2VcIiBpZD17YGVycm9yXyR7aWR9YH0+XHJcbiAgICAgICAgICAgICAge3ZhbGlkYXRpb25NZXNzYWdlIHx8IGVycm9yfVxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICApfVxyXG4gICAgICAgICAge2ZpZWxkRXJyb3IgJiYgKFxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJlcnJvci1tZXNzYWdlXCIgaWQ9e2BlcnJvcl8ke2Zvcm1JRH1fJHtpZH1gfT5cclxuICAgICAgICAgICAgICB7ZmllbGRFcnJvcn1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgKX1cclxuICAgICAgICA8L0ZpbGVXcmFwcGVyPlxyXG4gICAgICA8L0JveD5cclxuICAgICk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgZGVmYXVsdCBGaWxldXBsb2FkO1xyXG4iXX0=