@ribajs/shopify
Version:
Shopify extension for Riba.js
90 lines • 6.55 kB
JavaScript
import { Component, HttpService } from "@ribajs/core";
import { hasChildNodesTrim } from "@ribajs/utils/src/dom.js";
export class ShopifyAddressesComponent extends Component {
static tagName = "shopify-addresses-form";
static get observedAttributes() {
return [];
}
editAddressForm = null;
createAddressForm = null;
scope = {
createAddress: {
validation: {
valid: false,
},
},
showFormId: "",
editAddress: {},
edit: this.edit,
create: this.create,
delete: this.delete,
};
constructor() {
super();
}
connectedCallback() {
super.connectedCallback();
this.init(ShopifyAddressesComponent.observedAttributes);
}
edit(id, event) {
const form = this.querySelector(`form[action="/account/addresses/${id}]`);
if (!form) {
return false;
}
event.preventDefault();
event.stopPropagation();
this.validate(form, this.scope.editAddress[id].validation);
if (this.scope.editAddress[id].validation.valid) {
form.submit();
}
}
create(event) {
if (!this.createAddressForm) {
return false;
}
event.preventDefault();
event.stopPropagation();
this.validate(this.createAddressForm, this.scope.createAddress.validation);
if (this.scope.createAddress.validation.valid) {
this.createAddressForm.submit();
}
}
async delete(id) {
try {
await HttpService.delete(`/account/addresses/${id}`, {}, "json");
location.reload();
}
catch (error) {
console.error("delete error", error);
location.reload();
}
}
initValidation() {
this.editAddressForm = this.querySelector('form[action^="/account/addresses/"]');
this.editAddressForm.attr("novalidate", "");
this.editAddressForm.addClass("needs-validation");
this.createAddressForm = this.querySelector('form[action="/account/addresses"]');
this.createAddressForm.attr("novalidate", "");
this.createAddressForm.addClass("needs-validation");
}
validate(form, validationScope) {
validationScope.valid = form.checkValidity();
form.classList.add("was-validated");
}
async afterBind() {
this.initValidation();
}
requiredAttributes() {
return [];
}
async template() {
if (this && hasChildNodesTrim(this)) {
return null;
}
else {
const { default: template } = await import("./addresses-form.component.html?raw");
return template;
}
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkcmVzc2VzLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYWRkcmVzc2VzLWZvcm0vYWRkcmVzc2VzLWZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFhLE1BQU0sY0FBYyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBK0M3RCxNQUFNLE9BQU8seUJBQTBCLFNBQVEsU0FBUztJQUMvQyxNQUFNLENBQUMsT0FBTyxHQUFHLHdCQUF3QixDQUFDO0lBRWpELE1BQU0sS0FBSyxrQkFBa0I7UUFDM0IsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRVMsZUFBZSxHQUEyQixJQUFJLENBQUM7SUFDL0MsaUJBQWlCLEdBQTJCLElBQUksQ0FBQztJQUVwRCxLQUFLLEdBQVU7UUFDcEIsYUFBYSxFQUFFO1lBQ2IsVUFBVSxFQUFFO2dCQUNWLEtBQUssRUFBRSxLQUFLO2FBQ2I7U0FDRjtRQUNELFVBQVUsRUFBRSxFQUFFO1FBQ2QsV0FBVyxFQUFFLEVBQUU7UUFDZixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7UUFDZixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDbkIsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO0tBQ3BCLENBQUM7SUFFRjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVTLGlCQUFpQjtRQUN6QixLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFVLEVBQUUsS0FBWTtRQUNsQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUM3QixtQ0FBbUMsRUFBRSxHQUFHLENBQ3RCLENBQUM7UUFFckIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBR0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzRCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNoRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNILENBQUM7SUFLTSxNQUFNLENBQUMsS0FBWTtRQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDNUIsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBR0QsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUV4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUzRSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFJTSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQVU7UUFDNUIsSUFBSSxDQUFDO1lBQ0gsTUFBTSxXQUFXLENBQUMsTUFBTSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDakUsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRVMsY0FBYztRQUN0QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQ3ZDLHFDQUFxQyxDQUNuQixDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBRWxELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUN6QyxtQ0FBbUMsQ0FDakIsQ0FBQztRQUNyQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVTLFFBQVEsQ0FBQyxJQUFxQixFQUFFLGVBQWlDO1FBQ3pFLGVBQWUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxLQUFLLENBQUMsU0FBUztRQUN2QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVTLGtCQUFrQjtRQUMxQixPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFUyxLQUFLLENBQUMsUUFBUTtRQUV0QixJQUFJLElBQUksSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sTUFBTSxDQUN4QyxxQ0FBcUMsQ0FDdEMsQ0FBQztZQUNGLE9BQU8sUUFBUSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDIn0=