Your IP : 216.73.216.86


Current Path : /var/www/homesaver/www/bitrix/js/ui/stamp/uploader/src/upload-layout/
Upload File :
Current File : /var/www/homesaver/www/bitrix/js/ui/stamp/uploader/src/upload-layout/upload-layout.js

import {Cache, Tag} from 'main.core';

import './css/style.css';

type UploadLayoutOptions = {
	children: Array<{getLayout: () => HTMLElement}>,
}

export default class UploadLayout
{
	cache = new Cache.MemoryCache();

	constructor(options: UploadLayoutOptions)
	{
		this.setOptions(options);
	}

	setOptions(options: UploadLayoutOptions)
	{
		this.cache.set('options', {...options});
	}

	getOptions(): UploadLayoutOptions
	{
		return this.cache.get('options', {});
	}

	getLayout(): HTMLDivElement
	{
		return this.cache.remember('layout', () => {
			return Tag.render`
				<div class="ui-stamp-uploader-upload-layout">
					${this.getOptions().children.map((item) => item.getLayout())}
				</div>
			`;
		});
	}
}