UNPKG

getaddress-autocomplete-modal

Version:

GetAddress.io - Autocomplete modal plug-in

70 lines 4.22 kB
var __awaiter = (this && this.__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()); }); }; import ClearHistoryButton from "./ClearHistoryButton.js"; import { Debug } from "./Debug.js"; export default class HistoryContainer { constructor(modal, attributeValues, autoCompleteAddress, addressId, historyList) { this.modal = modal; this.attributeValues = attributeValues; this.autoCompleteAddress = autoCompleteAddress; this.addressId = addressId; this.historyList = historyList; this.container = document.createElement('DIV'); this.element = this.container; this.build = () => { this.container.className = this.attributeValues.historyContainerClassName; const containerItem1 = document.createElement('DIV'); containerItem1.className = this.attributeValues.historyContainerItem1ClassName; containerItem1.classList.add(this.attributeValues.historyContainerItemClassName); var clockIcon = document.createElement('i'); clockIcon.className = this.attributeValues.iconClockClassName; clockIcon.classList.add(this.attributeValues.iconClassName); clockIcon.classList.add(this.attributeValues.histroyIconClockClassName); containerItem1.insertBefore(clockIcon, null); const containerItem2 = document.createElement('DIV'); containerItem2.className = this.attributeValues.historyContainerItem2ClassName; containerItem2.classList.add(this.attributeValues.historyContainerItemClassName); containerItem2.innerHTML = `<div class="${this.attributeValues.historyHtmlClassName}">` + `<div><b>${this.autoCompleteAddress.formatted_address[0]}</b></div>` + `<div>${this.getFormattedAddress()}</div>` + '</div>'; const containerItem3 = document.createElement('DIV'); containerItem3.className = this.attributeValues.historyContainerItem3ClassName; containerItem3.classList.add(this.attributeValues.historyContainerItemClassName); const clearHistoryButton = new ClearHistoryButton(this.attributeValues, this.addressId, this); containerItem3.insertBefore(clearHistoryButton.element, null); this.container.insertBefore(containerItem3, null); this.container.insertBefore(containerItem2, containerItem3); this.container.insertBefore(containerItem1, containerItem2); this.container.addEventListener('click', this.handleClick); }; this.getFormattedAddress = () => { let line4 = this.autoCompleteAddress.formatted_address[4]; let line3 = this.autoCompleteAddress.formatted_address[3]; let line2 = this.autoCompleteAddress.formatted_address[2]; let line1 = this.autoCompleteAddress.formatted_address[1]; const addressLines = [line1, line2, line3, line4]; const filtered = addressLines.filter((line) => { return line.length > 0; }); return `${filtered.join(', ')}, ${this.autoCompleteAddress.postcode}`; }; this.handleClick = (e) => __awaiter(this, void 0, void 0, function* () { Debug.Log(this.attributeValues, e); this.modal.close(); this.modal.dispatchSelected(this.addressId, this.autoCompleteAddress); }); this.destroy = () => { this.container.removeEventListener('click', this.handleClick); }; this.build(); } } //# sourceMappingURL=HistoryContainer.js.map