# j-Layout

> Създаването на оформление е много лесно и с много възможности. Разпоредбата трябва да има собствена HTML структура. Погледнете примера. Примерът по-долу описва само мета данните на оформлението.

Framework: jcomponent20
Product: jComponent 20 (jcomponent@20)
Language: bg
Content-SHA256: 901764b9b8b4ecbc8b5eca5349f40f47d663bc760b9a9c1cefb40ba3bfe5799f
Snapshot: c0700e321579725c5cf4f5ace1ad7d2866d1b4f93c24a63c0b41b6b7998e976c
Sources: components@910ed1a86f6e72b4f031d3ad0dc7844f9fc5cb8e
Review: not-recorded

- Този компонент е малко по-трудно за разбиране, но е много полезно. `j-Layout` използва jComponent `+v17`.

__Конфигуриране__:

- `parent {String}` може да съдържа `parent`, `window` или jQuery селектор за метода на `closest` (предварително: `window`)
- `margin {Number}` добавя марж за `height` (предварително: `0`)
- `remember {Boolean}` може да си спомня последните настройки за рециклиране (предварително: `true`)
- `space {Number}` вътрешно, съдържа пространство между панелите (предварително: `1`)
- Външен `border {Number}`, съдържащ граничен размер (предварително: `0`)
- `resize {String}` вътрешен, пътят към метода, който се изпълнява, когато се преразпределя
- `autoresize {Boolean}` позволява автоматично резиз (предварително: `true`)

__Методи__:

- `component.refresh()` Рефресиране
- `component.resize()` се изпълнява
- `component.reset()` презарежда рецидивите
- `component.layout(name)` променя расположението (като два начина за свързване на данни)
- `component.rebind(code_string)` създава нова конфигурация
- `component.lock(type, [boolean])` затваря панела

__Типове панели__:

- `left` леви панел, рециклиран
- `right` Права панел, рециклираща
- Планът `right2` ще бъде вляво от панела и ще използва ключа на `right` в конфигурацията.
- `top` топ панел, рециклиран (то е на върха на всички панели)
- `top2` топ панел, рециклиран и използва `top` ключ в конфигурацията (то е между `left` и `right` панела)
- `bottom` дъно панел, рециклиран (то е на дъното на всички панели)
- `bottom2` дъно панел, рециклиран и използва `bottom` ключ в конфигурацията (то е между `left` и `right` панела)
- Главен панел `main`, не може да бъде рециклиран и размерът се брои автоматично

__Лайоут__:

Създаването на оформление е много лесно и с много възможности. Разпоредбата трябва да има собствена HTML структура. Погледнете примера. Примерът по-долу описва само мета данните на оформлението.

- `size {Number/String}` може да съдържа височина/ширина на панела според типа на панел. номерът `120` определя пикселите и String `100%` може да определи процента
- `minsize {Number/String}` е минимален размер на панела, докато панелът се рецидира (предварително: стойност `size`)
- `maxsize {Number/String}` е максималният размер на панела, докато панелът се рецидира (предварително: автоматично)
- `resize {Boolean}` позволява рециклиране на панела с изключение на панел `main` (то се брои автоматично)
- `show {Boolean}` позволява видимост (предварително: `false`)

```js
{
	top: { size: 80, resize: true, minsize: 50 }, // top panel
	right: { size: 100 },
	bottom: { size: 100 }, // bottom panel
	left: { size: 100, resize: true }, // left panel
	main: {}, // main panel

	// Can contain a different template for various display types
	// lg = Large display, md = Medium display, sm = Small display, xs = Extra small display
	md: {
		top: { show: true, size: 80 },
		bottom: { show: false },
		left: { show: false },
		main: { show: true }
	},

	// Custom layouts
	detail: {

		// Custom display types in custom layouts
		md: {
			top: { show: true },
			bottom: { show: true },
			main: { show: true },
			left: { show: false },
			right: { show: true, size: 300 }
		},
		xs: {
			top: { show: true },
			bottom: { show: true },
			main: { show: false },
			left: { show: false },
			right: { show: true, size: '100%' }
		}
	}
}
```

__Добре е да се знае__:

- __Важен: Този компонент трябва да съдържа мета-данни на раздела, вграден в `<script type="text/plain"></script>`
- Всеки панел е елемент `section` и трябва да съдържа атрибут `data-type="top"` с тип панел
- Определяйте само панелите, които ще използвате
- Поръчането на всички елементи на `section` не е важно
- `top2` използва ключ за конфигурация на `top`
- `right2` използва ключ за конфигурация на `right`
- `bottom2` използва ключ за конфигурация на `bottom`

Използвайте го с `<ui-component name="layout">`Когато компонентът все още не е зареден, jComponent Изтегляне на първия адрес в `DEF.fallback` (След това Componentator Източник: Питър Шерка Componentator Съставни съставки, лиценз на MIT.

```html example.html
<style>
	.ui-layout-section { font-size: 11px; }
</style>

<div style="width:500px;height:300px">
	<ui-component name="layout" path="mylayout" config="parent:parent" class="invisible">

		<!-- META DATA OF THE LAYOUT -->
		<!-- VERY IMPORTANT -->
		<script type="text/plain">
			{
				top: { size: 80, resize: true },
				bottom: { size: 100 },
				left: { size: 100, minsize: 50, resize: true },
				right: { size: 100 },
				main: {},
				detail: {
					left: { show: false },
					right: { show: true, size: '100%' },
					bottom: { show: false },
					main: { show: false }
				}
			}
		</script>

		<!-- PANEL IN LAYOUT -->
		<section data-type="top">
			TOP
		</section>

		<!-- PANEL IN LAYOUT -->
		<section data-type="main">
			MAIN
		</section>

		<!-- PANEL IN LAYOUT -->
		<section data-type="right">
			RIGHT
		</section>

		<!-- PANEL IN LAYOUT -->
		<section data-type="left">
			LEFT
		</section>

		<!-- PANEL IN LAYOUT -->
		<section data-type="bottom">
			BOTTOM
		</section>

	</ui-component>
</div>

<br />

<div style="width:500px;height:300px">
	<ui-component name="layout" config="parent:parent" class="invisible">
		<script type="text/plain">
			{
				top: { size: 80, resize: 1 },
				bottom: { size: 100 },
				left: { size: 100 },
				right: { size: 100 },
				main: {}
			}
		</script>

		<section data-type="top2">
			TOP2
		</section>

		<section data-type="main">
			MAIN
		</section>

		<section data-type="right">
			RIGHT
		</section>

		<section data-type="left">
			LEFT
		</section>

		<section data-type="bottom2">
			BOTTOM2
		</section>

	</ui-component>
</div>

<script>

	var mylayout = '';

	setInterval(function() {
		SET('mylayout', mylayout === 'detail' ? '' : 'detail');
	}, 5000);

	setInterval(function() {
		SETTER('layout', 'lock', 'right');
	}, 8000);

</script>
```
