Skip to content

Billing Address Modal

The <billing-address-modal> webcomponent is used to render a modal containing a billing address of a customer.

Attributes

Attribute name Type Default Description
address Address null The address of a user that should be used to fill the default values of a form inside the modal
isLoggedIn boolean false If a user is logged in this prop should be set to true

API

API of a <billing-address-modal> is basically the same as this of a h-modal webcomponent. The only difference is that the open method of this webcomponent dispatches the billingAddressModal.opened event with the Event Bus.

open(): void

Opens modal and dispatches the billingAddressModal.opened event.

const billingAddressModal = document.querySelector('billing-address-modal');
billingAddressModal.open();

Event Bus events

This webcomponent emits the following events with the Event Bus:

Example

<billing-address-modal></billing-address-modal>
    <billing-address-modal>
        <h-modal hidden>
            <h-portal hidden disabled to="modals">
                <div class="modal-wrapper">
                    <div tabindex="0"></div>
                    <div class="modal" role="dialog">
                        <div class="modal__container">
                            <h-modal-header class="modal__header">
                                <b class="font_semibold">Dane do zamówienia</b>
                                <h-modal-close class="btn btn_icon" tabindex="0" role="button">
                                    <h-icon icon-name="icon-x" role="button" size="xl" clickable>
                                        <svg class="icon icon_xl icon_clickable">
                                            <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-x"></use>
                                        </svg>
                                    </h-icon>
                                </h-modal-close>
                            </h-modal-header>
                            <h-modal-body class="modal__body">
                                <billing-address-form>
                                    <reactive-form>
                                        <form id="form-a42a8a7c-a82f-4ba5-b844-a1c2aae5093c" novalidate>
                                            <control-connector requiredingroup class="control control_row">
                                                <h-control-content class="control__content_auto control__content">
                                                    <h-control-element class="control__element">
                                                        <h-radio controlid="firstname1" controlname="isCompany" value="false" class="radio">
                                                            <h-radio-control class="radio__control">
                                                                <input type="radio" class="radio__input" id="firstname1" name="isCompany" value="false">
                                                                <label class="radio__label" for="firstname1"></label>
                                                            </h-radio-control>
                                                            <h-radio-content class="radio__content">
                                                                <label class="label" for="firstname1"><span>Konsument</span></label>
                                                            </h-radio-content>
                                                        </h-radio>
                                                    </h-control-element>
                                                    <control-errors></control-errors>
                                                </h-control-content>
                                                <h-control-content class="control__content_auto control__content">
                                                    <h-control-element class="control__element">
                                                        <h-radio controlid="firstname2" controlname="isCompany" value="true" class="radio">
                                                            <h-radio-control class="radio__control">
                                                                <input type="radio" class="radio__input" id="firstname2" name="isCompany" value="true">
                                                                <label class="radio__label" for="firstname2"></label>
                                                            </h-radio-control>
                                                            <h-radio-content class="radio__content">
                                                                <label class="label" for="firstname2"><span>Firma</span></label>
                                                            </h-radio-content>
                                                        </h-radio>
                                                    </h-control-element>
                                                    <control-errors></control-errors>
                                                </h-control-content>
                                            </control-connector>
                                            <control-connector min="3" email class="control">
                                                <h-control class="control">
                                                    <h-control-label class="control__label">
                                                        <label class="label label_required" for="email-67639d5b-c3cf-45cd-8465-8f20f8014439">Adres e-mail</label>
                                                    </h-control-label>
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element">
                                                            <h-input controlname="email" controlid="email-67639d5b-c3cf-45cd-8465-8f20f8014439" class="input">
                                                                <h-input-control class="input__control">
                                                                    <input id="email-67639d5b-c3cf-45cd-8465-8f20f8014439" name="email" type="text">
                                                                </h-input-control>
                                                            </h-input>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                            <control-connector required class="control">
                                                <h-control class="control">
                                                    <h-control-label class="control__label">
                                                        <label class="label label_required" for="first-name-e42b0e11-8380-40ab-a2c0-942c8b5335f7">Imię</label>
                                                    </h-control-label>
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element">
                                                            <h-input controlname="firstname" controlid="first-name-e42b0e11-8380-40ab-a2c0-942c8b5335f7" class="input">
                                                                <h-input-control class="input__control">
                                                                    <input id="first-name-e42b0e11-8380-40ab-a2c0-942c8b5335f7" name="firstname" type="text">
                                                                </h-input-control>
                                                            </h-input>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                            <control-connector required class="control">
                                                <h-control class="control">
                                                    <h-control-label class="control__label">
                                                        <label class="label label_required" for="last-name-12e6bfaf-360d-4c91-84ca-168d2d4c7def">Nazwisko</label>
                                                    </h-control-label>
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element">
                                                            <h-input controlname="lastname" controlid="last-name-12e6bfaf-360d-4c91-84ca-168d2d4c7def" class="input">
                                                                <h-input-control class="input__control">
                                                                    <input id="last-name-12e6bfaf-360d-4c91-84ca-168d2d4c7def" name="lastname" type="text">
                                                                </h-input-control>
                                                            </h-input>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                            <control-connector required class="control">
                                                <h-control class="control">
                                                    <h-control-label class="control__label">
                                                        <label class="label label_required" for="phone-cea72e38-955d-4fdf-a97e-11c3570c35d0">Numer telefonu</label>
                                                    </h-control-label>
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element">
                                                            <h-input controlname="phone" controlid="phone-cea72e38-955d-4fdf-a97e-11c3570c35d0" class="input">
                                                                <h-input-control type="tel" class="input__control">
                                                                    <input id="phone-cea72e38-955d-4fdf-a97e-11c3570c35d0" name="phone" type="text">
                                                                </h-input-control>
                                                            </h-input>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                            <control-connector required class="control">
                                                <h-control class="control">
                                                    <h-control-label class="control__label">
                                                        <label class="label label_required" for="country-70c16654-cbf7-4284-bc1d-95c3b2ad7aa3">Kraj</label>
                                                    </h-control-label>
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element control__element_half">
                                                            <h-select class="select select_with-search" control-name="countryId" control-id="country-70c16654-cbf7-4284-bc1d-95c3b2ad7aa3">
                                                                <h-dropdown content-width="full" name="countryId" offset="2" direction="bottom-center">
                                                                    <h-dropdown-toggler class="dropdown__toggler" name="countryId" tabindex="0" role="button" aria-expanded="false">
                                                                        <h-select-toggler class="select-toggler select-toggler_selected" role="textbox" slot="toggler">
                                                                            <ul class="select-toggler__values">
                                                                                <li>Polska</li>
                                                                            </ul>
                                                                            <h-icon icon-name="icon-chevron-down">
                                                                                <svg class="icon">
                                                                                    <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-chevron-down"></use>
                                                                                </svg>
                                                                            </h-icon>
                                                                        </h-select-toggler>
                                                                    </h-dropdown-toggler>
                                                                    <h-portal hidden disabled to="dropdown-portal">
                                                                        <h-dropdown-content class="select__content dropdown__content" name="countryId" role="menu">
                                                                            <h-select-close-btn class="select__close-mobile-btn" role="menuitem" aria-label="close select" tabindex="0">
                                                                                <h-icon icon-name="icon-x" size="l">
                                                                                    <svg class="icon icon_l">
                                                                                        <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-x"></use>
                                                                                    </svg>
                                                                                </h-icon>
                                                                            </h-select-close-btn>
                                                                            <div class="select__label" role="menuitem">
                                                                                <span class="select-toggler__placeholder">Wybierz</span>
                                                                            </div>
                                                                            <h-select-search class="select__search select-search" role="menuitem" value="">
                                                                                <h-icon icon-name="icon-search" class="select-search__icon">
                                                                                    <svg class="icon">
                                                                                        <use xlink:href="/assets/img/icons/symbol-defs.svg#icon-search"></use>
                                                                                    </svg>
                                                                                </h-icon>
                                                                                <input type="text" role="search" aria-autocomplete="list" autocomplete="false" placeholder="Szukaj" class="select-search__input">
                                                                            </h-select-search>
                                                                            <h-options role="menuitem" tabindex="0" class="select__options">
                                                                                <h-option value="1" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Andora</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="2" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Zjednoczone Emiraty Arabskie</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="3" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Afganistan</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="4" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Antigua i Barbuda</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="5" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Anguilla</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="6" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Albania</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="7" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Armenia</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="8" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Angola</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="249" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Zimbabwe</h-option-content>
                                                                                </h-option>
                                                                                <h-option value="250" tabindex="-1" role="option" class="select-option">
                                                                                    <h-option-content class="select-option__content">Northern Ireland</h-option-content>
                                                                                </h-option>
                                                                            </h-options>
                                                                            <div role="menuitem"></div>
                                                                        </h-dropdown-content>
                                                                    </h-portal>
                                                                </h-dropdown>
                                                                <input type="hidden" name="countryId" value="179">
                                                            </h-select>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                            <control-connector required class="control">
                                                <h-control class="control">
                                                    <h-control-label class="control__label">
                                                        <label class="label label_required" for="street-2d5a469e-3d8c-4956-8dd4-c340b4cc6f5f">Ulica, numer budynku i lokalu</label>
                                                    </h-control-label>
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element">
                                                            <h-input controlname="street" controlid="street-2d5a469e-3d8c-4956-8dd4-c340b4cc6f5f" class="input">
                                                                <h-input-control class="input__control">
                                                                    <input id="street-2d5a469e-3d8c-4956-8dd4-c340b4cc6f5f" name="street" type="text">
                                                                </h-input-control>
                                                            </h-input>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                            <control-connector required class="control">
                                                <h-control class="control">
                                                    <h-control-label class="control__label">
                                                        <label class="label label_required" for="postal-code-582c581d-8366-4dfd-bc57-f88b7f374437">Kod pocztowy</label>
                                                    </h-control-label>
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element control__element_quarter">
                                                            <h-input controlname="postalCode" controlid="postal-code-582c581d-8366-4dfd-bc57-f88b7f374437" class="input">
                                                                <h-input-control mask="__-___" pattern="^(\d{2})(-)(\d{3})$" valid-pattern="00-000" class="input__control">
                                                                    <input id="postal-code-582c581d-8366-4dfd-bc57-f88b7f374437" name="postalCode" type="text">
                                                                </h-input-control>
                                                            </h-input>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                            <control-connector required class="control">
                                                <h-control class="control">
                                                    <h-control-label class="control__label">
                                                        <label class="label label_required" for="city-33ab31c5-250d-45ba-a592-ba0f1001cef9">Miasto</label>
                                                    </h-control-label>
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element">
                                                            <h-input controlname="city" controlid="city-33ab31c5-250d-45ba-a592-ba0f1001cef9" class="input">
                                                                <h-input-control class="input__control">
                                                                    <input id="city-33ab31c5-250d-45ba-a592-ba0f1001cef9" name="city" type="text">
                                                                </h-input-control>
                                                            </h-input>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                            <control-connector class="control">
                                                <h-control class="control">
                                                    <h-control-content class="control control__content">
                                                        <h-control-element class="control__element">
                                                            <h-checkbox controlname="createUserAccount" value="1" controlid="create-user-account-6a4e58cf-fed4-4ac5-b58c-d3b7571dfcc0" class="checkbox">
                                                                <h-checkbox-control class="checkbox__control">
                                                                    <input type="checkbox" class="checkbox__input" id="create-user-account-6a4e58cf-fed4-4ac5-b58c-d3b7571dfcc0" name="createUserAccount" value="1">
                                                                    <label class="checkbox__label" for="create-user-account-6a4e58cf-fed4-4ac5-b58c-d3b7571dfcc0"></label>
                                                                </h-checkbox-control>
                                                                <h-checkbox-content class="checkbox__content">
                                                                    <label class="label" for="create-user-account-6a4e58cf-fed4-4ac5-b58c-d3b7571dfcc0"><span>Chcę założyć konto w sklepie</span></label>
                                                                    <div class="checkbox__description">
                                                                        <p>
                                                                            Opcjonalne<br>
                                                                            Otrzymasz link do tworzenia hasła na e-mail. Zakładając konto, akceptujesz regulamin sklepu.
                                                                        </p>
                                                                    </div>
                                                                </h-checkbox-content>
                                                            </h-checkbox>
                                                        </h-control-element>
                                                        <control-errors></control-errors>
                                                    </h-control-content>
                                                </h-control>
                                            </control-connector>
                                        </form>
                                    </reactive-form>
                                </billing-address-form>
                            </h-modal-body>
                            <h-modal-footer class="modal__footer">
                                <button class="btn btn_secondary">
                                    Anuluj
                                </button>
                                <button class="btn btn_primary">
                                    Zapisz dane
                                </button>
                            </h-modal-footer>
                        </div>
                    </div>
                    <div tabindex="0"></div>
                </div>
            </h-portal>
        </h-modal>
    </billing-address-modal>