getaddress-autocomplete
Version:
GetAddress.io - Autocomplete plug-in
458 lines (450 loc) • 438 kB
JavaScript
var getAddress = (function (exports) {
'use strict';
var _a$2;class Storage{}_a$2=Storage,Storage['key']='getaddress_local_addresses',Storage['save']=(_0x4a7090,_0x3b75dd)=>{let _0x26ca43=localStorage['getItem'](_a$2['key']);if(!_0x26ca43||_a$2['isObjectEmpty'](_0x26ca43)){const _0x5381a5=new Map(),_0xbbd819=new StoredAddress(_0x4a7090,_0x3b75dd,new Date()['getTime']());_0x5381a5['set'](_0x4a7090['id'],_0xbbd819);const _0x1556bd=JSON['stringify']([..._0x5381a5]);localStorage['setItem'](_a$2['key'],_0x1556bd);}else {const _0x51d63c=new Map(JSON['parse'](_0x26ca43));if(!_0x51d63c['get'](_0x4a7090['id'])){if(_0x51d63c['size']>=0x6){const _0x59df30=[..._0x51d63c['entries']()]['sort']((_0x37c323,_0x460169)=>{const _0x24c695=_0x37c323[0x1],_0x10a889=_0x460169[0x1];return _0x24c695['timestamp']-_0x10a889['timestamp'];});_0x51d63c['delete'](_0x59df30[0x0][0x0]);}const _0x383808=new StoredAddress(_0x4a7090,_0x3b75dd,new Date()['getTime']());_0x51d63c['set'](_0x4a7090['id'],_0x383808);const _0x2c78c1=JSON['stringify']([..._0x51d63c]);localStorage['setItem'](_a$2['key'],_0x2c78c1);}}},Storage['list']=()=>{let _0x12447a=localStorage['getItem'](_a$2['key']);if(!_0x12447a||_a$2['isObjectEmpty'](_0x12447a))return [];const _0x15bc5c=new Map(JSON['parse'](_0x12447a)),_0x25e29f=[..._0x15bc5c['entries']()]['map'](_0x4923b7=>{const _0x3ba3f5=_0x4923b7[0x1];return _0x3ba3f5;});return _0x25e29f['reverse']();},Storage['isObjectEmpty']=_0x1038c1=>{if(!_0x1038c1)return !![];return _0x1038c1==='{}'||_0x1038c1==='\x22{}\x22';},Storage['clear']=()=>{localStorage['removeItem'](_a$2['key']);},Storage['clearExpired']=()=>{let _0xd3fb97=localStorage['getItem'](_a$2['key']);if(!_0xd3fb97||_a$2['isObjectEmpty'](_0xd3fb97))return;const _0x28c60c=new Map(JSON['parse'](_0xd3fb97));let _0x4b63ce=![];_0x28c60c['forEach']((_0x537002,_0x36b6a2)=>{const _0x2e1255=_0x537002;let _0x49f661=new Date();var _0x58e24d=new Date(new Date()['setDate'](_0x49f661['getDate']()-0x7));_0x58e24d['getTime']()>_0x2e1255['timestamp']&&(_0x28c60c['delete'](_0x36b6a2),_0x4b63ce=!![]);});if(_0x4b63ce){if(_0x28c60c['size']>0x0){const _0x3ff37a=JSON['stringify']([..._0x28c60c]);localStorage['setItem'](_a$2['key'],_0x3ff37a);}else localStorage['removeItem'](_a$2['key']);}},Storage['remove']=_0x1e4969=>{let _0x1a2c6a=localStorage['getItem'](_a$2['key']);if(!_0x1a2c6a||_a$2['isObjectEmpty'](_0x1a2c6a))return;const _0x201c03=new Map(JSON['parse'](_0x1a2c6a));let _0x1ddb98=![];_0x201c03['forEach']((_0x396261,_0x3c2c45)=>{_0x3c2c45===_0x1e4969&&(_0x201c03['delete'](_0x1e4969),_0x1ddb98=!![]);});if(_0x1ddb98){if(_0x201c03['size']>0x0){const _0x5e5290=JSON['stringify']([..._0x201c03]);localStorage['setItem'](_a$2['key'],_0x5e5290);}else localStorage['removeItem'](_a$2['key']);}};class StoredAddress{constructor(_0x522b7d,_0x48d482,_0x3a0b41){this['suggestion']=_0x522b7d,this['address']=_0x48d482,this['timestamp']=_0x3a0b41;}}
class List{constructor(options,_0x16f034){this['options']=options,this['instance']=_0x16f034,this['list']=document['createElement']('DIV'),this['style']=document['createElement']('style'),this['element']=this['list'],this['selectedIndex']=-0x1,this['handleKeyDown']=_0x17e65e=>{switch(_0x17e65e['key']){case'PageUp':this['handlePageUp'](_0x17e65e);break;case'PageDown':this['handlePageDown'](_0x17e65e);break;}},this['handlePageDown']=_0x18e85e=>{this['element']['children']['length']>0x0&&(this['setSelectedIndex'](this['lastIndex']()),_0x18e85e['preventDefault']());},this['handlePageUp']=_0x513100=>{this['element']['children']['length']>0x0&&(this['setSelectedIndex'](0x0),_0x513100['preventDefault']());},this['populate']=_0x14fe32=>{this['clear']();_0x14fe32['length']>0x0&&this['show']();_0x14fe32['forEach'](_0x2e305=>{this['list']['insertBefore'](_0x2e305,null);});if(this['options']['footer_template']){var _0x11c021=document['createElement']('DIV');_0x11c021['innerHTML']=this['options']['footer_template'](_0x14fe32),this['list']['insertBefore'](_0x11c021,null);}},this['show']=()=>{this['list']['style']['visibility']='visible';},this['removeFocusedClassName']=()=>{List['removeFocusedClassName'](this);},this['clear']=()=>{this['list']['replaceChildren'](...[]),this['hide'](),this['resetSelectedIndex']();},this['hide']=()=>{this['list']['style']['visibility']='hidden';},this['listItemCss']=_0x410ba8=>{if(_0x410ba8!==0x0)return '';const _0x47bc3e='\x0a\x20\x20\x20\x20\x20\x20\x20\x20/*\x20List\x20Item\x20*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20.ga-autocomplete-list-item:hover,\x0a\x20\x20\x20\x20\x20\x20\x20\x20.ga-autocomplete-list-item-focused\x0a\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20background-color:var(--ga-autocomplete-list-item-background-color,#f3f3f3);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20cursor:\x20var(--ga-autocomplete-list-item-cursor,pointer);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20outline:var(--ga-autocomplete-list-item-outline,0);\x0a\x20\x20\x20\x20\x20\x20\x20\x20}';return _0x47bc3e;},this['iconCss']=_0x3896b3=>{if(_0x3896b3!==0x0)return '';const _0xeab456='\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20/*icons*/\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20@font-face\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20\x27getAddress\x27;\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20src:\x20url(\x27data:application/octet-stream;base64,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\x27)\x20format(\x27woff\x27),\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20url(\x27data:application/octet-stream;base64,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\x27)\x20format(\x27truetype\x27);\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.ga-autocomplete-list-item\x20.ga-autocomplete-location-icon:before\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20var(--ga-autocomplete-location-icon-font-familiy,getAddress);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20content:\x20\x27\x5cf031\x27;\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--ga-autocomplete-location-item-color,#EA4335);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20.ga-autocomplete-history-item\x20.ga-autocomplete-location-icon:before\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20{\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20font-family:\x20var(--ga-autocomplete-location-icon-font-familiy,getAddress);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20content:\x20\x27\x5ce802\x27;\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20color:\x20var(--ga-autocomplete-location-history-item-color,grey);\x20\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}';return _0xeab456;},this['list']['id']='ga-autocomplete-list-'+_0x16f034,this['list']['setAttribute']('role','listbox'),this['list']['addEventListener']('keydown',this['handleKeyDown']),this['list']['className']='ga-autocomplete-list',Storage['clearExpired']();}['destroy'](){this['list']['removeEventListener']('keydown',this['handleKeyDown']),this['list']['remove'](),this['style']['remove']();}static['setFocus'](_0x22fd8f,_0x3268c2,_0x62590b){if(_0x22fd8f>-0x1&&_0x3268c2['list']['children']['length']>0x0){List['removeFocusedClassName'](_0x3268c2);let _0x2ff506=_0x3268c2['list']['children'][_0x22fd8f];List['addFocusedClassName'](_0x2ff506),_0x2ff506['focus']({'focusVisible':!![]});return;}_0x62590b['setFocus']();}['resetSelectedIndex'](){this['removeFocusedClassName'](),this['selectedIndex']=-0x1;}static['setSelectedIndex'](_0x5d6de6,_0x45a9f5,_0x29c9cf){if(_0x5d6de6==-0x1){_0x29c9cf['setFocus']();return;}if(_0x5d6de6>_0x45a9f5['lastIndex']()){_0x45a9f5['selectedIndex']=_0x45a9f5['lastIndex']();return;}_0x45a9f5['selectedIndex']=_0x5d6de6,_0x45a9f5['setFocus']();}['lastIndex'](){let _0x1a32d5=0x1;return this['options']['footer_template']&&(_0x1a32d5=0x2),this['list']['children']['length']-_0x1a32d5;}['getSelectedIndex'](){return this['selectedIndex'];}['containsActiveElment'](){return this['list']['contains'](document['activeElement']);}['dispatchSelected'](_0x2c189b,_0x524d46,_0x5626db){const _0x46124a=_0x524d46,_0x532101=new Event('getaddress-autocomplete-selected',{'bubbles':!![]});_0x532101['address']=_0x5626db,_0x532101['data']=_0x46124a,_0x532101['id']=_0x2c189b,this['element']['dispatchEvent'](_0x532101);}['dispatchSelectedFailed'](_0x7e2bf,_0x1871e1,_0x4d35e3){const _0x40ebe0=new Event('getaddress-autocomplete-selected-failed',{'bubbles':!![]});_0x40ebe0['status']=_0x1871e1,_0x40ebe0['message']=_0x4d35e3,_0x40ebe0['id']=_0x7e2bf,this['element']['dispatchEvent'](_0x40ebe0);}['dispatchSuggestions'](_0x3cf5ad,_0x1b7508){const _0x339622=_0x3cf5ad,_0x29ba93=new Event('getaddress-autocomplete-suggestions',{'bubbles':!![]});_0x29ba93['suggestions']=_0x1b7508,_0x29ba93['data']=_0x339622,this['element']['dispatchEvent'](_0x29ba93);}['dispatchSuggestionsFailed'](_0x27e89e,_0x452c72,_0x3f41ae){const _0x2bafa5=new Event('getaddress-autocomplete-modal-suggestions-failed',{'bubbles':!![]});_0x2bafa5['status']=_0x452c72,_0x2bafa5['message']=_0x3f41ae,_0x2bafa5['data']=_0x27e89e,this['element']['dispatchEvent'](_0x2bafa5);}}List['addFocusedClassName']=_0x2c8d76=>{_0x2c8d76['classList']['add']('ga-autocomplete-list-item-focused');},List['removeFocusedClassName']=_0x59c76e=>{const _0x5d72f0=_0x59c76e['list']['children'];for(let _0x1c4453=0x0;_0x1c4453<_0x5d72f0['length'];_0x1c4453++){_0x5d72f0[_0x1c4453]['classList']['remove']('ga-autocomplete-list-item-focused');}};
class ItemContainer{constructor(_0x200522,_0x599fff){this['input']=_0x200522,this['index']=_0x599fff,this['container']=document['createElement']('DIV'),this['element']=this['container'],this['handleFocus']=_0x33275e=>{this['input']['list']['setSelectedIndex'](this['index']);},this['handleKeyDown']=_0x14f1e3=>{switch(_0x14f1e3['key']){case'ArrowUp':this['handleUpKey'](_0x14f1e3);break;case'ArrowDown':this['handleDownKey'](_0x14f1e3);break;case'Enter':this['handleEnterKey'](_0x14f1e3);break;}},this['handleDownKey']=_0x2d3521=>{this['input']['list']['setSelectedIndex'](this['index']+0x1),_0x2d3521['preventDefault']();},this['handleUpKey']=_0xce1538=>{this['input']['list']['setSelectedIndex'](this['index']-0x1),_0xce1538['preventDefault']();},this['container']['addEventListener']('keydown',this['handleKeyDown']),this['container']['addEventListener']('focus',this['handleFocus']),this['container']['tabIndex']=-0x1,this['container']['className']='ga-autocomplete-list-item';}['destroy'](){this['container']['removeEventListener']('keydown',this['handleKeyDown']),this['container']['removeEventListener']('focus',this['handleFocus']),this['container']['remove']();}}ItemContainer['getAddress']=(_0x42ce3e,_0x28bf58,_0x374a8e)=>{_0x42ce3e['dispatchSelected'](_0x28bf58['id'],_0x374a8e),_0x42ce3e['clearList']();};
var __awaiter$b=undefined&&undefined['__awaiter']||function(_0x3f97ed,_0xf44ad1,_0x10ff28,_0x4a3c32){function _0x2983e3(_0x571bb9){return _0x571bb9 instanceof _0x10ff28?_0x571bb9:new _0x10ff28(function(_0xaaa909){_0xaaa909(_0x571bb9);});}return new(_0x10ff28||(_0x10ff28=Promise))(function(_0x3bb31f,_0x17fb45){function _0x3619f5(_0xd34cbf){try{_0x49c284(_0x4a3c32['next'](_0xd34cbf));}catch(_0x39ce5b){_0x17fb45(_0x39ce5b);}}function _0x597105(_0xba4ab0){try{_0x49c284(_0x4a3c32['throw'](_0xba4ab0));}catch(_0x2bcd31){_0x17fb45(_0x2bcd31);}}function _0x49c284(_0x5e75f2){_0x5e75f2['done']?_0x3bb31f(_0x5e75f2['value']):_0x2983e3(_0x5e75f2['value'])['then'](_0x3619f5,_0x597105);}_0x49c284((_0x4a3c32=_0x4a3c32['apply'](_0x3f97ed,_0xf44ad1||[]))['next']());});};class AnchoredItemContainer extends ItemContainer{constructor(_0x3613d4,_0x461366,_0x5b06a6,options,_0x3b93ab){super(_0x461366,_0x3b93ab),this['client']=_0x3613d4,this['suggestion']=_0x5b06a6,this['options']=options,this['handleEnterKey']=_0x1cdd8c=>__awaiter$b(this,void 0x0,void 0x0,function*(){_0x1cdd8c['preventDefault'](),yield this['getAddress'](),this['input']['repopulate']=![],this['input']['setFocus']();}),this['destroy']=()=>{this['container']['removeEventListener']('click',this['handleClick']),super['destroy']();},this['handleClick']=_0x56327a=>__awaiter$b(this,void 0x0,void 0x0,function*(){yield this['getAddress'](),this['input']['repopulate']=![],this['input']['setFocus']();}),this['getAddress']=()=>__awaiter$b(this,void 0x0,void 0x0,function*(){const _0x58f640=yield this['client']['get'](this['suggestion']['id']);if(!_0x58f640['isSuccess']){const _0x22e193=_0x58f640['toFailed']();this['input']['dispatchSelectedFailed'](this['suggestion']['id'],_0x22e193['status'],_0x22e193['message']);return;}let _0x37c7f3=_0x58f640['toSuccess']();this['options']['enable_history']&&Storage['save'](this['suggestion'],_0x37c7f3['address']),ItemContainer['getAddress'](this['input'],this['suggestion'],_0x37c7f3['address']);}),this['container']['innerHTML']=options['item_template'](_0x5b06a6),this['container']['classList']['add']('ga-autocomplete-anchored-list-item'),options['list_item_style']&&this['container']['setAttribute']('style',options['list_item_style']),this['container']['addEventListener']('click',this['handleClick']);}}
var __awaiter$a=undefined&&undefined['__awaiter']||function(_0x44ddc4,_0x197399,_0x4f717b,_0x52e3a2){function _0x59bc2d(_0x26a3ab){return _0x26a3ab instanceof _0x4f717b?_0x26a3ab:new _0x4f717b(function(_0x291d2a){_0x291d2a(_0x26a3ab);});}return new(_0x4f717b||(_0x4f717b=Promise))(function(_0x52dc2c,_0x3b9259){function _0x2d229a(_0x532642){try{_0x535115(_0x52e3a2['next'](_0x532642));}catch(_0x3d732d){_0x3b9259(_0x3d732d);}}function _0x1ad11a(_0x2bee3e){try{_0x535115(_0x52e3a2['throw'](_0x2bee3e));}catch(_0x379721){_0x3b9259(_0x379721);}}function _0x535115(_0x319fea){_0x319fea['done']?_0x52dc2c(_0x319fea['value']):_0x59bc2d(_0x319fea['value'])['then'](_0x2d229a,_0x1ad11a);}_0x535115((_0x52e3a2=_0x52e3a2['apply'](_0x44ddc4,_0x197399||[]))['next']());});};class AnchoredHistoryContainer extends ItemContainer{constructor(_0x309d7f,_0x25ead4,options,_0x4c5ffc){var _0x513d90;super(_0x309d7f,_0x4c5ffc),this['storedAddress']=_0x25ead4,this['options']=options,this['handleEnterKey']=_0x396f1f=>__awaiter$a(this,void 0x0,void 0x0,function*(){_0x396f1f['preventDefault'](),yield this['getAddress'](),this['input']['repopulate']=![],this['input']['setFocus']();}),this['destroy']=()=>{this['container']['removeEventListener']('click',this['handleClick']),super['destroy']();},this['handleClick']=_0x196b03=>__awaiter$a(this,void 0x0,void 0x0,function*(){yield this['getAddress'](),this['input']['repopulate']=![],this['input']['setFocus']();}),this['getAddress']=()=>__awaiter$a(this,void 0x0,void 0x0,function*(){yield ItemContainer['getAddress'](this['input'],this['storedAddress']['suggestion'],this['storedAddress']['address']);});const _0x1f2f45=(_0x513d90=options['history_item_template'])!==null&&_0x513d90!==void 0x0?_0x513d90:options['item_template'];this['container']['innerHTML']=_0x1f2f45(_0x25ead4['suggestion']),this['container']['classList']['add']('ga-autocomplete-history-item'),this['container']['classList']['add']('ga-autocomplete-anchored-history-item'),options['history_item_style']&&this['container']['setAttribute']('style',options['history_item_style']),this['container']['addEventListener']('click',this['handleClick']);}}
/* eslint-disable class-methods-use-this */
class Result {
constructor(isSuccess) {
this.isSuccess = isSuccess;
}
}
class Success extends Result {
constructor() {
super(true);
}
}
class AutocompleteSuccess extends Success {
constructor(suggestions) {
super();
this.suggestions = suggestions;
}
toSuccess() {
return this;
}
toFailed() {
throw new Error('Did not fail');
}
}
class LocationSuccess extends Success {
constructor(suggestions) {
super();
this.suggestions = suggestions;
}
toSuccess() {
return this;
}
toFailed() {
throw new Error('Did not fail');
}
}
class GetSuccess extends Success {
constructor(address) {
super();
this.address = address;
}
toSuccess() {
return this;
}
toFailed() {
throw new Error('Did not fail');
}
}
class GetLocationSuccess extends Success {
constructor(location) {
super();
this.location = location;
}
toSuccess() {
return this;
}
toFailed() {
throw new Error('Did not fail');
}
}
class GetLocationFailed extends Result {
constructor(status, message) {
super(false);
this.status = status;
this.message = message;
}
toSuccess() {
throw new Error('Not a success');
}
toFailed() {
return this;
}
}
class AutocompleteFailed extends Result {
constructor(status, message) {
super(false);
this.status = status;
this.message = message;
}
toSuccess() {
throw new Error('Not a success');
}
toFailed() {
return this;
}
}
class LocationFailed extends Result {
constructor(status, message) {
super(false);
this.status = status;
this.message = message;
}
toSuccess() {
throw new Error('Not a success');
}
toFailed() {
return this;
}
}
class GetFailed extends Result {
constructor(status, message) {
super(false);
this.status = status;
this.message = message;
}
toSuccess() {
throw new Error('Not a success');
}
toFailed() {
return this;
}
}
class FindSuccess extends Success {
constructor(addresses) {
super();
this.addresses = addresses;
}
toSuccess() {
return this;
}
toFailed() {
throw new Error('failed');
}
}
class FindFailed extends Result {
constructor(status, message) {
super(false);
this.status = status;
this.message = message;
}
toSuccess() {
throw new Error('failed');
}
toFailed() {
return this;
}
}
class TypeaheadSuccess extends Success {
constructor(results) {
super();
this.results = results;
}
toSuccess() {
return this;
}
toFailed() {
throw new Error('failed');
}
}
class TypeaheadFailed extends Result {
constructor(status, message) {
super(false);
this.status = status;
this.message = message;
}
toSuccess() {
throw new Error('failed');
}
toFailed() {
return this;
}
}
var __awaiter$9 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
class Client {
constructor(api_key, autocomplete_url = 'https://api.getaddress.io/autocomplete/{query}', get_url = 'https://api.getaddress.io/get/{id}', location_url = 'https://api.getaddress.io/location/{query}', get_location_url = 'https://api.getaddress.io/get-location/{id}', typeahead_url = 'https://api.getaddress.io/typeahead/{term}') {
this.api_key = api_key;
this.autocomplete_url = autocomplete_url;
this.get_url = get_url;
this.location_url = location_url;
this.get_location_url = get_location_url;
this.typeahead_url = typeahead_url;
this.autocompleteResponse = undefined;
this.getResponse = undefined;
this.locationResponse = undefined;
this.getLocationResponse = undefined;
this.typeaheadResponse = undefined;
this.autocompleteAbortController = new AbortController();
this.getAbortController = new AbortController();
this.typeaheadAbortController = new AbortController();
this.locationAbortController = new AbortController();
this.getLocationAbortController = new AbortController();
}
location(query_1) {
return __awaiter$9(this, arguments, void 0, function* (query, options = {}) {
try {
const combinedOptions = Object.assign({ all: true }, options);
let url = this.location_url.replace(/{query}/i, query);
if (this.api_key) {
if (url.includes('?')) {
url = `${url}&api-key=${this.api_key}`;
}
else {
url = `${url}?api-key=${this.api_key}`;
}
}
if (this.locationResponse !== undefined) {
this.locationResponse = undefined;
this.locationAbortController.abort();
this.locationAbortController = new AbortController();
}
this.locationResponse = yield fetch(url, {
method: 'post',
signal: this.locationAbortController.signal,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(combinedOptions),
});
if (this.locationResponse.status === 200) {
const json = yield this.locationResponse.json();
const suggestions = json.suggestions;
return new LocationSuccess(suggestions);
}
const json = yield this.locationResponse.json();
return new LocationFailed(this.locationResponse.status, json.Message);
}
catch (err) {
if (err instanceof Error) {
if (err.name === 'AbortError') {
return new LocationSuccess([]);
}
return new LocationFailed(401, err.message);
}
return new LocationFailed(401, 'Unauthorised');
}
finally {
this.locationResponse = undefined;
}
});
}
getLocation(id) {
return __awaiter$9(this, void 0, void 0, function* () {
try {
let url = this.get_location_url.replace(/{id}/i, id);
if (this.api_key) {
if (url.includes('?')) {
url = `${url}&api-key=${this.api_key}`;
}
else {
url = `${url}?api-key=${this.api_key}`;
}
}
if (this.getLocationResponse !== undefined) {
this.getResponse = undefined;
this.getLocationAbortController.abort();
this.getLocationAbortController = new AbortController();
}
this.getResponse = yield fetch(url, {
method: 'get',
signal: this.getLocationAbortController.signal,
headers: {
'Content-Type': 'application/json',
},
});
if (this.getResponse.status === 200) {
const json = yield this.getResponse.json();
const loaction = json;
return new GetLocationSuccess(loaction);
}
const json = yield this.getResponse.json();
return new GetLocationFailed(this.getResponse.status, json.Message);
}
catch (err) {
if (err instanceof Error) {
return new GetLocationFailed(401, err.message);
}
return new GetLocationFailed(401, 'Unauthorised');
}
finally {
this.getResponse = undefined;
}
});
}
autocomplete(query_1) {
return __awaiter$9(this, arguments, void 0, function* (query, options = {}) {
try {
const combinedOptions = Object.assign({ all: true }, options);
let url = this.autocomplete_url.replace(/{query}/i, query);
if (this.api_key) {
if (url.includes('?')) {
url = `${url}&api-key=${this.api_key}`;
}
else {
url = `${url}?api-key=${this.api_key}`;
}
}
if (this.autocompleteResponse !== undefined) {
this.autocompleteResponse = undefined;
this.autocompleteAbortController.abort();
this.autocompleteAbortController = new AbortController();
}
this.autocompleteResponse = yield fetch(url, {
method: 'post',
signal: this.autocompleteAbortController.signal,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(combinedOptions)
});
if (this.autocompleteResponse.status === 200) {
const json = yield this.autocompleteResponse.json();
const suggestions = json.suggestions;
return new AutocompleteSuccess(suggestions);
}
const json = yield this.autocompleteResponse.json();
return new AutocompleteFailed(this.autocompleteResponse.status, json.Message);
}
catch (err) {
if (err instanceof Error) {
if (err.name === 'AbortError') {
return new AutocompleteSuccess([]);
}
return new AutocompleteFailed(401, err.message);
}
return new AutocompleteFailed(401, 'Unauthorised');
}
finally {
this.autocompleteResponse = undefined;
}
});
}
get(id_1) {
return __awaiter$9(this, arguments, void 0, function* (id, options = {}) {
try {
let url = this.get_url.replace(/{id}/i, id);
if (this.api_key) {
if (url.includes('?')) {
url = `${url}&api-key=${this.api_key}`;
}
else {
url = `${url}?api-key=${this.api_key}`;
}
}
if (options.remember === false) {
url = `${url}&remember=false`;
}
if (this.getResponse !== undefined) {
this.getResponse = undefined;
this.getAbortController.abort();
this.getAbortController = new AbortController();
}
this.getResponse = yield fetch(url, {
method: 'get',
signal: this.getAbortController.signal,
headers: {
'Content-Type': 'application/json',
},
});
if (this.getResponse.status === 200) {
const json = yield this.getResponse.json();
const address = json;
return new GetSuccess(address);
}
const json = yield this.getResponse.json();
return new GetFailed(this.getResponse.status, json.Message);
}
catch (err) {
if (err instanceof Error) {
return new GetFailed(401, err.message);
}
return new GetFailed(401, 'Unauthorised');
}
finally {
this.getResponse = undefined;
}
});
}
find(postcode) {
return __awaiter$9(this, void 0, void 0, function* () {
try {
const response = yield fetch(`https://api.getaddress.io/find/${postcode}?api-key=${this.api_key}&expand=true`);
if (response.status === 200) {
const json = yield response.json();
const addresses = json;
return new FindSuccess(addresses);
}
const json = yield response.json();
return new FindFailed(response.status, json.Message);
}
catch (err) {
if (err instanceof Error) {
return new FindFailed(401, err.message);
}
return new FindFailed(401, 'Unauthorised');
}
});
}
typeahead(term_1) {
return __awaiter$9(this, arguments, void 0, function* (term, options = {}) {
try {
let url = this.typeahead_url.replace(/{term}/i, term);
if (this.api_key) {
if (url.includes('?')) {
url = `${url}&api-key=${this.api_key}`;
}
else {
url = `${url}?api-key=${this.api_key}`;
}
}
if (this.typeaheadResponse !== undefined) {
this.typeaheadResponse = undefined;
this.typeaheadAbortController.abort();
this.typeaheadAbortController = new AbortController();
}
this.typeaheadResponse = yield fetch(url, {
method: 'post',
signal: this.autocompleteAbortController.signal,
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify(options),
});
if (this.typeaheadResponse.status === 200) {
const json = yield this.typeaheadResponse.json();
const results = json;
return new TypeaheadSuccess(results);
}
const json = yield this.typeaheadResponse.json();
return new TypeaheadFailed(this.typeaheadResponse.status, json.Message);
}
catch (err) {
if (err instanceof Error) {
if (err.name === 'AbortError') {
return new TypeaheadSuccess([]);
}
return new TypeaheadFailed(401, err.message);
}
return new TypeaheadFailed(401, 'Unauthorised');
}
finally {
this.typeaheadResponse = undefined;
}
});
}
}
var __awaiter$8=undefined&&undefined['__awaiter']||function(_0x122f97,_0x5ce54b,_0x13284f,_0x89593){function _0x565a5b(_0x4747b6){return _0x4747b6 instanceof _0x13284f?_0x4747b6:new _0x13284f(function(_0x2375c6){_0x2375c6(_0x4747b6);});}return new(_0x13284f||(_0x13284f=Promise))(function(_0x55af56,_0x4ee907){function _0x12f753(_0x3a47d1){try{_0x4b0acf(_0x89593['next'](_0x3a47d1));}catch(_0x52bc1e){_0x4ee907(_0x52bc1e);}}function _0x45e5e0(_0x204716){try{_0x4b0acf(_0x89593['throw'](_0x204716));}catch(_0x194c7a){_0x4ee907(_0x194c7a);}}function _0x4b0acf(_0x443857){_0x443857['done']?_0x55af56(_0x443857['value']):_0x565a5b(_0x443857['value'])['then'](_0x12f753,_0x45e5e0);}_0x4b0acf((_0x89593=_0x89593['apply'](_0x122f97,_0x5ce54b||[]))['next']());});};class Suggester{constructor(apiKey,_0x37d81a,options){this['input']=_0x37d81a,this['options']=options,this['suggestions']=_0x34b510=>__awaiter$8(this,void 0x0,void 0x0,function*(){return new Promise((_0x36aa94,_0x469998)=>__awaiter$8(this,void 0x0,void 0x0,function*(){try{let _0x5289c7=_0x34b510?0x0:this['options']['delay'];clearTimeout(this['filterTimer']),this['filterTimer']=setTimeout(()=>__awaiter$8(this,void 0x0,void 0x0,function*(){const _0x2be80d=yield this['getElements']();_0x36aa94(_0x2be80d);return;}),_0x5289c7);}catch(_0x121720){_0x469998(_0x121720);}}));}),this['hasMinimumCharacters']=_0x3479fa=>{var _0x275e70;!_0x3479fa&&(_0x3479fa='');var _0x3078ce=(_0x275e70=this['options']['minimum_characters'])!==null&&_0x275e70!==void 0x0?_0x275e70:0x2;return _0x3479fa['length']>=_0x3078ce;},this['getSuggestions']=_0x42914d=>{return new Promise((_0x5468c2,_0x11cb25)=>__awaiter$8(this,void 0x0,void 0x0,function*(){var _0x7ab7f6,_0x159ab0,_0x345761;try{const _0x590bbe={'all':!![],'top':this['options']['suggestion_count'],'template':this['options']['suggestion_template']};this['options']['filter']&&(_0x590bbe['filter']=this['options']['filter']);this['options']['show_postcode']&&(_0x590bbe['show_postcode']=this['options']['show_postcode']);if(!_0x590bbe['location']){const _0x23e471=Storage['list']();if(_0x23e471['length']>0x0){const _0x240bf4=_0x23e471[0x0];_0x590bbe['location']={'latitude':_0x240bf4['address']['latitude'],'longitude':_0x240bf4['address']['longitude']};}}const _0x4fe78d=yield this['client']['autocomplete'](_0x42914d,_0x590bbe);if(!_0x4fe78d['isSuccess']){const _0x2b6552=_0x4fe78d['toFailed']();_0x11cb25(_0x2b6552),(_0x7ab7f6=this['input']['list'])===null||_0x7ab7f6===void 0x0?void 0x0:_0x7ab7f6['dispatchSuggestionsFailed'](_0x42914d,_0x2b6552['status'],_0x2b6552['message']);return;}const _0x4a5360=_0x4fe78d['toSuccess']()['suggestions'];if(this['options']['highlight_search_text'])for(let _0x1774f1 of _0x4a5360){_0x1774f1['address']=this['highlightSuggestion'](_0x42914d,_0x1774f1['address']);}_0x5468c2(_0x4a5360),(_0x159ab0=this['input']['list'])===null||_0x159ab0===void 0x0?void 0x0:_0x159ab0['dispatchSuggestions'](_0x42914d,_0x4a5360);return;}catch(_0x142f4f){_0x11cb25(_0x142f4f),(_0x345761=this['