const e=`This component is meant to allow multiple configurations to live within the same plugin by:

1. re-using back-kit components without letting functionalities (mostly clients') trump each other
2. render multiple layouts together like a page with table, then a card detail, then another table and so on
3. condensate plugins into a single one

A simple instance would be a user which might want to explore multiple details connected with its user but persisted on different entities.

Since a backend resource, like a database collection/table, is mostly mapped 1:1 on a Microfrontend Composer plugin using a single client, like the CRUD Client, it is recommendable to use different plugins to render different collections. For those cases falling outside the previous scope a layout that can be switched might come in handy.

By reproducing an element-composer-compatible configuration, the Layout Container provides a wrapper for different configurations wired to one or many event-bus instances. Such configurations are switched whenever the Layout Container receives to the request of switching to a new layout, via a layout/change event.

> **⚠️ Caution**
>
> Using \`@micro-lc/composer@^2\` and \`@micro-lc/orchestrator@^2\` as rendering engine and micro-frontend orchestrator, the Layout Swap should be used instead of the Layout Container.
`,t=`Questo componente ha lo scopo di permettere la coesistenza di più configurazioni all'interno di uno stesso plugin, in modo da:

1. riutilizzare i componenti di back-kit senza lasciare che le funzionalità (soprattutto quelle dei client) prevalgano l'una sull'altra
2. renderizzare più layout insieme, come una pagina con una tabella, poi un dettaglio della scheda, poi un'altra tabella e così via
3. condensare i plugin in uno singolo.

Un esempio semplice è quello di un utente che potrebbe voler esplorare più dettagli collegati al suo utente, ma persistenti su entità diverse.

Poiché una risorsa backend, come una collezione o una tabella del database, è generalmente mappata 1:1 su un plugin del Microfrontend Composer utilizzando un singolo client, come il CRUD Client, è consigliabile utilizzare plugin diversi per rendere collezioni diverse. Per i casi che esulano da questo ambito, può essere utile un layout che possa essere cambiato.

Riproducendo una configurazione compatibile con l'element-composer, il Layout Container fornisce un wrapper per diverse configurazioni collegate a una o più istanze di event-bus. Tali configurazioni vengono cambiate ogni volta che il Layout Container riceve la richiesta di passare a un nuovo layout tramite un evento layout/change.

> **⚠️ Attenzione**
>
> Utilizzando \`@micro-lc/composer@^2\` e \`@micro-lc/orchestrator@^2\` come motore di rendering e orchestratore di micro-frontend, si dovrebbe usare il Layout Swap invece del Layout Container.
`,i={docLink:"https://docs.mia-platform.eu/docs/microfrontend-composer/back-kit/components/layout_container",type:"layout",label:"Layout Container",description:"Allow swapping layouts",descriptionLong:{en:e,it:t},example:JSON.stringify({tag:"bk-layout-container",properties:{content:{$default:{first:"plugin"},currentBasket:{second:"plugin"}}}}),definitions:{layoutNode:{__mia_configuration:{label:"Layout Node"},type:"object",properties:{attributes:{type:"object",additionalProperties:{type:"string"},__mia_configuration:{label:"Attributes"}},busDiscriminator:{__mia_configuration:{label:"Bus discriminator"},oneOf:[{type:"string"},{type:"array",items:{type:"string"}}]},content:{__mia_configuration:{label:"Content"},oneOf:[{$ref:"#/definitions/layoutNode"},{type:"array",items:{$ref:"#/definitions/layoutNode"}}]},properties:{type:"object",__mia_configuration:{label:"Properties"}},tag:{type:"string",__mia_configuration:{label:"Tag"}},type:{type:"string",__mia_configuration:{label:"Type"}}}}},properties:{currentLayout:{type:"string",default:"$default",__mia_configuration:{attribute:"current-layout",label:"Current Layout",description:"Layout to view on landing",priority:"high"}},content:{__mia_configuration:{attribute:!1,label:"Content",description:"Layout configurations",priority:"high"},type:"object",additionalProperties:{oneOf:[{$ref:"#/definitions/layoutNode"},{type:"array",items:{$ref:"#/definitions/layoutNode"}}]}}}};var n=i;export{n as default};
