55 lines
983 B
TypeScript
55 lines
983 B
TypeScript
|
|
namespace mod_platform.rental.web
|
||
|
|
{
|
||
|
|
|
||
|
|
/**
|
||
|
|
*/
|
||
|
|
export type type_state =
|
||
|
|
{
|
||
|
|
model : lib_mvc.type_model<mod_model.rental.type_subject>;
|
||
|
|
element_dom : (null | HTMLElement);
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
*/
|
||
|
|
export function make
|
||
|
|
(
|
||
|
|
model : lib_mvc.type_model<mod_model.rental.type_subject>
|
||
|
|
) : type_state
|
||
|
|
{
|
||
|
|
return {
|
||
|
|
"model": model,
|
||
|
|
"element_dom": null,
|
||
|
|
};
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
*/
|
||
|
|
export function setup
|
||
|
|
(
|
||
|
|
platform : lib_mvc.type_model<type_state>,
|
||
|
|
target_dom : HTMLElement
|
||
|
|
) : Promise<void>
|
||
|
|
{
|
||
|
|
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<mod_model.rental.type_subject, any>
|
||
|
|
(
|
||
|
|
platform.state.model,
|
||
|
|
(event) =>
|
||
|
|
{
|
||
|
|
return lib_mvc.model_notify<type_state, any>(platform, event);
|
||
|
|
}
|
||
|
|
);
|
||
|
|
|
||
|
|
return Promise.resolve<void>(undefined);
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|