getaddress-autocomplete-modal
Version:
GetAddress.io - Autocomplete modal plug-in
70 lines • 4.22 kB
JavaScript
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