namespace mod_platform.rental.web { /** */ export type type_state = { model : lib_mvc.type_model; element_dom : (null | HTMLElement); } /** */ export function make ( model : lib_mvc.type_model ) : type_state { return { "model": model, "element_dom": null, }; } /** */ export function setup ( platform : lib_mvc.type_model, target_dom : HTMLElement ) : Promise { let fragment : DocumentFragment = lib_dom.request("rental"); let rental_dom : HTMLElement = fragment.querySelector(".rental"); target_dom.appendChild(fragment); platform.state.element_dom = rental_dom; // propagate events from the model lib_mvc.model_listen ( platform.state.model, (event) => { return lib_mvc.model_notify(platform, event); } ); return Promise.resolve(undefined); } }