@soxa-ui/angular 0.0.0-stage → 0.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +613 -2
- package/dist/fesm2022/soxa-ui-angular.mjs +19957 -0
- package/dist/fesm2022/soxa-ui-angular.mjs.map +1 -0
- package/dist/types/soxa-ui-angular.d.ts +11535 -0
- package/package.json +70 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"soxa-ui-angular.mjs","names":["i1.SubtreeDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective","i1.ValueAccessorDirective"],"sources":["../../src/adapter/common/naming.ts","../../src/adapter/common/profile.ts","../../src/adapter/runtime/useAdapter.ts","../../src/adapter/runtime/root-attributes.ts","../../src/adapter/runtime/teleport.ts","../../src/adapter/attrs/host.ts","../../src/adapter/attrs/registry.ts","../../src/adapter/runtime/root/paint.ts","../../src/adapter/runtime/root/host-element.ts","../../src/adapter/runtime/root/strategies.ts","../../src/adapter/runtime/subtree.directive.ts","../../src/adapter/runtime/value-accessor.directive.ts","../../src/adapter/runtime/component.base.ts","../../src/adapter/runtime/slot.directive.ts","../../src/adapter/runtime/attributes.directive.ts","../../src/adapter/runtime/field-text.directive.ts","../../src/adapter/runtime/text.pipe.ts","../../src/adapter/runtime/runs.pipe.ts","../../src/generated/view.metadata.ts","../../src/generated/component.metadata.ts","../../src/adapter/common/useInputs.ts","../../src/adapter/common/useOutputs.ts","../../src/adapter/locale/context.ts","../../src/adapter/common/mount-id.ts","../../src/adapter/common/createAngularAdapterContext.ts","../../src/adapter/common/role-icon.directive.ts","../../src/adapter/locale/locale-provider.directive.ts","../../src/adapter/elevator/layer.ts","../../src/adapter/elevator/elevator.class.ts","../../src/adapter/elevator/factory.ts","../../src/adapter/attrs/renderer.ts","../../src/adapter/attrs/factory.ts","../../src/adapter/attrs/provide.ts","../../src/adapter/toasts/useToasts.ts","../../src/adapter/toasts/render.ts","../../src/components/component/setup.component.ts","../../src/components/component/component.component.ts","../../src/adapter/runtime/boolean-input.ts","../../src/generated/component-view.metadata.ts","../../src/components/component-view/setup.component.ts","../../src/components/component-view/component-view.component.ts","../../src/generated/stylable.metadata.ts","../../src/components/stylable/setup.component.ts","../../src/generated/control.metadata.ts","../../src/components/control/setup.component.ts","../../src/generated/interactive.metadata.ts","../../src/components/interactive/setup.component.ts","../../src/generated/value-control.metadata.ts","../../src/components/value-control/setup.component.ts","../../src/generated/input-control.metadata.ts","../../src/components/input-control/setup.component.ts","../../src/generated/textable.metadata.ts","../../src/components/textable/setup.component.ts","../../src/generated/button.metadata.ts","../../src/components/button/setup.component.ts","../../src/components/button/button.component.ts","../../src/components/button/button.component.html","../../src/generated/item-row.metadata.ts","../../src/components/item-row/setup.component.ts","../../src/components/item-row/item-row.component.ts","../../src/components/button/button.component.html","../../src/generated/icon.metadata.ts","../../src/components/icon/setup.component.ts","../../src/components/icon/icon.component.ts","../../src/generated/label.metadata.ts","../../src/components/label/setup.component.ts","../../src/components/label/label.component.ts","../../src/components/label/label.component.html","../../src/generated/field.metadata.ts","../../src/components/field/setup.component.ts","../../src/components/field/field.component.ts","../../src/components/field/field.component.html","../../src/generated/progress-spinner.metadata.ts","../../src/components/progress-spinner/setup.component.ts","../../src/components/progress-spinner/progress-spinner.component.ts","../../src/components/progress-spinner/progress-spinner.component.html","../../src/generated/progress-linear.metadata.ts","../../src/components/progress-linear/setup.component.ts","../../src/components/progress-linear/progress-linear.component.ts","../../src/components/progress-linear/progress-linear.component.html","../../src/generated/skeleton.metadata.ts","../../src/components/skeleton/setup.component.ts","../../src/components/skeleton/skeleton.component.ts","../../src/components/skeleton/skeleton.component.html","../../src/generated/frame.metadata.ts","../../src/components/frame/setup.component.ts","../../src/components/frame/frame.component.ts","../../src/components/frame/frame.component.html","../../src/generated/popover.metadata.ts","../../src/components/popover/setup.component.ts","../../src/components/popover/popover.component.ts","../../src/components/popover/popover.component.html","../../src/generated/tooltip.metadata.ts","../../src/components/tooltip/setup.component.ts","../../src/components/tooltip/tooltip.component.ts","../../src/components/tooltip/tooltip.component.html","../../src/generated/menu.metadata.ts","../../src/components/menu/setup.component.ts","../../src/generated/menu-item.metadata.ts","../../src/components/menu/item/setup.component.ts","../../src/components/menu/item/menu-item.component.ts","../../src/components/menu/item/menu-item.component.html","../../src/generated/menu-submenu.metadata.ts","../../src/components/menu/submenu/setup.component.ts","../../src/generated/menu-group.metadata.ts","../../src/components/menu/group/setup.component.ts","../../src/components/menu/group/menu-group.component.ts","../../src/components/menu/group/menu-group.component.html","../../src/generated/menu-separator.metadata.ts","../../src/components/menu/separator/setup.component.ts","../../src/components/menu/separator/menu-separator.component.ts","../../src/components/menu/submenu/menu-submenu.component.ts","../../src/components/menu/submenu/menu-submenu.component.html","../../src/components/menu/menu.component.ts","../../src/components/menu/menu.component.html","../../src/generated/menu-checkbox-item.metadata.ts","../../src/components/menu/checkbox-item/setup.component.ts","../../src/components/menu/checkbox-item/menu-checkbox-item.component.ts","../../src/components/menu/checkbox-item/menu-checkbox-item.component.html","../../src/generated/menu-radio-item.metadata.ts","../../src/components/menu/radio-item/setup.component.ts","../../src/components/menu/radio-item/menu-radio-item.component.ts","../../src/components/menu/radio-item/menu-radio-item.component.html","../../src/generated/menu-radio-group.metadata.ts","../../src/components/menu/radio-group/setup.component.ts","../../src/components/menu/radio-group/menu-radio-group.component.ts","../../src/components/menu/radio-group/menu-radio-group.component.html","../../src/generated/menu-popover-item.metadata.ts","../../src/components/menu/popover-item/setup.component.ts","../../src/components/menu/popover-item/menu-popover-item.component.ts","../../src/components/menu/popover-item/menu-popover-item.component.html","../../src/generated/dialog.metadata.ts","../../src/components/dialog/setup.component.ts","../../src/components/dialog/dialog.component.ts","../../src/components/dialog/dialog.component.html","../../src/generated/drawer.metadata.ts","../../src/components/drawer/setup.component.ts","../../src/components/drawer/drawer.component.ts","../../src/components/drawer/drawer.component.html","../../src/generated/toasts.metadata.ts","../../src/components/toasts/setup.component.ts","../../src/generated/toasts-item.metadata.ts","../../src/components/toasts/item/setup.component.ts","../../src/components/toasts/item/toasts-item.component.ts","../../src/components/toasts/item/toasts-item.component.html","../../src/components/toasts/toasts.component.ts","../../src/components/toasts/toasts.component.html","../../src/generated/input.metadata.ts","../../src/components/input/setup.component.ts","../../src/components/input/input.component.ts","../../src/components/input/input.component.html","../../src/generated/number-input.metadata.ts","../../src/components/number-input/setup.component.ts","../../src/components/number-input/number-input.component.ts","../../src/components/number-input/number-input.component.html","../../src/generated/textarea.metadata.ts","../../src/components/textarea/setup.component.ts","../../src/components/textarea/textarea.component.ts","../../src/components/textarea/textarea.component.html","../../src/generated/date-input.metadata.ts","../../src/components/date-input/setup.component.ts","../../src/components/date-input/date-input.component.ts","../../src/components/date-input/date-input.component.html","../../src/generated/check-box.metadata.ts","../../src/components/check-box/setup.component.ts","../../src/components/check-box/check-box.component.ts","../../src/components/check-box/check-box.component.html","../../src/generated/switch.metadata.ts","../../src/components/switch/setup.component.ts","../../src/components/switch/switch.component.ts","../../src/components/switch/switch.component.html","../../src/generated/slider.metadata.ts","../../src/components/slider/setup.component.ts","../../src/components/slider/slider.component.ts","../../src/components/slider/slider.component.html","../../src/generated/rating.metadata.ts","../../src/components/rating/setup.component.ts","../../src/components/rating/rating.component.ts","../../src/components/rating/rating.component.html","../../src/generated/list-box.metadata.ts","../../src/components/list-box/setup.component.ts","../../src/generated/list-box-item.metadata.ts","../../src/components/list-box/item/setup.component.ts","../../src/components/list-box/item/list-box-item.component.ts","../../src/components/list-box/item/list-box-item.component.html","../../src/generated/list-box-group.metadata.ts","../../src/components/list-box/group/setup.component.ts","../../src/components/list-box/group/list-box-group.component.ts","../../src/components/list-box/group/list-box-group.component.html","../../src/components/list-box/list-box.component.ts","../../src/components/list-box/list-box.component.html","../../src/generated/tags.metadata.ts","../../src/components/tags/setup.component.ts","../../src/generated/tags-item.metadata.ts","../../src/components/tags/item/setup.component.ts","../../src/components/tags/item/tags-item.component.ts","../../src/components/tags/item/tags-item.component.html","../../src/components/tags/tags.component.ts","../../src/components/tags/tags.component.html","../../src/generated/select.metadata.ts","../../src/components/select/setup.component.ts","../../src/generated/select-item.metadata.ts","../../src/components/select/item/setup.component.ts","../../src/components/select/item/select-item.component.ts","../../src/components/select/item/select-item.component.html","../../src/generated/select-group.metadata.ts","../../src/components/select/group/setup.component.ts","../../src/components/select/group/select-group.component.ts","../../src/components/select/group/select-group.component.html","../../src/components/select/select.component.ts","../../src/components/select/select.component.html","../../src/generated/radio-group.metadata.ts","../../src/components/radio-group/setup.component.ts","../../src/generated/radio-group-item.metadata.ts","../../src/components/radio-group/item/setup.component.ts","../../src/components/radio-group/item/radio-group-item.component.ts","../../src/components/radio-group/item/radio-group-item.component.html","../../src/components/radio-group/radio-group.component.ts","../../src/components/radio-group/radio-group.component.html","../../src/generated/tabs.metadata.ts","../../src/components/tabs/setup.component.ts","../../src/generated/tabs-item.metadata.ts","../../src/components/tabs/item/setup.component.ts","../../src/components/tabs/item/tabs-item.component.ts","../../src/components/tabs/item/tabs-item.component.html","../../src/components/tabs/tabs.component.ts","../../src/components/tabs/tabs.component.html","../../src/generated/tabs-content.metadata.ts","../../src/components/tabs/content/setup.component.ts","../../src/components/tabs/content/tabs-content.component.ts","../../src/components/tabs/content/tabs-content.component.html","../../src/generated/accordion.metadata.ts","../../src/components/accordion/setup.component.ts","../../src/generated/accordion-item.metadata.ts","../../src/components/accordion/item/setup.component.ts","../../src/components/accordion/item/accordion-item.component.ts","../../src/components/accordion/item/accordion-item.component.html","../../src/components/accordion/accordion.component.ts","../../src/components/accordion/accordion.component.html","../../src/generated/pagination.metadata.ts","../../src/components/pagination/setup.component.ts","../../src/generated/pagination-item.metadata.ts","../../src/components/pagination/item/setup.component.ts","../../src/components/pagination/item/pagination-item.component.ts","../../src/components/pagination/item/pagination-item.component.html","../../src/components/pagination/pagination.component.ts","../../src/components/pagination/pagination.component.html","../../src/generated/calendar.metadata.ts","../../src/components/calendar/setup.component.ts","../../src/generated/calendar-item.metadata.ts","../../src/components/calendar/item/setup.component.ts","../../src/components/calendar/item/calendar-item.component.ts","../../src/components/calendar/item/calendar-item.component.html","../../src/components/calendar/calendar.component.ts","../../src/components/calendar/calendar.component.html","../../src/generated/date-picker.metadata.ts","../../src/components/date-picker/setup.component.ts","../../src/components/date-picker/date-picker.component.ts","../../src/components/date-picker/date-picker.component.html","../../src/generated/scroller.metadata.ts","../../src/components/scroller/setup.component.ts","../../src/components/scroller/scroller.component.ts","../../src/components/scroller/scroller.component.html","../../src/generated/table.metadata.ts","../../src/components/table/setup.component.ts","../../src/generated/table-column.metadata.ts","../../src/components/table/column/setup.component.ts","../../src/components/table/column/table-column.component.ts","../../src/components/table/column/table-column.component.html","../../src/generated/table-row.metadata.ts","../../src/components/table/row/setup.component.ts","../../src/components/table/row/table-row.component.ts","../../src/components/table/row/table-row.component.html","../../src/components/table/table.component.ts","../../src/components/table/table.component.html","../../src/generated/virtual.metadata.ts","../../src/components/virtual/setup.component.ts","../../src/components/virtual/virtual.component.ts","../../src/generated/drag-and-drop.metadata.ts","../../src/components/drag-and-drop/setup.component.ts","../../src/components/drag-and-drop/drag-and-drop.component.ts"],"sourcesContent":["/**\n * Имена Angular: пропсы — общим правилом, выходы — `so` и полное имя события\n * ядра в camelCase (`show:before` → `soShowBefore`), у всех событий. Выходы\n * делят шаблон с событиями DOM, а `on` руководство Angular запрещает.\n * AGENTS.md (Angular), «Каждый выход — с префиксом `so`».\n */\n\nimport type { INamingStrategy } from '@soxa-ui/setup'\nimport { underscorePropNaming } from '@soxa-ui/setup'\n\nconst OUTPUT_PREFIX = 'so'\n\nfunction capitalize(word: string): string {\n\treturn word.charAt(0).toUpperCase() + word.slice(1)\n}\n\nfunction toOutputName(fullName: string): string {\n\treturn OUTPUT_PREFIX + fullName.split(/[-:]/).filter(Boolean).map(capitalize).join('')\n}\n\nexport const AngularNaming: INamingStrategy = {\n\tprop: underscorePropNaming,\n\n\tevent: (name) => toOutputName(name.getName()),\n}\n","import type { IAdapterProfile } from '@soxa-ui/setup'\nimport { AngularNaming } from './naming'\n\n/** One surface for code generation and runtime bindings, including native Angular models. */\nexport const AngularProfile: IAdapterProfile = {\n\tnaming: AngularNaming,\n\tmodel: (exportName) => `${exportName}Change`,\n}\n","/**\n * useAdapter — binds an adapter context to Angular, the counterpart of Vue's\n * `useAdapter`.\n *\n * - state is a signal: it notifies the template itself, with Zone.js or\n * without;\n * - the component is accepted (`attach()`) as soon as the binding is created;\n * - `syncInputs` is the `ngOnChanges` delta, `syncEvents` routes core events\n * to the output emitters, `detach` stops the consumer, `destroy` cleans up.\n *\n * A collection component has two contexts, its own and the facade's (three\n * for an item with a submenu), and the base needs one binding: `joinBindings`\n * joins them. AGENTS.md (Angular), «Коллекция: два контекста — одна связка».\n */\n\nimport { computed, signal, type EventEmitter, type Signal } from '@angular/core'\nimport { toInstanceState } from '@soxa-ui/setup'\nimport type {\n\tDescriptorAllEvents,\n\tDescriptorComponentProps,\n\tDescriptorInstance,\n\tIAdapterContext,\n\tIComponentContract,\n\tIComponentDescriptor,\n\tTAdapterState,\n\tTStateSnapshot,\n\tTSnapshotOf,\n\tTInstanceState,\n} from '@soxa-ui/setup'\nimport { AngularProfile } from '../common/profile'\n\n/**\n * The input type of a descriptor prop: the input field of the generated\n * `T<Name>Surface`, which strict templates check the binding against.\n */\nexport type TInputValue<\n\tTDescriptorFn extends (...args: any[]) => IComponentDescriptor,\n\tTInput extends keyof DescriptorComponentProps<TDescriptorFn>,\n> = DescriptorComponentProps<TDescriptorFn>[TInput]\n\n/**\n * The value of an output, what `syncEvents` emits: the core event's only\n * argument, the tuple of its arguments when there are several (the new and\n * the previous item of `change:activation`), `undefined` when there are none.\n * The same payload as `detail` of a Web Components event.\n */\ntype TOutputValue<THandler> = THandler extends (...args: infer TArgs) => unknown\n\t? TArgs extends readonly []\n\t\t? undefined\n\t\t: TArgs extends readonly [unknown]\n\t\t\t? TArgs[0]\n\t\t\t: TArgs\n\t: undefined\n\n/** One value from the core event's arguments, see `TOutputValue`. */\nfunction payloadOf(args: readonly unknown[]): unknown {\n\treturn args.length > 1 ? args : args[0]\n}\n\n/**\n * The output type of a descriptor event: the `declare` field of the generated\n * `T<Name>Surface`. The getter behind it is the base's: on the prototype of the\n * component's class, of an output every visual component has — on that of the\n * generated `TViewSurface`.\n */\nexport type TOutputEmitter<\n\tTDescriptorFn extends (...args: any[]) => IComponentDescriptor,\n\tTEvent extends keyof DescriptorAllEvents<TDescriptorFn>,\n> = EventEmitter<TOutputValue<DescriptorAllEvents<TDescriptorFn>[TEvent]>>\n\n/** A model emits the property value rather than its change event payload. */\nexport type TModelEmitter<\n\tTDescriptorFn extends (...args: any[]) => IComponentDescriptor,\n\tTInput extends keyof DescriptorComponentProps<TDescriptorFn>,\n> = EventEmitter<\n\tTInput extends keyof DescriptorInstance<TDescriptorFn>\n\t\t? TSnapshotOf<DescriptorInstance<TDescriptorFn>[TInput]>\n\t\t: TInputValue<TDescriptorFn, TInput>\n>\n\n/**\n * State as the template reads it: instance properties, plugin inputs and\n * outputs (`TOutputs`, as in setup's `TAdapterState`) and facade properties.\n * Their names never clash: facade and plugin names are prefixed, and a plugin\n * prop without a namespace (`id` of `TIdPlugin`) differs from the instance's\n * by construction.\n */\nexport type TBindingState<\n\tTInstance,\n\tTFacade = unknown,\n\tTOutputs = unknown,\n\tTOwnerFacade = unknown,\n> = TInstanceState<TInstance> &\n\tTInstanceState<TFacade> &\n\tTInstanceState<TOutputs> &\n\tTInstanceState<TOwnerFacade>\n\n/** The created emitter of an output by name, otherwise `undefined`. */\nexport type TOutputOf = (name: string) => EventEmitter<unknown> | undefined\n\n/** The binding of one context. */\ntype TExchange<TState> = {\n\treadonly state: Signal<TState>\n\tsyncInputs(inputs: object): void\n\tresetInputs(names: readonly string[]): void\n\t/** Returns the unsubscription. */\n\tsyncEvents(outputOf: TOutputOf): () => void\n\t/** The teardown began: the consumer hears nothing from then on. */\n\tdetach(): void\n\tdestroy(): void\n}\n\n/** The component's binding for the base; for a component with a facade `joinBindings` builds it. */\nexport type TBinding<\n\tTInstance = any,\n\tTFacade = unknown,\n\tTOutputs = unknown,\n\tTOwnerFacade = unknown,\n> = TExchange<TBindingState<TInstance, TFacade, TOutputs, TOwnerFacade>> & {\n\treadonly ctrl: TInstance\n\t/** The collection facade; for an item with a submenu, its facade in the collection above. */\n\treadonly facade: TFacade\n\tbindElement(el: Element | null): void\n}\n\n/** A facade's binding: no `ctrl` and no node, the component has them. */\nexport type TCollectionBinding<TFacade = any> = TExchange<TInstanceState<TFacade>> & {\n\treadonly facade: TFacade\n}\n\n/** State before the subscription delivered the first snapshot. */\nconst NO_SNAPSHOT: TStateSnapshot = Object.freeze({})\n\nfunction useExchange<C extends IComponentContract>(\n\tadapter: IAdapterContext<C>,\n): TExchange<TAdapterState<C>> {\n\tconst binding = adapter.connect(AngularProfile)\n\t// The signal itself is the state: a `computed` over it only forwarded the snapshot\n\tconst state = signal(toInstanceState<C>(NO_SNAPSHOT))\n\tconst unsubscribe = binding.state.subscribe(() =>\n\t\tstate.set(toInstanceState<C>(binding.state.getSnapshot())),\n\t)\n\n\t// `ngOnInit` creates the binding, on the server too: the hooks run in\n\t// template order, and markup items enter the collection in DOM order\n\tadapter.attach()\n\n\treturn {\n\t\tstate,\n\n\t\t// A delta, not `full`: that would reset the other inputs to their defaults\n\t\tsyncInputs(inputs: object): void {\n\t\t\tbinding.inputs.delta(inputs)\n\t\t},\n\n\t\tresetInputs(names: readonly string[]): void {\n\t\t\tfor (const line of binding.lines) {\n\t\t\t\tif (names.includes(line.name)) line.reset(binding.owners)\n\t\t\t}\n\t\t},\n\n\t\t// The emitter is looked up on every event: the output's first read\n\t\t// creates it. The consumer stops on `detach`, which comes from\n\t\t// `ngOnDestroy` or, for a collection item, from its collection before\n\t\t// the siblings go one by one (`TCollectionMembers`)\n\t\tsyncEvents(outputOf: TOutputOf): () => void {\n\t\t\tconst stop = binding.events.listen((exportName, args) =>\n\t\t\t\toutputOf(exportName)?.emit(payloadOf(args)),\n\t\t\t)\n\n\t\t\tadapter.events.on('detach', stop)\n\n\t\t\treturn stop\n\t\t},\n\n\t\tdetach(): void {\n\t\t\tadapter.detach()\n\t\t},\n\n\t\tdestroy(): void {\n\t\t\tunsubscribe()\n\t\t\tadapter.destroy()\n\t\t},\n\t}\n}\n\nexport function useAdapter<C extends IComponentContract>(\n\tadapter: IAdapterContext<C>,\n): TBinding<C['instance'], unknown, C['plugins']['props'] & C['plugins']['outputs']> {\n\treturn {\n\t\t...useExchange(adapter),\n\t\tctrl: adapter.instance,\n\t\tfacade: undefined,\n\t\tbindElement: (el) => adapter.bindElement(el),\n\t}\n}\n\nexport function useCollectionAdapter<C extends IComponentContract>(\n\tadapter: IAdapterContext<C>,\n): TCollectionBinding<C['instance']> {\n\treturn { ...useExchange(adapter), facade: adapter.instance }\n}\n\n/**\n * One binding from the own and the facades': state as one view, inputs,\n * events and `detach` to all, the node to the own only. Destruction goes\n * facades first: the item leaves the collection while its plugin bundle is\n * intact.\n */\nexport function joinBindings<TInstance, TFacade, TOutputs, TOwnerFacade = unknown>(\n\towner: TBinding<TInstance, unknown, TOutputs>,\n\tfacade: TCollectionBinding<TFacade>,\n\townerFacade?: TCollectionBinding<TOwnerFacade>,\n): TBinding<TInstance, TFacade, TOutputs, TOwnerFacade> {\n\t// In destruction order: the item leaves the collection above it before its own\n\tconst facades: readonly TExchange<unknown>[] = ownerFacade ? [facade, ownerFacade] : [facade]\n\n\treturn {\n\t\tstate: computed(() => ({ ...ownerFacade?.state(), ...facade.state(), ...owner.state() })),\n\t\tctrl: owner.ctrl,\n\t\tfacade: facade.facade,\n\n\t\tsyncInputs(inputs: object): void {\n\t\t\towner.syncInputs(inputs)\n\n\t\t\tfor (const each of facades) each.syncInputs(inputs)\n\t\t},\n\n\t\tresetInputs(names: readonly string[]): void {\n\t\t\towner.resetInputs(names)\n\t\t\tfor (const each of facades) each.resetInputs(names)\n\t\t},\n\n\t\tsyncEvents(outputOf: TOutputOf): () => void {\n\t\t\tconst stops = [owner, ...facades].map((each) => each.syncEvents(outputOf))\n\n\t\t\treturn () => {\n\t\t\t\tfor (const stop of stops) stop()\n\t\t\t}\n\t\t},\n\n\t\tbindElement: (el) => owner.bindElement(el),\n\n\t\tdetach(): void {\n\t\t\tfor (const each of [owner, ...facades]) each.detach()\n\t\t},\n\n\t\tdestroy(): void {\n\t\t\tfor (const each of facades) each.destroy()\n\n\t\t\towner.destroy()\n\t\t},\n\t}\n}\n","/**\n * Раскладка ядра на элемент: наборы атрибутов, классы, стиль.\n *\n * Правило — как у привязки хоста `[attr.x]`: что называет ядро, за базой\n * всегда, чего не называет — не трогается. Узел не читается: раскладка помнит,\n * что поставила сама, поэтому после гидратации первая раскладка берёт своим\n * напечатанное сервером. AGENTS.md (Angular), «Корень-хост ведёт базовый\n * `TComponentBase`».\n */\n\n/**\n * Память раскладки атрибутов — сумма слоёв, которую она положила. Объект, а не\n * `Map`: раскладчик стоит на каждой ячейке таблицы, и `Map` на каждую — своя\n * хеш-таблица.\n */\nexport type TAppliedAttributes = Readonly<Record<string, string>>\nexport type TAppliedClasses = ReadonlySet<string>\n/** Стиль: имя свойства, как в CSS (`z-index`, `--*`), → значение. */\nexport type TRootStyles = ReadonlyMap<string, string>\nexport type TAppliedStyles = TRootStyles\n\n// Пустые значения — одни на всех: тот же объект не будит эффект зря\nexport const NO_ATTRIBUTES: object = Object.freeze({})\nexport const NO_APPLIED_ATTRIBUTES: TAppliedAttributes = Object.freeze({})\nconst NO_CLASSES: readonly string[] = Object.freeze([])\n\n/** Набор из состояния — объект, иначе пустой: база читает состояние по именам. */\nexport function attributesOf(value: unknown): object {\n\treturn typeof value === 'object' && value !== null ? value : NO_ATTRIBUTES\n}\n\n/** Классы из состояния — снимок `TClasses`, иначе пусто. */\nexport function classesOf(value: unknown): readonly string[] {\n\treturn Array.isArray(value) && value.every((name): name is string => typeof name === 'string')\n\t\t? value\n\t\t: NO_CLASSES\n}\n\n/**\n * Наборы снизу вверх: из одноимённых действует верхний. Значение не строкой\n * (`null` у наборов ядра) имя не называет и нижний слой не перекрывает.\n */\nexport function sumLayers(layers: Iterable<object>): Record<string, string> {\n\tconst sum: Record<string, string> = {}\n\n\tfor (const layer of layers) {\n\t\tfor (const [name, value] of Object.entries(layer)) {\n\t\t\tif (typeof value === 'string') sum[name] = value\n\t\t}\n\t}\n\n\treturn sum\n}\n\n/**\n * Стиль из слоёв снизу вверх. Число уходит строкой, пустая строка и прочее\n * свойства не задают: у иконки без размера плагин отдаёт `width: ''`.\n */\nexport function stylesOf(...layers: readonly unknown[]): TRootStyles {\n\tconst styles = new Map<string, string>()\n\n\tfor (const layer of layers) {\n\t\tif (typeof layer !== 'object' || layer === null) continue\n\n\t\tfor (const [name, value] of Object.entries(layer)) {\n\t\t\tif (typeof value === 'number') styles.set(name, String(value))\n\t\t\telse if (typeof value === 'string' && value !== '') styles.set(name, value)\n\t\t}\n\t}\n\n\treturn styles\n}\n\n/** Место элемента коллекции в свойстве стиля `property` (CSS `order`, `--so-toasts-depth`). */\nexport function orderOf(property: string | undefined, value: unknown): object | undefined {\n\treturn property !== undefined && typeof value === 'number' ? { [property]: value } : undefined\n}\n\n/** Пишет сменившееся, снимает ушедшее; возвращает новую память. */\nfunction reconcile(\n\tnext: ReadonlyMap<string, string>,\n\tapplied: ReadonlyMap<string, string>,\n\twrite: (name: string, value: string) => void,\n\terase: (name: string) => void,\n): ReadonlyMap<string, string> {\n\tfor (const [name, value] of next) {\n\t\tif (applied.get(name) !== value) write(name, value)\n\t}\n\n\tfor (const name of applied.keys()) {\n\t\tif (!next.has(name)) erase(name)\n\t}\n\n\treturn next\n}\n\nexport function applyAttributes(\n\telement: Element,\n\tset: object,\n\tapplied: TAppliedAttributes,\n): TAppliedAttributes {\n\tconst next = sumLayers([set])\n\n\tfor (const [name, value] of Object.entries(next)) {\n\t\tif (!Object.hasOwn(applied, name) || applied[name] !== value) {\n\t\t\telement.setAttribute(name, value)\n\t\t}\n\t}\n\n\tfor (const name of Object.keys(applied)) {\n\t\tif (!Object.hasOwn(next, name)) element.removeAttribute(name)\n\t}\n\n\treturn next\n}\n\nexport function applyClasses(\n\telement: Element,\n\tclasses: readonly string[],\n\tapplied: TAppliedClasses,\n): TAppliedClasses {\n\tconst next = new Set(classes)\n\n\tfor (const name of next) {\n\t\tif (!applied.has(name)) element.classList.add(name)\n\t}\n\n\tfor (const name of applied) {\n\t\tif (!next.has(name)) element.classList.remove(name)\n\t}\n\n\treturn next\n}\n\nexport function applyStyles(\n\telement: Element,\n\tstyles: TRootStyles,\n\tapplied: TAppliedStyles,\n): TAppliedStyles {\n\tif (!hasInlineStyle(element)) return applied\n\n\tconst { style } = element\n\n\treturn reconcile(\n\t\tstyles,\n\t\tapplied,\n\t\t(name, value) => style.setProperty(name, value),\n\t\t(name) => style.removeProperty(name),\n\t)\n}\n\nfunction hasInlineStyle(element: Element): element is Element & ElementCSSInlineStyle {\n\treturn 'style' in element\n}\n\n/**\n * Слои атрибутов элемента снизу вверх: наборы ядра его компонента, выходы\n * плагинов на корне, набор разметки владельца (`[so-attributes]`), набор,\n * который хост отдал своему узлу (`TForwardedHost`). Внешний главнее, как\n * атрибут снаружи у Vue и React.\n */\nexport const ATTRIBUTE_LAYERS = [\n\t'attrs',\n\t'aria',\n\t'dataset',\n\t'plugins',\n\t'markup',\n\t'forwarded',\n] as const\n\nexport type TAttributeLayer = (typeof ATTRIBUTE_LAYERS)[number]\n\n/**\n * Раскладчик — свойством самого элемента, а не в таблице модуля: таблица\n * `WeakMap` растёт до самого большого числа элементов разом (ячеек таблицы) и\n * не сжимается, когда они уходят.\n */\nconst LAID_OUT = Symbol('soxa.laidOut')\n\n/**\n * Атрибуты элемента от всех, кто на него пишет, — одной памятью: две раскладки\n * со своей памятью, снимая своё, снимали бы и значение другой. Порядок записи\n * слоёв не важен.\n */\nexport class TElementAttributes {\n\tstatic of(element: Element): TElementAttributes {\n\t\tconst found: unknown = Reflect.get(element, LAID_OUT)\n\n\t\tif (found instanceof TElementAttributes) return found\n\n\t\tconst attributes = new TElementAttributes(element)\n\n\t\tObject.defineProperty(element, LAID_OUT, { value: attributes })\n\n\t\treturn attributes\n\t}\n\n\t/** Слои по местам `ATTRIBUTE_LAYERS`. */\n\tprivate readonly _layers: object[] = ATTRIBUTE_LAYERS.map(() => NO_ATTRIBUTES)\n\tprivate _applied: TAppliedAttributes = NO_APPLIED_ATTRIBUTES\n\n\tprivate constructor(private readonly _element: Element) {}\n\n\tset(layer: TAttributeLayer, set: object): void {\n\t\tthis._layers[ATTRIBUTE_LAYERS.indexOf(layer)] = set\n\t\tthis._applied = applyAttributes(this._element, sumLayers(this._layers), this._applied)\n\t}\n}\n","/**\n * teleportRoot — телепорт корня, аналог `<teleport :to>` Vue. В цель уезжает\n * сам узел, на его месте стоит якорь-комментарий; Angular ведёт узел по ссылке,\n * где бы тот ни стоял. AGENTS.md (Angular), «Слой уезжает в цель сам» и «Слой\n * есть только в браузере».\n *\n * - Только в браузере, после отрисовки: гидратация ищет узел там, где его\n * нарисовал сервер.\n * - Angular переставляет узлы своих представлений, не зная о переносе, поэтому\n * после каждой отрисовки перенос сверяет, где узел на самом деле.\n * - Спутник (подложка) — всегда прямо перед корнем.\n * - Сверка не спасает от NG05106: `@for` вставляет узлы перед увезённым\n * корнем, и рендерер бросает раньше любого хука. Обход — обёртка вокруг Frame.\n *\n * Отдаёт «корень на своём месте»: пока ложь, слоя нет.\n */\n\nimport {\n\tDOCUMENT,\n\tDestroyRef,\n\tafterEveryRender,\n\tafterRenderEffect,\n\tinject,\n\tsignal,\n\tuntracked,\n\ttype Signal,\n} from '@angular/core'\n\nexport type TTeleportPlace = {\n\t/** Селектор цели; `null` — цели нет. */\n\treadonly target: Signal<string | null>\n\t/** Корень остаётся на месте (`contained` у Frame и Drawer). */\n\treadonly contained: Signal<boolean>\n}\n\nexport const TELEPORT_ANCHOR = 'so-teleport'\n\ntype TAway = {\n\treadonly node: Element\n\treadonly anchor: Comment\n\treadonly target: Element\n}\n\nconst NO_COMPANION = (): Element | null => null\n\n/** Зовётся в контексте инъекции компонента. */\nexport function teleportRoot(\n\troot: () => Element | null,\n\tplace: TTeleportPlace,\n\tcompanion: () => Element | null = NO_COMPANION,\n): Signal<boolean> {\n\tconst placed = signal(false)\n\tconst document = inject(DOCUMENT)\n\n\t/** Цель по селектору; `null` — корню место на месте. */\n\tlet wanted: Element | null = null\n\tlet away: TAway | null = null\n\n\t/** Только для корня в документе: якорю есть где встать. */\n\tconst moveTo = (node: Element, target: Element): void => {\n\t\tlet anchor = away?.anchor\n\n\t\tif (anchor === undefined) {\n\t\t\tanchor = document.createComment(TELEPORT_ANCHOR)\n\t\t\tnode.replaceWith(anchor)\n\t\t}\n\n\t\ttarget.appendChild(node)\n\t\taway = { node, anchor, target }\n\t}\n\n\t// Узлы читаются без слежения: новый появляется отрисовкой, после которой\n\t// сверка идёт всё равно\n\tconst escort = (node: Element): void => {\n\t\tconst escorted = untracked(companion)\n\n\t\tif (escorted === null) return\n\n\t\tconst parent = node.parentNode\n\n\t\tif (parent === null) escorted.remove()\n\t\telse if (escorted.nextSibling !== node) parent.insertBefore(escorted, node)\n\t}\n\n\tconst settle = (): void => {\n\t\tconst node = untracked(root)\n\n\t\tif (away !== null && (away.node !== node || node.parentNode !== away.target)) {\n\t\t\t// Angular вынул корень из цели, вставил обратно или нарисовал новый\n\t\t\taway.anchor.remove()\n\t\t\taway = null\n\t\t} else if (away !== null && !away.anchor.isConnected) {\n\t\t\t// Место ушло из документа вместе с предком — корень уходит с ним\n\t\t\tif (away.anchor.parentNode) away.anchor.replaceWith(away.node)\n\t\t\telse away.node.remove()\n\n\t\t\taway = null\n\t\t}\n\n\t\tif (node === null) return\n\n\t\tif (wanted === null) {\n\t\t\tif (away !== null) {\n\t\t\t\taway.anchor.replaceWith(away.node)\n\t\t\t\taway = null\n\t\t\t}\n\t\t}\n\t\t// Корень вне документа ждёт, пока Angular его вставит\n\t\telse if (node.parentNode !== wanted && node.isConnected) moveTo(node, wanted)\n\n\t\tescort(node)\n\t}\n\n\t// Цель ищется по селектору только на смену цели или «на месте»\n\tafterRenderEffect({\n\t\twrite: () => {\n\t\t\tconst contained = place.contained()\n\t\t\tconst selector = contained ? null : place.target()\n\n\t\t\twanted = selector === null ? null : document.querySelector(selector)\n\t\t\tplaced.set(contained || wanted !== null)\n\t\t\tsettle()\n\t\t},\n\t})\n\n\t// Место узла Angular меняет и из чужого представления (проекция, `@for`)\n\tafterEveryRender({ write: settle })\n\n\tinject(DestroyRef).onDestroy(() => {\n\t\t// Спутник стоит рядом с корнем, снятие компонента его не убирает\n\t\tuntracked(companion)?.remove()\n\n\t\tif (away === null) return\n\n\t\taway.anchor.remove()\n\t\taway.node.remove()\n\t\taway = null\n\t})\n\n\treturn placed.asReadonly()\n}\n","/**\n * Запись реестра (`TForwardRegistry`) — хост, который отдаёт написанное на нём\n * своему внутреннему узлу: `<input>` поля, строке элемента, узлу списка,\n * `table`. Аналог `$attrs` у Vue: команды рендерера на хост (`[attr.x]`,\n * `[title]`, `(focus)`) запись ставит на узел, а пока узла нет — держит;\n * сменился узел — переносит. AGENTS.md (Angular), «Рендерер адаптера —\n * `provideAttrs()`».\n *\n * Пишет запись тем рендерером, что пришёл с командой: узел, который сам хост\n * (поле `<div so-input>` в шаблоне Select), получает команду своей записью —\n * так написанное проходит цепочку хостов.\n */\n\nimport type { Renderer2, RendererStyleFlags2 } from '@angular/core'\nimport {\n\tNO_ATTRIBUTES,\n\tTElementAttributes,\n\tattributesOf,\n\tsumLayers,\n} from '../runtime/root-attributes'\n\nexport type TListenerCallback = Parameters<Renderer2['listen']>[2]\nexport type TListenerOptions = Parameters<Renderer2['listen']>[3]\ntype TStyleFlags = RendererStyleFlags2 | undefined\n\nexport type TForwardOptions = {\n\t/**\n\t * У хоста нет своей коробки (`display: contents` — обёртка региона тостов):\n\t * класс и стиль потребителя тоже уходят узлу.\n\t */\n\treadonly boxless?: boolean\n}\n\n/** Вид хоста: у хоста с коробкой остаётся на нём. */\nconst LOOK_ATTRIBUTES: ReadonlySet<string> = new Set(['class', 'style'])\nconst LOOK_PROPERTIES: ReadonlySet<string> = new Set(['className'])\n\n/**\n * Служебные атрибуты Angular. `ngh`, увезённый на поле, ломал гидратацию:\n * Angular не узнавал компонент и рисовал второе поле.\n */\nconst SERVICE_ATTRIBUTES: ReadonlySet<string> = new Set([\n\t'ngh',\n\t'ng-version',\n\t'ng-server-context',\n\t'ngskiphydration',\n\t'jsaction',\n])\n\n/** `ng-reflect-*`, инкапсуляция стилей и метки soxa (селектор, директивы адаптера). */\nconst HOST_PREFIXES: readonly string[] = ['ng-reflect-', '_ng', 'so-']\n\n/** Старые анимации: `[@x]` и `(@x.done)` анимирует рендерер анимаций на самом хосте. */\nconst SYNTHETIC_PREFIX = '@'\n\n/**\n * Выходы `so*` (Angular слушает их и как событие DOM) и движение: его слушает\n * на хосте сам Angular (`animate.leave`), а движение частей всплывает само.\n */\nconst HOST_EVENT = /^(so[A-Z]|animation|transition)/\n\nfunction marksHost(name: string): boolean {\n\tconst lower = name.toLowerCase()\n\n\treturn SERVICE_ATTRIBUTES.has(lower) || HOST_PREFIXES.some((prefix) => lower.startsWith(prefix))\n}\n\nfunction staysOnHost(name: string): boolean {\n\treturn LOOK_ATTRIBUTES.has(name.toLowerCase()) || marksHost(name)\n}\n\n/** Последняя команда: как положить её на узел и как снять со старого. */\ntype TWrite = {\n\treadonly apply: (node: Element) => void\n\treadonly undo?: (node: Element) => void\n}\n\nclass TForwardedListener {\n\tprivate _off: (() => void) | null = null\n\n\tconstructor(\n\t\tprivate readonly _renderer: Renderer2,\n\t\tprivate readonly _event: string,\n\t\tprivate readonly _callback: TListenerCallback,\n\t\tprivate readonly _options: TListenerOptions,\n\t) {}\n\n\ton(node: Element): void {\n\t\tthis._off = this._renderer.listen(node, this._event, this._callback, this._options)\n\t}\n\n\toff(): void {\n\t\tthis._off?.()\n\t\tthis._off = null\n\t}\n}\n\nexport type THostLookup = (node: Element) => TForwardedHost | undefined\n\nexport class TForwardedHost {\n\tprivate _node: Element | null = null\n\tprivate _released = false\n\n\tprivate readonly _attributes = new Map<string, TWrite>()\n\tprivate readonly _properties = new Map<string, TWrite>()\n\tprivate readonly _classes = new Map<string, TWrite>()\n\tprivate readonly _styles = new Map<string, TWrite>()\n\t/** Порядок воспроизведения на новом узле. */\n\tprivate readonly _writes = [this._attributes, this._properties, this._classes, this._styles]\n\tprivate readonly _listeners = new Set<TForwardedListener>()\n\n\t/** Набор разметки владельца на хосте (`[so-attributes]`). */\n\tprivate _markup: object = NO_ATTRIBUTES\n\t/** Набор от записи внешнего звена цепочки: её узел — этот хост. */\n\tprivate _received: object = NO_ATTRIBUTES\n\t/** Сумма наборов для узла; `null` — наборов не было. */\n\tprivate _set: object | null = null\n\n\t/**\n\t * @param _own имена входов и `ctrl`, строчными: атрибут с таким именем — запись\n\t * входа, он остаётся на хосте\n\t */\n\tconstructor(\n\t\tprivate readonly _own: ReadonlySet<string>,\n\t\tprivate readonly _boxless: boolean,\n\t\tprivate readonly _hostOf: THostLookup,\n\t\tprivate readonly _onRelease: () => void,\n\t) {}\n\n\tget keepsLook(): boolean {\n\t\treturn !this._boxless\n\t}\n\n\tkeepsAttribute(name: string): boolean {\n\t\tconst stays = this._boxless ? marksHost(name) : staysOnHost(name)\n\n\t\treturn stays || this._own.has(name.toLowerCase())\n\t}\n\n\tkeepsProperty(name: string): boolean {\n\t\treturn (\n\t\t\tname.startsWith(SYNTHETIC_PREFIX) ||\n\t\t\t(this.keepsLook && LOOK_PROPERTIES.has(name)) ||\n\t\t\tthis._own.has(name.toLowerCase())\n\t\t)\n\t}\n\n\tkeepsListener(event: string): boolean {\n\t\treturn event.startsWith(SYNTHETIC_PREFIX) || HOST_EVENT.test(event)\n\t}\n\n\tsetAttribute(\n\t\trenderer: Renderer2,\n\t\tname: string,\n\t\tvalue: string,\n\t\tnamespace: string | null | undefined,\n\t): void {\n\t\tthis._write(\n\t\t\tthis._attributes,\n\t\t\t`${namespace ?? ''}|${name}`,\n\t\t\t(node) => renderer.setAttribute(node, name, value, namespace),\n\t\t\t(node) => renderer.removeAttribute(node, name, namespace),\n\t\t)\n\t}\n\n\tremoveAttribute(renderer: Renderer2, name: string, namespace: string | null | undefined): void {\n\t\tthis._write(this._attributes, `${namespace ?? ''}|${name}`, (node) =>\n\t\t\trenderer.removeAttribute(node, name, namespace),\n\t\t)\n\t}\n\n\t/** Свойство со старого узла не снять — значение там и остаётся. */\n\tsetProperty(renderer: Renderer2, name: string, value: unknown): void {\n\t\tthis._write(this._properties, name, (node) => renderer.setProperty(node, name, value))\n\t}\n\n\taddClass(renderer: Renderer2, name: string): void {\n\t\tthis._write(\n\t\t\tthis._classes,\n\t\t\tname,\n\t\t\t(node) => renderer.addClass(node, name),\n\t\t\t(node) => renderer.removeClass(node, name),\n\t\t)\n\t}\n\n\tremoveClass(renderer: Renderer2, name: string): void {\n\t\tthis._write(this._classes, name, (node) => renderer.removeClass(node, name))\n\t}\n\n\tsetStyle(renderer: Renderer2, style: string, value: unknown, flags: TStyleFlags): void {\n\t\tthis._write(\n\t\t\tthis._styles,\n\t\t\tstyle,\n\t\t\t(node) => renderer.setStyle(node, style, value, flags),\n\t\t\t(node) => renderer.removeStyle(node, style, flags),\n\t\t)\n\t}\n\n\tremoveStyle(renderer: Renderer2, style: string, flags: TStyleFlags): void {\n\t\tthis._write(this._styles, style, (node) => renderer.removeStyle(node, style, flags))\n\t}\n\n\t/** Отписка работает в любом порядке со снятием компонента. */\n\tlisten(\n\t\trenderer: Renderer2,\n\t\tevent: string,\n\t\tcallback: TListenerCallback,\n\t\toptions: TListenerOptions,\n\t): () => void {\n\t\tconst listener = new TForwardedListener(renderer, event, callback, options)\n\n\t\tthis._listeners.add(listener)\n\n\t\tif (this._node) listener.on(this._node)\n\n\t\treturn () => {\n\t\t\tlistener.off()\n\t\t\tthis._listeners.delete(listener)\n\t\t}\n\t}\n\n\t/** Набор разметки владельца на хосте — узлу, слоем `forwarded`. */\n\tsetMarkup(set: object): void {\n\t\tthis._markup = attributesOf(set)\n\t\tthis._sum()\n\t}\n\n\t/** Набор от внешнего звена — поверх своего: на общем имени главнее внешний. */\n\treceive(set: object): void {\n\t\tthis._received = attributesOf(set)\n\t\tthis._sum()\n\t}\n\n\tattach(node: Element | null): void {\n\t\tif (this._released || node === this._node) return\n\n\t\tif (this._node) this._detach(this._node)\n\n\t\tthis._node = node\n\n\t\tif (node) this._apply(node)\n\t}\n\n\trelease(): void {\n\t\tif (this._released) return\n\n\t\tfor (const listener of this._listeners) listener.off()\n\n\t\tthis._listeners.clear()\n\t\tthis._node = null\n\t\tthis._released = true\n\t\tthis._onRelease()\n\t}\n\n\tprivate _write(\n\t\twrites: Map<string, TWrite>,\n\t\tkey: string,\n\t\tapply: TWrite['apply'],\n\t\tundo?: TWrite['undo'],\n\t): void {\n\t\twrites.set(key, { apply, undo })\n\n\t\tif (this._node) apply(this._node)\n\t}\n\n\tprivate _sum(): void {\n\t\tthis._set = sumLayers([this._markup, this._received])\n\n\t\tif (this._node) this._send(this._node, this._set)\n\t}\n\n\t/** Набор — раскладчику узла, а у узла-хоста — его записи, следующему звену. */\n\tprivate _send(node: Element, set: object): void {\n\t\tconst next = this._hostOf(node)\n\n\t\tif (next) next.receive(set)\n\t\telse TElementAttributes.of(node).set('forwarded', set)\n\t}\n\n\tprivate _apply(node: Element): void {\n\t\t// Набор — раньше привязок: на общем имени главнее написанное потребителем\n\t\tif (this._set) this._send(node, this._set)\n\n\t\tfor (const writes of this._writes) {\n\t\t\tfor (const write of writes.values()) write.apply(node)\n\t\t}\n\n\t\tfor (const listener of this._listeners) listener.on(node)\n\t}\n\n\tprivate _detach(node: Element): void {\n\t\tif (this._set) this._send(node, NO_ATTRIBUTES)\n\n\t\tfor (const writes of this._writes) {\n\t\t\tfor (const write of writes.values()) write.undo?.(node)\n\t\t}\n\n\t\tfor (const listener of this._listeners) listener.off()\n\t}\n}\n","/**\n * Реестр хостов приложения: хост → запись (`TForwardedHost`). Регистрирует\n * база компонента, читают рендерер адаптера, директива набора и сами записи.\n *\n * `served` — рендерер приложения подменён: `provideAttrs()` в провайдерах\n * маршрута реестр даст, а рендерер не подменит.\n */\n\nimport { Injectable } from '@angular/core'\nimport { TForwardedHost, type TForwardOptions } from './host'\n\n@Injectable()\nexport class TForwardRegistry {\n\tprivate readonly _hosts = new WeakMap<object, TForwardedHost>()\n\tprivate _served = false\n\n\tget served(): boolean {\n\t\treturn this._served\n\t}\n\n\t/** Зовёт фабрика рендереров адаптера, когда её создаёт приложение. */\n\tserve(): this {\n\t\tthis._served = true\n\n\t\treturn this\n\t}\n\n\t/** `own` — имена входов и `ctrl`: такие атрибуты остаются на хосте. */\n\tregister(host: Element, own: Iterable<string>, options: TForwardOptions = {}): TForwardedHost {\n\t\tconst names = new Set([...own].map((name) => name.toLowerCase()))\n\t\tconst forwarded: TForwardedHost = new TForwardedHost(\n\t\t\tnames,\n\t\t\toptions.boxless ?? false,\n\t\t\t(node) => this.hostOf(node),\n\t\t\t() => {\n\t\t\t\tif (this._hosts.get(host) === forwarded) this._hosts.delete(host)\n\t\t\t},\n\t\t)\n\n\t\tthis._hosts.set(host, forwarded)\n\n\t\treturn forwarded\n\t}\n\n\thostOf(target: unknown): TForwardedHost | undefined {\n\t\treturn typeof target === 'object' && target !== null ? this._hosts.get(target) : undefined\n\t}\n}\n","/**\n * Layout of the core onto the root: classes, the attribute sets as layers of\n * `TElementAttributes`, plugin outputs and the style — one effect per root.\n * The root may be a template node that does not exist before the first render\n * and may be replaced: a new node has an empty layout memory, and the first\n * layout on it writes everything.\n */\n\nimport { effect, type Signal } from '@angular/core'\nimport type { TStateSnapshot } from '@soxa-ui/setup'\nimport {\n\tNO_ATTRIBUTES,\n\tTElementAttributes,\n\tapplyClasses,\n\tapplyStyles,\n\tattributesOf,\n\tclassesOf,\n\torderOf,\n\tstylesOf,\n\ttype TAppliedClasses,\n\ttype TAppliedStyles,\n\ttype TRootStyles,\n} from '../root-attributes'\nimport type { TRootPaint, TRootSet } from './spec'\n\nexport type TNode = () => Element | null\n\n/** A read of state: of the component, or what the base draws on the root. */\nexport type TStateRead = () => TStateSnapshot\n\n/** Nothing to draw: what the base draws on a layer away from its place. */\nexport const NO_STATE: TStateSnapshot = Object.freeze({})\n\nconst ROOT_SETS: readonly TRootSet[] = ['attrs', 'aria', 'dataset']\nconst NO_APPLIED_CLASSES: TAppliedClasses = new Set()\nexport const NO_APPLIED_STYLES: TAppliedStyles = new Map()\n/** The top layer of the style of a root its style hides, not the host binding. */\nconst HIDDEN_ROOT: object = Object.freeze({ display: 'none' })\nconst COMPANION_SHOWN: TRootStyles = new Map()\nconst COMPANION_HIDDEN: TRootStyles = new Map([['display', 'none']])\n\n/** Эффект записи в узел, когда он есть. */\nexport function onNode(target: TNode, write: (node: Element) => void): void {\n\teffect(() => {\n\t\tconst node = target()\n\n\t\tif (node) write(node)\n\t})\n}\n\n/** Эффект раскладки с памятью прошлой записи — своей у каждого узла. */\nfunction paintOn<TApplied>(\n\ttarget: TNode,\n\tempty: TApplied,\n\tpaint: (node: Element, applied: TApplied) => TApplied,\n): void {\n\tlet on: Element | null = null\n\tlet applied = empty\n\n\tonNode(target, (node) => {\n\t\tapplied = paint(node, on === node ? applied : empty)\n\t\ton = node\n\t})\n}\n\n/** The value `name` of the state is another object than at the last layout. */\nfunction moved(last: TStateSnapshot, next: TStateSnapshot, name: string | undefined): boolean {\n\treturn name !== undefined && last[name] !== next[name]\n}\n\n/**\n * Layer `name` of the root: the core set when the description puts it on the\n * root (`sets`), and in the `attrs` layer under the set — the `id` of the root\n * (at Vue `:id` stands before `v-bind`).\n */\nfunction setLayer(drawn: TStateSnapshot, own: string | undefined, id: string | undefined): object {\n\tconst set = own === undefined ? NO_ATTRIBUTES : attributesOf(drawn[own])\n\n\treturn id === undefined ? set : { id: drawn[id], ...set }\n}\n\n/**\n * Layout memory of one root: its node and the state of the last layout on it.\n * A layer is written when the node is new or a state value the layer is built\n * from is another object: the binding replaces a value only when its content\n * changes, so a change of a property no layer reads writes nothing — the\n * identity check does the work a `computed` per layer did.\n */\nclass TRootPainter {\n\tprivate _node: Element | null = null\n\tprivate _drawn: TStateSnapshot = NO_STATE\n\tprivate _hidden = false\n\tprivate _classes: TAppliedClasses = NO_APPLIED_CLASSES\n\tprivate _styles: TAppliedStyles = NO_APPLIED_STYLES\n\n\tconstructor(private readonly _paint: TRootPaint) {}\n\n\tpaint(node: Element, drawn: TStateSnapshot, hidden: boolean): void {\n\t\tconst paint = this._paint\n\t\tconst fresh = node !== this._node\n\t\tconst last = this._drawn\n\n\t\tif (fresh || moved(last, drawn, 'classes')) {\n\t\t\tthis._classes = applyClasses(\n\t\t\t\tnode,\n\t\t\t\tclassesOf(drawn['classes']),\n\t\t\t\tfresh ? NO_APPLIED_CLASSES : this._classes,\n\t\t\t)\n\t\t}\n\n\t\tconst sets = paint.sets ?? ROOT_SETS\n\n\t\tfor (const name of ROOT_SETS) {\n\t\t\tconst own = sets.includes(name)\n\t\t\t\t? name === 'aria'\n\t\t\t\t\t? (paint.aria ?? 'aria')\n\t\t\t\t\t: name\n\t\t\t\t: undefined\n\t\t\tconst id = name === 'attrs' ? paint.id : undefined\n\n\t\t\tif (own === undefined && id === undefined) continue\n\n\t\t\tif (fresh || moved(last, drawn, own) || moved(last, drawn, id)) {\n\t\t\t\tTElementAttributes.of(node).set(name, setLayer(drawn, own, id))\n\t\t\t}\n\t\t}\n\n\t\tconst plugins = paint.plugins\n\n\t\tif (plugins && (fresh || plugins.some((name) => moved(last, drawn, name)))) {\n\t\t\tconst layer: Record<string, unknown> = {}\n\n\t\t\tfor (const name of plugins) Object.assign(layer, attributesOf(drawn[name]))\n\n\t\t\tTElementAttributes.of(node).set('plugins', layer)\n\t\t}\n\n\t\tconst order = paint.order === undefined ? undefined : 'order'\n\n\t\tif (\n\t\t\tfresh ||\n\t\t\thidden !== this._hidden ||\n\t\t\tmoved(last, drawn, 'layout_styles') ||\n\t\t\tmoved(last, drawn, paint.style) ||\n\t\t\tmoved(last, drawn, order)\n\t\t) {\n\t\t\tthis._styles = applyStyles(\n\t\t\t\tnode,\n\t\t\t\tstylesOf(\n\t\t\t\t\tdrawn['layout_styles'],\n\t\t\t\t\tpaint.style === undefined ? undefined : drawn[paint.style],\n\t\t\t\t\torderOf(paint.order, drawn['order']),\n\t\t\t\t\thidden ? HIDDEN_ROOT : undefined,\n\t\t\t\t),\n\t\t\t\tfresh ? NO_APPLIED_STYLES : this._styles,\n\t\t\t)\n\t\t}\n\n\t\tthis._node = node\n\t\tthis._drawn = drawn\n\t\tthis._hidden = hidden\n\t}\n}\n\n/**\n * Layout of `drawn` onto the root `target()` — one effect. `hidden` — at a root\n * its style hides (the toasts region): hidden, it gets `display: none` as the\n * top layer.\n */\nexport function paintRoot(\n\ttarget: TNode,\n\tpaint: TRootPaint,\n\tdrawn: TStateRead,\n\thidden?: Signal<boolean>,\n): void {\n\tconst painter = new TRootPainter(paint)\n\n\teffect(() => {\n\t\tconst node = target()\n\n\t\tif (node) painter.paint(node, drawn(), hidden !== undefined && hidden())\n\t})\n}\n\n/** Спутник слоя (подложка) прячется тем же значением, что корень. */\nexport function hideCompanion(companion: TNode, hidden: Signal<boolean>): void {\n\tpaintOn(companion, NO_APPLIED_STYLES, (node, applied) =>\n\t\tapplyStyles(node, hidden() ? COMPANION_HIDDEN : COMPANION_SHOWN, applied),\n\t)\n}\n","/**\n * Элемент потребителя как хост компонента: проверка, что шаблон в него\n * отрисуется, снятие атрибутов-входов и перенос написанного на нём на узел\n * внутри. AGENTS.md (Angular), «Поле: атрибуты потребителя делятся».\n */\n\nimport {\n\tDestroyRef,\n\tElementRef,\n\tHostAttributeToken,\n\tRenderer2,\n\teffect,\n\tinject,\n} from '@angular/core'\nimport type { TForwardOptions } from '../../attrs/host'\nimport { TForwardRegistry } from '../../attrs/registry'\nimport { onNode, type TNode } from './paint'\n\n/** Пустые элементы HTML и поля с текстом или опциями: шаблон в них не отрисуется. */\nconst NO_TEMPLATE_HOSTS: ReadonlySet<string> = new Set([\n\t'area',\n\t'base',\n\t'br',\n\t'col',\n\t'embed',\n\t'hr',\n\t'img',\n\t'input',\n\t'link',\n\t'meta',\n\t'param',\n\t'source',\n\t'track',\n\t'wbr',\n\t'textarea',\n\t'select',\n])\n\nconst ELEMENT_NODE = 1\n\nfunction isElement(node: Node): node is Element {\n\treturn node.nodeType === ELEMENT_NODE\n}\n\n/**\n * Хост компонента с шаблоном — элемент, который держит содержимое. В\n * продакшене компонент на `<ng-container>` Angular не проверяет, и без этой\n * ошибки он упал бы на первой записи в узел без подсказки.\n */\nexport function assertTemplateHost(node: Node): asserts node is Element {\n\tif (!isElement(node)) {\n\t\tthrow new Error(\n\t\t\t`@soxa-ui/angular: компонент на <ng-container> — у контейнера нет своего узла, а корню компонента нужен элемент: на него ложится всё, что написано на компоненте. Пишите компонент на элементе: по умолчанию это тег из селектора компонента (<div so-toasts>, <button so-button>).`,\n\t\t)\n\t}\n\n\tif (!NO_TEMPLATE_HOSTS.has(node.localName)) return\n\n\tthrow new Error(\n\t\t`@soxa-ui/angular: <${node.localName}> не может быть корнем компонента — его шаблон в этот элемент не отрисуется. Пишите компонент на элементе, который держит содержимое: по умолчанию это тег из селектора компонента (<div so-input>, <span so-check-box>).`,\n\t)\n}\n\n/** Элемент потребителя, на котором стоит компонент. */\nexport function hostElement(): Element {\n\t// `Node`, а не `any`: на `<ng-container>` хост — комментарий\n\tconst host = inject<ElementRef<Node>>(ElementRef).nativeElement\n\n\tassertTemplateHost(host)\n\n\treturn host\n}\n\n/**\n * Реестр рендерера адаптера. Проверяется подмена рендерера, а не найденный\n * реестр; без неё — ошибка всегда: молча компонент работал бы наполовину.\n */\nexport function forwardRegistry(host: Element): TForwardRegistry {\n\tconst registry = inject(TForwardRegistry, { optional: true })\n\n\tif (registry?.served) return registry\n\n\tthrow new Error(\n\t\t`@soxa-ui/angular: компонент на <${host.localName}> отдаёт привязки ([attr.x], [title]) и слушатели ((focus)) своему внутреннему узлу, а донести их может только provideAttrs(). Подключите provideAttrs() из @soxa-ui/angular в providers приложения (appConfig) — и в браузере, и на сервере: в провайдерах маршрута или компонента он рендерер не подменит.`,\n\t)\n}\n\n/**\n * Статический атрибут с именем входа — запись входа: Angular ставит его на\n * элемент ещё до конструктора.\n */\nexport function clearInputAttributes(element: Element, own: readonly string[]): void {\n\tfor (const name of own) element.removeAttribute(name)\n}\n\n/**\n * Написанное на хосте — узлу `target()`. Статику разметки база переносит сама,\n * привязки и слушатели доносит рендерер адаптера через запись хоста. Что\n * остаётся на хосте, решает запись — одно правило для обоих путей.\n *\n * Эффекты заводятся в этом порядке до раскладки корня: атрибуты потребителя\n * встают на узел раньше наборов ядра, и имя, которое называет ядро, остаётся\n * за ядром.\n */\nexport function forwardTo(\n\tregistry: TForwardRegistry,\n\thost: Element,\n\ttarget: TNode,\n\town: readonly string[],\n\toptions: TForwardOptions = {},\n): void {\n\tconst forwarded = registry.register(host, own, options)\n\n\tmoveAttributes(host, target, (name) => forwarded.keepsAttribute(name))\n\teffect(() => forwarded.attach(target()))\n\tinject(DestroyRef).onDestroy(() => forwarded.release())\n}\n\n/**\n * Чей атрибут, база узнаёт по скомпилированной разметке потребителя\n * (`HostAttributeToken`), а не по узлу: на узле стоят ещё инкапсуляция стилей и\n * разметка сервера. `HostAttributeToken` разрешается только в конструкторе.\n * Ставит их рендерер адаптера: узел бывает хостом сам (цепочка хостов).\n */\nfunction moveAttributes(host: Element, target: TNode, stays: (name: string) => boolean): void {\n\tconst moved = new Map<string, string>()\n\n\tfor (const name of host.getAttributeNames()) {\n\t\tif (stays(name)) continue\n\n\t\tconst value = inject(new HostAttributeToken(name), { optional: true })\n\n\t\tif (value === null) continue\n\n\t\tmoved.set(name, value)\n\t\thost.removeAttribute(name)\n\t}\n\n\tif (moved.size === 0) return\n\n\tconst renderer = inject(Renderer2)\n\n\tonNode(target, (node) => {\n\t\tfor (const [name, value] of moved) renderer.setAttribute(node, name, value)\n\t})\n}\n","/**\n * Стратегии корня (`TRootSpec`): что делать с элементом потребителя и где\n * корень. Зовутся из конструктора базы — эффектам, `inject` и\n * `HostAttributeToken` нужен контекст инъекции компонента.\n */\n\nimport { computed, signal, type Signal } from '@angular/core'\nimport { applyStyles, type TRootStyles } from '../root-attributes'\nimport { teleportRoot } from '../teleport'\nimport { clearInputAttributes, forwardRegistry, forwardTo, hostElement } from './host-element'\nimport {\n\tNO_APPLIED_STYLES,\n\tNO_STATE,\n\thideCompanion,\n\tpaintRoot,\n\ttype TStateRead,\n\ttype TNode,\n} from './paint'\nimport type { TRootHost, TRootPaint, TRootSpec, TRootTeleport } from './spec'\n\n/** What a strategy needs from the base. The signals are read lazily, after the constructor. */\nexport type TRootContext = {\n\t/** `ctrl` and the input names. */\n\treadonly own: readonly string[]\n\t/** State of the component; before the assembly — nothing. */\n\treadonly state: TStateRead\n\t/** The outer node of the component is hidden. */\n\treadonly hidden: Signal<boolean>\n\t/** Узлы шаблона `#root`, `#control`, `#companion`. */\n\treadonly root: TNode\n\treadonly control: TNode\n\treadonly companion: TNode\n}\n\n/** Что стратегия отдаёт базе. */\nexport type TRoot = {\n\t/** Тег корня-хоста для ядра; у корня в шаблоне — умолчание ядра. */\n\treadonly tag: string | undefined\n\t/** Узел корня для плагинов и шаблона. */\n\treadonly node: TNode\n\treadonly placed: Signal<boolean>\n\t/** Видимость прячет внешний узел. */\n\treadonly hides: boolean\n\t/** Внешний узел прячет стиль корня, а не привязка хоста `[style.display]`. */\n\treadonly hidesRoot: boolean\n\treadonly shownBy: string | undefined\n\t/** Корень уезжает в слой и прячется по признаку поддерева предка. */\n\treadonly layer: boolean\n}\n\nconst IN_PLACE: Signal<boolean> = signal(true).asReadonly()\nconst WRAPPED_PAINT: TRootPaint = {}\nconst BOXLESS: TRootStyles = new Map([['display', 'contents']])\n\nexport function createRoot(spec: TRootSpec, ctx: TRootContext): TRoot {\n\tswitch (spec.strategy) {\n\t\tcase 'host':\n\t\t\treturn hostRoot(spec, ctx)\n\t\tcase 'wrapped':\n\t\t\treturn spec.teleport ? layeredRoot(spec.teleport, ctx) : wrappedRoot(ctx)\n\t\tcase 'view':\n\t\t\treturn viewRoot(ctx)\n\t}\n}\n\n/** Корень — сам элемент потребителя. */\nfunction hostRoot(spec: TRootHost, ctx: TRootContext): TRoot {\n\tconst host = hostElement()\n\t// Без рендерера адаптера поле не собирается — до всего остального\n\tconst registry = spec.control ? forwardRegistry(host) : null\n\tconst target = (): Element => host\n\tconst placed = spec.teleport ? teleport(target, spec.teleport, ctx) : IN_PLACE\n\n\tclearInputAttributes(host, ctx.own)\n\tpaintRoot(target, spec, spec.teleport ? drawnIn(placed, ctx.state) : ctx.state)\n\n\tif (registry) forwardTo(registry, host, ctx.control, ctx.own)\n\n\treturn {\n\t\ttag: host.localName,\n\t\tnode: target,\n\t\tplaced,\n\t\thides: spec.hides ?? true,\n\t\thidesRoot: false,\n\t\tshownBy: spec.shownBy,\n\t\tlayer: spec.teleport !== undefined,\n\t}\n}\n\n/** Корень — `#root` внутри обёртки (окно таблицы): класс и стиль — обёртке, остальное — корню. */\nfunction wrappedRoot(ctx: TRootContext): TRoot {\n\tconst wrapper = hostElement()\n\tconst registry = forwardRegistry(wrapper)\n\n\tclearInputAttributes(wrapper, ctx.own)\n\tforwardTo(registry, wrapper, ctx.root, ctx.own)\n\tpaintRoot(ctx.root, WRAPPED_PAINT, ctx.state)\n\n\treturn {\n\t\ttag: undefined,\n\t\tnode: ctx.root,\n\t\tplaced: IN_PLACE,\n\t\thides: true,\n\t\thidesRoot: false,\n\t\tshownBy: undefined,\n\t\tlayer: false,\n\t}\n}\n\n/**\n * Корень внутри обёртки уезжает в слой (регион тостов): обёртка — место без\n * своей коробки, и всё написанное на ней, класс и стиль тоже, — корню.\n */\nfunction layeredRoot(names: TRootTeleport, ctx: TRootContext): TRoot {\n\tconst wrapper = hostElement()\n\tconst registry = forwardRegistry(wrapper)\n\tconst placed = teleport(ctx.root, names, ctx)\n\n\tclearInputAttributes(wrapper, ctx.own)\n\tforwardTo(registry, wrapper, ctx.root, ctx.own, { boxless: true })\n\t// Статика потребителя уже снята: поверх своей коробки ничего не осталось\n\tapplyStyles(wrapper, BOXLESS, NO_APPLIED_STYLES)\n\tpaintRoot(ctx.root, WRAPPED_PAINT, drawnIn(placed, ctx.state), ctx.hidden)\n\n\treturn {\n\t\ttag: undefined,\n\t\tnode: ctx.root,\n\t\tplaced,\n\t\thides: true,\n\t\thidesRoot: true,\n\t\tshownBy: undefined,\n\t\tlayer: true,\n\t}\n}\n\n/** Корень в шаблоне (`#root`) или его нет вовсе. */\nfunction viewRoot(ctx: TRootContext): TRoot {\n\treturn {\n\t\ttag: undefined,\n\t\tnode: ctx.root,\n\t\tplaced: IN_PLACE,\n\t\thides: false,\n\t\thidesRoot: false,\n\t\tshownBy: undefined,\n\t\tlayer: false,\n\t}\n}\n\n/** What the base draws on a layer: its state in its place, nothing away from it. */\nfunction drawnIn(placed: Signal<boolean>, state: TStateRead): TStateRead {\n\treturn () => (placed() ? state() : NO_STATE)\n}\n\n/** Слой: цель и «на месте» — из состояния по именам выходов, которые назвал компонент. */\nfunction teleport(root: TNode, names: TRootTeleport, ctx: TRootContext): Signal<boolean> {\n\tconst { contained } = names\n\tconst companion = names.companion ? ctx.companion : undefined\n\n\tif (companion) hideCompanion(companion, ctx.hidden)\n\n\treturn teleportRoot(\n\t\troot,\n\t\t{\n\t\t\ttarget: computed(() => {\n\t\t\t\tconst value = ctx.state()[names.target]\n\n\t\t\t\treturn typeof value === 'string' && value !== '' ? value : null\n\t\t\t}),\n\t\t\tcontained: computed(() => contained !== undefined && ctx.state()[contained] === true),\n\t\t},\n\t\tcompanion,\n\t)\n}\n","import { Directive, signal, type Signal } from '@angular/core'\n\nexport const SUBTREE_PRESENT: Signal<boolean> = signal(true).asReadonly()\n\n/**\n * Носитель признака «поддерево компонента есть» для потомков по DI: у Vue\n * `v-if` корня снимает и увезённые в `body` панели, а `display: none` Angular\n * до них не доходит. Host-директива базы — `providers` не наследуются.\n * Наружу — как `ɵSubtreeDirective` (NG3001). AGENTS.md (Angular), «Скрытый\n * компонент прячет и слои своего поддерева».\n */\n@Directive()\nexport class SubtreeDirective {\n\tprivate _present: Signal<boolean> = SUBTREE_PRESENT\n\n\tget present(): Signal<boolean> {\n\t\treturn this._present\n\t}\n\n\t/** Зовёт база в конструкторе — раньше, чем Angular создаёт поддерево. */\n\tprovide(present: Signal<boolean>): void {\n\t\tthis._present = present\n\t}\n}\n","import {\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tforwardRef,\n\tinject,\n\ttype OnDestroy,\n} from '@angular/core'\nimport { NG_VALUE_ACCESSOR, type ControlValueAccessor } from '@angular/forms'\nimport type { TBinding } from './useAdapter'\n\n/** One forms bridge for every descriptor with a writable value model. */\n@Directive({\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => ValueAccessorDirective),\n\t\t\tmulti: true,\n\t\t},\n\t],\n})\nexport class ValueAccessorDirective implements ControlValueAccessor, OnDestroy {\n\tprivate readonly _host = inject<ElementRef<Element>>(ElementRef).nativeElement\n\tprivate _binding?: Pick<TBinding, 'syncInputs' | 'syncEvents' | 'resetInputs'>\n\tprivate _pending: Record<string, unknown> = {}\n\tprivate _writing = 0\n\tprivate _onChange?: (value: unknown) => void\n\tprivate _onTouched = () => {}\n\tprivate _stop?: () => void\n\n\t/** Forms may write before the component's ngOnInit assembles the binding. */\n\tinitialInputs(): Record<string, unknown> {\n\t\treturn this._pending\n\t}\n\n\tconnect(binding: Pick<TBinding, 'syncInputs' | 'syncEvents' | 'resetInputs'>): void {\n\t\tthis._binding = binding\n\t\tconst pending = this._pending\n\t\tthis._pending = {}\n\t\tthis._write(pending)\n\t\tthis._listen()\n\t}\n\n\twriteValue(value: unknown): void {\n\t\t// null is Angular's reset sentinel; undefined resets the descriptor to its default.\n\t\tthis._write({ value: value ?? undefined })\n\t}\n\n\tsetDisabledState(disabled: boolean): void {\n\t\tthis._write({ disabled })\n\t}\n\n\tregisterOnChange(fn: (value: unknown) => void): void {\n\t\tthis._onChange = fn\n\t\tthis._listen()\n\t}\n\n\tregisterOnTouched(fn: () => void): void {\n\t\tthis._onTouched = fn\n\t}\n\n\t/** Moving between nodes inside one control does not finish its interaction. */\n\tprivate _blur(event: FocusEvent): void {\n\t\tif (event.relatedTarget instanceof Node && this._host.contains(event.relatedTarget)) return\n\n\t\tthis._onTouched()\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._stop?.()\n\t}\n\n\tprivate _write(inputs: Record<string, unknown>): void {\n\t\tif (!this._binding) {\n\t\t\tObject.assign(this._pending, inputs)\n\t\t\treturn\n\t\t}\n\n\t\tthis._writing++\n\t\ttry {\n\t\t\tif (Object.hasOwn(inputs, 'value') && inputs['value'] === undefined) {\n\t\t\t\tthis._binding.resetInputs(['value'])\n\t\t\t}\n\t\t\tthis._binding.syncInputs(inputs)\n\t\t} finally {\n\t\t\tthis._writing--\n\t\t}\n\t}\n\n\tprivate _listen(): void {\n\t\tif (!this._binding || !this._onChange || this._stop) return\n\n\t\tconst emitter = new EventEmitter<unknown>()\n\t\tconst subscription = emitter.subscribe((value: unknown) => {\n\t\t\tif (!this._writing) this._onChange?.(value)\n\t\t})\n\t\tconst blur = new EventEmitter<unknown>()\n\t\tconst blurSubscription = blur.subscribe((event: unknown) => {\n\t\t\tif (event instanceof FocusEvent) this._blur(event)\n\t\t})\n\t\tconst stop = this._binding.syncEvents((name) => {\n\t\t\tif (name === 'valueChange') return emitter\n\t\t\tif (name === 'soActionBlur') return blur\n\t\t\treturn undefined\n\t\t})\n\n\t\tthis._stop = () => {\n\t\t\tstop()\n\t\t\tsubscription.unsubscribe()\n\t\t\tblurSubscription.unsubscribe()\n\t\t}\n\t}\n}\n","/**\n * TComponentBase — the base of a soxa Angular component: the binding's\n * lifecycle, outputs, slots and the root. AGENTS.md (Angular), «Корень-хост\n * ведёт базовый `TComponentBase`».\n *\n * - constructor: the getters of the component's own outputs (once per class),\n * the root by its spec (`TRootSpec`, strategies in `root/`) and the subtree\n * flag for descendants;\n * - `ngOnInit`: assembly by the component's setup function in its injection\n * context, and the sink of core events;\n * - `ngOnChanges`: changed inputs go to the core;\n * - `ngOnDestroy`: `detach()` (the consumer hears nothing from then on),\n * unsubscription and `destroy()`.\n *\n * A component extends the generated `T<Name>Surface`, not the base: the\n * surface declares inputs and outputs with their types for strict templates\n * and gives the base their names. A visual surface extends the generated\n * `TViewSurface` between it and the base: the ancestor declares the outputs\n * every visual component has, and the surface — only its own.\n */\n\nimport {\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tInjector,\n\tInput,\n\tOnChanges,\n\tOnDestroy,\n\tOnInit,\n\tSimpleChanges,\n\tTemplateRef,\n\tafterRenderEffect,\n\tcomputed,\n\tinject,\n\trunInInjectionContext,\n\tsignal,\n\ttype Signal,\n} from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { TStateSnapshot } from '@soxa-ui/setup'\nimport { createRoot, type TRoot } from './root/strategies'\nimport type { TRootSpec } from './root/spec'\nimport type { SlotDirective } from './slot.directive'\nimport { SUBTREE_PRESENT, SubtreeDirective } from './subtree.directive'\nimport type { TBinding, TBindingState } from './useAdapter'\nimport { ValueAccessorDirective } from './value-accessor.directive'\n\n/** The component's setup function: assembles its contexts into one binding. */\nexport type TSetup<TInstance, TFacade = unknown, TOutputs = unknown, TOwnerFacade = unknown> = (\n\tctrl: TInstance | undefined,\n\tinputs: object,\n) => TBinding<TInstance, TFacade, TOutputs, TOwnerFacade>\n\n/** A template reference to a node the base needs: the root, the field, the layer's companion. */\nexport type TTemplateRef = 'root' | 'control' | 'companion'\n\nconst VIEW_ROOT: TRootSpec = { strategy: 'view' }\n\n/** State before the assembly: nothing — the same object on every read. */\nconst NO_BINDING_STATE = Object.freeze({})\n\n/** No slot templates: the component reads no slots. */\nconst NO_SLOTS: readonly SlotDirective[] = Object.freeze([])\n\n@Directive({\n\t// A subclass inherits `hostDirectives`, but not `providers`\n\thostDirectives: [SubtreeDirective],\n\thost: {\n\t\t'[style.display]': '_rootDisplay()',\n\t},\n})\nexport abstract class TComponentBase<\n\tTInstance extends IEntity,\n\tTFacade = unknown,\n\tTOutputs = unknown,\n\tTOwnerFacade = unknown,\n>\n\timplements OnInit, OnChanges, OnDestroy\n{\n\t/** A ready core instance; without it the assembly creates one. */\n\t@Input() ctrl?: TInstance\n\n\tprivate readonly _inputNames: readonly string[]\n\tprivate readonly _setup: TSetup<TInstance, TFacade, TOutputs, TOwnerFacade>\n\tprivate readonly _root: TRoot\n\t/** The host node: once it is out of the document, the component sends nothing (`_removed`). */\n\tprivate readonly _host: unknown = inject(ElementRef).nativeElement\n\t/** The first render with a binding has run: the host was in the document. */\n\tprivate _placed = false\n\n\t/** The ancestor's subtree is present. It hides only a layer moved out of the subtree. */\n\tprivate readonly _above: Signal<boolean>\n\n\t/** The root exists: where Vue's `v-if` would not remove it. */\n\tprivate readonly _present: Signal<boolean>\n\n\t/** The root is where it belongs: a layer in its target or in place, anything else always. */\n\tprotected readonly placed: Signal<boolean>\n\n\tprivate readonly _binding = signal<\n\t\tTBinding<TInstance, TFacade, TOutputs, TOwnerFacade> | undefined\n\t>(undefined)\n\tprivate _eventsCleanup?: () => void\n\tprivate readonly _forms = inject(ValueAccessorDirective, { self: true, optional: true })\n\n\tprivate readonly _boundRoot = signal<Element | null>(null)\n\n\t/**\n\t * The node the base gave `TElementPlugin`: `null` on the server, before the\n\t * render and while the root is removed. A method reading the signal, as\n\t * `state()`, `instance()` and `facade()`: a `computed` or a read-only copy\n\t * of a signal on every instance only forwarded it.\n\t */\n\tprotected rootElement(): Element | null {\n\t\treturn this._boundRoot()\n\t}\n\n\t/** Emitters are created and the assembly runs in its context. */\n\tprivate readonly _injector = inject(Injector)\n\n\t/** State of the core with plugin outputs and facade properties: the binding's signal. */\n\tstate(): TBindingState<TInstance, TFacade, TOutputs, TOwnerFacade> {\n\t\treturn this._binding()?.state() ?? NO_BINDING_STATE\n\t}\n\n\t/** The core instance: the outer `ctrl` or the one assembled in `ngOnInit`. */\n\tprotected instance(): TInstance | undefined {\n\t\treturn this._binding()?.ctrl\n\t}\n\n\t/** The collection facade: through its context the template calls collection commands. */\n\tprotected facade(): TFacade | undefined {\n\t\treturn this._binding()?.facade\n\t}\n\n\t/** The outer node is hidden. The base does not know the instance and reads state by name. */\n\tprivate readonly _hidden = computed(() => {\n\t\tconst state: TStateSnapshot = this.state()\n\t\tconst hidden =\n\t\t\tthis._root.hides && (state['rendered'] === false || state['visible'] === false)\n\n\t\treturn hidden || this._absent(state) || !this.placed() || !this._above()\n\t})\n\n\t/**\n\t * The host's display. Not hidden is `undefined`, not `null`: then Angular\n\t * keeps the host's static style, and `null` would remove it.\n\t */\n\tprotected readonly _rootDisplay = computed(() =>\n\t\t!this._root.hidesRoot && this._hidden() ? 'none' : undefined,\n\t)\n\n\t/**\n\t * The template node by its reference (`#root`, `#control`, `#companion`),\n\t * `null` without one. The generated surface declares the queries, and only\n\t * for references the component's template has: an Angular query copies\n\t * itself into every view of the template (an `@if` block, a `@for`\n\t * iteration), and without the reference that is memory on every block.\n\t */\n\tprotected templateNode(_ref: TTemplateRef): Element | null {\n\t\treturn null\n\t}\n\n\t/**\n\t * Slot templates of the component (`<ng-template slot>`). The query is\n\t * declared by the generated surface, and only where the component reads\n\t * slots (`slot()`): a content query costs every instance, and an item row\n\t * or an icon inside every element of a collection reads none.\n\t */\n\tprotected slotTemplates(): readonly SlotDirective[] {\n\t\treturn NO_SLOTS\n\t}\n\n\t/** The template of a slot by its name from the contract. */\n\tprotected slot(name: string): TemplateRef<unknown> | null {\n\t\treturn this.slotTemplates().find((slot) => slot.name === name)?.template ?? null\n\t}\n\n\tconstructor(\n\t\tinputNames: readonly string[],\n\t\toutputNames: readonly string[],\n\t\tsetup: TSetup<TInstance, TFacade, TOutputs, TOwnerFacade>,\n\t\tspec: TRootSpec = VIEW_ROOT,\n\t) {\n\t\tthis._inputNames = inputNames\n\t\tthis._setup = setup\n\n\t\tTComponentBase._defineOutputs(new.target.prototype, outputNames)\n\n\t\tconst above =\n\t\t\tinject(SubtreeDirective, { skipSelf: true, optional: true })?.present ?? SUBTREE_PRESENT\n\n\t\tthis._root = createRoot(spec, {\n\t\t\town: ['ctrl', ...inputNames],\n\t\t\tstate: () => this.state(),\n\t\t\thidden: this._hidden,\n\t\t\troot: () => this.templateNode('root'),\n\t\t\tcontrol: () => this.templateNode('control'),\n\t\t\tcompanion: () => this.templateNode('companion'),\n\t\t})\n\n\t\tthis.placed = this._root.placed\n\t\t// Anything else is hidden by its hidden ancestor; `_present` takes the node from the plugins\n\t\tthis._above = this._root.layer ? above : SUBTREE_PRESENT\n\t\tthis._present = this._presence(above)\n\n\t\t// The node goes to the plugins and the template only in the browser, after the render\n\t\tafterRenderEffect(() => {\n\t\t\tconst node = this._root.node()\n\t\t\tconst binding = this._binding()\n\n\t\t\tif (!binding) return\n\n\t\t\tthis._placed = true\n\n\t\t\tconst element = this._present() ? node : null\n\n\t\t\tbinding.bindElement(element)\n\t\t\tthis._boundRoot.set(element)\n\t\t})\n\n\t\t// The own subtree flag is provided at once: Angular creates the subtree\n\t\t// later. `rendered` of the toasts manager removes the region, not the\n\t\t// app inside the wrapper\n\t\tinject(SubtreeDirective, { self: true }).provide(\n\t\t\tthis._root.hidesRoot ? above : this._present,\n\t\t)\n\t}\n\n\tngOnInit(): void {\n\t\t// The first ngOnChanges came before the binding: the assembly applies the\n\t\t// inputs at mount\n\t\tconst inputs = { ...this.collectInputs(), ...this._forms?.initialInputs() }\n\n\t\tif (this._root.tag !== undefined) inputs['tag'] = this._root.tag\n\n\t\tconst binding = runInInjectionContext(this._injector, () => this._setup(this.ctrl, inputs))\n\n\t\tthis._eventsCleanup = binding.syncEvents((name) =>\n\t\t\tthis._removed() ? undefined : this._createdOutput(name),\n\t\t)\n\n\t\tthis._binding.set(binding)\n\t\tthis._forms?.connect(binding)\n\t}\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tconst binding = this._binding()\n\n\t\tif (!binding) return\n\n\t\tconst inputs: Record<string, unknown> = {}\n\n\t\tfor (const key of Object.keys(changes)) {\n\t\t\tinputs[key] = changes[key].currentValue\n\t\t}\n\n\t\tbinding.syncInputs(inputs)\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis._binding()?.detach()\n\t\tthis._eventsCleanup?.()\n\t\tthis._binding()?.destroy()\n\t}\n\n\tprotected collectInputs(): Record<string, unknown> {\n\t\tconst inputs: Record<string, unknown> = {}\n\n\t\tfor (const name of this._inputNames) {\n\t\t\tconst value: unknown = Reflect.get(this, name)\n\t\t\tif (value !== undefined) inputs[name] = value\n\t\t}\n\n\t\treturn inputs\n\t}\n\n\t/**\n\t * The output getters on a prototype, one per output: the first instance\n\t * defines them, the next ones find them there. The base gives the prototype\n\t * of the instance's class the outputs its surface declares; the generated\n\t * `TViewSurface` gives its own prototype the outputs every visual component\n\t * has — once per application. Not generated code: the getter is the same for\n\t * every output but its name, and generated per output it weighed 72 KB on a\n\t * page of six components (benchmarks/install/angular.md).\n\t */\n\tprotected static _defineOutputs(prototype: object, names: readonly string[]): void {\n\t\t// The getters are defined all at once, so the first one marks the prototype\n\t\tif (names.length === 0 || Object.hasOwn(prototype, names[0])) return\n\n\t\tfor (const name of names) {\n\t\t\tObject.defineProperty(prototype, name, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tget(this: TComponentBase<IEntity>): EventEmitter<unknown> {\n\t\t\t\t\treturn this.createOutput(name)\n\t\t\t\t},\n\t\t\t})\n\t\t}\n\t}\n\n\t/**\n\t * The output's emitter, called by the output's getter on the first read.\n\t * The emitter becomes an own property and shadows the getter; a second call\n\t * is an error, not a replacement. Created in the injector's context:\n\t * `EventEmitter` takes `DestroyRef` from it, and `outputToObservable`\n\t * completes with the component.\n\t */\n\tprotected createOutput<T>(name: string): EventEmitter<T> {\n\t\tconst emitter = runInInjectionContext(this._injector, () => new EventEmitter<T>())\n\n\t\tObject.defineProperty(this, name, { value: emitter, enumerable: true })\n\n\t\treturn emitter\n\t}\n\n\t/** The root is removed by what removes it under Vue's `v-if`: `rendered=false` and `shownBy`. */\n\tprivate _presence(above: Signal<boolean>): Signal<boolean> {\n\t\tconst { hides, shownBy } = this._root\n\n\t\tif (!hides && shownBy === undefined) return above\n\n\t\treturn computed(() => {\n\t\t\tif (!above()) return false\n\n\t\t\tconst state: TStateSnapshot = this.state()\n\n\t\t\treturn !(hides && state['rendered'] === false) && !this._absent(state)\n\t\t})\n\t}\n\n\tprivate _absent(state: TStateSnapshot): boolean {\n\t\tconst { shownBy } = this._root\n\n\t\treturn shownBy !== undefined && state[shownBy] !== true\n\t}\n\n\t/**\n\t * Removed from the document: the consumer took the component down, and what\n\t * its teardown stirs (the blur of the removed node, the siblings leaving the\n\t * collection one by one) is news to no one. Angular destroys a removed\n\t * subtree children first, with no hook on the parent before them: `detach`\n\t * from `ngOnDestroy` comes after the children. But it takes the subtree out\n\t * of the document first, so a placed component that is out of the document\n\t * sends nothing, like a Web Components element. On the server the render\n\t * does not run, and nothing is muted.\n\t */\n\tprivate _removed(): boolean {\n\t\tconst host = this._host\n\n\t\treturn (\n\t\t\tthis._placed &&\n\t\t\ttypeof host === 'object' &&\n\t\t\thost !== null &&\n\t\t\tReflect.get(host, 'isConnected') === false\n\t\t)\n\t}\n\n\t/** An already created emitter; the lookup does not create one. */\n\tprivate _createdOutput(name: string): EventEmitter<unknown> | undefined {\n\t\tconst output: unknown = Object.getOwnPropertyDescriptor(this, name)?.value\n\n\t\treturn output instanceof EventEmitter ? output : undefined\n\t}\n}\n","/**\n * `<ng-template slot=\"имя\">` — слот со scope: `<ng-content>` данных внутрь не\n * передаёт. Имя — из дескриптора. Импортирует потребитель.\n */\n\nimport { Directive, Input, TemplateRef } from '@angular/core'\n\n@Directive({\n\tselector: 'ng-template[slot]',\n})\nexport class SlotDirective {\n\t@Input('slot') name = ''\n\n\tconstructor(readonly template: TemplateRef<unknown>) {}\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core'\nimport type { TAttributesMap } from '@soxa-ui/core'\nimport { TForwardRegistry } from '../attrs/registry'\nimport { TElementAttributes, attributesOf } from './root-attributes'\n\n/**\n * Набор ядра на элементе шаблона, аналог `v-bind=\"aria\"` у Vue:\n * `<input [so-attributes]=\"state()['aria']\">`. Пишет слоем `markup`\n * раскладчика элемента — главнее наборов вложенного компонента. На хосте с\n * узлом внутри набор уходит записи хоста, как всё написанное на нём.\n * AGENTS.md (Angular), «Набор ядра на элементе шаблона».\n */\n@Directive({\n\tselector: '[so-attributes]',\n})\nexport class AttributesDirective {\n\tprivate readonly _element = inject<ElementRef<Element>>(ElementRef).nativeElement\n\n\t/** Без `provideAttrs()` реестра нет. */\n\tprivate readonly _registry = inject(TForwardRegistry, { optional: true })\n\n\t@Input({ alias: 'so-attributes', required: true })\n\tset attributes(set: TAttributesMap | null | undefined) {\n\t\t// Хост регистрируется в конструкторе компонента — раньше директив элемента\n\t\tconst host = this._registry?.hostOf(this._element)\n\n\t\tif (host) host.setMarkup(attributesOf(set))\n\t\telse TElementAttributes.of(this._element).set('markup', attributesOf(set))\n\t}\n}\n","import { Directive, ElementRef, Input, inject } from '@angular/core'\n\n/**\n * Текст поля — только когда он разошёлся с узлом: `[value]` сверяет с прошлой\n * привязкой, а не с узлом, и писал бы полю его же текст на каждое нажатие.\n * Такая запись снимает с поля пометку «изменено пользователем», и браузер\n * перестаёт проверять `minlength`. AGENTS.md (Angular), «Текст поля».\n */\n@Directive({\n\tselector: 'input[so-field-text], textarea[so-field-text]',\n})\nexport class FieldTextDirective {\n\tprivate readonly _field =\n\t\tinject<ElementRef<HTMLInputElement | HTMLTextAreaElement>>(ElementRef).nativeElement\n\n\t@Input({ alias: 'so-field-text', required: true })\n\tset text(value: string | undefined) {\n\t\tconst text = value ?? ''\n\n\t\tif (this._field.value !== text) this._field.value = text\n\t}\n}\n","import { Pipe, type PipeTransform } from '@angular/core'\nimport { toText } from '@soxa-ui/core'\n\n/** Значение текстом по правилу ядра (`toText`): `{{ value | soText }}`. */\n@Pipe({\n\tname: 'soText',\n})\nexport class TextPipe implements PipeTransform {\n\ttransform(value: unknown): string {\n\t\treturn toText(value)\n\t}\n}\n","import { Pipe, type PipeTransform } from '@angular/core'\n\n/** Серия подряд идущих элементов списка с одним значением признака. */\nexport type TRun<T, TValue> = {\n\treadonly value: TValue\n\treadonly items: readonly T[]\n}\n\n/**\n * Список сериями подряд идущих элементов с одним значением признака `key`:\n * `@for (run of cells | soRuns: 'rowHeader'; track $index)`, в серии — ветка\n * по `run.value` и петля по `run.items`. Блок Angular — своё представление с\n * якорем, и ветка по признаку в каждом элементе стоила бы представления на\n * элемент, а сериями — одного на серию. Пайп чистый: серии считаются заново\n * только на новый список.\n */\n@Pipe({\n\tname: 'soRuns',\n})\nexport class RunsPipe implements PipeTransform {\n\ttransform<T, K extends keyof T>(items: readonly T[], key: K): TRun<T, T[K]>[] {\n\t\tconst runs: TRun<T, T[K]>[] = []\n\t\tlet run: { value: T[K]; items: T[] } | undefined\n\n\t\tfor (const item of items) {\n\t\t\tconst value = item[key]\n\n\t\t\tif (!run || !Object.is(run.value, value)) {\n\t\t\t\trun = { value, items: [] }\n\t\t\t\truns.push(run)\n\t\t\t}\n\n\t\t\trun.items.push(item)\n\t\t}\n\n\t\treturn runs\n\t}\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport { TComponentBase, type TRootSpec, type TSetup } from '../adapter/runtime'\n\nexport const ViewOutputNames = [\n\t'soBundleCreate',\n\t'soPluginEvent',\n\t'soShow',\n\t'soHide',\n\t'soShowBefore',\n\t'soHideBefore',\n\t'soReady',\n\t'soChangeRendered',\n\t'soChangeVisible',\n\t'soChangeTag',\n\t'soChangeDirection',\n\t'soElementReady',\n\t'soElementRemoved',\n] as const\n\n@Directive({ outputs: [...ViewOutputNames] })\nexport abstract class TViewSurface<\n\tTInstance extends IEntity,\n\tTFacade = unknown,\n\tTOutputs = unknown,\n\tTOwnerFacade = unknown,\n> extends TComponentBase<TInstance, TFacade, TOutputs, TOwnerFacade> {\n\tconstructor(\n\t\tinputNames: readonly string[],\n\t\toutputNames: readonly string[],\n\t\tsetup: TSetup<TInstance, TFacade, TOutputs, TOwnerFacade>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(inputNames, outputNames, setup, spec)\n\t\tTComponentBase._defineOutputs(TViewSurface.prototype, ViewOutputNames)\n\t}\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tTComponentBase,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport type { descriptor } from '../components/component/manifest'\n\nexport const ComponentInputNames = ['embedded', 'pluginProps'] as const\nexport const ComponentOutputNames = ['soBundleCreate', 'soPluginEvent'] as const\n\n@Directive({ inputs: ['embedded', 'pluginProps'], outputs: [...ComponentOutputNames] })\nexport abstract class TComponentSurface<TInstance extends IEntity> extends TComponentBase<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ComponentInputNames, ComponentOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n}\n","/**\n * Имена входов по дескриптору — для кодогенератора: AOT требует литеральных\n * массивов в декораторе (`generated/*.metadata.ts`).\n */\n\nimport { TSurface, type IComponentDescriptor } from '@soxa-ui/setup'\nimport { AngularProfile } from './profile'\n\n/**\n * Не входы: `ctrl` объявляет база, а `tag` база берёт у элемента потребителя —\n * имя тега у живого элемента не меняется.\n */\nconst SERVICE_INPUTS = new Set(['ctrl', 'tag'])\n\nexport function useInputs(descriptor: IComponentDescriptor): string[] {\n\treturn Object.keys(TSurface.of(descriptor, AngularProfile).exportProps).filter(\n\t\t(name) => !SERVICE_INPUTS.has(name),\n\t)\n}\n\n/**\n * Входы, чей проп объявлен ровно `Boolean`: им генератор ставит\n * `transform: booleanInput`. У `value` полей `Boolean` — один из типов, и\n * пустая строка там — значение.\n */\nexport function useBooleanInputs(descriptor: IComponentDescriptor): string[] {\n\tconst { exportProps } = TSurface.of(descriptor, AngularProfile)\n\n\treturn Object.keys(exportProps).filter(\n\t\t(name) => !SERVICE_INPUTS.has(name) && exportProps[name].type === Boolean,\n\t)\n}\n","/**\n * Выходы по дескриптору с полным именем события ядра (`soActionPress` —\n * `action:press`) — для кодогенератора: по событию `T<Имя>Surface` берёт тип\n * выхода.\n */\n\nimport { TSurface, type IComponentDescriptor } from '@soxa-ui/setup'\nimport { AngularProfile } from './profile'\n\nexport function useOutputs(\n\tdescriptor: IComponentDescriptor,\n): (readonly [output: string, event: string])[] {\n\treturn TSurface.of(descriptor, AngularProfile).events.map((event) => [\n\t\tevent.exportName,\n\t\tevent.name.getName(),\n\t])\n}\n\n/** Model outputs carry writable property values independently of public events. */\nexport function useModels(\n\tdescriptor: IComponentDescriptor,\n): (readonly [output: string, prop: string])[] {\n\treturn TSurface.of(descriptor, AngularProfile).props.flatMap((prop) =>\n\t\tprop.model === undefined ? [] : [[prop.model, prop.exportName] as const],\n\t)\n}\n","import { InjectionToken, inject } from '@angular/core'\nimport type { ILocaleSource, TLocaleSource } from '@soxa-ui/plugins'\n\n/** Источник локали поддерева; пишет в него сам провайдер. */\nexport const LOCALE_SOURCE = new InjectionToken<TLocaleSource>('soxa:locale')\n\n/** Источник ближайшего `LocaleProviderDirective`; зовётся в контексте инъекции. */\nexport function nearestLocale(): ILocaleSource | undefined {\n\treturn inject(LOCALE_SOURCE, { optional: true }) ?? undefined\n}\n","/**\n * Id монтирования — номер сборки компонента в приложении с префиксом `APP_ID`.\n * `useId` у Angular нет, но полная гидратация собирает компоненты в том же\n * порядке, что сервер. Счётчик — у приложения: сервер рисует каждый запрос\n * своим. AGENTS.md (Angular), «Id монтирования — номер сборки в приложении».\n */\n\nimport { APP_ID, InjectionToken, inject } from '@angular/core'\n\nconst MOUNT_ID = new InjectionToken<() => string>('soxa:mount-id', {\n\tprovidedIn: 'root',\n\tfactory: () => {\n\t\tconst prefix = inject(APP_ID)\n\t\tlet count = 0\n\n\t\treturn () => `${prefix}-${++count}`\n\t},\n})\n\n/** Зовётся в контексте инъекции компонента. */\nexport function nextMountId(): string {\n\treturn inject(MOUNT_ID)()\n}\n","import { createAdapterContext } from '@soxa-ui/setup'\nimport { nearestLocale } from '../locale/context'\nimport { nextMountId } from './mount-id'\n\n/**\n * Сборка компонента Angular, как `createVueAdapterContext` у Vue: id\n * монтирования — номер сборки в приложении, локаль — ближайшего\n * `LocaleProviderDirective`. Зовётся в контексте инъекции, который даёт база.\n * AGENTS.md (Angular), «Сборка — `createAngularAdapterContext`».\n */\nexport const createAngularAdapterContext: typeof createAdapterContext = (\n\tdescriptor,\n\toptions,\n\tconfig,\n) => {\n\t// Чужой набор (фасад коллекции): id и локаль у того, кто его собрал, —\n\t// номер сборки на фасад не тратится, и номера сервера и браузера сходятся\n\tif (config?.bundle !== undefined) return createAdapterContext(descriptor, options, config)\n\n\treturn createAdapterContext(\n\t\tdescriptor,\n\t\t{\n\t\t\t...options,\n\t\t\tmountId: options.mountId ?? nextMountId(),\n\t\t\tlocale: options.locale ?? nearestLocale(),\n\t\t},\n\t\tconfig,\n\t)\n}\n","import { Directive, ElementRef, computed, effect, inject, input } from '@angular/core'\nimport { getIcon } from '@soxa-ui/setup'\n\n/**\n * Иконка по роли из реестра на `<svg>` Icon, аналог `roleIcon` у Vue:\n * `<svg so-icon so-role-icon=\"close\">`. Кладёт только рисунок — `viewBox` и\n * содержимое; корень ведёт база Icon. AGENTS.md (Angular), «Иконка по роли —\n * `RoleIconDirective`».\n */\n@Directive({\n\tselector: 'svg[so-role-icon]',\n\thost: {\n\t\t'[attr.viewBox]': '_icon().viewBox',\n\t},\n})\nexport class RoleIconDirective {\n\treadonly role = input.required<string>({ alias: 'so-role-icon' })\n\n\tprotected readonly _icon = computed(() => getIcon(this.role()))\n\n\tconstructor() {\n\t\tconst svg = inject<ElementRef<Element>>(ElementRef).nativeElement\n\n\t\t// Эффект, а не после отрисовки: иконка нужна и разметке сервера.\n\t\t// `insertAdjacentHTML`, а не `innerHTML`: эмуляция DOM сервера (domino)\n\t\t// `innerHTML` у SVG не реализует\n\t\teffect(() => {\n\t\t\tconst { body } = this._icon()\n\n\t\t\tsvg.textContent = ''\n\t\t\tsvg.insertAdjacentHTML('afterbegin', body)\n\t\t})\n\t}\n}\n","import { Directive, Input, inject } from '@angular/core'\nimport { TLocaleSource, enUS } from '@soxa-ui/plugins'\nimport type { TLocale } from '@soxa-ui/plugins'\nimport { LOCALE_SOURCE } from './context'\n\n/**\n * Локаль поддерева: `<ng-container so-locale-provider [locale]=\"current()\">`.\n * Источник свой у каждого провайдера — сервер рисует запросы на разных языках.\n * AGENTS.md (Angular), «Локаль поддерева — `LocaleProviderDirective`».\n */\n@Directive({\n\tselector: '[so-locale-provider]',\n\tproviders: [{ provide: LOCALE_SOURCE, useFactory: () => new TLocaleSource(enUS) }],\n})\nexport class LocaleProviderDirective {\n\tprivate readonly _source = inject(LOCALE_SOURCE, { self: true })\n\n\t// Сеттер: вход директивы Angular пишет раньше `ngOnInit` детей, где они\n\t// собираются, а смена — в тот же источник, без пересборки\n\t@Input({ required: true })\n\tset locale(value: TLocale) {\n\t\tthis._source.locale = value\n\t}\n\n\tget locale(): TLocale {\n\t\treturn this._source.locale\n\t}\n}\n","/**\n * Слой лифта владельца: свои значения поверх слоя предка. Токен один на слой —\n * провайдеры Angular статичны, и токен на ключ пришлось бы объявлять заранее.\n * `providers`, а не `viewProviders`: слой читают и элементы, которые написал\n * потребитель.\n */\n\nimport { InjectionToken, inject, type Provider } from '@angular/core'\n\nexport class TElevatorLayer {\n\tprivate readonly _own = new Map<symbol, unknown>()\n\n\tconstructor(private readonly _parent: TElevatorLayer | null) {}\n\n\t/** Опущенный `null` — тоже значение: им окно `Virtual` отрезает вложенные списки. */\n\tread(key: symbol): unknown {\n\t\treturn this._own.has(key) ? this._own.get(key) : this._parent?.read(key)\n\t}\n\n\twrite(key: symbol, value: unknown): void {\n\t\tthis._own.set(key, value)\n\t}\n}\n\nexport const ELEVATOR_LAYER = new InjectionToken<TElevatorLayer>('soxa:elevator')\n\n/** Строка `providers` в декораторе владельца. */\nexport function provideElevator(): Provider {\n\treturn {\n\t\tprovide: ELEVATOR_LAYER,\n\t\tuseFactory: () =>\n\t\t\tnew TElevatorLayer(inject(ELEVATOR_LAYER, { skipSelf: true, optional: true })),\n\t}\n}\n","/**\n * Лифт одного ключа поверх слоя DI (`provideElevator()` владельца), как\n * `provide`/`inject` у Vue. Зовётся в контексте инъекции, который даёт сборке\n * база. AGENTS.md (Angular), «Лифт — слой DI на владельца».\n *\n * - `down` пишет в свой слой; слоя нет — ошибка: значение ушло бы соседям;\n * - `up` читает слой над компонентом;\n * - `upLater` — слой сейчас, значение при вызове (API тостов: компонент в\n * `<div so-toasts>` создаётся раньше, чем менеджер опускает API).\n */\n\nimport { inject } from '@angular/core'\nimport { TElevator } from '@soxa-ui/setup'\nimport { ELEVATOR_LAYER } from './layer'\n\nexport class TAngularElevator<T = unknown> extends TElevator<T> {\n\tdown(value: T): void {\n\t\tconst layer = inject(ELEVATOR_LAYER, { self: true, optional: true })\n\n\t\tif (!layer) {\n\t\t\tthrow new Error(\n\t\t\t\t`Лифт «${this._key.description}»: у компонента нет своего слоя — владелец подключает его провайдером provideElevator()`,\n\t\t\t)\n\t\t}\n\n\t\tlayer.write(this._key, value)\n\t}\n\n\tup(): T | undefined {\n\t\treturn this.upLater()()\n\t}\n\n\tupLater(): () => T | undefined {\n\t\tconst layer = inject(ELEVATOR_LAYER, { skipSelf: true, optional: true })\n\t\tconst key = this._key\n\n\t\t// Тип значения задаёт ключ лифта: под ним кладут только `T`\n\t\treturn () => layer?.read(key) as T | undefined\n\t}\n}\n","import type { IElevatorKey, TElevatorFactory } from '@soxa-ui/setup'\nimport { TAngularElevator } from './elevator.class'\n\n/** Лифты сборки Angular: работают со слоем DI в контексте инъекции компонента. */\nexport const AngularElevatorFactory: TElevatorFactory = <T>(key: IElevatorKey<T>) =>\n\tnew TAngularElevator<T>(key.name)\n","/**\n * Рендерер адаптера — делегирующий `Renderer2`: команду на хост из реестра\n * отдаёт его записи (`TForwardedHost`) вместе с собой, остальное — рендереру\n * Angular. Класс, а не `Proxy`: каждый метод виден типами `Renderer2`.\n */\n\nimport { Renderer2, type RendererStyleFlags2 } from '@angular/core'\nimport type { TForwardedHost, TListenerCallback, TListenerOptions } from './host'\nimport type { TForwardRegistry } from './registry'\n\nexport class TForwardingRenderer extends Renderer2 {\n\t/** Как у рендерера DOM: при `null` Angular не обходит узлы снятого представления по одному. */\n\toverride destroyNode: ((node: unknown) => void) | null\n\n\tconstructor(\n\t\tprivate readonly _delegate: Renderer2,\n\t\tprivate readonly _registry: TForwardRegistry,\n\t) {\n\t\tsuper()\n\n\t\tthis.destroyNode =\n\t\t\t_delegate.destroyNode === null ? null : (node) => _delegate.destroyNode?.(node)\n\t}\n\n\tget data(): Renderer2['data'] {\n\t\treturn this._delegate.data\n\t}\n\n\tdestroy(): void {\n\t\tthis._delegate.destroy()\n\t}\n\n\tcreateElement(name: string, namespace?: string | null): unknown {\n\t\treturn this._delegate.createElement(name, namespace)\n\t}\n\n\tcreateComment(value: string): unknown {\n\t\treturn this._delegate.createComment(value)\n\t}\n\n\tcreateText(value: string): unknown {\n\t\treturn this._delegate.createText(value)\n\t}\n\n\tappendChild(parent: unknown, newChild: unknown): void {\n\t\tthis._delegate.appendChild(parent, newChild)\n\t}\n\n\tinsertBefore(parent: unknown, newChild: unknown, refChild: unknown, isMove?: boolean): void {\n\t\tthis._delegate.insertBefore(parent, newChild, refChild, isMove)\n\t}\n\n\tremoveChild(\n\t\tparent: unknown,\n\t\toldChild: unknown,\n\t\tisHostElement?: boolean,\n\t\trequireSynchronousElementRemoval?: boolean,\n\t): void {\n\t\tthis._delegate.removeChild(\n\t\t\tparent,\n\t\t\toldChild,\n\t\t\tisHostElement,\n\t\t\trequireSynchronousElementRemoval,\n\t\t)\n\t}\n\n\tselectRootElement(selectorOrNode: unknown, preserveContent?: boolean): unknown {\n\t\treturn this._delegate.selectRootElement(selectorOrNode, preserveContent)\n\t}\n\n\tparentNode(node: unknown): unknown {\n\t\treturn this._delegate.parentNode(node)\n\t}\n\n\tnextSibling(node: unknown): unknown {\n\t\treturn this._delegate.nextSibling(node)\n\t}\n\n\tsetAttribute(el: unknown, name: string, value: string, namespace?: string | null): void {\n\t\tconst host = this._forwardee(el, (host) => host.keepsAttribute(name))\n\n\t\tif (host) host.setAttribute(this, name, value, namespace)\n\t\telse this._delegate.setAttribute(el, name, value, namespace)\n\t}\n\n\tremoveAttribute(el: unknown, name: string, namespace?: string | null): void {\n\t\tconst host = this._forwardee(el, (host) => host.keepsAttribute(name))\n\n\t\tif (host) host.removeAttribute(this, name, namespace)\n\t\telse this._delegate.removeAttribute(el, name, namespace)\n\t}\n\n\taddClass(el: unknown, name: string): void {\n\t\tconst host = this._forwardee(el, keepsLook)\n\n\t\tif (host) host.addClass(this, name)\n\t\telse this._delegate.addClass(el, name)\n\t}\n\n\tremoveClass(el: unknown, name: string): void {\n\t\tconst host = this._forwardee(el, keepsLook)\n\n\t\tif (host) host.removeClass(this, name)\n\t\telse this._delegate.removeClass(el, name)\n\t}\n\n\tsetStyle(el: unknown, style: string, value: unknown, flags?: RendererStyleFlags2): void {\n\t\tconst host = this._forwardee(el, keepsLook)\n\n\t\tif (host) host.setStyle(this, style, value, flags)\n\t\telse this._delegate.setStyle(el, style, value, flags)\n\t}\n\n\tremoveStyle(el: unknown, style: string, flags?: RendererStyleFlags2): void {\n\t\tconst host = this._forwardee(el, keepsLook)\n\n\t\tif (host) host.removeStyle(this, style, flags)\n\t\telse this._delegate.removeStyle(el, style, flags)\n\t}\n\n\tsetProperty(el: unknown, name: string, value: unknown): void {\n\t\tconst host = this._forwardee(el, (host) => host.keepsProperty(name))\n\n\t\tif (host) host.setProperty(this, name, value)\n\t\telse this._delegate.setProperty(el, name, value)\n\t}\n\n\tsetValue(node: unknown, value: string): void {\n\t\tthis._delegate.setValue(node, value)\n\t}\n\n\tlisten(\n\t\ttarget: unknown,\n\t\teventName: string,\n\t\tcallback: TListenerCallback,\n\t\toptions?: TListenerOptions,\n\t): () => void {\n\t\tconst host = this._forwardee(target, (host) => host.keepsListener(eventName))\n\n\t\treturn host\n\t\t\t? host.listen(this, eventName, callback, options)\n\t\t\t: this._delegate.listen(target, eventName, callback, options)\n\t}\n\n\t/** Запись, которой уходит команда: `el` — хост, и команду он у себя не держит. */\n\tprivate _forwardee(\n\t\tel: unknown,\n\t\tkeeps: (host: TForwardedHost) => boolean,\n\t): TForwardedHost | undefined {\n\t\tconst host = this._registry.hostOf(el)\n\n\t\treturn host && !keeps(host) ? host : undefined\n\t}\n}\n\nfunction keepsLook(host: TForwardedHost): boolean {\n\treturn host.keepsLook\n}\n","/**\n * Фабрика рендереров адаптера: каждый рендерер `ɵDomRendererFactory2` обёрнут\n * `TForwardingRenderer`, одна обёртка на рендерер Angular.\n *\n * Подменяется закрытый `ɵDomRendererFactory2`, а не `RendererFactory2`: тот\n * подменяют и старые анимации, и действовала бы одна подмена из двух. Своего\n * конструктора нет — зависимости родителя у Angular 21 и 22 разные, — поэтому\n * зависимости берутся `inject` в полях. AGENTS.md (Angular), «Рендерер\n * адаптера — `provideAttrs()`».\n */\n\nimport {\n\tANIMATION_MODULE_TYPE,\n\tInjectable,\n\tinject,\n\ttype Renderer2,\n\ttype RendererType2,\n} from '@angular/core'\nimport { ɵDomRendererFactory2 } from '@angular/platform-browser'\nimport { TForwardRegistry } from './registry'\nimport { TForwardingRenderer } from './renderer'\n\n/** Снять проверку `[@x]` с рендерера Angular — по полю, как фабрика анимаций Angular 21. */\nfunction allowSyntheticProps(renderer: Renderer2): void {\n\tif ('throwOnSyntheticProps' in renderer) renderer.throwOnSyntheticProps = false\n}\n\n@Injectable()\nexport class TForwardingRendererFactory extends ɵDomRendererFactory2 {\n\tprivate readonly _registry = inject(TForwardRegistry).serve()\n\n\t/**\n\t * Фабрика старых анимаций снимает проверку `[@x]` только с рендерера Angular,\n\t * которого узнаёт по классу, — наш она не узнаёт, и проверку снимаем сами.\n\t */\n\tprivate readonly _animated = inject(ANIMATION_MODULE_TYPE, { optional: true }) !== null\n\n\tprivate readonly _renderers = new WeakMap<Renderer2, TForwardingRenderer>()\n\n\toverride createRenderer(element: unknown, type: RendererType2 | null): Renderer2 {\n\t\tconst delegate = super.createRenderer(element, type)\n\t\tconst known = this._renderers.get(delegate)\n\n\t\tif (known) return known\n\n\t\tif (this._animated) allowSyntheticProps(delegate)\n\n\t\tconst renderer = new TForwardingRenderer(delegate, this._registry)\n\n\t\tthis._renderers.set(delegate, renderer)\n\n\t\treturn renderer\n\t}\n}\n","/**\n * Рендерер адаптера для приложения: привязки и слушатели на поле, элементе\n * коллекции, ListBox, Tabs, Table и менеджере тостов доходят до их узла внутри.\n * Подключается в `appConfig`, общем у браузера и сервера:\n *\n * ```ts\n * export const appConfig: ApplicationConfig = { providers: [provideAttrs()] }\n * ```\n */\n\nimport { makeEnvironmentProviders, type EnvironmentProviders } from '@angular/core'\nimport { ɵDomRendererFactory2 } from '@angular/platform-browser'\nimport { TForwardingRendererFactory } from './factory'\nimport { TForwardRegistry } from './registry'\n\nexport function provideAttrs(): EnvironmentProviders {\n\treturn makeEnvironmentProviders([\n\t\tTForwardRegistry,\n\t\t{ provide: ɵDomRendererFactory2, useClass: TForwardingRendererFactory },\n\t])\n}\n","import type { IToastsApi } from '@soxa-ui/core'\nimport { TOASTS_ELEVATOR } from '@soxa-ui/setup'\nimport { TAngularElevator } from '../elevator'\nimport type { TToastRender } from './render'\n\n/**\n * API тостов ближайшего `<div so-toasts>`. Звать в поле или конструкторе\n * компонента под менеджером: слой берётся при вызове, а API — на каждый\n * `show`. Менеджера нет — `show` бросает, чтобы не спрятать забытый менеджер.\n *\n * ```ts\n * private readonly toasts = useToasts()\n * ```\n */\nexport function useToasts(): IToastsApi<TToastRender> {\n\tconst api = new TAngularElevator<IToastsApi>(TOASTS_ELEVATOR.name).upLater()\n\n\treturn {\n\t\tshow: (input) => {\n\t\t\tconst toasts = api()\n\n\t\t\tif (!toasts) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'useToasts(): выше по дереву нет <div so-toasts>. Оберните приложение менеджером: <div so-toasts><router-outlet /></div>, — и зовите useToasts() в компоненте внутри него',\n\t\t\t\t)\n\t\t\t}\n\n\t\t\treturn toasts.show(input)\n\t\t},\n\t}\n}\n","import { reflectComponentType, type Type } from '@angular/core'\n\n/**\n * Своё содержимое тоста — класс компонента Angular со входом `toast`; рисует\n * его `NgComponentOutlet`. Ядро держит `render` как `unknown`, тип даёт\n * `useToasts()`.\n */\nexport type TToastRender = Type<unknown>\n\nfunction isClass(value: unknown): value is Type<unknown> {\n\treturn typeof value === 'function' && typeof value.prototype === 'object'\n}\n\n/** Проверкой, а не приведением: функцию или объект Angular нарисовать не может. */\nexport function isToastRender(value: unknown): value is TToastRender {\n\treturn isClass(value) && reflectComponentType(value) !== null\n}\n","import { ComponentDescriptor } from '@soxa-ui/setup'\nimport type { IComponent } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupComponent(ctrl: IComponent | undefined, props: object): TBinding<IComponent> {\n\tconst adapter = createAngularAdapterContext(ComponentDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Directive } from '@angular/core'\nimport type { IComponent } from '@soxa-ui/core'\nimport { TComponentSurface } from '../../generated/component.metadata'\nimport { setupComponent } from './setup.component'\n\n/** Headless TComponent: корня нет, поэтому директива на `<ng-container so-component>`. */\n@Directive({\n\tselector: '[so-component]',\n})\nexport class TComponentComponent extends TComponentSurface<IComponent> {\n\tconstructor() {\n\t\tsuper(setupComponent)\n\t}\n}\n","/**\n * Transform булева входа: атрибут без значения (`disabled`) — `true`.\n *\n * Параметр — ровно `boolean | '' | undefined`: строгий шаблон берёт тип записи\n * у него, и `disabled=\"yes\"` остаётся ошибкой. `booleanAttribute` не годится:\n * параметр `unknown`, а `undefined` он делает `false`. Без дженерика и\n * перегрузок — иначе компилятор Angular transform отклонит.\n */\nexport function booleanInput(value: boolean | '' | undefined): boolean | undefined {\n\treturn value === '' ? true : value\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/component-view/manifest'\n\nexport const ComponentViewInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n] as const\nexport const ComponentViewOutputNames = [\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t],\n\toutputs: [...ComponentViewOutputNames],\n})\nexport abstract class TComponentViewSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ComponentViewInputNames, ComponentViewOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n}\n","import { ComponentViewDescriptor } from '@soxa-ui/setup'\nimport type { IComponentView } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupComponentView(\n\tctrl: IComponentView | undefined,\n\tprops: object,\n): TBinding<IComponentView> {\n\tconst adapter = createAngularAdapterContext(ComponentViewDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IComponentView } from '@soxa-ui/core'\nimport { TComponentViewSurface } from '../../generated/component-view.metadata'\nimport { setupComponentView } from './setup.component'\n\n/** Визуальный TComponentView: корень — элемент потребителя (`<section so-component-view>`). */\n@Component({\n\tselector: '[so-component-view]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: `<ng-content></ng-content>`,\n})\nexport class TComponentViewComponent extends TComponentViewSurface<IComponentView> {\n\tconstructor() {\n\t\tsuper(setupComponentView, { strategy: 'host' })\n\t}\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/stylable/manifest'\n\nexport const StylableInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n] as const\nexport const StylableOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t],\n\toutputs: [...StylableOutputNames],\n})\nexport abstract class TStylableSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(StylableInputNames, StylableOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n}\n","import { StylableDescriptor } from '@soxa-ui/setup'\nimport type { IStylable } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupStylable(ctrl: IStylable | undefined, props: object): TBinding<IStylable> {\n\tconst adapter = createAngularAdapterContext(StylableDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/control/manifest'\n\nexport const ControlInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const ControlOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...ControlOutputNames],\n})\nexport abstract class TControlSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ControlInputNames, ControlOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { ControlDescriptor } from '@soxa-ui/setup'\nimport type { IControl } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupControl(ctrl: IControl | undefined, props: object): TBinding<IControl> {\n\tconst adapter = createAngularAdapterContext(ControlDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/interactive/manifest'\n\nexport const InteractiveInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'disabled',\n\t'focused',\n] as const\nexport const InteractiveOutputNames = [\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'disabledChange',\n\t'focusedChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t],\n\toutputs: [...InteractiveOutputNames],\n})\nexport abstract class TInteractiveSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(InteractiveInputNames, InteractiveOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n}\n","import { InteractiveDescriptor } from '@soxa-ui/setup'\nimport type { IInteractive } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Своего компонента у слоя нет: на нём стоят Slider, Rating, Scroller и Pagination. */\nexport function setupInteractive(\n\tctrl: IInteractive | undefined,\n\tprops: object,\n): TBinding<IInteractive> {\n\tconst adapter = createAngularAdapterContext(InteractiveDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/value-control/manifest'\n\nexport const ValueControlInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const ValueControlOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...ValueControlOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TValueControlSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ValueControlInputNames, ValueControlOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { ValueControlDescriptor } from '@soxa-ui/setup'\nimport type { IValueControl } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Значение слоя — любого типа: число у ползунка, ключ у пагинации. */\nexport function setupValueControl(\n\tctrl: IValueControl<unknown> | undefined,\n\tprops: object,\n): TBinding<IValueControl<unknown>> {\n\tconst adapter = createAngularAdapterContext(ValueControlDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/input-control/manifest'\n\nexport const InputControlInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n] as const\nexport const InputControlOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t],\n\toutputs: [...InputControlOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TInputControlSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(InputControlInputNames, InputControlOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import { InputControlDescriptor } from '@soxa-ui/setup'\nimport type { IInputControl } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Значение слоя — любого типа: число у оценки, строка у поля. */\nexport function setupInputControl(\n\tctrl: IInputControl<unknown> | undefined,\n\tprops: object,\n): TBinding<IInputControl<unknown>> {\n\tconst adapter = createAngularAdapterContext(InputControlDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/textable/manifest'\n\nexport const TextableInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'text',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const TextableOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeText',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'textChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'text',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...TextableOutputNames],\n})\nexport abstract class TTextableSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TextableInputNames, TextableOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { TextableDescriptor } from '@soxa-ui/setup'\nimport type { ITextable } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupTextable(ctrl: ITextable | undefined, props: object): TBinding<ITextable> {\n\tconst adapter = createAngularAdapterContext(TextableDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/button/manifest'\n\nexport const ButtonInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'text',\n\t'view',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const ButtonOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeText',\n\t'soChangeView',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'textChange',\n\t'viewChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'text',\n\t\t'view',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...ButtonOutputNames],\n})\nexport abstract class TButtonSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ButtonInputNames, ButtonOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare view: TInputValue<typeof descriptor, 'view'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly viewChange: TModelEmitter<typeof descriptor, 'view'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { ButtonDescriptor } from '@soxa-ui/setup'\nimport type { IButton } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupButton(ctrl: IButton | undefined, props: object): TBinding<IButton> {\n\tconst adapter = createAngularAdapterContext(ButtonDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IButton } from '@soxa-ui/core'\nimport { TButtonSurface } from '../../generated/button.metadata'\nimport { setupButton } from './setup.component'\n\n/** Кнопка: корень — сам элемент потребителя (`<button so-button>`, `<a so-button href>`). */\n@Component({\n\tselector: 'button[so-button], [so-button]',\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './button.component.html',\n})\nexport class TButtonComponent extends TButtonSurface<IButton> {\n\tconstructor() {\n\t\tsuper(setupButton, { strategy: 'host' })\n\t}\n}\n","<!--\n\tСлот default со scope — шаблоном: `<ng-content>` данных не передаёт. Шаблон\n\tтоже проекция, и запасной текст при нём не рисуется.\n-->\n<ng-content select=\"[slot=leading]\" />\n\n<span class=\"so-button__text\">\n\t<ng-content>{{ state()['text'] }}</ng-content>\n\n\t@if (slot('default'); as defaultSlot) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"defaultSlot\"\n\t\t\t[ngTemplateOutletContext]=\"{ $implicit: state()['text'], text: state()['text'] }\"\n\t\t/>\n\t}\n</span>\n\n<ng-content select=\"[slot=trailing]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/item-row/manifest'\n\nexport const ItemRowInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'text',\n\t'view',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const ItemRowOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeText',\n\t'soChangeView',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'textChange',\n\t'viewChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'text',\n\t\t'view',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...ItemRowOutputNames],\n})\nexport abstract class TItemRowSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ItemRowInputNames, ItemRowOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare view: TInputValue<typeof descriptor, 'view'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly viewChange: TModelEmitter<typeof descriptor, 'view'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { ItemRowDescriptor } from '@soxa-ui/setup'\nimport type { IButton } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupItemRow(ctrl: IButton | undefined, props: object): TBinding<IButton> {\n\tconst adapter = createAngularAdapterContext(ItemRowDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IButton } from '@soxa-ui/core'\nimport { TItemRowSurface } from '../../generated/item-row.metadata'\nimport { setupItemRow } from './setup.component'\n\n/**\n * Строка элемента коллекции — деталь разметки ListBox.Item, опции Select,\n * пунктов меню и тега (`<div so-item-row>`). Входы, выходы и шаблон — Button\n * (`button.component.html`), сборка своя — по `ItemRowDescriptor`: её\n * экземпляр (`TItemRow`) роль и остановку Tab себе не пишет, их несёт набор\n * `aria` элемента, который разметка кладёт на строку.\n *\n * Экземпляр создаёт это монтирование и отпускает его снятие: строка живёт,\n * пока нарисована, и окно `Virtual` держит их столько, сколько показывает.\n */\n@Component({\n\tselector: '[so-item-row]',\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: '../button/button.component.html',\n})\nexport class TItemRowComponent extends TItemRowSurface<IButton> {\n\tconstructor() {\n\t\tsuper(setupItemRow, { strategy: 'host' })\n\t}\n}\n","<!--\n\tСлот default со scope — шаблоном: `<ng-content>` данных не передаёт. Шаблон\n\tтоже проекция, и запасной текст при нём не рисуется.\n-->\n<ng-content select=\"[slot=leading]\" />\n\n<span class=\"so-button__text\">\n\t<ng-content>{{ state()['text'] }}</ng-content>\n\n\t@if (slot('default'); as defaultSlot) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"defaultSlot\"\n\t\t\t[ngTemplateOutletContext]=\"{ $implicit: state()['text'], text: state()['text'] }\"\n\t\t/>\n\t}\n</span>\n\n<ng-content select=\"[slot=trailing]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/icon/manifest'\n\nexport const IconInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'width',\n\t'height',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const IconOutputNames = [\n\t'soChangeSize',\n\t'soChangeWidth',\n\t'soChangeHeight',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'widthChange',\n\t'heightChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'width',\n\t\t'height',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...IconOutputNames],\n})\nexport abstract class TIconSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(IconInputNames, IconOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare width: TInputValue<typeof descriptor, 'width'>\n\tdeclare height: TInputValue<typeof descriptor, 'height'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeWidth: TOutputEmitter<typeof descriptor, 'change:width'>\n\tdeclare readonly soChangeHeight: TOutputEmitter<typeof descriptor, 'change:height'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly widthChange: TModelEmitter<typeof descriptor, 'width'>\n\tdeclare readonly heightChange: TModelEmitter<typeof descriptor, 'height'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { IconDescriptor } from '@soxa-ui/setup'\nimport type { IIcon } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupIcon(ctrl: IIcon | undefined, props: object): TBinding<IIcon> {\n\tconst adapter = createAngularAdapterContext(IconDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IIcon } from '@soxa-ui/core'\nimport { TIconSurface } from '../../generated/icon.metadata'\nimport { setupIcon } from './setup.component'\n\n/**\n * Иконка: корень — элемент потребителя, шаблон пуст. Иконку из пакета на `<svg>` кладёт\n * директива `RoleIconDirective` (`<svg so-icon so-role-icon=\"close\">`).\n */\n@Component({\n\tselector: 'span[so-icon], [so-icon]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: '',\n})\nexport class TIconComponent extends TIconSurface<IIcon> {\n\tconstructor() {\n\t\tsuper(setupIcon, { strategy: 'host' })\n\t}\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/label/manifest'\n\nexport const LabelInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'text',\n\t'position',\n] as const\nexport const LabelOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeText',\n\t'soChangePosition',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'textChange',\n\t'positionChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t'text',\n\t\t'position',\n\t],\n\toutputs: [...LabelOutputNames],\n})\nexport abstract class TLabelSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(LabelInputNames, LabelOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare position: TInputValue<typeof descriptor, 'position'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangePosition: TOutputEmitter<typeof descriptor, 'change:position'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly positionChange: TModelEmitter<typeof descriptor, 'position'>\n}\n","import { LabelDescriptor } from '@soxa-ui/setup'\nimport type { ILabel } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupLabel(ctrl: ILabel | undefined, props: object): TBinding<ILabel> {\n\tconst adapter = createAngularAdapterContext(LabelDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { ILabel } from '@soxa-ui/core'\nimport { TLabelSurface } from '../../generated/label.metadata'\nimport { setupLabel } from './setup.component'\n\n/**\n * Подпись контрола: корень — `<label so-label>`, контрол — его первый labelable-потомок,\n * поэтому связки через `for` и `id` нет.\n */\n@Component({\n\tselector: 'label[so-label], [so-label]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './label.component.html',\n})\nexport class TLabelComponent extends TLabelSurface<ILabel> {\n\tconstructor() {\n\t\tsuper(setupLabel, { strategy: 'host' })\n\t}\n}\n","<!-- Вокруг слота и запасного текста нет пробелов: пустую обёртку тема прячет по `:empty`. -->\n<span class=\"so-label__control\"><ng-content /></span>\n<span class=\"so-label__text\"\n\t><ng-content select=\"[slot=content]\">{{ state()['text'] }}</ng-content></span\n>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/field/manifest'\n\nexport const FieldInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'label',\n\t'helper',\n\t'error',\n\t'invalid',\n\t'position',\n] as const\nexport const FieldOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeLabel',\n\t'soChangeHelper',\n\t'soChangeError',\n\t'soChangeInvalid',\n\t'soChangePosition',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'labelChange',\n\t'helperChange',\n\t'errorChange',\n\t'invalidChange',\n\t'positionChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t'label',\n\t\t'helper',\n\t\t'error',\n\t\t{ name: 'invalid', transform: booleanInput },\n\t\t'position',\n\t],\n\toutputs: [...FieldOutputNames],\n})\nexport abstract class TFieldSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(FieldInputNames, FieldOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare label: TInputValue<typeof descriptor, 'label'>\n\tdeclare helper: TInputValue<typeof descriptor, 'helper'>\n\tdeclare error: TInputValue<typeof descriptor, 'error'>\n\tdeclare invalid: TInputValue<typeof descriptor, 'invalid'>\n\tdeclare position: TInputValue<typeof descriptor, 'position'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeLabel: TOutputEmitter<typeof descriptor, 'change:label'>\n\tdeclare readonly soChangeHelper: TOutputEmitter<typeof descriptor, 'change:helper'>\n\tdeclare readonly soChangeError: TOutputEmitter<typeof descriptor, 'change:error'>\n\tdeclare readonly soChangeInvalid: TOutputEmitter<typeof descriptor, 'change:invalid'>\n\tdeclare readonly soChangePosition: TOutputEmitter<typeof descriptor, 'change:position'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly labelChange: TModelEmitter<typeof descriptor, 'label'>\n\tdeclare readonly helperChange: TModelEmitter<typeof descriptor, 'helper'>\n\tdeclare readonly errorChange: TModelEmitter<typeof descriptor, 'error'>\n\tdeclare readonly invalidChange: TModelEmitter<typeof descriptor, 'invalid'>\n\tdeclare readonly positionChange: TModelEmitter<typeof descriptor, 'position'>\n}\n","import { FieldDescriptor, TFieldExtension } from '@soxa-ui/setup'\nimport type { IField } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Связку контролу внутри проводка поля (`TFieldExtension`) опускает лифтом. */\nexport function setupField(ctrl: IField | undefined, props: object): TBinding<IField> {\n\tconst adapter = createAngularAdapterContext(FieldDescriptor(), { ctrl, props }).use(\n\t\tTFieldExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IField } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective, provideElevator } from '../../adapter'\nimport { TIconComponent } from '../icon'\nimport { TFieldSurface } from '../../generated/field.metadata'\nimport { setupField } from './setup.component'\n\n/**\n * Поле формы: подпись, контрол, подсказка и ошибка. Связку с контролом внутри\n * опускает лифтом — AGENTS.md (Angular), «Лифт — слой DI на владельца».\n */\n@Component({\n\tselector: 'div[so-field], [so-field]',\n\timports: [AttributesDirective, RoleIconDirective, TIconComponent],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './field.component.html',\n})\nexport class TFieldComponent extends TFieldSurface<IField> {\n\tconstructor() {\n\t\tsuper(setupField, { strategy: 'host' })\n\t}\n}\n","<!-- Часть стоит, пока задан её текст: ссылки на части ставит ядро, а слотов оно не видит. -->\n@if (state()['label']) {\n\t<label class=\"so-field__label\" [so-attributes]=\"state()['labelAria']\"\n\t\t><ng-content select=\"[slot=label-content]\">{{ state()['label'] }}</ng-content></label\n\t>\n}\n<div class=\"so-field__control\"><ng-content /></div>\n<!-- В подсказке бывают ссылки и списки, отсюда `div`. -->\n@if (state()['helperRendered']) {\n\t<div class=\"so-field__helper\" [so-attributes]=\"state()['helperAria']\">\n\t\t<ng-content select=\"[slot=helper-content]\">{{ state()['helper'] }}</ng-content>\n\t</div>\n}\n<!-- Текст ошибки — в своей обёртке: ряд из значка и текста — флекс. -->\n@if (state()['errorRendered']) {\n\t<div class=\"so-field__error\" [so-attributes]=\"state()['errorAria']\">\n\t\t<svg\n\t\t\tso-icon\n\t\t\tembedded=\"field.error-icon\"\n\t\t\tclass=\"so-field__error-icon\"\n\t\t\tso-role-icon=\"error\"\n\t\t></svg>\n\t\t<div class=\"so-field__error-text\">\n\t\t\t<ng-content select=\"[slot=error-content]\">{{ state()['error'] }}</ng-content>\n\t\t</div>\n\t</div>\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/progress-spinner/manifest'\n\nexport const ProgressSpinnerInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'value',\n\t'min',\n\t'max',\n\t'indeterminate',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const ProgressSpinnerOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeValue',\n\t'soChangeMin',\n\t'soChangeMax',\n\t'soChangeIndeterminate',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'valueChange',\n\t'minChange',\n\t'maxChange',\n\t'indeterminateChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t'value',\n\t\t'min',\n\t\t'max',\n\t\t{ name: 'indeterminate', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...ProgressSpinnerOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TProgressSpinnerSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ProgressSpinnerInputNames, ProgressSpinnerOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare min: TInputValue<typeof descriptor, 'min'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare indeterminate: TInputValue<typeof descriptor, 'indeterminate'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeMin: TOutputEmitter<typeof descriptor, 'change:min'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeIndeterminate: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:indeterminate'\n\t>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly minChange: TModelEmitter<typeof descriptor, 'min'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly indeterminateChange: TModelEmitter<typeof descriptor, 'indeterminate'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { ProgressSpinnerDescriptor } from '@soxa-ui/setup'\nimport type { IProgressSpinner } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupProgressSpinner(\n\tctrl: IProgressSpinner | undefined,\n\tprops: object,\n): TBinding<IProgressSpinner> {\n\tconst adapter = createAngularAdapterContext(ProgressSpinnerDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IProgressSpinner } from '@soxa-ui/core'\nimport { TProgressSpinnerSurface } from '../../generated/progress-spinner.metadata'\nimport { setupProgressSpinner } from './setup.component'\n\n/**\n * Индикатор выполнения кольцом: шаблон — рисунок кольца, долю кладёт стиль-выход.\n * AGENTS.md (Angular), «Стиль корня-хоста — тоже эффект базы, по свойствам».\n */\n@Component({\n\tselector: 'span[so-progress-spinner], [so-progress-spinner]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './progress-spinner.component.html',\n})\nexport class TProgressSpinnerComponent extends TProgressSpinnerSurface<IProgressSpinner> {\n\tconstructor() {\n\t\tsuper(setupProgressSpinner, { strategy: 'host', style: 'fractionStyle' })\n\t}\n}\n","<!--\n\tРадиус 7 в поле 16 × 16: при толщине темы 2 кольцо ровно касается краёв. `pathLength=\"1\"` —\n\tдоля готового из переменной корня ложится в штрих как есть.\n-->\n<svg class=\"so-progress-spinner__ring\" viewBox=\"0 0 16 16\" aria-hidden=\"true\">\n\t<circle class=\"so-progress-spinner__track\" cx=\"8\" cy=\"8\" r=\"7\" />\n\t<circle class=\"so-progress-spinner__range\" cx=\"8\" cy=\"8\" r=\"7\" pathLength=\"1\" />\n\t<!-- Своего движения у бегущей дуги нет: бег — поворот всего рисунка. -->\n\t<circle class=\"so-progress-spinner__runner\" cx=\"8\" cy=\"8\" r=\"7\" pathLength=\"1\" />\n</svg>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/progress-linear/manifest'\n\nexport const ProgressLinearInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'value',\n\t'min',\n\t'max',\n\t'indeterminate',\n\t'orientation',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const ProgressLinearOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeValue',\n\t'soChangeMin',\n\t'soChangeMax',\n\t'soChangeIndeterminate',\n\t'soChangeOrientation',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'valueChange',\n\t'minChange',\n\t'maxChange',\n\t'indeterminateChange',\n\t'orientationChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t'value',\n\t\t'min',\n\t\t'max',\n\t\t{ name: 'indeterminate', transform: booleanInput },\n\t\t'orientation',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...ProgressLinearOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TProgressLinearSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ProgressLinearInputNames, ProgressLinearOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare min: TInputValue<typeof descriptor, 'min'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare indeterminate: TInputValue<typeof descriptor, 'indeterminate'>\n\tdeclare orientation: TInputValue<typeof descriptor, 'orientation'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeMin: TOutputEmitter<typeof descriptor, 'change:min'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeIndeterminate: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:indeterminate'\n\t>\n\tdeclare readonly soChangeOrientation: TOutputEmitter<typeof descriptor, 'change:orientation'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly minChange: TModelEmitter<typeof descriptor, 'min'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly indeterminateChange: TModelEmitter<typeof descriptor, 'indeterminate'>\n\tdeclare readonly orientationChange: TModelEmitter<typeof descriptor, 'orientation'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { ProgressLinearDescriptor } from '@soxa-ui/setup'\nimport type { IProgressLinear } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupProgressLinear(\n\tctrl: IProgressLinear | undefined,\n\tprops: object,\n): TBinding<IProgressLinear> {\n\tconst adapter = createAngularAdapterContext(ProgressLinearDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IProgressLinear } from '@soxa-ui/core'\nimport { TProgressLinearSurface } from '../../generated/progress-linear.metadata'\nimport { setupProgressLinear } from './setup.component'\n\n/**\n * Индикатор выполнения линией: корень — дорожка, шаблон — заливка доли.\n * AGENTS.md (Angular), «Стиль корня-хоста — тоже эффект базы, по свойствам».\n */\n@Component({\n\tselector: 'span[so-progress-linear], [so-progress-linear]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './progress-linear.component.html',\n})\nexport class TProgressLinearComponent extends TProgressLinearSurface<IProgressLinear> {\n\tconstructor() {\n\t\tsuper(setupProgressLinear, { strategy: 'host', style: 'percentStyle' })\n\t}\n}\n","<!-- Заливка — `span`, как корень: полосу кладут в строчную разметку. -->\n<span class=\"so-progress-linear__range\"></span>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/skeleton/manifest'\n\nexport const SkeletonInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'variant',\n\t'shape',\n\t'animation',\n\t'width',\n\t'height',\n] as const\nexport const SkeletonOutputNames = [\n\t'soChangeVariant',\n\t'soChangeShape',\n\t'soChangeAnimation',\n\t'soChangeWidth',\n\t'soChangeHeight',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'variantChange',\n\t'shapeChange',\n\t'animationChange',\n\t'widthChange',\n\t'heightChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'variant',\n\t\t'shape',\n\t\t'animation',\n\t\t'width',\n\t\t'height',\n\t],\n\toutputs: [...SkeletonOutputNames],\n})\nexport abstract class TSkeletonSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(SkeletonInputNames, SkeletonOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare shape: TInputValue<typeof descriptor, 'shape'>\n\tdeclare animation: TInputValue<typeof descriptor, 'animation'>\n\tdeclare width: TInputValue<typeof descriptor, 'width'>\n\tdeclare height: TInputValue<typeof descriptor, 'height'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeShape: TOutputEmitter<typeof descriptor, 'change:shape'>\n\tdeclare readonly soChangeAnimation: TOutputEmitter<typeof descriptor, 'change:animation'>\n\tdeclare readonly soChangeWidth: TOutputEmitter<typeof descriptor, 'change:width'>\n\tdeclare readonly soChangeHeight: TOutputEmitter<typeof descriptor, 'change:height'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly shapeChange: TModelEmitter<typeof descriptor, 'shape'>\n\tdeclare readonly animationChange: TModelEmitter<typeof descriptor, 'animation'>\n\tdeclare readonly widthChange: TModelEmitter<typeof descriptor, 'width'>\n\tdeclare readonly heightChange: TModelEmitter<typeof descriptor, 'height'>\n}\n","import { SkeletonDescriptor } from '@soxa-ui/setup'\nimport type { ISkeleton } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupSkeleton(ctrl: ISkeleton | undefined, props: object): TBinding<ISkeleton> {\n\tconst adapter = createAngularAdapterContext(SkeletonDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { ISkeleton } from '@soxa-ui/core'\nimport { TSkeletonSurface } from '../../generated/skeleton.metadata'\nimport { setupSkeleton } from './setup.component'\n\n/**\n * Заглушка поверх будущего содержимого. Видимость решает только, показана ли заглушка, —\n * корень не прячется: AGENTS.md (Angular), «Видимость прячет корень, кроме Skeleton».\n */\n@Component({\n\tselector: '[so-skeleton]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './skeleton.component.html',\n})\nexport class TSkeletonComponent extends TSkeletonSurface<ISkeleton> {\n\tconstructor() {\n\t\tsuper(setupSkeleton, { strategy: 'host', hides: false })\n\t}\n}\n","<!--\n\t`aria-hidden` — на заглушке, а не на корне: в корне настоящее содержимое. `<ng-content>` —\n\tвне `@if`: проекция, объявленная в ветке, терялась бы при её смене.\n-->\n@if (state()['present']) {\n\t<div class=\"so-skeleton__placeholder\" aria-hidden=\"true\"></div>\n}\n<ng-content />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/frame/manifest'\n\nexport const FrameInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'target',\n\t'x',\n\t'y',\n\t'width',\n\t'height',\n\t'strategy',\n\t'contained',\n\t'anchor_anchor',\n\t'anchor_point',\n\t'anchor_placement',\n\t'anchor_matchWidth',\n\t'anchor_flip',\n\t'anchor_offset',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const FrameOutputNames = [\n\t'soChangeZIndex',\n\t'soChangeTarget',\n\t'soChangeX',\n\t'soChangeY',\n\t'soChangeWidth',\n\t'soChangeHeight',\n\t'soChangeStrategy',\n\t'soChangeContained',\n\t'soAnchorChangeAnchor',\n\t'soAnchorChangePoint',\n\t'soAnchorChangePlacement',\n\t'soAnchorChangeMatchWidth',\n\t'soAnchorChangeFlip',\n\t'soAnchorChangeOffset',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'targetChange',\n\t'xChange',\n\t'yChange',\n\t'widthChange',\n\t'heightChange',\n\t'strategyChange',\n\t'containedChange',\n\t'anchor_anchorChange',\n\t'anchor_pointChange',\n\t'anchor_placementChange',\n\t'anchor_matchWidthChange',\n\t'anchor_flipChange',\n\t'anchor_offsetChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'target',\n\t\t'x',\n\t\t'y',\n\t\t'width',\n\t\t'height',\n\t\t'strategy',\n\t\t{ name: 'contained', transform: booleanInput },\n\t\t'anchor_anchor',\n\t\t'anchor_point',\n\t\t'anchor_placement',\n\t\t{ name: 'anchor_matchWidth', transform: booleanInput },\n\t\t{ name: 'anchor_flip', transform: booleanInput },\n\t\t'anchor_offset',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...FrameOutputNames],\n})\nexport abstract class TFrameSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(FrameInputNames, FrameOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare target: TInputValue<typeof descriptor, 'target'>\n\tdeclare x: TInputValue<typeof descriptor, 'x'>\n\tdeclare y: TInputValue<typeof descriptor, 'y'>\n\tdeclare width: TInputValue<typeof descriptor, 'width'>\n\tdeclare height: TInputValue<typeof descriptor, 'height'>\n\tdeclare strategy: TInputValue<typeof descriptor, 'strategy'>\n\tdeclare contained: TInputValue<typeof descriptor, 'contained'>\n\tdeclare anchor_anchor: TInputValue<typeof descriptor, 'anchor_anchor'>\n\tdeclare anchor_point: TInputValue<typeof descriptor, 'anchor_point'>\n\tdeclare anchor_placement: TInputValue<typeof descriptor, 'anchor_placement'>\n\tdeclare anchor_matchWidth: TInputValue<typeof descriptor, 'anchor_matchWidth'>\n\tdeclare anchor_flip: TInputValue<typeof descriptor, 'anchor_flip'>\n\tdeclare anchor_offset: TInputValue<typeof descriptor, 'anchor_offset'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeZIndex: TOutputEmitter<typeof descriptor, 'change:zIndex'>\n\tdeclare readonly soChangeTarget: TOutputEmitter<typeof descriptor, 'change:target'>\n\tdeclare readonly soChangeX: TOutputEmitter<typeof descriptor, 'change:x'>\n\tdeclare readonly soChangeY: TOutputEmitter<typeof descriptor, 'change:y'>\n\tdeclare readonly soChangeWidth: TOutputEmitter<typeof descriptor, 'change:width'>\n\tdeclare readonly soChangeHeight: TOutputEmitter<typeof descriptor, 'change:height'>\n\tdeclare readonly soChangeStrategy: TOutputEmitter<typeof descriptor, 'change:strategy'>\n\tdeclare readonly soChangeContained: TOutputEmitter<typeof descriptor, 'change:contained'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soAnchorChangeAnchor: TOutputEmitter<typeof descriptor, 'anchor:change:anchor'>\n\tdeclare readonly soAnchorChangePoint: TOutputEmitter<typeof descriptor, 'anchor:change:point'>\n\tdeclare readonly soAnchorChangePlacement: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'anchor:change:placement'\n\t>\n\tdeclare readonly soAnchorChangeMatchWidth: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'anchor:change:matchWidth'\n\t>\n\tdeclare readonly soAnchorChangeFlip: TOutputEmitter<typeof descriptor, 'anchor:change:flip'>\n\tdeclare readonly soAnchorChangeOffset: TOutputEmitter<typeof descriptor, 'anchor:change:offset'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly targetChange: TModelEmitter<typeof descriptor, 'target'>\n\tdeclare readonly xChange: TModelEmitter<typeof descriptor, 'x'>\n\tdeclare readonly yChange: TModelEmitter<typeof descriptor, 'y'>\n\tdeclare readonly widthChange: TModelEmitter<typeof descriptor, 'width'>\n\tdeclare readonly heightChange: TModelEmitter<typeof descriptor, 'height'>\n\tdeclare readonly strategyChange: TModelEmitter<typeof descriptor, 'strategy'>\n\tdeclare readonly containedChange: TModelEmitter<typeof descriptor, 'contained'>\n\tdeclare readonly anchor_anchorChange: TModelEmitter<typeof descriptor, 'anchor_anchor'>\n\tdeclare readonly anchor_pointChange: TModelEmitter<typeof descriptor, 'anchor_point'>\n\tdeclare readonly anchor_placementChange: TModelEmitter<typeof descriptor, 'anchor_placement'>\n\tdeclare readonly anchor_matchWidthChange: TModelEmitter<typeof descriptor, 'anchor_matchWidth'>\n\tdeclare readonly anchor_flipChange: TModelEmitter<typeof descriptor, 'anchor_flip'>\n\tdeclare readonly anchor_offsetChange: TModelEmitter<typeof descriptor, 'anchor_offset'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { FrameDescriptor } from '@soxa-ui/setup'\nimport type { IFrame } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupFrame(ctrl: IFrame | undefined, props: object): TBinding<IFrame> {\n\tconst adapter = createAngularAdapterContext(FrameDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IFrame } from '@soxa-ui/core'\nimport { TFrameSurface } from '../../generated/frame.metadata'\nimport { setupFrame } from './setup.component'\n\n/**\n * Слой поверх страницы: в цель `target` уезжает сам элемент потребителя.\n * AGENTS.md (Angular), «Слой уезжает в цель сам», «Гидратации у слоя нет».\n */\n@Component({\n\tselector: 'div[so-frame], [so-frame]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { ngSkipHydration: 'true' },\n\ttemplateUrl: './frame.component.html',\n})\nexport class TFrameComponent extends TFrameSurface<IFrame> {\n\tconstructor() {\n\t\tsuper(setupFrame, {\n\t\t\tstrategy: 'host',\n\t\t\tteleport: { target: 'target', contained: 'contained' },\n\t\t})\n\t}\n}\n","<!-- Содержимое — только пока панель на месте: на сервере и до переноса слоя нет. -->\n@if (placed()) {\n\t<ng-content />\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/popover/manifest'\n\nexport const PopoverInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'open',\n\t'closable',\n\t'lazyMount',\n\t'placement',\n\t'contained',\n\t'edge',\n\t'swipe',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'dismiss_enabled',\n] as const\nexport const PopoverOutputNames = [\n\t'soChangeOpen',\n\t'soChangeClosable',\n\t'soChangeLazyMount',\n\t'soChangePlacement',\n\t'soChangeContained',\n\t'soChangeEdge',\n\t'soChangeSwipe',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'openChange',\n\t'closableChange',\n\t'lazyMountChange',\n\t'placementChange',\n\t'containedChange',\n\t'edgeChange',\n\t'swipeChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'dismiss_enabledChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'open', transform: booleanInput },\n\t\t{ name: 'closable', transform: booleanInput },\n\t\t{ name: 'lazyMount', transform: booleanInput },\n\t\t'placement',\n\t\t{ name: 'contained', transform: booleanInput },\n\t\t'edge',\n\t\t'swipe',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t],\n\toutputs: [...PopoverOutputNames],\n})\nexport abstract class TPopoverSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(PopoverInputNames, PopoverOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare open: TInputValue<typeof descriptor, 'open'>\n\tdeclare closable: TInputValue<typeof descriptor, 'closable'>\n\tdeclare lazyMount: TInputValue<typeof descriptor, 'lazyMount'>\n\tdeclare placement: TInputValue<typeof descriptor, 'placement'>\n\tdeclare contained: TInputValue<typeof descriptor, 'contained'>\n\tdeclare edge: TInputValue<typeof descriptor, 'edge'>\n\tdeclare swipe: TInputValue<typeof descriptor, 'swipe'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeOpen: TOutputEmitter<typeof descriptor, 'change:open'>\n\tdeclare readonly soChangeClosable: TOutputEmitter<typeof descriptor, 'change:closable'>\n\tdeclare readonly soChangeLazyMount: TOutputEmitter<typeof descriptor, 'change:lazyMount'>\n\tdeclare readonly soChangePlacement: TOutputEmitter<typeof descriptor, 'change:placement'>\n\tdeclare readonly soChangeContained: TOutputEmitter<typeof descriptor, 'change:contained'>\n\tdeclare readonly soChangeEdge: TOutputEmitter<typeof descriptor, 'change:edge'>\n\tdeclare readonly soChangeSwipe: TOutputEmitter<typeof descriptor, 'change:swipe'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly openChange: TModelEmitter<typeof descriptor, 'open'>\n\tdeclare readonly closableChange: TModelEmitter<typeof descriptor, 'closable'>\n\tdeclare readonly lazyMountChange: TModelEmitter<typeof descriptor, 'lazyMount'>\n\tdeclare readonly placementChange: TModelEmitter<typeof descriptor, 'placement'>\n\tdeclare readonly containedChange: TModelEmitter<typeof descriptor, 'contained'>\n\tdeclare readonly edgeChange: TModelEmitter<typeof descriptor, 'edge'>\n\tdeclare readonly swipeChange: TModelEmitter<typeof descriptor, 'swipe'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n}\n","import { PopoverDescriptor } from '@soxa-ui/setup'\nimport type { IPopover } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupPopover(ctrl: IPopover | undefined, props: object): TBinding<IPopover> {\n\tconst adapter = createAngularAdapterContext(PopoverDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IPopover } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TFrameComponent } from '../frame'\nimport { TIconComponent } from '../icon'\nimport { TPopoverSurface } from '../../generated/popover.metadata'\nimport { setupPopover } from './setup.component'\n\n/**\n * Немодальная панель у триггера; корень — элемент потребителя и якорь панели.\n * AGENTS.md (Angular), «Popover и Tooltip — Frame в шаблоне, триггер — шаблон слота».\n */\n@Component({\n\tselector: 'span[so-popover], [so-popover]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTFrameComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './popover.component.html',\n})\nexport class TPopoverComponent extends TPopoverSurface<IPopover> {\n\tconstructor() {\n\t\tsuper(setupPopover, { strategy: 'host', sets: ['attrs', 'dataset'] })\n\t}\n\n\t/** Крестик: куда вернуть фокус, решает плагин фокуса. */\n\tprotected close(): void {\n\t\tconst popover = this.instance()\n\n\t\tif (popover) popover.open = false\n\t}\n}\n","<!-- Новый контекст вывод отдаёт тому же представлению: фокус на триггере переживает открытие. -->\n@if (slot('trigger'); as trigger) {\n\t<ng-container\n\t\t[ngTemplateOutlet]=\"trigger\"\n\t\t[ngTemplateOutletContext]=\"{\n\t\t\ttriggerAria: state()['triggerAria'] ?? {},\n\t\t\ttriggerDataset: state()['triggerDataset'] ?? {},\n\t\t}\"\n\t/>\n}\n<!-- The detached panel follows both the owner's visibility and its open state. -->\n<div\n\tso-frame\n\tembedded=\"popover.frame\"\n\tclass=\"so-popover__panel\"\n\ttabindex=\"-1\"\n\tstrategy=\"fixed\"\n\t[visible]=\"state()['visible'] && state()['open']\"\n\t[contained]=\"state()['contained']\"\n\t[anchor_anchor]=\"rootElement()\"\n\t[anchor_placement]=\"state()['placement']\"\n\t[anchor_offset]=\"8\"\n\t[so-attributes]=\"{\n\t\t...state()['aria'],\n\t\t...state()['panelDataset'],\n\t\t...state()['dismiss_ownerAttribute'],\n\t}\"\n>\n\t<!-- Полоса, за которую панель тянут, — пока жест включён. -->\n\t@if (state()['handleRendered']) {\n\t\t<div class=\"so-popover__handle\" aria-hidden=\"true\"></div>\n\t}\n\t<!--\n\t\tContent comes before the close button: focus on open lands on the first element of the\n\t\tcontent, and the close button is the last Tab stop. `lazyMount` holds back only the\n\t\tcontent. A projection is created right away by the template that wrote it, and `@if`\n\t\tonly keeps it out of the document; the `default` template is created here, so with\n\t\t`lazyMount` its components come with the first open. Given, it is drawn instead of\n\t\tthe projection.\n\t-->\n\t<div class=\"so-popover__content\">\n\t\t@if (state()['contentRendered']) {\n\t\t\t@if (slot('default'); as content) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"content\" />\n\t\t\t} @else {\n\t\t\t\t<ng-content />\n\t\t\t}\n\t\t}\n\t</div>\n\t<!-- `@if`, а не `rendered` кнопки: скрытая кнопка с плагинами стояла бы в каждой панели. -->\n\t@if (state()['closable']) {\n\t\t<button\n\t\t\tso-button\n\t\t\tembedded=\"popover.close\"\n\t\t\ttype=\"button\"\n\t\t\tclass=\"so-popover__close\"\n\t\t\t[so-attributes]=\"state()['closeAria']\"\n\t\t\t(click)=\"close()\"\n\t\t>\n\t\t\t@if (slot('close-icon'); as icon) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t} @else {\n\t\t\t\t<svg so-icon embedded=\"popover.close-icon\" so-role-icon=\"close\"></svg>\n\t\t\t}\n\t\t</button>\n\t}\n</div>\n<!-- Слив шаблонов слотов: в основной проекции их якоря легли бы в панель. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/tooltip/manifest'\n\nexport const TooltipInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'open',\n\t'placement',\n\t'openDelay',\n\t'closeDelay',\n\t'type',\n\t'dismiss_enabled',\n] as const\nexport const TooltipOutputNames = [\n\t'soChangeOpen',\n\t'soChangePlacement',\n\t'soChangeOpenDelay',\n\t'soChangeCloseDelay',\n\t'soChangeType',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'openChange',\n\t'placementChange',\n\t'openDelayChange',\n\t'closeDelayChange',\n\t'typeChange',\n\t'dismiss_enabledChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'open', transform: booleanInput },\n\t\t'placement',\n\t\t'openDelay',\n\t\t'closeDelay',\n\t\t'type',\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t],\n\toutputs: [...TooltipOutputNames],\n})\nexport abstract class TTooltipSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TooltipInputNames, TooltipOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare open: TInputValue<typeof descriptor, 'open'>\n\tdeclare placement: TInputValue<typeof descriptor, 'placement'>\n\tdeclare openDelay: TInputValue<typeof descriptor, 'openDelay'>\n\tdeclare closeDelay: TInputValue<typeof descriptor, 'closeDelay'>\n\tdeclare type: TInputValue<typeof descriptor, 'type'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeOpen: TOutputEmitter<typeof descriptor, 'change:open'>\n\tdeclare readonly soChangePlacement: TOutputEmitter<typeof descriptor, 'change:placement'>\n\tdeclare readonly soChangeOpenDelay: TOutputEmitter<typeof descriptor, 'change:openDelay'>\n\tdeclare readonly soChangeCloseDelay: TOutputEmitter<typeof descriptor, 'change:closeDelay'>\n\tdeclare readonly soChangeType: TOutputEmitter<typeof descriptor, 'change:type'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly openChange: TModelEmitter<typeof descriptor, 'open'>\n\tdeclare readonly placementChange: TModelEmitter<typeof descriptor, 'placement'>\n\tdeclare readonly openDelayChange: TModelEmitter<typeof descriptor, 'openDelay'>\n\tdeclare readonly closeDelayChange: TModelEmitter<typeof descriptor, 'closeDelay'>\n\tdeclare readonly typeChange: TModelEmitter<typeof descriptor, 'type'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n}\n","import { TooltipDescriptor } from '@soxa-ui/setup'\nimport type { ITooltip } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupTooltip(ctrl: ITooltip | undefined, props: object): TBinding<ITooltip> {\n\tconst adapter = createAngularAdapterContext(TooltipDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITooltip } from '@soxa-ui/core'\nimport { AttributesDirective } from '../../adapter'\nimport { TFrameComponent } from '../frame'\nimport { TTooltipSurface } from '../../generated/tooltip.metadata'\nimport { setupTooltip } from './setup.component'\n\n/**\n * Подсказка у триггера; корень — элемент потребителя, якорь панели и цель наведения.\n * AGENTS.md (Angular), «Popover и Tooltip — Frame в шаблоне, триггер — шаблон слота».\n */\n@Component({\n\tselector: 'span[so-tooltip], [so-tooltip]',\n\timports: [NgTemplateOutlet, AttributesDirective, TFrameComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './tooltip.component.html',\n})\nexport class TTooltipComponent extends TTooltipSurface<ITooltip> {\n\tconstructor() {\n\t\tsuper(setupTooltip, { strategy: 'host', sets: ['attrs', 'dataset'] })\n\t}\n}\n","<!-- Новый контекст вывод отдаёт тому же представлению: фокус на триггере переживает показ. -->\n@if (slot('trigger'); as trigger) {\n\t<ng-container\n\t\t[ngTemplateOutlet]=\"trigger\"\n\t\t[ngTemplateOutletContext]=\"{ triggerAria: state()['triggerAria'] ?? {} }\"\n\t/>\n}\n<!-- Наборы панели — одним объектом: директива набора на элементе одна. -->\n<div\n\tso-frame\n\tembedded=\"tooltip.frame\"\n\tclass=\"so-tooltip__panel\"\n\tstrategy=\"fixed\"\n\t[visible]=\"state()['visible'] && state()['open']\"\n\t[anchor_anchor]=\"rootElement()\"\n\t[anchor_placement]=\"state()['placement']\"\n\t[anchor_offset]=\"6\"\n\t[so-attributes]=\"{ ...state()['aria'], ...state()['dismiss_ownerAttribute'] }\"\n>\n\t<!-- Обёртка держит ширину панели по тексту, где бы у края окна панель ни стояла. -->\n\t<div class=\"so-tooltip__content\">\n\t\t<ng-content />\n\t</div>\n</div>\n<!-- Слив шаблонов слотов: в основной проекции их якоря легли бы в панель. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/menu/manifest'\n\nexport const MenuInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'open',\n\t'placement',\n\t'openOn',\n\t'groupSeparators',\n\t'dismiss_enabled',\n\t'engine',\n\t'items',\n\t'trackBy',\n\t'groupBy',\n\t'groups',\n] as const\nexport const MenuOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeOpen',\n\t'soChangePlacement',\n\t'soChangeOpenOn',\n\t'soChangeGroupSeparators',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soChoose',\n\t'soChangeGroupBy',\n\t'soChangeGroups',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'openChange',\n\t'placementChange',\n\t'openOnChange',\n\t'groupSeparatorsChange',\n\t'dismiss_enabledChange',\n\t'itemsChange',\n\t'trackByChange',\n\t'groupByChange',\n\t'groupsChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'open', transform: booleanInput },\n\t\t'placement',\n\t\t'openOn',\n\t\t{ name: 'groupSeparators', transform: booleanInput },\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t\t'groupBy',\n\t\t'groups',\n\t],\n\toutputs: [...MenuOutputNames],\n})\nexport abstract class TMenuSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuInputNames, MenuOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare open: TInputValue<typeof descriptor, 'open'>\n\tdeclare placement: TInputValue<typeof descriptor, 'placement'>\n\tdeclare openOn: TInputValue<typeof descriptor, 'openOn'>\n\tdeclare groupSeparators: TInputValue<typeof descriptor, 'groupSeparators'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare groupBy: TInputValue<typeof descriptor, 'groupBy'>\n\tdeclare groups: TInputValue<typeof descriptor, 'groups'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeOpen: TOutputEmitter<typeof descriptor, 'change:open'>\n\tdeclare readonly soChangePlacement: TOutputEmitter<typeof descriptor, 'change:placement'>\n\tdeclare readonly soChangeOpenOn: TOutputEmitter<typeof descriptor, 'change:openOn'>\n\tdeclare readonly soChangeGroupSeparators: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:groupSeparators'\n\t>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soChoose: TOutputEmitter<typeof facade, 'choose'>\n\tdeclare readonly soChangeGroupBy: TOutputEmitter<typeof facade, 'change:groupBy'>\n\tdeclare readonly soChangeGroups: TOutputEmitter<typeof facade, 'change:groups'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly openChange: TModelEmitter<typeof descriptor, 'open'>\n\tdeclare readonly placementChange: TModelEmitter<typeof descriptor, 'placement'>\n\tdeclare readonly openOnChange: TModelEmitter<typeof descriptor, 'openOn'>\n\tdeclare readonly groupSeparatorsChange: TModelEmitter<typeof descriptor, 'groupSeparators'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n\tdeclare readonly groupByChange: TModelEmitter<typeof descriptor, 'groupBy'>\n\tdeclare readonly groupsChange: TModelEmitter<typeof descriptor, 'groups'>\n}\n","import { MenuCollectionDescriptor, MenuDescriptor, TCollectionExtension } from '@soxa-ui/setup'\nimport type { IMenu, IMenuProps, TMenuCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Меню и коллекция его пунктов; `engine` — готовая коллекция снаружи (`completeEngine`). */\nexport function setupMenu(\n\tctrl: IMenu | undefined,\n\tprops: object,\n\tengine: IMenuProps['engine'],\n): TBinding<IMenu, TMenuCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(MenuDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tMenuCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/menu/item/manifest'\n\nexport const MenuItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const MenuItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...MenuItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TMenuItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuItemInputNames, MenuItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import {\n\tMenuCollectionItemDescriptor,\n\tMenuItemDescriptor,\n\tTCollectionItemExtension,\n} from '@soxa-ui/setup'\nimport type { IMenuItem, TMenuItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Пункт-действие: лифт отдаёт ему ближайшую коллекцию — меню или подменю. */\nexport function setupMenuItem(\n\tctrl: IMenuItem | undefined,\n\tprops: object,\n): TBinding<IMenuItem, TMenuItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(MenuItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tMenuCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IMenuItem } from '@soxa-ui/core'\nimport { AttributesDirective } from '../../../adapter'\nimport { TItemRowComponent } from '../../item-row'\nimport { TMenuItemSurface } from '../../../generated/menu-item.metadata'\nimport { setupMenuItem } from './setup.component'\n\n/**\n * Пункт-действие меню: корень — элемент потребителя, строка — Button на `div`.\n * См. AGENTS.md (Angular), «Menu — триггер шаблоном слота, пункты — коллекция в панели».\n */\n@Component({\n\tselector: 'div[so-menu-item], [so-menu-item]',\n\timports: [NgTemplateOutlet, AttributesDirective, TItemRowComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './menu-item.component.html',\n})\nexport class TMenuItemComponent extends TMenuItemSurface<IMenuItem> {\n\tconstructor() {\n\t\tsuper(setupMenuItem, { strategy: 'host', sets: ['attrs', 'dataset'], control: true })\n\t}\n}\n","<!--\n\tВида и варианта строка не получает: вид даёт тема по контексту, цвет — пункт и панель.\n\tОбёртки колонок — у каждого пункта; пустые тема прячет по `:empty`, поэтому внутри —\n\tтолько проекция.\n-->\n<div\n\tso-item-row\n\t#control\n\tembedded=\"menu.row\"\n\t[size]=\"state()['size']\"\n\t[disabled]=\"state()['disabled']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(click)=\"facade()?.context?.adapters.menu.choose()\"\n>\n\t<span class=\"so-menu-item__icon\" ngProjectAs=\"[slot=leading]\">\n\t\t<ng-content select=\"[slot=leading]\" />\n\t</span>\n\t@if (slot('default'); as content) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{ text: state()['text'] ?? '' }\"\n\t\t/>\n\t} @else {\n\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t}\n\t<span class=\"so-menu-item__shortcut\" ngProjectAs=\"[slot=trailing]\">\n\t\t<ng-content select=\"[slot=trailing]\" />\n\t</span>\n</div>\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade, ownerFacade } from '../components/menu/submenu/manifest'\n\nexport const MenuSubmenuInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'open',\n\t'groupSeparators',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'dismiss_enabled',\n\t'id',\n\t'engine',\n\t'items',\n\t'trackBy',\n\t'groupBy',\n\t'groups',\n] as const\nexport const MenuSubmenuOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soChangeOpen',\n\t'soChangeGroupSeparators',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'soChangeId',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soChoose',\n\t'soChangeGroupBy',\n\t'soChangeGroups',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'openChange',\n\t'groupSeparatorsChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'dismiss_enabledChange',\n\t'idChange',\n\t'itemsChange',\n\t'trackByChange',\n\t'groupByChange',\n\t'groupsChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t{ name: 'open', transform: booleanInput },\n\t\t{ name: 'groupSeparators', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t\t'id',\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t\t'groupBy',\n\t\t'groups',\n\t],\n\toutputs: [...MenuSubmenuOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TMenuSubmenuSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>,\n\tDescriptorInstance<typeof ownerFacade>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>,\n\t\t\tDescriptorInstance<typeof ownerFacade>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuSubmenuInputNames, MenuSubmenuOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare open: TInputValue<typeof descriptor, 'open'>\n\tdeclare groupSeparators: TInputValue<typeof descriptor, 'groupSeparators'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare groupBy: TInputValue<typeof descriptor, 'groupBy'>\n\tdeclare groups: TInputValue<typeof descriptor, 'groups'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeOpen: TOutputEmitter<typeof descriptor, 'change:open'>\n\tdeclare readonly soChangeGroupSeparators: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:groupSeparators'\n\t>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof ownerFacade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof ownerFacade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof ownerFacade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof ownerFacade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof ownerFacade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof ownerFacade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof ownerFacade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof ownerFacade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof ownerFacade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof ownerFacade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof ownerFacade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof ownerFacade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof ownerFacade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof ownerFacade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof ownerFacade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof ownerFacade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof ownerFacade, 'change:trackBy'>\n\tdeclare readonly soChoose: TOutputEmitter<typeof ownerFacade, 'choose'>\n\tdeclare readonly soChangeGroupBy: TOutputEmitter<typeof ownerFacade, 'change:groupBy'>\n\tdeclare readonly soChangeGroups: TOutputEmitter<typeof ownerFacade, 'change:groups'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly openChange: TModelEmitter<typeof descriptor, 'open'>\n\tdeclare readonly groupSeparatorsChange: TModelEmitter<typeof descriptor, 'groupSeparators'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n\tdeclare readonly groupByChange: TModelEmitter<typeof descriptor, 'groupBy'>\n\tdeclare readonly groupsChange: TModelEmitter<typeof descriptor, 'groups'>\n}\n","import {\n\tMenuCollectionItemDescriptor,\n\tMenuSubmenuCollectionDescriptor,\n\tMenuSubmenuDescriptor,\n\tTCollectionExtension,\n\tTCollectionItemExtension,\n\ttype DescriptorPluginOutputs,\n} from '@soxa-ui/setup'\nimport type {\n\tIMenuSubmenu,\n\tIMenuSubmenuProps,\n\tTMenuCollectionFacade,\n\tTMenuItemCollectionFacade,\n} from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Выходы плагинов подменю — их читает шаблон: пометку панели владельцем. */\nexport type TMenuSubmenuOutputs = DescriptorPluginOutputs<typeof MenuSubmenuDescriptor>\n\n/** Пункт с подменю: пункт меню над ним и меню своих пунктов. */\nexport function setupMenuSubmenu(\n\tctrl: IMenuSubmenu | undefined,\n\tprops: object,\n\tengine: IMenuSubmenuProps['engine'],\n): TBinding<IMenuSubmenu, TMenuItemCollectionFacade, TMenuSubmenuOutputs, TMenuCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(MenuSubmenuDescriptor(), { ctrl, props })\n\t// Выход `dismiss_ownerAttribute` шаблон раскладывает на панель\n\tconst owner = useAdapter(adapter)\n\n\t// В меню над ним — пункт\n\tconst item = createAngularAdapterContext(\n\t\tMenuCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\t// Для своих пунктов — меню\n\tconst menu = createAngularAdapterContext(\n\t\tMenuSubmenuCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item), useCollectionAdapter(menu))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/menu/group/manifest'\n\nexport const MenuGroupInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'label',\n] as const\nexport const MenuGroupOutputNames = [\n\t'soChangeLabel',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'labelChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'label',\n\t],\n\toutputs: [...MenuGroupOutputNames],\n})\nexport abstract class TMenuGroupSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuGroupInputNames, MenuGroupOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare label: TInputValue<typeof descriptor, 'label'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeLabel: TOutputEmitter<typeof descriptor, 'change:label'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly labelChange: TModelEmitter<typeof descriptor, 'label'>\n}\n","import { MenuGroupDescriptor, TItemGroupExtension } from '@soxa-ui/setup'\nimport type { IItemGroup } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Ключ группировки пунктам — через слой лифта: `ngOnInit` группы идёт раньше их сборки. */\nexport function setupMenuGroup(ctrl: IItemGroup | undefined, props: object): TBinding<IItemGroup> {\n\tconst adapter = createAngularAdapterContext(MenuGroupDescriptor(), { ctrl, props }).use(\n\t\tTItemGroupExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IItemGroup } from '@soxa-ui/core'\nimport { AttributesDirective, provideElevator } from '../../../adapter'\nimport { TMenuGroupSurface } from '../../../generated/menu-group.metadata'\nimport { setupMenuGroup } from './setup.component'\n\n/**\n * Пункты меню под общей подписью: в коллекцию меню они входят сквозь группу.\n * См. AGENTS.md (Angular), «Menu — триггер шаблоном слота, пункты — коллекция в панели».\n */\n@Component({\n\tselector: 'div[so-menu-group], [so-menu-group]',\n\timports: [AttributesDirective],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './menu-group.component.html',\n})\nexport class TMenuGroupComponent extends TMenuGroupSurface<IItemGroup> {\n\tconstructor() {\n\t\tsuper(setupMenuGroup, { strategy: 'host' })\n\t}\n}\n","<!--\n\tТекст подписи — без пробелов вокруг: по нему подпись называет группу.\n\t`<ng-content>` — один раз и вне `@if`: иначе содержимое терялось бы при смене ветки.\n-->\n@if (state()['label']; as label) {\n\t<div class=\"so-menu-group__label\" [so-attributes]=\"state()['labelAria']\">{{ label }}</div>\n}\n<ng-content />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/menu/separator/manifest'\n\nexport const MenuSeparatorInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n] as const\nexport const MenuSeparatorOutputNames = [\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t],\n\toutputs: [...MenuSeparatorOutputNames],\n})\nexport abstract class TMenuSeparatorSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuSeparatorInputNames, MenuSeparatorOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n}\n","import { MenuSeparatorDescriptor } from '@soxa-ui/setup'\nimport type { TMenuSeparator } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\nexport function setupMenuSeparator(\n\tctrl: TMenuSeparator | undefined,\n\tprops: object,\n): TBinding<TMenuSeparator> {\n\tconst adapter = createAngularAdapterContext(MenuSeparatorDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { TMenuSeparator } from '@soxa-ui/core'\nimport { TMenuSeparatorSurface } from '../../../generated/menu-separator.metadata'\nimport { setupMenuSeparator } from './setup.component'\n\n/** Разделитель меню: в коллекцию не входит, внутри ничего не рисует. */\n@Component({\n\tselector: 'div[so-menu-separator], [so-menu-separator]',\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplate: '',\n})\nexport class TMenuSeparatorComponent extends TMenuSeparatorSurface<TMenuSeparator> {\n\tconstructor() {\n\t\tsuper(setupMenuSeparator, { strategy: 'host' })\n\t}\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IMenuSubmenu } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tRoleIconDirective,\n\tSlotDirective,\n\tprovideElevator,\n} from '../../../adapter'\nimport { TItemRowComponent } from '../../item-row'\nimport { TFrameComponent } from '../../frame'\nimport { TIconComponent } from '../../icon'\nimport { TMenuItemComponent } from '../item'\nimport { TMenuGroupComponent } from '../group'\nimport { TMenuSeparatorComponent } from '../separator'\nimport { TMenuSubmenuSurface } from '../../../generated/menu-submenu.metadata'\nimport { setupMenuSubmenu } from './setup.component'\n\n/**\n * Пункт с подменю: строка пункта в меню над ним и своя панель с пунктами.\n * Подменю из данных следующего уровня — сам компонент: себя он видит без `imports`.\n * См. AGENTS.md (Angular), «Menu — триггер шаблоном слота, пункты — коллекция в панели».\n */\n@Component({\n\tselector: 'div[so-menu-submenu], [so-menu-submenu]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tSlotDirective,\n\t\tTItemRowComponent,\n\t\tTFrameComponent,\n\t\tTIconComponent,\n\t\tTMenuItemComponent,\n\t\tTMenuGroupComponent,\n\t\tTMenuSeparatorComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './menu-submenu.component.html',\n})\nexport class TMenuSubmenuComponent extends TMenuSubmenuSurface<IMenuSubmenu> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupMenuSubmenu(ctrl, inputs, this.engine), {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n}\n","<div\n\tso-item-row\n\t#control\n\tembedded=\"menu.row\"\n\t[size]=\"state()['size']\"\n\t[disabled]=\"state()['disabled']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(click)=\"facade()?.context?.adapters.menu.open()\"\n>\n\t<span class=\"so-menu-item__icon\" ngProjectAs=\"[slot=leading]\">\n\t\t<ng-content select=\"[slot=leading]\" />\n\t</span>\n\t@if (slot('header'); as header) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\topen: state()['open'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content select=\"[slot=header]\">{{ state()['text'] }}</ng-content>\n\t}\n\t<!--\n\t\tКласс — на обёртке: тема зеркалит стрелку в RTL, и стрелка из слота зеркалится так же.\n\t-->\n\t<span class=\"so-menu-item__arrow\" aria-hidden=\"true\" ngProjectAs=\"[slot=trailing]\">\n\t\t@if (slot('arrow-icon'); as arrow) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"arrow\" />\n\t\t} @else {\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"menu.arrow\"\n\t\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t}\n\t</span>\n</div>\n<!--\n\tПункты секции из данных — как у меню; свои `item-*` подменю отдаёт следующему уровню,\n\tа `item-content` — его шаблоном `default`.\n-->\n<ng-template #entries let-items>\n\t@for (item of items; track item.uid) {\n\t\t@if (state()['submenus']?.get(item); as submenu) {\n\t\t\t<div so-menu-submenu [ctrl]=\"submenu.ctrl\" [engine]=\"submenu.engine\">\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-header'); as header) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"header\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\tlet-open=\"open\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text, open }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-arrow-icon'); as arrow) {\n\t\t\t\t\t<ng-template slot=\"arrow-icon\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"arrow\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-content'); as panel) {\n\t\t\t\t\t<ng-template slot=\"default\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"panel\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t\tngTemplateOutletInjector=\"outlet\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child, text }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item-leading\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item-trailing\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-header'); as header) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item-header\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\tlet-open=\"open\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child, text, open }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-arrow-icon'); as arrow) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item-arrow-icon\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"arrow\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t</div>\n\t\t} @else {\n\t\t\t<div so-menu-item [ctrl]=\"item\">\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template slot=\"default\" ngProjectAs=\"ng-template[slot]\" let-text=\"text\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</ng-template>\n<!--\n\t`aria` и пометка владельцем — одним объектом, как у панели меню.\n-->\n<div\n\tso-frame\n\tembedded=\"menu.submenu-frame\"\n\ttabindex=\"-1\"\n\tstrategy=\"fixed\"\n\tanchor_placement=\"end-start\"\n\t[class]=\"state()['panelClasses']\"\n\t[visible]=\"state()['visible'] && state()['open']\"\n\t[anchor_anchor]=\"rootElement()\"\n\t[so-attributes]=\"{ ...state()['panelAria'], ...state()['dismiss_ownerAttribute'] }\"\n>\n\t<!--\n\t\tThe `default` template is the lazy form of the items, as the menu's: the submenu creates\n\t\tit with the first opening of its panel, while a projection Angular creates with the\n\t\tsubmenu. `item-content` of the menu above comes as this template too, not as a\n\t\tprojection: Angular picks the fallback content of `<ng-content>` once, and an `@if`\n\t\tbranch projected here would drop the items from data even with a false condition.\n\t-->\n\t<div class=\"so-menu__list\">\n\t\t<!-- Items from the panel's first opening on (`contentRendered`), as the menu's -->\n\t\t@if (state()['contentRendered']) {\n\t\t\t@if (slot('default'); as panel) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"panel\" />\n\t\t\t} @else {\n\t\t\t\t<ng-content>\n\t\t\t\t\t@for (\n\t\t\t\t\t\tsection of state()['sections'] ?? [];\n\t\t\t\t\t\ttrack section.key;\n\t\t\t\t\t\tlet first = $first\n\t\t\t\t\t) {\n\t\t\t\t\t\t@if (state()['groupSeparators'] && !first) {\n\t\t\t\t\t\t\t<div so-menu-separator></div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t@if (section.group; as group) {\n\t\t\t\t\t\t\t<div so-menu-group [label]=\"group.label\">\n\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"entries\"\n\t\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: section.items }\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"entries\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: section.items }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t</ng-content>\n\t\t\t}\n\t\t}\n\t</div>\n</div>\n<!--\n\tШаблоны слотов — свои и от меню над ним — в слив в конце: иначе сняли бы пункты из данных.\n-->\n<ng-content select=\"ng-template[slot]\" />\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IMenu } from '@soxa-ui/core'\nimport { AttributesDirective, SlotDirective, provideElevator } from '../../adapter'\nimport { TFrameComponent } from '../frame'\nimport { TMenuItemComponent } from './item'\nimport { TMenuSubmenuComponent } from './submenu'\nimport { TMenuGroupComponent } from './group'\nimport { TMenuSeparatorComponent } from './separator'\nimport { TMenuSurface } from '../../generated/menu.metadata'\nimport { setupMenu } from './setup.component'\n\n/**\n * Меню действий у кнопки (APG Menu Button) или контекстное (`openOn=\"contextmenu\"`).\n * См. AGENTS.md (Angular), «Menu — триггер шаблоном слота, пункты — коллекция в панели».\n */\n@Component({\n\tselector: 'span[so-menu], [so-menu]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tSlotDirective,\n\t\tTFrameComponent,\n\t\tTMenuItemComponent,\n\t\tTMenuSubmenuComponent,\n\t\tTMenuGroupComponent,\n\t\tTMenuSeparatorComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './menu.component.html',\n})\nexport class TMenuComponent extends TMenuSurface<IMenu> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupMenu(ctrl, inputs, this.engine), {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t})\n\t}\n}\n","<!--\n\tТриггер — шаблон слота: новый контекст вывод отдаёт тому же представлению, поэтому\n\tтриггер — тот же узел при каждом открытии, и фокус на нём остаётся.\n-->\n@if (slot('trigger'); as trigger) {\n\t<ng-container\n\t\t[ngTemplateOutlet]=\"trigger\"\n\t\t[ngTemplateOutletContext]=\"{\n\t\t\ttriggerAria: state()['triggerAria'] ?? {},\n\t\t\ttriggerDataset: state()['triggerDataset'] ?? {},\n\t\t}\"\n\t/>\n}\n<!--\n\tПункт с `items` — подменю из данных (запись `submenus`); слоты — только заданные.\n\t`item-content` — шаблон `default` подменю, с инжектором места (AGENTS.md (Angular),\n\t«Шаблон слота с DI места вывода»). Дальше не идёт: такое подменю своих пунктов не рисует.\n-->\n<ng-template #entries let-items>\n\t@for (item of items; track item.uid) {\n\t\t@if (state()['submenus']?.get(item); as submenu) {\n\t\t\t<div so-menu-submenu [ctrl]=\"submenu.ctrl\" [engine]=\"submenu.engine\">\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-header'); as header) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"header\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\tlet-open=\"open\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text, open }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-arrow-icon'); as arrow) {\n\t\t\t\t\t<ng-template slot=\"arrow-icon\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"arrow\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-content'); as panel) {\n\t\t\t\t\t<ng-template slot=\"default\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"panel\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t\tngTemplateOutletInjector=\"outlet\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child, text }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item-leading\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item-trailing\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-header'); as header) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item-header\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\tlet-open=\"open\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child, text, open }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-arrow-icon'); as arrow) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"item-arrow-icon\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-child=\"item\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"arrow\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: child }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t</div>\n\t\t} @else {\n\t\t\t<div so-menu-item [ctrl]=\"item\">\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template slot=\"default\" ngProjectAs=\"ng-template[slot]\" let-text=\"text\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</ng-template>\n<!--\n\t`aria` и пометка владельцем — одним объектом: директива набора на элементе одна.\n\t`[class]` — рядом с классами Frame: Angular ставит и снимает классы привязки по одному.\n\t`tabindex=\"-1\"` — фокус на панели, пока ни один пункт не подсвечен.\n-->\n<div\n\tso-frame\n\tembedded=\"menu.frame\"\n\ttabindex=\"-1\"\n\tstrategy=\"fixed\"\n\t[class]=\"state()['panelClasses']\"\n\t[visible]=\"state()['visible'] && state()['open']\"\n\t[anchor_anchor]=\"rootElement()\"\n\t[anchor_point]=\"state()['point']\"\n\t[anchor_placement]=\"state()['placement']\"\n\t[anchor_offset]=\"4\"\n\t[so-attributes]=\"{ ...state()['aria'], ...state()['dismiss_ownerAttribute'] }\"\n>\n\t<!--\n\t\tРоль `menu` — у панели, а не у списка: фокус без подсветки держит панель.\n\t\tБез пунктов разметки — пункты из данных по секциям (`sections`), порядком показанного.\n\t-->\n\t<div class=\"so-menu__list\">\n\t\t<!--\n\t\t\tItems from the panel's first opening on (`contentRendered`). Markup items written as\n\t\t\ta projection Angular creates with the menu and only inserts then; the `default`\n\t\t\ttemplate the menu creates itself, here, so its items come with the first opening.\n\t\t\tGiven, it is drawn instead of the projection.\n\t\t-->\n\t\t@if (state()['contentRendered']) {\n\t\t\t@if (slot('default'); as content) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"content\" />\n\t\t\t} @else {\n\t\t\t\t<ng-content>\n\t\t\t\t\t@for (\n\t\t\t\t\t\tsection of state()['sections'] ?? [];\n\t\t\t\t\t\ttrack section.key;\n\t\t\t\t\t\tlet first = $first\n\t\t\t\t\t) {\n\t\t\t\t\t\t@if (state()['groupSeparators'] && !first) {\n\t\t\t\t\t\t\t<div so-menu-separator></div>\n\t\t\t\t\t\t}\n\t\t\t\t\t\t@if (section.group; as group) {\n\t\t\t\t\t\t\t<div so-menu-group [label]=\"group.label\">\n\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"entries\"\n\t\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: section.items }\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"entries\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: section.items }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t</ng-content>\n\t\t\t}\n\t\t}\n\t</div>\n</div>\n<!--\n\tШаблоны слотов — в слив в конце: в основной проекции они сняли бы запасное содержимое.\n-->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/menu/checkbox-item/manifest'\n\nexport const MenuCheckboxItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'selected',\n] as const\nexport const MenuCheckboxItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeSelected',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'selectedChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t{ name: 'selected', transform: booleanInput },\n\t],\n\toutputs: [...MenuCheckboxItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TMenuCheckboxItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuCheckboxItemInputNames, MenuCheckboxItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare selected: TInputValue<typeof descriptor, 'selected'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeSelected: TOutputEmitter<typeof facade, 'change:selected'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly selectedChange: TModelEmitter<typeof descriptor, 'selected'>\n}\n","import {\n\tMenuCheckboxItemDescriptor,\n\tMenuCollectionCheckboxItemDescriptor,\n\tTCollectionItemExtension,\n} from '@soxa-ui/setup'\nimport type { IMenuCheckboxItem, TMenuItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Флажок меню: отметка — у фасада, это выбор коллекции меню, а не своё состояние. */\nexport function setupMenuCheckboxItem(\n\tctrl: IMenuCheckboxItem | undefined,\n\tprops: object,\n): TBinding<IMenuCheckboxItem, TMenuItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(MenuCheckboxItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tMenuCollectionCheckboxItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IMenuCheckboxItem } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../../adapter'\nimport { TItemRowComponent } from '../../item-row'\nimport { TIconComponent } from '../../icon'\nimport { TMenuCheckboxItemSurface } from '../../../generated/menu-checkbox-item.metadata'\nimport { setupMenuCheckboxItem } from './setup.component'\n\n/** Флажок меню: строка, как у пункта-действия, с отметкой — выбором коллекции меню. */\n@Component({\n\tselector: 'div[so-menu-checkbox-item], [so-menu-checkbox-item]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTItemRowComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './menu-checkbox-item.component.html',\n})\nexport class TMenuCheckboxItemComponent extends TMenuCheckboxItemSurface<IMenuCheckboxItem> {\n\tconstructor() {\n\t\tsuper(setupMenuCheckboxItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n}\n","<!--\n\tОбёртка отметки — у каждого флажка: она держит колонку. Пустые обёртки тема\n\tпрячет по `:empty`, поэтому внутри них — только проекция и рисунок.\n-->\n<div\n\tso-item-row\n\t#control\n\tembedded=\"menu.row\"\n\t[size]=\"state()['size']\"\n\t[disabled]=\"state()['disabled']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(click)=\"facade()?.context?.adapters.menu.toggle()\"\n>\n\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t<span class=\"so-menu-item__indicator\" aria-hidden=\"true\">\n\t\t\t@if (slot('indicator-icon'); as indicator) {\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"indicator\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ selected: state()['selected'] ?? false }\"\n\t\t\t\t/>\n\t\t\t} @else if (state()['selected']) {\n\t\t\t\t<svg\n\t\t\t\t\tso-icon\n\t\t\t\t\tembedded=\"menu.indicator\"\n\t\t\t\t\tso-role-icon=\"check\"\n\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t></svg>\n\t\t\t}\n\t\t</span>\n\t\t<span class=\"so-menu-item__icon\"><ng-content select=\"[slot=leading]\" /></span>\n\t</ng-container>\n\t@if (slot('default'); as content) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\tselected: state()['selected'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t}\n\t<span class=\"so-menu-item__shortcut\" ngProjectAs=\"[slot=trailing]\">\n\t\t<ng-content select=\"[slot=trailing]\" />\n\t</span>\n</div>\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/menu/radio-item/manifest'\n\nexport const MenuRadioItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'selected',\n] as const\nexport const MenuRadioItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeSelected',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'selectedChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t{ name: 'selected', transform: booleanInput },\n\t],\n\toutputs: [...MenuRadioItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TMenuRadioItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuRadioItemInputNames, MenuRadioItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare selected: TInputValue<typeof descriptor, 'selected'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeSelected: TOutputEmitter<typeof facade, 'change:selected'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly selectedChange: TModelEmitter<typeof descriptor, 'selected'>\n}\n","import {\n\tMenuCollectionRadioItemDescriptor,\n\tMenuRadioItemDescriptor,\n\tTCollectionItemExtension,\n\tTMenuRadioItemExtension,\n} from '@soxa-ui/setup'\nimport type { IMenuRadioItem, TMenuItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Переключатель меню: группу берёт лифтом — её `ngOnInit` идёт раньше его сборки. */\nexport function setupMenuRadioItem(\n\tctrl: IMenuRadioItem | undefined,\n\tprops: object,\n): TBinding<IMenuRadioItem, TMenuItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(MenuRadioItemDescriptor(), { ctrl, props }).use(\n\t\tTMenuRadioItemExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tMenuCollectionRadioItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IMenuRadioItem } from '@soxa-ui/core'\nimport { AttributesDirective } from '../../../adapter'\nimport { TItemRowComponent } from '../../item-row'\nimport { TMenuRadioItemSurface } from '../../../generated/menu-radio-item.metadata'\nimport { setupMenuRadioItem } from './setup.component'\n\n/** Переключатель меню: строка, как у флажка, с точкой; в группе отмечен один. */\n@Component({\n\tselector: 'div[so-menu-radio-item], [so-menu-radio-item]',\n\timports: [NgTemplateOutlet, AttributesDirective, TItemRowComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './menu-radio-item.component.html',\n})\nexport class TMenuRadioItemComponent extends TMenuRadioItemSurface<IMenuRadioItem> {\n\tconstructor() {\n\t\tsuper(setupMenuRadioItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n}\n","<div\n\tso-item-row\n\t#control\n\tembedded=\"menu.row\"\n\t[size]=\"state()['size']\"\n\t[disabled]=\"state()['disabled']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(click)=\"facade()?.context?.adapters.menu.check()\"\n>\n\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t<span class=\"so-menu-item__indicator\" aria-hidden=\"true\">\n\t\t\t@if (slot('indicator-icon'); as indicator) {\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"indicator\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ selected: state()['selected'] ?? false }\"\n\t\t\t\t/>\n\t\t\t} @else if (state()['selected']) {\n\t\t\t\t<span class=\"so-menu-item__dot\"></span>\n\t\t\t}\n\t\t</span>\n\t\t<span class=\"so-menu-item__icon\"><ng-content select=\"[slot=leading]\" /></span>\n\t</ng-container>\n\t@if (slot('default'); as content) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\tselected: state()['selected'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t}\n\t<span class=\"so-menu-item__shortcut\" ngProjectAs=\"[slot=trailing]\">\n\t\t<ng-content select=\"[slot=trailing]\" />\n\t</span>\n</div>\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/menu/radio-group/manifest'\n\nexport const MenuRadioGroupInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'label',\n\t'value',\n] as const\nexport const MenuRadioGroupOutputNames = [\n\t'soChangeLabel',\n\t'soChangeValue',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'labelChange',\n\t'valueChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'label',\n\t\t'value',\n\t],\n\toutputs: [...MenuRadioGroupOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TMenuRadioGroupSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuRadioGroupInputNames, MenuRadioGroupOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare label: TInputValue<typeof descriptor, 'label'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeLabel: TOutputEmitter<typeof descriptor, 'change:label'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly labelChange: TModelEmitter<typeof descriptor, 'label'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n}\n","import {\n\tMenuRadioGroupDescriptor,\n\tTItemGroupExtension,\n\tTMenuRadioGroupExtension,\n} from '@soxa-ui/setup'\nimport type { IMenuRadioGroup } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Группа переключателей — группа меню, которая ещё опускает себя переключателям. */\nexport function setupMenuRadioGroup(\n\tctrl: IMenuRadioGroup | undefined,\n\tprops: object,\n): TBinding<IMenuRadioGroup> {\n\tconst adapter = createAngularAdapterContext(MenuRadioGroupDescriptor(), { ctrl, props })\n\t\t.use(TItemGroupExtension, { elevator: AngularElevatorFactory })\n\t\t.use(TMenuRadioGroupExtension, { elevator: AngularElevatorFactory })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IMenuRadioGroup } from '@soxa-ui/core'\nimport { AttributesDirective, provideElevator } from '../../../adapter'\nimport { TMenuRadioGroupSurface } from '../../../generated/menu-radio-group.metadata'\nimport { setupMenuRadioGroup } from './setup.component'\n\n/**\n * Переключатели меню под общей подписью и со своим значением. Роль — `group`, а не\n * `radiogroup`: так в меню по APG.\n */\n@Component({\n\tselector: 'div[so-menu-radio-group], [so-menu-radio-group]',\n\timports: [AttributesDirective],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './menu-radio-group.component.html',\n})\nexport class TMenuRadioGroupComponent extends TMenuRadioGroupSurface<IMenuRadioGroup> {\n\tconstructor() {\n\t\tsuper(setupMenuRadioGroup, { strategy: 'host' })\n\t}\n}\n","<!--\n\t`<ng-content>` — один раз и вне `@if`, как у группы меню.\n-->\n@if (state()['label']; as label) {\n\t<div class=\"so-menu-group__label\" [so-attributes]=\"state()['labelAria']\">{{ label }}</div>\n}\n<ng-content />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/menu/popover-item/manifest'\n\nexport const MenuPopoverItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'open',\n\t'lazyMount',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'dismiss_enabled',\n\t'id',\n] as const\nexport const MenuPopoverItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soChangeOpen',\n\t'soChangeLazyMount',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'openChange',\n\t'lazyMountChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'dismiss_enabledChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t{ name: 'open', transform: booleanInput },\n\t\t{ name: 'lazyMount', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t\t'id',\n\t],\n\toutputs: [...MenuPopoverItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TMenuPopoverItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(MenuPopoverItemInputNames, MenuPopoverItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare open: TInputValue<typeof descriptor, 'open'>\n\tdeclare lazyMount: TInputValue<typeof descriptor, 'lazyMount'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeOpen: TOutputEmitter<typeof descriptor, 'change:open'>\n\tdeclare readonly soChangeLazyMount: TOutputEmitter<typeof descriptor, 'change:lazyMount'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly openChange: TModelEmitter<typeof descriptor, 'open'>\n\tdeclare readonly lazyMountChange: TModelEmitter<typeof descriptor, 'lazyMount'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import {\n\tMenuCollectionItemDescriptor,\n\tMenuPopoverItemDescriptor,\n\tTCollectionItemExtension,\n\ttype DescriptorPluginOutputs,\n} from '@soxa-ui/setup'\nimport type { IMenuPopoverItem, TMenuItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Выходы плагинов пункта с панелью — их читает шаблон: пометку панели владельцем. */\nexport type TMenuPopoverItemOutputs = DescriptorPluginOutputs<typeof MenuPopoverItemDescriptor>\n\n/** Пункт с панелью: своей коллекции и слоя лифта нет — в панели лежит что угодно. */\nexport function setupMenuPopoverItem(\n\tctrl: IMenuPopoverItem | undefined,\n\tprops: object,\n): TBinding<IMenuPopoverItem, TMenuItemCollectionFacade, TMenuPopoverItemOutputs> {\n\tconst adapter = createAngularAdapterContext(MenuPopoverItemDescriptor(), { ctrl, props })\n\t// Выход `dismiss_ownerAttribute` шаблон раскладывает на панель\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tMenuCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IMenuPopoverItem } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../../adapter'\nimport { TItemRowComponent } from '../../item-row'\nimport { TFrameComponent } from '../../frame'\nimport { TIconComponent } from '../../icon'\nimport { TMenuPopoverItemSurface } from '../../../generated/menu-popover-item.metadata'\nimport { setupMenuPopoverItem } from './setup.component'\n\n/**\n * Пункт с панелью: строка пункта в меню и своя панель сбоку с любым содержимым.\n * См. AGENTS.md (Angular), «Menu — триггер шаблоном слота, пункты — коллекция в панели».\n */\n@Component({\n\tselector: 'div[so-menu-popover-item], [so-menu-popover-item]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTItemRowComponent,\n\t\tTFrameComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './menu-popover-item.component.html',\n})\nexport class TMenuPopoverItemComponent extends TMenuPopoverItemSurface<IMenuPopoverItem> {\n\tconstructor() {\n\t\tsuper(setupMenuPopoverItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n}\n","<!--\n\tThe row text is the `header` slot, not `default`: `default` is the panel content.\n-->\n<div\n\tso-item-row\n\t#control\n\tembedded=\"menu.row\"\n\t[size]=\"state()['size']\"\n\t[disabled]=\"state()['disabled']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(click)=\"facade()?.context?.adapters.menu.open()\"\n>\n\t<span class=\"so-menu-item__icon\" ngProjectAs=\"[slot=leading]\">\n\t\t<ng-content select=\"[slot=leading]\" />\n\t</span>\n\t@if (slot('header'); as header) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\topen: state()['open'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content select=\"[slot=header]\">{{ state()['text'] }}</ng-content>\n\t}\n\t<!--\n\t\tКласс — на обёртке: тема зеркалит стрелку в RTL, и стрелка из слота зеркалится так же.\n\t-->\n\t<span class=\"so-menu-item__arrow\" aria-hidden=\"true\" ngProjectAs=\"[slot=trailing]\">\n\t\t@if (slot('arrow-icon'); as arrow) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"arrow\" />\n\t\t} @else {\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"menu.arrow\"\n\t\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t}\n\t</span>\n</div>\n<!--\n\t`lazyMount` holds back only the content: the wrapper stays, and the panel never unmounts.\n\tA projection is created right away by the template that wrote it, and `@if` only keeps it\n\tout of the document; the `default` template is created here, so with `lazyMount` its\n\tcomponents come with the first open. Given, it is drawn instead of the projection.\n-->\n<div\n\tso-frame\n\tembedded=\"menu.popover-item-frame\"\n\tclass=\"so-menu-item__panel\"\n\ttabindex=\"-1\"\n\tstrategy=\"fixed\"\n\tanchor_placement=\"end-start\"\n\t[visible]=\"state()['visible'] && state()['open']\"\n\t[anchor_anchor]=\"rootElement()\"\n\t[so-attributes]=\"{ ...state()['panelAria'], ...state()['dismiss_ownerAttribute'] }\"\n>\n\t<div class=\"so-menu-item__content\">\n\t\t@if (state()['contentRendered']) {\n\t\t\t@if (slot('default'); as content) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"content\" />\n\t\t\t} @else {\n\t\t\t\t<ng-content />\n\t\t\t}\n\t\t}\n\t</div>\n</div>\n<!--\n\tШаблоны слотов — в слив в конце: в основной проекции их якоря легли бы в панель.\n-->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/dialog/manifest'\n\nexport const DialogInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'target',\n\t'width',\n\t'height',\n\t'closable',\n\t'dismissible',\n\t'placement',\n\t'offset',\n\t'maximized',\n\t'maximizable',\n\t'alert',\n\t'dismiss_enabled',\n\t'hideOutside_enabled',\n\t'scrollLock_enabled',\n] as const\nexport const DialogOutputNames = [\n\t'soChangeZIndex',\n\t'soChangeTarget',\n\t'soCloseBefore',\n\t'soChangeWidth',\n\t'soChangeHeight',\n\t'soChangeClosable',\n\t'soChangeDismissible',\n\t'soChangePlacement',\n\t'soChangeOffset',\n\t'soChangeMaximized',\n\t'soChangeMaximizable',\n\t'soChangeAlert',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'soHideOutsideChangeEnabled',\n\t'soScrollLockChangeEnabled',\n\t'soLayoutOffsetBefore',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'targetChange',\n\t'widthChange',\n\t'heightChange',\n\t'closableChange',\n\t'dismissibleChange',\n\t'placementChange',\n\t'offsetChange',\n\t'maximizedChange',\n\t'maximizableChange',\n\t'alertChange',\n\t'dismiss_enabledChange',\n\t'hideOutside_enabledChange',\n\t'scrollLock_enabledChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'target',\n\t\t'width',\n\t\t'height',\n\t\t{ name: 'closable', transform: booleanInput },\n\t\t{ name: 'dismissible', transform: booleanInput },\n\t\t'placement',\n\t\t'offset',\n\t\t{ name: 'maximized', transform: booleanInput },\n\t\t{ name: 'maximizable', transform: booleanInput },\n\t\t{ name: 'alert', transform: booleanInput },\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t\t{ name: 'hideOutside_enabled', transform: booleanInput },\n\t\t{ name: 'scrollLock_enabled', transform: booleanInput },\n\t],\n\toutputs: [...DialogOutputNames],\n})\nexport abstract class TDialogSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(DialogInputNames, DialogOutputNames, setup, spec)\n\t}\n\tprivate readonly _companionRef = viewChild<unknown, ElementRef<Element>>('companion', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'companion') return this._companionRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare target: TInputValue<typeof descriptor, 'target'>\n\tdeclare width: TInputValue<typeof descriptor, 'width'>\n\tdeclare height: TInputValue<typeof descriptor, 'height'>\n\tdeclare closable: TInputValue<typeof descriptor, 'closable'>\n\tdeclare dismissible: TInputValue<typeof descriptor, 'dismissible'>\n\tdeclare placement: TInputValue<typeof descriptor, 'placement'>\n\tdeclare offset: TInputValue<typeof descriptor, 'offset'>\n\tdeclare maximized: TInputValue<typeof descriptor, 'maximized'>\n\tdeclare maximizable: TInputValue<typeof descriptor, 'maximizable'>\n\tdeclare alert: TInputValue<typeof descriptor, 'alert'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare hideOutside_enabled: TInputValue<typeof descriptor, 'hideOutside_enabled'>\n\tdeclare scrollLock_enabled: TInputValue<typeof descriptor, 'scrollLock_enabled'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeZIndex: TOutputEmitter<typeof descriptor, 'change:zIndex'>\n\tdeclare readonly soChangeTarget: TOutputEmitter<typeof descriptor, 'change:target'>\n\tdeclare readonly soCloseBefore: TOutputEmitter<typeof descriptor, 'close:before'>\n\tdeclare readonly soChangeWidth: TOutputEmitter<typeof descriptor, 'change:width'>\n\tdeclare readonly soChangeHeight: TOutputEmitter<typeof descriptor, 'change:height'>\n\tdeclare readonly soChangeClosable: TOutputEmitter<typeof descriptor, 'change:closable'>\n\tdeclare readonly soChangeDismissible: TOutputEmitter<typeof descriptor, 'change:dismissible'>\n\tdeclare readonly soChangePlacement: TOutputEmitter<typeof descriptor, 'change:placement'>\n\tdeclare readonly soChangeOffset: TOutputEmitter<typeof descriptor, 'change:offset'>\n\tdeclare readonly soChangeMaximized: TOutputEmitter<typeof descriptor, 'change:maximized'>\n\tdeclare readonly soChangeMaximizable: TOutputEmitter<typeof descriptor, 'change:maximizable'>\n\tdeclare readonly soChangeAlert: TOutputEmitter<typeof descriptor, 'change:alert'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly soHideOutsideChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'hideOutside:change:enabled'\n\t>\n\tdeclare readonly soScrollLockChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'scrollLock:change:enabled'\n\t>\n\tdeclare readonly soLayoutOffsetBefore: TOutputEmitter<typeof descriptor, 'layout:offset:before'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly targetChange: TModelEmitter<typeof descriptor, 'target'>\n\tdeclare readonly widthChange: TModelEmitter<typeof descriptor, 'width'>\n\tdeclare readonly heightChange: TModelEmitter<typeof descriptor, 'height'>\n\tdeclare readonly closableChange: TModelEmitter<typeof descriptor, 'closable'>\n\tdeclare readonly dismissibleChange: TModelEmitter<typeof descriptor, 'dismissible'>\n\tdeclare readonly placementChange: TModelEmitter<typeof descriptor, 'placement'>\n\tdeclare readonly offsetChange: TModelEmitter<typeof descriptor, 'offset'>\n\tdeclare readonly maximizedChange: TModelEmitter<typeof descriptor, 'maximized'>\n\tdeclare readonly maximizableChange: TModelEmitter<typeof descriptor, 'maximizable'>\n\tdeclare readonly alertChange: TModelEmitter<typeof descriptor, 'alert'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly hideOutside_enabledChange: TModelEmitter<\n\t\ttypeof descriptor,\n\t\t'hideOutside_enabled'\n\t>\n\tdeclare readonly scrollLock_enabledChange: TModelEmitter<\n\t\ttypeof descriptor,\n\t\t'scrollLock_enabled'\n\t>\n}\n","import { DialogDescriptor } from '@soxa-ui/setup'\nimport type { IDialog } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupDialog(ctrl: IDialog | undefined, props: object): TBinding<IDialog> {\n\tconst adapter = createAngularAdapterContext(DialogDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IDialog } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TIconComponent } from '../icon'\nimport { TDialogSurface } from '../../generated/dialog.metadata'\nimport { setupDialog } from './setup.component'\n\n/**\n * Модальное окно: корень — элемент потребителя, он же панель, и в `target` уезжает он.\n * AGENTS.md (Angular), «Dialog и Drawer — корень и есть панель».\n */\n@Component({\n\tselector: 'div[so-dialog], [so-dialog]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { tabindex: '-1', ngSkipHydration: 'true' },\n\ttemplateUrl: './dialog.component.html',\n})\nexport class TDialogComponent extends TDialogSurface<IDialog> {\n\tconstructor() {\n\t\tsuper(setupDialog, {\n\t\t\tstrategy: 'host',\n\t\t\tteleport: { target: 'target', companion: true },\n\t\t\tplugins: ['dismiss_ownerAttribute'],\n\t\t})\n\t}\n}\n","<!-- Слой есть только в браузере: содержимое рисуется, пока окно в цели (`placed`). -->\n@if (placed()) {\n\t<!-- Подложка — спутник корня (`#companion`): база ставит её перед окном и увозит с ним. -->\n\t<div\n\t\t#companion\n\t\tclass=\"so-dialog__backdrop\"\n\t\t[style]=\"state()['layout_backdropStyles']\"\n\t\t[so-attributes]=\"state()['backdropDataset']\"\n\t></div>\n\t<!--\n\t\tПорядок — заголовок, тело, подвал, кнопки: фокус при открытии — на первый контрол\n\t\tсодержимого, крестик — последняя остановка Tab. Заголовок есть всегда: на него\n\t\tссылается `aria-labelledby`.\n\t-->\n\t<h2 class=\"so-dialog__title\" [so-attributes]=\"state()['titleAria']\">\n\t\t<ng-content select=\"[slot=title]\" />\n\t</h2>\n\t<div class=\"so-dialog__body\" [so-attributes]=\"state()['bodyAria']\">\n\t\t<ng-content />\n\t</div>\n\t<div class=\"so-dialog__footer\">\n\t\t<ng-content select=\"[slot=footer]\" />\n\t</div>\n\t<!-- Кнопки — `@if`, а не `rendered`: тема опирается на их отсутствие в DOM. -->\n\t@if (state()['maximizable']) {\n\t\t<button\n\t\t\tso-button\n\t\t\tembedded=\"dialog.maximize\"\n\t\t\ttype=\"button\"\n\t\t\tclass=\"so-dialog__maximize\"\n\t\t\t[so-attributes]=\"state()['maximizeAria']\"\n\t\t\t(click)=\"instance()?.toggleMaximized()\"\n\t\t>\n\t\t\t@if (state()['maximized']) {\n\t\t\t\t@if (slot('restore-icon'); as icon) {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t\t} @else {\n\t\t\t\t\t<svg so-icon embedded=\"dialog.restore-icon\" so-role-icon=\"arrowsInward\"></svg>\n\t\t\t\t}\n\t\t\t} @else {\n\t\t\t\t@if (slot('maximize-icon'); as icon) {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t\t} @else {\n\t\t\t\t\t<svg so-icon embedded=\"dialog.maximize-icon\" so-role-icon=\"arrowsOutward\"></svg>\n\t\t\t\t}\n\t\t\t}\n\t\t</button>\n\t}\n\t@if (state()['closable']) {\n\t\t<button\n\t\t\tso-button\n\t\t\tembedded=\"dialog.close\"\n\t\t\ttype=\"button\"\n\t\t\tclass=\"so-dialog__close\"\n\t\t\t[so-attributes]=\"state()['closeAria']\"\n\t\t\t(click)=\"instance()?.requestClose('button')\"\n\t\t>\n\t\t\t@if (slot('close-icon'); as icon) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t} @else {\n\t\t\t\t<svg so-icon embedded=\"dialog.close-icon\" so-role-icon=\"close\"></svg>\n\t\t\t}\n\t\t</button>\n\t}\n}\n<!-- Шаблоны слотов — в слив вне ветки: в основной проекции их якоря легли бы в тело окна. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/drawer/manifest'\n\nexport const DrawerInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'target',\n\t'width',\n\t'height',\n\t'closable',\n\t'dismissible',\n\t'placement',\n\t'swipe',\n\t'contained',\n\t'dismiss_enabled',\n\t'hideOutside_enabled',\n\t'scrollLock_enabled',\n] as const\nexport const DrawerOutputNames = [\n\t'soChangeZIndex',\n\t'soChangeTarget',\n\t'soCloseBefore',\n\t'soChangeWidth',\n\t'soChangeHeight',\n\t'soChangeClosable',\n\t'soChangeDismissible',\n\t'soChangePlacement',\n\t'soChangeSwipe',\n\t'soChangeContained',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'soHideOutsideChangeEnabled',\n\t'soScrollLockChangeEnabled',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'targetChange',\n\t'widthChange',\n\t'heightChange',\n\t'closableChange',\n\t'dismissibleChange',\n\t'placementChange',\n\t'swipeChange',\n\t'containedChange',\n\t'dismiss_enabledChange',\n\t'hideOutside_enabledChange',\n\t'scrollLock_enabledChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'target',\n\t\t'width',\n\t\t'height',\n\t\t{ name: 'closable', transform: booleanInput },\n\t\t{ name: 'dismissible', transform: booleanInput },\n\t\t'placement',\n\t\t'swipe',\n\t\t{ name: 'contained', transform: booleanInput },\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t\t{ name: 'hideOutside_enabled', transform: booleanInput },\n\t\t{ name: 'scrollLock_enabled', transform: booleanInput },\n\t],\n\toutputs: [...DrawerOutputNames],\n})\nexport abstract class TDrawerSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(DrawerInputNames, DrawerOutputNames, setup, spec)\n\t}\n\tprivate readonly _companionRef = viewChild<unknown, ElementRef<Element>>('companion', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'companion') return this._companionRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare target: TInputValue<typeof descriptor, 'target'>\n\tdeclare width: TInputValue<typeof descriptor, 'width'>\n\tdeclare height: TInputValue<typeof descriptor, 'height'>\n\tdeclare closable: TInputValue<typeof descriptor, 'closable'>\n\tdeclare dismissible: TInputValue<typeof descriptor, 'dismissible'>\n\tdeclare placement: TInputValue<typeof descriptor, 'placement'>\n\tdeclare swipe: TInputValue<typeof descriptor, 'swipe'>\n\tdeclare contained: TInputValue<typeof descriptor, 'contained'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare hideOutside_enabled: TInputValue<typeof descriptor, 'hideOutside_enabled'>\n\tdeclare scrollLock_enabled: TInputValue<typeof descriptor, 'scrollLock_enabled'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeZIndex: TOutputEmitter<typeof descriptor, 'change:zIndex'>\n\tdeclare readonly soChangeTarget: TOutputEmitter<typeof descriptor, 'change:target'>\n\tdeclare readonly soCloseBefore: TOutputEmitter<typeof descriptor, 'close:before'>\n\tdeclare readonly soChangeWidth: TOutputEmitter<typeof descriptor, 'change:width'>\n\tdeclare readonly soChangeHeight: TOutputEmitter<typeof descriptor, 'change:height'>\n\tdeclare readonly soChangeClosable: TOutputEmitter<typeof descriptor, 'change:closable'>\n\tdeclare readonly soChangeDismissible: TOutputEmitter<typeof descriptor, 'change:dismissible'>\n\tdeclare readonly soChangePlacement: TOutputEmitter<typeof descriptor, 'change:placement'>\n\tdeclare readonly soChangeSwipe: TOutputEmitter<typeof descriptor, 'change:swipe'>\n\tdeclare readonly soChangeContained: TOutputEmitter<typeof descriptor, 'change:contained'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly soHideOutsideChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'hideOutside:change:enabled'\n\t>\n\tdeclare readonly soScrollLockChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'scrollLock:change:enabled'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly targetChange: TModelEmitter<typeof descriptor, 'target'>\n\tdeclare readonly widthChange: TModelEmitter<typeof descriptor, 'width'>\n\tdeclare readonly heightChange: TModelEmitter<typeof descriptor, 'height'>\n\tdeclare readonly closableChange: TModelEmitter<typeof descriptor, 'closable'>\n\tdeclare readonly dismissibleChange: TModelEmitter<typeof descriptor, 'dismissible'>\n\tdeclare readonly placementChange: TModelEmitter<typeof descriptor, 'placement'>\n\tdeclare readonly swipeChange: TModelEmitter<typeof descriptor, 'swipe'>\n\tdeclare readonly containedChange: TModelEmitter<typeof descriptor, 'contained'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly hideOutside_enabledChange: TModelEmitter<\n\t\ttypeof descriptor,\n\t\t'hideOutside_enabled'\n\t>\n\tdeclare readonly scrollLock_enabledChange: TModelEmitter<\n\t\ttypeof descriptor,\n\t\t'scrollLock_enabled'\n\t>\n}\n","import { DrawerDescriptor } from '@soxa-ui/setup'\nimport type { IDrawer } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupDrawer(ctrl: IDrawer | undefined, props: object): TBinding<IDrawer> {\n\tconst adapter = createAngularAdapterContext(DrawerDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IDrawer } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TIconComponent } from '../icon'\nimport { TDrawerSurface } from '../../generated/drawer.metadata'\nimport { setupDrawer } from './setup.component'\n\n/**\n * Выезжающая панель у края экрана или контейнера; корень — сама панель, она и уезжает в цель.\n * AGENTS.md (Angular), «Dialog и Drawer — корень и есть панель».\n */\n@Component({\n\tselector: 'div[so-drawer], [so-drawer]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { tabindex: '-1', ngSkipHydration: 'true' },\n\ttemplateUrl: './drawer.component.html',\n})\nexport class TDrawerComponent extends TDrawerSurface<IDrawer> {\n\tconstructor() {\n\t\tsuper(setupDrawer, {\n\t\t\tstrategy: 'host',\n\t\t\tteleport: { target: 'target', contained: 'contained', companion: true },\n\t\t\tplugins: ['dismiss_ownerAttribute'],\n\t\t})\n\t}\n}\n","<!-- Всё — пока панель на месте (`placed()`): на сервере, до переноса и без цели панели нет. -->\n@if (placed()) {\n\t<!--\n\t\tПодложка — спутник корня (`#companion`): база ставит её прямо перед панелью\n\t\tи увозит, возвращает и прячет вместе с ней.\n\t-->\n\t<div\n\t\t#companion\n\t\tclass=\"so-drawer__backdrop\"\n\t\t[style]=\"state()['layout_backdropStyles']\"\n\t\t[so-attributes]=\"state()['backdropDataset']\"\n\t></div>\n\t<!-- Порядок — полоса, заголовок, тело, подвал, крестик: крестик — последняя остановка Tab. -->\n\t@if (state()['handleRendered']) {\n\t\t<div class=\"so-drawer__handle\" aria-hidden=\"true\"></div>\n\t}\n\t<!--\n\t\tЗаголовок — всегда: на него ссылается `aria-labelledby`. Пустой заголовок и подвал\n\t\tтема сворачивает по `:empty`.\n\t-->\n\t<h2 class=\"so-drawer__title\" [so-attributes]=\"state()['titleAria']\">\n\t\t<ng-content select=\"[slot=title]\" />\n\t</h2>\n\t<!-- Тело — прокручивается оно, шапка и подвал остаются на месте -->\n\t<div class=\"so-drawer__body\">\n\t\t<ng-content />\n\t</div>\n\t<div class=\"so-drawer__footer\">\n\t\t<ng-content select=\"[slot=footer]\" />\n\t</div>\n\t<!-- Крестик — `@if`, а не `rendered` кнопки: тема опирается на его отсутствие в DOM. -->\n\t@if (state()['closable']) {\n\t\t<button\n\t\t\tso-button\n\t\t\tembedded=\"drawer.close\"\n\t\t\ttype=\"button\"\n\t\t\tclass=\"so-drawer__close\"\n\t\t\t[so-attributes]=\"state()['closeAria']\"\n\t\t\t(click)=\"instance()?.requestClose('button')\"\n\t\t>\n\t\t\t@if (slot('close-icon'); as icon) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t} @else {\n\t\t\t\t<svg so-icon embedded=\"drawer.close-icon\" so-role-icon=\"close\"></svg>\n\t\t\t}\n\t\t</button>\n\t}\n}\n<!-- Шаблоны слотов — в слив в конце, вне ветки: иначе их якоря легли бы в тело панели. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/toasts/manifest'\n\nexport const ToastsInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'target',\n\t'placement',\n\t'layout',\n\t'max',\n\t'duration',\n\t'engine',\n\t'items',\n\t'trackBy',\n] as const\nexport const ToastsOutputNames = [\n\t'soChangeZIndex',\n\t'soChangeTarget',\n\t'soChangePlacement',\n\t'soChangeLayout',\n\t'soChangeMax',\n\t'soChangeDuration',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soItemClose',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'targetChange',\n\t'placementChange',\n\t'layoutChange',\n\t'maxChange',\n\t'durationChange',\n\t'itemsChange',\n\t'trackByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'target',\n\t\t'placement',\n\t\t'layout',\n\t\t'max',\n\t\t'duration',\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t],\n\toutputs: [...ToastsOutputNames],\n})\nexport abstract class TToastsSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ToastsInputNames, ToastsOutputNames, setup, spec)\n\t}\n\tprivate readonly _rootRef = viewChild<unknown, ElementRef<Element>>('root', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'root') return this._rootRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare target: TInputValue<typeof descriptor, 'target'>\n\tdeclare placement: TInputValue<typeof descriptor, 'placement'>\n\tdeclare layout: TInputValue<typeof descriptor, 'layout'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare duration: TInputValue<typeof descriptor, 'duration'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeZIndex: TOutputEmitter<typeof descriptor, 'change:zIndex'>\n\tdeclare readonly soChangeTarget: TOutputEmitter<typeof descriptor, 'change:target'>\n\tdeclare readonly soChangePlacement: TOutputEmitter<typeof descriptor, 'change:placement'>\n\tdeclare readonly soChangeLayout: TOutputEmitter<typeof descriptor, 'change:layout'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeDuration: TOutputEmitter<typeof descriptor, 'change:duration'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soItemClose: TOutputEmitter<typeof facade, 'item:close'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly targetChange: TModelEmitter<typeof descriptor, 'target'>\n\tdeclare readonly placementChange: TModelEmitter<typeof descriptor, 'placement'>\n\tdeclare readonly layoutChange: TModelEmitter<typeof descriptor, 'layout'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly durationChange: TModelEmitter<typeof descriptor, 'duration'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n}\n","import {\n\tTCollectionExtension,\n\tTToastsApiExtension,\n\tToastsCollectionDescriptor,\n\tToastsDescriptor,\n} from '@soxa-ui/setup'\nimport type { IToasts, IToastsProps, TToastsCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Toasts: лифт опускает в слой менеджера движок (тостам региона) и API тостов (`useToasts()`). */\nexport function setupToasts(\n\tctrl: IToasts | undefined,\n\tprops: object,\n\tengine: IToastsProps['engine'],\n): TBinding<IToasts, TToastsCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(ToastsDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tToastsCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t)\n\t\t.use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\t\t.use(TToastsApiExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/toasts/item/manifest'\n\nexport const ToastsItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'text',\n\t'description',\n\t'type',\n\t'loading',\n\t'closable',\n\t'duration',\n\t'alert',\n\t'render',\n] as const\nexport const ToastsItemOutputNames = [\n\t'soChangeText',\n\t'soChangeDescription',\n\t'soChangeType',\n\t'soChangeLoading',\n\t'soChangeClosable',\n\t'soChangeDuration',\n\t'soChangeAlert',\n\t'soChangeRender',\n\t'soChangeOrder',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'textChange',\n\t'descriptionChange',\n\t'typeChange',\n\t'loadingChange',\n\t'closableChange',\n\t'durationChange',\n\t'alertChange',\n\t'renderChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'text',\n\t\t'description',\n\t\t'type',\n\t\t{ name: 'loading', transform: booleanInput },\n\t\t{ name: 'closable', transform: booleanInput },\n\t\t'duration',\n\t\t{ name: 'alert', transform: booleanInput },\n\t\t'render',\n\t],\n\toutputs: [...ToastsItemOutputNames],\n})\nexport abstract class TToastsItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ToastsItemInputNames, ToastsItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare description: TInputValue<typeof descriptor, 'description'>\n\tdeclare type: TInputValue<typeof descriptor, 'type'>\n\tdeclare loading: TInputValue<typeof descriptor, 'loading'>\n\tdeclare closable: TInputValue<typeof descriptor, 'closable'>\n\tdeclare duration: TInputValue<typeof descriptor, 'duration'>\n\tdeclare alert: TInputValue<typeof descriptor, 'alert'>\n\tdeclare render: TInputValue<typeof descriptor, 'render'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeDescription: TOutputEmitter<typeof descriptor, 'change:description'>\n\tdeclare readonly soChangeType: TOutputEmitter<typeof descriptor, 'change:type'>\n\tdeclare readonly soChangeLoading: TOutputEmitter<typeof descriptor, 'change:loading'>\n\tdeclare readonly soChangeClosable: TOutputEmitter<typeof descriptor, 'change:closable'>\n\tdeclare readonly soChangeDuration: TOutputEmitter<typeof descriptor, 'change:duration'>\n\tdeclare readonly soChangeAlert: TOutputEmitter<typeof descriptor, 'change:alert'>\n\tdeclare readonly soChangeRender: TOutputEmitter<typeof descriptor, 'change:render'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soChangeOrder: TOutputEmitter<typeof facade, 'change:order'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly descriptionChange: TModelEmitter<typeof descriptor, 'description'>\n\tdeclare readonly typeChange: TModelEmitter<typeof descriptor, 'type'>\n\tdeclare readonly loadingChange: TModelEmitter<typeof descriptor, 'loading'>\n\tdeclare readonly closableChange: TModelEmitter<typeof descriptor, 'closable'>\n\tdeclare readonly durationChange: TModelEmitter<typeof descriptor, 'duration'>\n\tdeclare readonly alertChange: TModelEmitter<typeof descriptor, 'alert'>\n\tdeclare readonly renderChange: TModelEmitter<typeof descriptor, 'render'>\n}\n","import {\n\tTCollectionItemExtension,\n\tToastsCollectionItemDescriptor,\n\tToastsItemDescriptor,\n} from '@soxa-ui/setup'\nimport type { IToastsItem, TToastsItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Тост: свой контекст и фасада; движок и регистратор расширение берёт лифтом из слоя менеджера. */\nexport function setupToastsItem(\n\tctrl: IToastsItem | undefined,\n\tprops: object,\n): TBinding<IToastsItem, TToastsItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(ToastsItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tToastsCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common'\nimport type { IToastsItem, TToastsItemType } from '@soxa-ui/core'\nimport type { TIconRole } from '@soxa-ui/setup'\nimport {\n\tAttributesDirective,\n\tRoleIconDirective,\n\tisToastRender,\n\ttype TToastRender,\n} from '../../../adapter'\nimport { TButtonComponent } from '../../button'\nimport { TIconComponent } from '../../icon'\nimport { TProgressSpinnerComponent } from '../../progress-spinner'\nimport { TToastsItemSurface } from '../../../generated/toasts-item.metadata'\nimport { setupToastsItem } from './setup.component'\n\n/** Значок вида — по роли: в режиме принудительных цветов вид различает только глиф. */\nconst TYPE_ROLES = {\n\tinfo: 'info',\n\tsuccess: 'success',\n\twarning: 'warning',\n\terror: 'error',\n} satisfies Record<TToastsItemType, TIconRole>\n\n/** Значок обычного сообщения — тоста без вида. */\nconst NOTIFICATION_ROLE: TIconRole = 'notification'\n\n/** Тост — внутренняя часть менеджера: рисует его только регион `TToastsComponent`. */\n@Component({\n\tselector: 'li[so-toasts-item], [so-toasts-item]',\n\timports: [\n\t\tNgComponentOutlet,\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t\tTProgressSpinnerComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './toasts-item.component.html',\n})\nexport class TToastsItemComponent extends TToastsItemSurface<IToastsItem> {\n\tconstructor() {\n\t\tsuper(setupToastsItem, { strategy: 'host', order: '--so-toasts-depth' })\n\t}\n\n\t/** Роль значка вида; у обычного сообщения — своя. */\n\tprotected typeRole(): TIconRole {\n\t\tconst type = this.state()['type']\n\n\t\treturn type ? TYPE_ROLES[type] : NOTIFICATION_ROLE\n\t}\n\n\t/** Своё содержимое тоста, когда это компонент Angular (`isToastRender`); иначе его нет. */\n\tprotected contentComponent(): TToastRender | null {\n\t\tconst render: unknown = this.state()['render']\n\n\t\treturn isToastRender(render) ? render : null\n\t}\n}\n","<!--\n\tПлашка — отдельный узел, а не корень: место растёт и схлопывается переходом\n\tвысоты без замеров, а плашка своего размера не меняет.\n-->\n<div class=\"so-toasts-item__card\">\n\t<!-- Коробка значка — декор: что случилось, говорит текст, поэтому она скрыта от скринридера. -->\n\t<span class=\"so-toasts-item__icon\" aria-hidden=\"true\">\n\t\t@if (state()['loading']) {\n\t\t\t<span so-progress-spinner embedded=\"toasts.spinner\" indeterminate></span>\n\t\t} @else if (slot('icon'); as icon) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"icon\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ type: state()['type'] }\"\n\t\t\t/>\n\t\t} @else {\n\t\t\t<svg so-icon embedded=\"toasts.icon\" [so-role-icon]=\"typeRole()\"></svg>\n\t\t}\n\t</span>\n\t<!-- Пустую часть тема сворачивает по `:empty`. -->\n\t<div class=\"so-toasts-item__body\">\n\t\t<div class=\"so-toasts-item__text\">\n\t\t\t@if (slot('default'); as heading) {\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"heading\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ text: state()['text'] ?? '' }\"\n\t\t\t\t/>\n\t\t\t} @else {\n\t\t\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t\t\t}\n\t\t</div>\n\t\t<div class=\"so-toasts-item__description\" [textContent]=\"state()['description']\"></div>\n\t\t<div class=\"so-toasts-item__content\">\n\t\t\t@if (slot('content'); as content) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"content\" />\n\t\t\t} @else if (contentComponent(); as component) {\n\t\t\t\t<ng-container *ngComponentOutlet=\"component; inputs: { toast: instance() }\" />\n\t\t\t}\n\t\t</div>\n\t</div>\n\t<!-- Крестик — последним в DOM: последняя остановка Tab в тосте. -->\n\t@if (state()['closable']) {\n\t\t<button\n\t\t\tso-button\n\t\t\tembedded=\"toasts.close\"\n\t\t\ttype=\"button\"\n\t\t\tclass=\"so-toasts-item__close\"\n\t\t\t[so-attributes]=\"state()['closeAria']\"\n\t\t\t(click)=\"instance()?.close()\"\n\t\t>\n\t\t\t@if (slot('close-icon'); as icon) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t} @else {\n\t\t\t\t<svg so-icon embedded=\"toasts.close-icon\" so-role-icon=\"close\"></svg>\n\t\t\t}\n\t\t</button>\n\t}\n</div>\n<ng-content select=\"ng-template[slot]\" />\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IToasts } from '@soxa-ui/core'\nimport { SlotDirective, provideElevator } from '../../adapter'\nimport { TToastsItemComponent } from './item'\nimport { TToastsSurface } from '../../generated/toasts.metadata'\nimport { setupToasts } from './setup.component'\n\n/**\n * Менеджер тостов вокруг приложения: хост — обёртка без коробки, корень — регион в слое.\n * AGENTS.md (Angular), «Корень внутри обёртки в слое — регион тостов».\n */\n@Component({\n\tselector: 'div[so-toasts], [so-toasts]',\n\timports: [NgTemplateOutlet, SlotDirective, TToastsItemComponent],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './toasts.component.html',\n})\nexport class TToastsComponent extends TToastsSurface<IToasts> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupToasts(ctrl, inputs, this.engine), {\n\t\t\tstrategy: 'wrapped',\n\t\t\tteleport: { target: 'target' },\n\t\t})\n\t}\n}\n","<!-- Приложение — вне ветки региона: оно рисуется и без региона, и на сервере. -->\n<ng-content />\n<!--\n\tРегион есть, только пока слой на месте (`placed()`): на сервере, до первой\n\tотрисовки и без цели его нет. На месте он стоит всегда: живая область — до первого тоста.\n-->\n@if (placed()) {\n\t<section #root>\n\t\t<!--\n\t\t\tСлоты тоста — только заданные, шаблонами в его слив (`ngProjectAs`):\n\t\t\tв основной проекции они сняли бы запасной текст.\n\t\t-->\n\t\t<ol class=\"so-toasts__list\">\n\t\t\t@for (item of state()['shown'] ?? []; track item.uid) {\n\t\t\t\t<li so-toasts-item [ctrl]=\"item\">\n\t\t\t\t\t@if (slot('item-icon'); as icon) {\n\t\t\t\t\t\t<ng-template slot=\"icon\" ngProjectAs=\"ng-template[slot]\" let-type=\"type\">\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"icon\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, type }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t}\n\t\t\t\t\t@if (slot('item'); as heading) {\n\t\t\t\t\t\t<ng-template slot=\"default\" ngProjectAs=\"ng-template[slot]\" let-text=\"text\">\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"heading\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t}\n\t\t\t\t\t@if (slot('item-content'); as content) {\n\t\t\t\t\t\t<ng-template slot=\"content\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t}\n\t\t\t\t\t@if (slot('item-close-icon'); as closeIcon) {\n\t\t\t\t\t\t<ng-template slot=\"close-icon\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"closeIcon\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t}\n\t\t\t\t</li>\n\t\t\t}\n\t\t</ol>\n\t</section>\n}\n<!-- Шаблоны слотов менеджера — в слив в конце, вне ветки: иначе их якоря легли бы в приложение. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/input/manifest'\n\nexport const InputInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'clearable',\n\t'placeholder',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n] as const\nexport const InputOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soChangeClearable',\n\t'soChangePlaceholder',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'clearableChange',\n\t'placeholderChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t{ name: 'clearable', transform: booleanInput },\n\t\t'placeholder',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t],\n\toutputs: [...InputOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TInputSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(InputInputNames, InputOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare clearable: TInputValue<typeof descriptor, 'clearable'>\n\tdeclare placeholder: TInputValue<typeof descriptor, 'placeholder'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soChangeClearable: TOutputEmitter<typeof descriptor, 'change:clearable'>\n\tdeclare readonly soChangePlaceholder: TOutputEmitter<typeof descriptor, 'change:placeholder'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly clearableChange: TModelEmitter<typeof descriptor, 'clearable'>\n\tdeclare readonly placeholderChange: TModelEmitter<typeof descriptor, 'placeholder'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import { InputDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { IInput } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Поле формы `Field` над полем связывает расширение `TFieldControlExtension`. */\nexport function setupInput(ctrl: IInput | undefined, props: object): TBinding<IInput> {\n\tconst adapter = createAngularAdapterContext(InputDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IInput } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tFieldTextDirective,\n\tRoleIconDirective,\n\tprovideElevator,\n} from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TIconComponent } from '../icon'\nimport { TInputSurface } from '../../generated/input.metadata'\nimport { setupInput } from './setup.component'\n\n/**\n * Текстовое поле: корень — элемент потребителя, `<input>` внутри, слоты — по сторонам.\n * AGENTS.md (Angular), «Поле: атрибуты потребителя делятся между корнем и `<input>`».\n */\n@Component({\n\tselector: 'div[so-input], [so-input]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tFieldTextDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './input.component.html',\n})\nexport class TInputComponent extends TInputSurface<IInput> {\n\tconstructor() {\n\t\tsuper(setupInput, { strategy: 'host', sets: ['attrs', 'dataset'], control: true })\n\t}\n\n\t/** Всплытие гасится: select-only Select открывает панель по клику поля. */\n\tprotected clearClick(event: Event): void {\n\t\tevent.stopPropagation()\n\t\tthis.instance()?.clear()\n\t}\n}\n","<!-- `#control` — сюда уходит написанное потребителем на корне, кроме класса и стиля. -->\n@if (slot('leading'); as leading) {\n\t<div class=\"so-input__leading\">\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t[ngTemplateOutletContext]=\"{ ctrl: instance() }\"\n\t\t/>\n\t</div>\n}\n<input\n\t#control\n\ttype=\"text\"\n\t[so-field-text]=\"state()['value']\"\n\t[attr.id]=\"state()['id'] ?? null\"\n\t[attr.name]=\"state()['name'] ?? null\"\n\t[attr.placeholder]=\"state()['placeholder'] ?? null\"\n\t[disabled]=\"state()['disabled'] === true\"\n\t[readOnly]=\"state()['readonly'] === true\"\n\t[required]=\"state()['required'] === true\"\n\t[so-attributes]=\"state()['aria']\"\n/>\n@if (state()['clearable'] || slot('clear') || slot('trailing')) {\n\t<div class=\"so-input__trailing\">\n\t\t<!-- Слот `clear` заменяет встроенную кнопку целиком. -->\n\t\t@if (slot('clear'); as clear) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"clear\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ clear: instance()?.clear }\"\n\t\t\t/>\n\t\t} @else if (state()['clearable']) {\n\t\t\t<button\n\t\t\t\tso-button\n\t\t\t\tembedded=\"input.clear\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"so-input__clear\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t[disabled]=\"state()['disabled']\"\n\t\t\t\t[so-attributes]=\"state()['clearAria']\"\n\t\t\t\t(click)=\"clearClick($event)\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\tso-icon\n\t\t\t\t\tembedded=\"input.clear-icon\"\n\t\t\t\t\tso-role-icon=\"close\"\n\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t></svg>\n\t\t\t</button>\n\t\t}\n\t\t@if (slot('trailing'); as trailing) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ ctrl: instance() }\"\n\t\t\t/>\n\t\t}\n\t</div>\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/number-input/manifest'\n\nexport const NumberInputInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'clearable',\n\t'min',\n\t'max',\n\t'step',\n\t'largeStep',\n\t'formatOptions',\n\t'placeholder',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n] as const\nexport const NumberInputOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soChangeClearable',\n\t'soCommit',\n\t'soChangeMin',\n\t'soChangeMax',\n\t'soChangeStep',\n\t'soChangeLargeStep',\n\t'soChangeFormatOptions',\n\t'soChangePlaceholder',\n\t'soChangeLocale',\n\t'soChangeText',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'clearableChange',\n\t'minChange',\n\t'maxChange',\n\t'stepChange',\n\t'largeStepChange',\n\t'formatOptionsChange',\n\t'placeholderChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t{ name: 'clearable', transform: booleanInput },\n\t\t'min',\n\t\t'max',\n\t\t'step',\n\t\t'largeStep',\n\t\t'formatOptions',\n\t\t'placeholder',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t],\n\toutputs: [...NumberInputOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TNumberInputSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(NumberInputInputNames, NumberInputOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare clearable: TInputValue<typeof descriptor, 'clearable'>\n\tdeclare min: TInputValue<typeof descriptor, 'min'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare step: TInputValue<typeof descriptor, 'step'>\n\tdeclare largeStep: TInputValue<typeof descriptor, 'largeStep'>\n\tdeclare formatOptions: TInputValue<typeof descriptor, 'formatOptions'>\n\tdeclare placeholder: TInputValue<typeof descriptor, 'placeholder'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soChangeClearable: TOutputEmitter<typeof descriptor, 'change:clearable'>\n\tdeclare readonly soCommit: TOutputEmitter<typeof descriptor, 'commit'>\n\tdeclare readonly soChangeMin: TOutputEmitter<typeof descriptor, 'change:min'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeStep: TOutputEmitter<typeof descriptor, 'change:step'>\n\tdeclare readonly soChangeLargeStep: TOutputEmitter<typeof descriptor, 'change:largeStep'>\n\tdeclare readonly soChangeFormatOptions: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:formatOptions'\n\t>\n\tdeclare readonly soChangePlaceholder: TOutputEmitter<typeof descriptor, 'change:placeholder'>\n\tdeclare readonly soChangeLocale: TOutputEmitter<typeof descriptor, 'change:locale'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly clearableChange: TModelEmitter<typeof descriptor, 'clearable'>\n\tdeclare readonly minChange: TModelEmitter<typeof descriptor, 'min'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly stepChange: TModelEmitter<typeof descriptor, 'step'>\n\tdeclare readonly largeStepChange: TModelEmitter<typeof descriptor, 'largeStep'>\n\tdeclare readonly formatOptionsChange: TModelEmitter<typeof descriptor, 'formatOptions'>\n\tdeclare readonly placeholderChange: TModelEmitter<typeof descriptor, 'placeholder'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import { NumberInputDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { INumberInput } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Ошибку, `id` и ссылки на части поле берёт от `Field` над собой (`TFieldControlExtension`). */\nexport function setupNumberInput(\n\tctrl: INumberInput | undefined,\n\tprops: object,\n): TBinding<INumberInput> {\n\tconst adapter = createAngularAdapterContext(NumberInputDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { INumberInput } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tFieldTextDirective,\n\tRoleIconDirective,\n\tTextPipe,\n\tprovideElevator,\n} from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TIconComponent } from '../icon'\nimport { TNumberInputSurface } from '../../generated/number-input.metadata'\nimport { setupNumberInput } from './setup.component'\n\n/**\n * Поле числа: ввод, кнопки шага и скрытое поле формы с числом. Написанное на корне доходит\n * до ввода: AGENTS.md (Angular), «Поле: атрибуты потребителя делятся между корнем и `<input>`».\n */\n@Component({\n\tselector: 'div[so-number-input], [so-number-input]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tFieldTextDirective,\n\t\tRoleIconDirective,\n\t\tTextPipe,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './number-input.component.html',\n})\nexport class TNumberInputComponent extends TNumberInputSurface<INumberInput> {\n\tconstructor() {\n\t\tsuper(setupNumberInput, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n\n\t/** Всплытие клика гасится, как `@click.stop` у Vue. */\n\tprotected clearClick(event: Event): void {\n\t\tevent.stopPropagation()\n\t\tthis.instance()?.clear()\n\t}\n}\n","@if (slot('leading'); as leading) {\n\t<div class=\"so-number-input__leading\">\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t[ngTemplateOutletContext]=\"{ ctrl: instance() }\"\n\t\t/>\n\t</div>\n}\n<!-- Текст — буфер правки ядра (`text`), а не `value`; в форму число уходит скрытым полем. -->\n<input\n\t#control\n\ttype=\"text\"\n\tclass=\"so-number-input__input\"\n\tautocomplete=\"off\"\n\tspellcheck=\"false\"\n\t[so-field-text]=\"state()['text']\"\n\t[attr.id]=\"state()['id'] ?? null\"\n\t[attr.placeholder]=\"state()['placeholder'] ?? null\"\n\t[disabled]=\"state()['disabled'] === true\"\n\t[readOnly]=\"state()['readonly'] === true\"\n\t[required]=\"state()['required'] === true\"\n\t[so-attributes]=\"{ ...state()['inputAttrs'], ...state()['aria'], ...state()['inputAria'] }\"\n/>\n@if (state()['clearable'] || slot('clear') || slot('trailing')) {\n\t<div class=\"so-number-input__trailing\">\n\t\t@if (slot('clear'); as clear) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"clear\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ clear: instance()?.clear }\"\n\t\t\t/>\n\t\t} @else if (state()['clearable']) {\n\t\t\t<button\n\t\t\t\tso-button\n\t\t\t\tembedded=\"number-input.clear\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"so-number-input__clear\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t[disabled]=\"state()['disabled']\"\n\t\t\t\t[so-attributes]=\"state()['clearAria']\"\n\t\t\t\t(click)=\"clearClick($event)\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\tso-icon\n\t\t\t\t\tembedded=\"number-input.clear-icon\"\n\t\t\t\t\tso-role-icon=\"close\"\n\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t></svg>\n\t\t\t</button>\n\t\t}\n\t\t@if (slot('trailing'); as trailing) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ ctrl: instance() }\"\n\t\t\t/>\n\t\t}\n\t</div>\n}\n<!-- Обработчиков у кнопок шага нет: их находит по классам плагин кнопок. -->\n<div class=\"so-number-input__stepper\">\n\t<button\n\t\tso-button\n\t\tembedded=\"number-input.decrement\"\n\t\ttype=\"button\"\n\t\tclass=\"so-number-input__decrement\"\n\t\t[size]=\"state()['size']\"\n\t\t[disabled]=\"state()['decrementDisabled']\"\n\t\t[so-attributes]=\"{ ...state()['decrementAria'], ...state()['decrementDataset'] }\"\n\t>\n\t\t@if (slot('decrement-icon'); as icon) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t} @else {\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"number-input.decrement-icon\"\n\t\t\t\tso-role-icon=\"minus\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t}\n\t</button>\n\t<button\n\t\tso-button\n\t\tembedded=\"number-input.increment\"\n\t\ttype=\"button\"\n\t\tclass=\"so-number-input__increment\"\n\t\t[size]=\"state()['size']\"\n\t\t[disabled]=\"state()['incrementDisabled']\"\n\t\t[so-attributes]=\"{ ...state()['incrementAria'], ...state()['incrementDataset'] }\"\n\t>\n\t\t@if (slot('increment-icon'); as icon) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t} @else {\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"number-input.increment-icon\"\n\t\t\t\tso-role-icon=\"plus\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t}\n\t</button>\n</div>\n<!-- Значение для формы — число строкой («1234.5»); выключенное поле в форму не уходит. -->\n<input\n\ttype=\"hidden\"\n\t[attr.name]=\"state()['name'] ?? null\"\n\t[value]=\"state()['value'] | soText\"\n\t[disabled]=\"state()['disabled'] === true\"\n/>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/textarea/manifest'\n\nexport const TextareaInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'placeholder',\n\t'rows',\n\t'maxRows',\n\t'maxlength',\n\t'autoresize',\n\t'counter',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n] as const\nexport const TextareaOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soChangePlaceholder',\n\t'soChangeRows',\n\t'soChangeMaxRows',\n\t'soChangeMaxlength',\n\t'soChangeAutoresize',\n\t'soChangeCounter',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'placeholderChange',\n\t'rowsChange',\n\t'maxRowsChange',\n\t'maxlengthChange',\n\t'autoresizeChange',\n\t'counterChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t'placeholder',\n\t\t'rows',\n\t\t'maxRows',\n\t\t'maxlength',\n\t\t{ name: 'autoresize', transform: booleanInput },\n\t\t{ name: 'counter', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t],\n\toutputs: [...TextareaOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TTextareaSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TextareaInputNames, TextareaOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare placeholder: TInputValue<typeof descriptor, 'placeholder'>\n\tdeclare rows: TInputValue<typeof descriptor, 'rows'>\n\tdeclare maxRows: TInputValue<typeof descriptor, 'maxRows'>\n\tdeclare maxlength: TInputValue<typeof descriptor, 'maxlength'>\n\tdeclare autoresize: TInputValue<typeof descriptor, 'autoresize'>\n\tdeclare counter: TInputValue<typeof descriptor, 'counter'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soChangePlaceholder: TOutputEmitter<typeof descriptor, 'change:placeholder'>\n\tdeclare readonly soChangeRows: TOutputEmitter<typeof descriptor, 'change:rows'>\n\tdeclare readonly soChangeMaxRows: TOutputEmitter<typeof descriptor, 'change:maxRows'>\n\tdeclare readonly soChangeMaxlength: TOutputEmitter<typeof descriptor, 'change:maxlength'>\n\tdeclare readonly soChangeAutoresize: TOutputEmitter<typeof descriptor, 'change:autoresize'>\n\tdeclare readonly soChangeCounter: TOutputEmitter<typeof descriptor, 'change:counter'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly placeholderChange: TModelEmitter<typeof descriptor, 'placeholder'>\n\tdeclare readonly rowsChange: TModelEmitter<typeof descriptor, 'rows'>\n\tdeclare readonly maxRowsChange: TModelEmitter<typeof descriptor, 'maxRows'>\n\tdeclare readonly maxlengthChange: TModelEmitter<typeof descriptor, 'maxlength'>\n\tdeclare readonly autoresizeChange: TModelEmitter<typeof descriptor, 'autoresize'>\n\tdeclare readonly counterChange: TModelEmitter<typeof descriptor, 'counter'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import { TextareaDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { ITextarea } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Поле формы `Field` над полем связывает расширение `TFieldControlExtension`. */\nexport function setupTextarea(ctrl: ITextarea | undefined, props: object): TBinding<ITextarea> {\n\tconst adapter = createAngularAdapterContext(TextareaDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { ITextarea } from '@soxa-ui/core'\nimport { AttributesDirective, FieldTextDirective, provideElevator } from '../../adapter'\nimport { TTextareaSurface } from '../../generated/textarea.metadata'\nimport { setupTextarea } from './setup.component'\n\n/**\n * Многострочное поле: `<textarea>` внутри корня, под ним — счётчик символов.\n * На саму `<textarea>` компонент не встаёт: шаблон в поле с текстом не отрисуется.\n * AGENTS.md (Angular), «Поле: атрибуты потребителя делятся между корнем и `<input>`».\n */\n@Component({\n\tselector: 'div[so-textarea], [so-textarea]',\n\timports: [AttributesDirective, FieldTextDirective],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './textarea.component.html',\n})\nexport class TTextareaComponent extends TTextareaSurface<ITextarea> {\n\tconstructor() {\n\t\tsuper(setupTextarea, { strategy: 'host', sets: ['attrs', 'dataset'], control: true })\n\t}\n}\n","<!-- `#control` — сюда уходит написанное потребителем на корне, кроме класса и стиля. -->\n<textarea\n\t#control\n\t[so-field-text]=\"state()['value']\"\n\t[attr.id]=\"state()['id'] ?? null\"\n\t[attr.name]=\"state()['name'] ?? null\"\n\t[attr.rows]=\"state()['rows'] ?? null\"\n\t[attr.maxlength]=\"state()['maxlength'] ?? null\"\n\t[attr.placeholder]=\"state()['placeholder'] ?? null\"\n\t[disabled]=\"state()['disabled'] === true\"\n\t[readOnly]=\"state()['readonly'] === true\"\n\t[required]=\"state()['required'] === true\"\n\t[so-attributes]=\"state()['aria']\"\n></textarea>\n<!--\n\tТекст — `textContent`: интерполяцию Prettier переносит на свою строку, и отступ попал бы\n\tв текст. Поле ссылается на счётчик `aria-describedby`.\n-->\n@if (state()['counter']) {\n\t<div\n\t\tclass=\"so-textarea__counter\"\n\t\t[so-attributes]=\"state()['counterAria']\"\n\t\t[textContent]=\"state()['names_counter']\"\n\t></div>\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/date-input/manifest'\n\nexport const DateInputInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'clearable',\n\t'min',\n\t'max',\n\t'unavailable',\n\t'kind',\n\t'timePrecision',\n\t'validate',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n] as const\nexport const DateInputOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soChangeClearable',\n\t'soChangeMin',\n\t'soChangeMax',\n\t'soChangeUnavailable',\n\t'soChangeLocale',\n\t'soChangeKind',\n\t'soChangeTimePrecision',\n\t'soChangeValidate',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'clearableChange',\n\t'minChange',\n\t'maxChange',\n\t'unavailableChange',\n\t'kindChange',\n\t'timePrecisionChange',\n\t'validateChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t{ name: 'clearable', transform: booleanInput },\n\t\t'min',\n\t\t'max',\n\t\t'unavailable',\n\t\t'kind',\n\t\t'timePrecision',\n\t\t{ name: 'validate', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t],\n\toutputs: [...DateInputOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TDateInputSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(DateInputInputNames, DateInputOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare clearable: TInputValue<typeof descriptor, 'clearable'>\n\tdeclare min: TInputValue<typeof descriptor, 'min'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare unavailable: TInputValue<typeof descriptor, 'unavailable'>\n\tdeclare kind: TInputValue<typeof descriptor, 'kind'>\n\tdeclare timePrecision: TInputValue<typeof descriptor, 'timePrecision'>\n\tdeclare validate: TInputValue<typeof descriptor, 'validate'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soChangeClearable: TOutputEmitter<typeof descriptor, 'change:clearable'>\n\tdeclare readonly soChangeMin: TOutputEmitter<typeof descriptor, 'change:min'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeUnavailable: TOutputEmitter<typeof descriptor, 'change:unavailable'>\n\tdeclare readonly soChangeLocale: TOutputEmitter<typeof descriptor, 'change:locale'>\n\tdeclare readonly soChangeKind: TOutputEmitter<typeof descriptor, 'change:kind'>\n\tdeclare readonly soChangeTimePrecision: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:timePrecision'\n\t>\n\tdeclare readonly soChangeValidate: TOutputEmitter<typeof descriptor, 'change:validate'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly clearableChange: TModelEmitter<typeof descriptor, 'clearable'>\n\tdeclare readonly minChange: TModelEmitter<typeof descriptor, 'min'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly unavailableChange: TModelEmitter<typeof descriptor, 'unavailable'>\n\tdeclare readonly kindChange: TModelEmitter<typeof descriptor, 'kind'>\n\tdeclare readonly timePrecisionChange: TModelEmitter<typeof descriptor, 'timePrecision'>\n\tdeclare readonly validateChange: TModelEmitter<typeof descriptor, 'validate'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import { DateInputDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { IDateInput } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Поле формы `Field` над полем связывает расширение `TFieldControlExtension`. */\nexport function setupDateInput(ctrl: IDateInput | undefined, props: object): TBinding<IDateInput> {\n\tconst adapter = createAngularAdapterContext(DateInputDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IDateInput } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective, provideElevator } from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TIconComponent } from '../icon'\nimport { TDateInputSurface } from '../../generated/date-input.metadata'\nimport { setupDateInput } from './setup.component'\n\n/**\n * Поле даты из частей по формату локали; корень — элемент потребителя, на нём и `id` поля.\n * AGENTS.md (Angular), «Даты — поле из частей, сетка из `td`, поле с календарём в панели».\n */\n@Component({\n\tselector: 'div[so-date-input], [so-date-input]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './date-input.component.html',\n})\nexport class TDateInputComponent extends TDateInputSurface<IDateInput> {\n\tconstructor() {\n\t\tsuper(setupDateInput, { strategy: 'host', id: 'id' })\n\t}\n\n\t/** Всплытие гасится: клик очистки не доходит до предка, который слушает поле. */\n\tprotected clearClick(event: Event): void {\n\t\tevent.stopPropagation()\n\t\tthis.instance()?.clear()\n\t}\n}\n","@if (slot('leading'); as leading) {\n\t<div class=\"so-date-input__leading\">\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t[ngTemplateOutletContext]=\"{ ctrl: instance() }\"\n\t\t/>\n\t</div>\n}\n<!--\n\tКаждая часть — своя коробка: иначе Chrome переносит начало протяжки в соседний текст.\n\tНаборы части — одним объектом: директива на элементе одна. Текст — `textContent`:\n\tинтерполяцию Prettier переносит на свою строку, и отступ попал бы в текст.\n-->\n<span class=\"so-date-input__segments\" [so-attributes]=\"state()['segmentsAttrs']\">\n\t@for (segment of state()['segments'] ?? []; track segment.key) {\n\t\t@if (segment.type === 'literal') {\n\t\t\t<span\n\t\t\t\tclass=\"so-date-input__literal\"\n\t\t\t\t[so-attributes]=\"segment.aria\"\n\t\t\t\t[textContent]=\"segment.text\"\n\t\t\t></span>\n\t\t} @else {\n\t\t\t<span\n\t\t\t\tclass=\"so-date-input__segment\"\n\t\t\t\t[so-attributes]=\"{ ...segment.attrs, ...segment.aria, ...segment.dataset }\"\n\t\t\t\t[textContent]=\"segment.text\"\n\t\t\t></span>\n\t\t}\n\t}\n</span>\n@if (state()['clearable'] || slot('clear') || slot('trailing')) {\n\t<div class=\"so-date-input__trailing\">\n\t\t<!-- Слот `clear` заменяет встроенную кнопку целиком. -->\n\t\t@if (slot('clear'); as clear) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"clear\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ clear: instance()?.clear }\"\n\t\t\t/>\n\t\t} @else if (state()['clearable']) {\n\t\t\t<button\n\t\t\t\tso-button\n\t\t\t\tembedded=\"date-input.clear\"\n\t\t\t\ttype=\"button\"\n\t\t\t\tclass=\"so-date-input__clear\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t[disabled]=\"state()['disabled']\"\n\t\t\t\t[so-attributes]=\"state()['clearAria']\"\n\t\t\t\t(click)=\"clearClick($event)\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\tso-icon\n\t\t\t\t\tembedded=\"date-input.clear-icon\"\n\t\t\t\t\tso-role-icon=\"close\"\n\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t></svg>\n\t\t\t</button>\n\t\t}\n\t\t@if (slot('trailing'); as trailing) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ ctrl: instance() }\"\n\t\t\t/>\n\t\t}\n\t</div>\n}\n<!-- Значение для формы: дата строкой, пока не собрана целиком — пусто. -->\n<input\n\ttype=\"hidden\"\n\t[attr.name]=\"state()['name'] ?? null\"\n\t[value]=\"state()['value'] ?? ''\"\n\t[disabled]=\"state()['disabled'] === true\"\n/>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/check-box/manifest'\n\nexport const CheckBoxInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'indeterminate',\n\t'view',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n] as const\nexport const CheckBoxOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soChangeIndeterminate',\n\t'soChangeView',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'indeterminateChange',\n\t'viewChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t{ name: 'value', transform: booleanInput },\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t{ name: 'indeterminate', transform: booleanInput },\n\t\t'view',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t],\n\toutputs: [...CheckBoxOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TCheckBoxSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(CheckBoxInputNames, CheckBoxOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare indeterminate: TInputValue<typeof descriptor, 'indeterminate'>\n\tdeclare view: TInputValue<typeof descriptor, 'view'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soChangeIndeterminate: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:indeterminate'\n\t>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly indeterminateChange: TModelEmitter<typeof descriptor, 'indeterminate'>\n\tdeclare readonly viewChange: TModelEmitter<typeof descriptor, 'view'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import { CheckBoxDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { ICheckBox } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Поле формы `Field` над флажком связывает расширение `TFieldControlExtension`. */\nexport function setupCheckBox(ctrl: ICheckBox | undefined, props: object): TBinding<ICheckBox> {\n\tconst adapter = createAngularAdapterContext(CheckBoxDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ICheckBox } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective, provideElevator } from '../../adapter'\nimport { TCheckBoxSurface } from '../../generated/check-box.metadata'\nimport { setupCheckBox } from './setup.component'\n\n/**\n * Флажок: корень — элемент потребителя, нативный `<input type=\"checkbox\">` внутри.\n * AGENTS.md (Angular), «Поле: атрибуты потребителя делятся между корнем и `<input>`».\n */\n@Component({\n\tselector: 'span[so-check-box], [so-check-box]',\n\timports: [NgTemplateOutlet, AttributesDirective, RoleIconDirective],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './check-box.component.html',\n})\nexport class TCheckBoxComponent extends TCheckBoxSurface<ICheckBox> {\n\tconstructor() {\n\t\tsuper(setupCheckBox, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n}\n","<!-- `#control` — сюда уходит написанное потребителем на корне, кроме класса и стиля. -->\n<input\n\t#control\n\ttype=\"checkbox\"\n\t[checked]=\"state()['value'] === true\"\n\t[indeterminate]=\"state()['indeterminate'] === true\"\n\t[attr.id]=\"state()['id'] ?? null\"\n\t[attr.name]=\"state()['name'] ?? null\"\n\t[disabled]=\"state()['disabled'] === true\"\n\t[required]=\"state()['required'] === true\"\n\t[so-attributes]=\"state()['aria']\"\n/>\n<!--\n\tКоробка — декор: состояние сообщают нативные `checked` и `indeterminate`. Отметка —\n\t`<svg>`, а не компонент Icon: в таблице «выбрать все» их собирались бы тысячи.\n-->\n<span class=\"so-check-box__container\" aria-hidden=\"true\">\n\t@if (state()['indeterminate']) {\n\t\t@if (slot('indeterminate-icon'); as mark) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"mark\"\n\t\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\t\tvalue: state()['value'],\n\t\t\t\t\tindeterminate: true,\n\t\t\t\t}\"\n\t\t\t/>\n\t\t} @else {\n\t\t\t<svg class=\"so-check-box__mark\" so-role-icon=\"checkIndeterminate\"></svg>\n\t\t}\n\t} @else if (state()['value']) {\n\t\t@if (slot('icon'); as mark) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"mark\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ value: state()['value'], indeterminate: false }\"\n\t\t\t/>\n\t\t} @else {\n\t\t\t<svg class=\"so-check-box__mark\" so-role-icon=\"check\"></svg>\n\t\t}\n\t}\n</span>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/switch/manifest'\n\nexport const SwitchInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n] as const\nexport const SwitchOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t{ name: 'value', transform: booleanInput },\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t],\n\toutputs: [...SwitchOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TSwitchSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(SwitchInputNames, SwitchOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import { SwitchDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { ISwitch } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Поле формы `Field` над переключателем связывает расширение `TFieldControlExtension`. */\nexport function setupSwitch(ctrl: ISwitch | undefined, props: object): TBinding<ISwitch> {\n\tconst adapter = createAngularAdapterContext(SwitchDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ISwitch } from '@soxa-ui/core'\nimport { AttributesDirective, provideElevator } from '../../adapter'\nimport { TSwitchSurface } from '../../generated/switch.metadata'\nimport { setupSwitch } from './setup.component'\n\n/**\n * Переключатель: корень — элемент потребителя, нативный `<input type=\"checkbox\">` внутри.\n * AGENTS.md (Angular), «Поле: атрибуты потребителя делятся между корнем и `<input>`».\n */\n@Component({\n\tselector: 'span[so-switch], [so-switch]',\n\timports: [NgTemplateOutlet, AttributesDirective],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './switch.component.html',\n})\nexport class TSwitchComponent extends TSwitchSurface<ISwitch> {\n\tconstructor() {\n\t\tsuper(setupSwitch, { strategy: 'host', sets: ['attrs', 'dataset'], control: true })\n\t}\n}\n","<!-- `#control` — сюда уходит написанное потребителем на корне, кроме класса и стиля. -->\n<input\n\t#control\n\ttype=\"checkbox\"\n\t[checked]=\"state()['value'] === true\"\n\t[attr.id]=\"state()['id'] ?? null\"\n\t[attr.name]=\"state()['name'] ?? null\"\n\t[disabled]=\"state()['disabled'] === true\"\n\t[required]=\"state()['required'] === true\"\n\t[so-attributes]=\"state()['aria']\"\n/>\n<!-- Дорожка — декор: состояние сообщает нативный `checked`. -->\n<span class=\"so-switch__track\" aria-hidden=\"true\">\n\t<span class=\"so-switch__track--thumb\">\n\t\t@if (state()['value']) {\n\t\t\t@if (slot('on'); as on) {\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"on\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ value: state()['value'], ctrl: instance() }\"\n\t\t\t\t/>\n\t\t\t}\n\t\t} @else {\n\t\t\t@if (slot('off'); as off) {\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"off\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ value: state()['value'], ctrl: instance() }\"\n\t\t\t\t/>\n\t\t\t}\n\t\t}\n\t</span>\n</span>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/slider/manifest'\n\nexport const SliderInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'min',\n\t'max',\n\t'step',\n\t'largeStep',\n\t'orientation',\n\t'inverted',\n\t'origin',\n\t'marks',\n\t'minStepsBetweenThumbs',\n\t'thumbLabels',\n\t'snap',\n\t'snapRadius',\n\t'tooltip',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const SliderOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soCommit',\n\t'soChangeMin',\n\t'soChangeMax',\n\t'soChangeStep',\n\t'soChangeLargeStep',\n\t'soChangeOrientation',\n\t'soChangeInverted',\n\t'soChangeOrigin',\n\t'soChangeMarks',\n\t'soChangeMinStepsBetweenThumbs',\n\t'soChangeThumbLabels',\n\t'soChangeSnap',\n\t'soChangeSnapRadius',\n\t'soChangeTooltip',\n\t'soChangeDragging',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'minChange',\n\t'maxChange',\n\t'stepChange',\n\t'largeStepChange',\n\t'orientationChange',\n\t'invertedChange',\n\t'originChange',\n\t'marksChange',\n\t'minStepsBetweenThumbsChange',\n\t'thumbLabelsChange',\n\t'snapChange',\n\t'snapRadiusChange',\n\t'tooltipChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'min',\n\t\t'max',\n\t\t'step',\n\t\t'largeStep',\n\t\t'orientation',\n\t\t{ name: 'inverted', transform: booleanInput },\n\t\t'origin',\n\t\t'marks',\n\t\t'minStepsBetweenThumbs',\n\t\t'thumbLabels',\n\t\t'snap',\n\t\t'snapRadius',\n\t\t'tooltip',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...SliderOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TSliderSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(SliderInputNames, SliderOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare min: TInputValue<typeof descriptor, 'min'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare step: TInputValue<typeof descriptor, 'step'>\n\tdeclare largeStep: TInputValue<typeof descriptor, 'largeStep'>\n\tdeclare orientation: TInputValue<typeof descriptor, 'orientation'>\n\tdeclare inverted: TInputValue<typeof descriptor, 'inverted'>\n\tdeclare origin: TInputValue<typeof descriptor, 'origin'>\n\tdeclare marks: TInputValue<typeof descriptor, 'marks'>\n\tdeclare minStepsBetweenThumbs: TInputValue<typeof descriptor, 'minStepsBetweenThumbs'>\n\tdeclare thumbLabels: TInputValue<typeof descriptor, 'thumbLabels'>\n\tdeclare snap: TInputValue<typeof descriptor, 'snap'>\n\tdeclare snapRadius: TInputValue<typeof descriptor, 'snapRadius'>\n\tdeclare tooltip: TInputValue<typeof descriptor, 'tooltip'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soCommit: TOutputEmitter<typeof descriptor, 'commit'>\n\tdeclare readonly soChangeMin: TOutputEmitter<typeof descriptor, 'change:min'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeStep: TOutputEmitter<typeof descriptor, 'change:step'>\n\tdeclare readonly soChangeLargeStep: TOutputEmitter<typeof descriptor, 'change:largeStep'>\n\tdeclare readonly soChangeOrientation: TOutputEmitter<typeof descriptor, 'change:orientation'>\n\tdeclare readonly soChangeInverted: TOutputEmitter<typeof descriptor, 'change:inverted'>\n\tdeclare readonly soChangeOrigin: TOutputEmitter<typeof descriptor, 'change:origin'>\n\tdeclare readonly soChangeMarks: TOutputEmitter<typeof descriptor, 'change:marks'>\n\tdeclare readonly soChangeMinStepsBetweenThumbs: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:minStepsBetweenThumbs'\n\t>\n\tdeclare readonly soChangeThumbLabels: TOutputEmitter<typeof descriptor, 'change:thumbLabels'>\n\tdeclare readonly soChangeSnap: TOutputEmitter<typeof descriptor, 'change:snap'>\n\tdeclare readonly soChangeSnapRadius: TOutputEmitter<typeof descriptor, 'change:snapRadius'>\n\tdeclare readonly soChangeTooltip: TOutputEmitter<typeof descriptor, 'change:tooltip'>\n\tdeclare readonly soChangeDragging: TOutputEmitter<typeof descriptor, 'change:dragging'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly minChange: TModelEmitter<typeof descriptor, 'min'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly stepChange: TModelEmitter<typeof descriptor, 'step'>\n\tdeclare readonly largeStepChange: TModelEmitter<typeof descriptor, 'largeStep'>\n\tdeclare readonly orientationChange: TModelEmitter<typeof descriptor, 'orientation'>\n\tdeclare readonly invertedChange: TModelEmitter<typeof descriptor, 'inverted'>\n\tdeclare readonly originChange: TModelEmitter<typeof descriptor, 'origin'>\n\tdeclare readonly marksChange: TModelEmitter<typeof descriptor, 'marks'>\n\tdeclare readonly minStepsBetweenThumbsChange: TModelEmitter<\n\t\ttypeof descriptor,\n\t\t'minStepsBetweenThumbs'\n\t>\n\tdeclare readonly thumbLabelsChange: TModelEmitter<typeof descriptor, 'thumbLabels'>\n\tdeclare readonly snapChange: TModelEmitter<typeof descriptor, 'snap'>\n\tdeclare readonly snapRadiusChange: TModelEmitter<typeof descriptor, 'snapRadius'>\n\tdeclare readonly tooltipChange: TModelEmitter<typeof descriptor, 'tooltip'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { SliderDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { ISlider } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Поле формы `Field` над ползунком связывает расширение `TFieldControlExtension`. */\nexport function setupSlider(ctrl: ISlider | undefined, props: object): TBinding<ISlider> {\n\tconst adapter = createAngularAdapterContext(SliderDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ISlider } from '@soxa-ui/core'\nimport { AttributesDirective, FieldTextDirective, TextPipe, provideElevator } from '../../adapter'\nimport { TSliderSurface } from '../../generated/slider.metadata'\nimport { setupSlider } from './setup.component'\n\n/**\n * Ползунок: ручки на рельсе, заливка и метки. Корень — `span`: ползунок кладут в `label`.\n * Атрибуты потребителя остаются на корне: полей столько, сколько ручек.\n */\n@Component({\n\tselector: 'span[so-slider], [so-slider]',\n\timports: [NgTemplateOutlet, AttributesDirective, FieldTextDirective, TextPipe],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './slider.component.html',\n})\nexport class TSliderComponent extends TSliderSurface<ISlider> {\n\tconstructor() {\n\t\tsuper(setupSlider, { strategy: 'host', aria: 'rootAria' })\n\t}\n}\n","<!--\n\tРучки и метки — по месту (`track $index`): записи выходов новые на каждую смену, а узел\n\tручки с полем остаётся тем же. Края дорожки — 0 % и 100 % значения; ручку и поле плагины\n\tнаходят прямыми детьми: `__thumb` — дорожки, `input` — ручки.\n-->\n<span class=\"so-slider__track\">\n\t<span class=\"so-slider__range\" [style]=\"state()['rangeStyle']\"></span>\n\t<!--\n\t\tМетки под `aria-hidden`: в подписи `Label` их текст вошёл бы в имя поля. Подпись\n\t\tбез текста — узел без детей: тема прячет её по `:empty`.\n\t-->\n\t@if ((state()['shownMarks'] ?? []).length > 0) {\n\t\t<span class=\"so-slider__marks\" aria-hidden=\"true\">\n\t\t\t@for (mark of state()['shownMarks'] ?? []; track $index) {\n\t\t\t\t<span class=\"so-slider__mark\" [style]=\"mark.style\" [so-attributes]=\"mark.dataset\">\n\t\t\t\t\t@if (slot('mark'); as content) {\n\t\t\t\t\t\t<span class=\"so-slider__mark-label\"\n\t\t\t\t\t\t\t><ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\t\t\t\t\t\tvalue: mark.value,\n\t\t\t\t\t\t\t\t\tlabel: mark.label,\n\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t/></span>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<span class=\"so-slider__mark-label\" [textContent]=\"mark.label ?? ''\"></span>\n\t\t\t\t\t}\n\t\t\t\t</span>\n\t\t\t}\n\t\t</span>\n\t}\n\t<!-- Подсказка со значением — внутри ручки, поэтому едет за ней сама. -->\n\t@for (thumb of state()['thumbs'] ?? []; track $index) {\n\t\t<span class=\"so-slider__thumb\" [style]=\"thumb.style\" [so-attributes]=\"thumb.dataset\">\n\t\t\t<!--\n\t\t\t\tНативное поле: его двигает жест мобильного скринридера, форму даёт браузер.\n\t\t\t\tЗначение — директивой после хода: раньше нового `max` оно встало бы на прежний край.\n\t\t\t-->\n\t\t\t<input\n\t\t\t\tclass=\"so-slider__input\"\n\t\t\t\ttype=\"range\"\n\t\t\t\t[min]=\"thumb.min\"\n\t\t\t\t[max]=\"thumb.max\"\n\t\t\t\t[step]=\"thumb.step\"\n\t\t\t\t[so-field-text]=\"thumb.value | soText\"\n\t\t\t\t[attr.name]=\"state()['name'] ?? null\"\n\t\t\t\t[disabled]=\"state()['disabled'] === true\"\n\t\t\t\t[so-attributes]=\"thumb.aria\"\n\t\t\t/>\n\t\t\t@if (state()['tooltipRendered']) {\n\t\t\t\t@if (slot('thumb'); as content) {\n\t\t\t\t\t<span class=\"so-slider__tooltip\" aria-hidden=\"true\"\n\t\t\t\t\t\t><ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ value: thumb.value, index: $index }\"\n\t\t\t\t\t/></span>\n\t\t\t\t} @else {\n\t\t\t\t\t<span\n\t\t\t\t\t\tclass=\"so-slider__tooltip\"\n\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t[textContent]=\"thumb.value | soText\"\n\t\t\t\t\t></span>\n\t\t\t\t}\n\t\t\t}\n\t\t</span>\n\t}\n</span>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/rating/manifest'\n\nexport const RatingInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'max',\n\t'step',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n] as const\nexport const RatingOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soCommit',\n\t'soChangeMax',\n\t'soChangeStep',\n\t'soChangePreview',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'maxChange',\n\t'stepChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t'max',\n\t\t'step',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t],\n\toutputs: [...RatingOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TRatingSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(RatingInputNames, RatingOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare step: TInputValue<typeof descriptor, 'step'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soCommit: TOutputEmitter<typeof descriptor, 'commit'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeStep: TOutputEmitter<typeof descriptor, 'change:step'>\n\tdeclare readonly soChangePreview: TOutputEmitter<typeof descriptor, 'change:preview'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly stepChange: TModelEmitter<typeof descriptor, 'step'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import { RatingDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { IRating } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Поле формы `Field` над оценкой связывает расширение `TFieldControlExtension`. */\nexport function setupRating(ctrl: IRating | undefined, props: object): TBinding<IRating> {\n\tconst adapter = createAngularAdapterContext(RatingDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IRating } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tFieldTextDirective,\n\tRoleIconDirective,\n\tTextPipe,\n\tprovideElevator,\n} from '../../adapter'\nimport { TRatingSurface } from '../../generated/rating.metadata'\nimport { setupRating } from './setup.component'\n\n/**\n * Оценка звёздами — ползунок с одной ручкой. Корень — `span`: оценку кладут в `label`.\n * Атрибуты потребителя остаются на корне: указатель поле не ловит.\n */\n@Component({\n\tselector: 'span[so-rating], [so-rating]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tFieldTextDirective,\n\t\tRoleIconDirective,\n\t\tTextPipe,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './rating.component.html',\n})\nexport class TRatingComponent extends TRatingSurface<IRating> {\n\tconstructor() {\n\t\tsuper(setupRating, { strategy: 'host', sets: ['attrs', 'dataset'] })\n\t}\n}\n","<!--\n\tЯчейки равные и встык: доля коробки дорожки — доля шкалы. Ручку и поле плагины\n\tнаходят прямыми детьми: `__thumb` — дорожки, `input` — ручки.\n-->\n<span class=\"so-rating__track\">\n\t<!--\n\t\tДва слоя одной иконки: пустая снизу, залитая сверху, обрезанная по доле. Иконка —\n\t\t`<svg>`, а не компонент Icon: иконок по две на звезду, а оценок в списке — десятки.\n\t-->\n\t@for (star of state()['stars'] ?? []; track star.value) {\n\t\t<span class=\"so-rating__star\" [style]=\"star.style\" aria-hidden=\"true\">\n\t\t\t@if (slot('icon'); as icon) {\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"icon\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ value: star.value, filled: false }\"\n\t\t\t\t/>\n\t\t\t} @else {\n\t\t\t\t<svg class=\"so-rating__icon\" so-role-icon=\"star\"></svg>\n\t\t\t}\n\t\t\t<span class=\"so-rating__star-fill\">\n\t\t\t\t@if (slot('icon'); as icon) {\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"icon\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ value: star.value, filled: true }\"\n\t\t\t\t\t/>\n\t\t\t\t} @else {\n\t\t\t\t\t<svg class=\"so-rating__icon\" so-role-icon=\"star\"></svg>\n\t\t\t\t}\n\t\t\t</span>\n\t\t</span>\n\t}\n\t<!-- Ручка невидима и во весь ряд: кольцо фокуса тема рисует вокруг всего ряда. -->\n\t<span class=\"so-rating__thumb\">\n\t\t<!-- Нативное поле: его двигает жест мобильного скринридера, форму даёт браузер. -->\n\t\t<input\n\t\t\tclass=\"so-rating__input\"\n\t\t\ttype=\"range\"\n\t\t\tmin=\"0\"\n\t\t\t[max]=\"state()['max']\"\n\t\t\t[step]=\"state()['step']\"\n\t\t\t[so-field-text]=\"state()['value'] | soText\"\n\t\t\t[attr.id]=\"state()['id'] ?? null\"\n\t\t\t[attr.name]=\"state()['name'] ?? null\"\n\t\t\t[disabled]=\"state()['disabled'] === true\"\n\t\t\t[so-attributes]=\"state()['aria']\"\n\t\t/>\n\t</span>\n</span>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/list-box/manifest'\n\nexport const ListBoxInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'view',\n\t'maxRows',\n\t'contentFit',\n\t'scrollBehavior',\n\t'indicator',\n\t'groupSeparators',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'engine',\n\t'items',\n\t'trackBy',\n\t'mode',\n\t'groupBy',\n\t'groups',\n] as const\nexport const ListBoxOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeView',\n\t'soChangeMaxRows',\n\t'soChangeContentFit',\n\t'soChangeScrollBehavior',\n\t'soChangeIndicator',\n\t'soChangeGroupSeparators',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soChangeMode',\n\t'soChangeSelection',\n\t'soChangeGroupBy',\n\t'soChangeGroups',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'viewChange',\n\t'maxRowsChange',\n\t'contentFitChange',\n\t'scrollBehaviorChange',\n\t'indicatorChange',\n\t'groupSeparatorsChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'itemsChange',\n\t'trackByChange',\n\t'modeChange',\n\t'groupByChange',\n\t'groupsChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'view',\n\t\t'maxRows',\n\t\t'contentFit',\n\t\t'scrollBehavior',\n\t\t'indicator',\n\t\t{ name: 'groupSeparators', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t\t'mode',\n\t\t'groupBy',\n\t\t'groups',\n\t],\n\toutputs: [...ListBoxOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TListBoxSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ListBoxInputNames, ListBoxOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare view: TInputValue<typeof descriptor, 'view'>\n\tdeclare maxRows: TInputValue<typeof descriptor, 'maxRows'>\n\tdeclare contentFit: TInputValue<typeof descriptor, 'contentFit'>\n\tdeclare scrollBehavior: TInputValue<typeof descriptor, 'scrollBehavior'>\n\tdeclare indicator: TInputValue<typeof descriptor, 'indicator'>\n\tdeclare groupSeparators: TInputValue<typeof descriptor, 'groupSeparators'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare mode: TInputValue<typeof descriptor, 'mode'>\n\tdeclare groupBy: TInputValue<typeof descriptor, 'groupBy'>\n\tdeclare groups: TInputValue<typeof descriptor, 'groups'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soChangeMaxRows: TOutputEmitter<typeof descriptor, 'change:maxRows'>\n\tdeclare readonly soChangeContentFit: TOutputEmitter<typeof descriptor, 'change:contentFit'>\n\tdeclare readonly soChangeScrollBehavior: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:scrollBehavior'\n\t>\n\tdeclare readonly soChangeIndicator: TOutputEmitter<typeof descriptor, 'change:indicator'>\n\tdeclare readonly soChangeGroupSeparators: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:groupSeparators'\n\t>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soChangeMode: TOutputEmitter<typeof facade, 'change:mode'>\n\tdeclare readonly soChangeSelection: TOutputEmitter<typeof facade, 'change:selection'>\n\tdeclare readonly soChangeGroupBy: TOutputEmitter<typeof facade, 'change:groupBy'>\n\tdeclare readonly soChangeGroups: TOutputEmitter<typeof facade, 'change:groups'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly viewChange: TModelEmitter<typeof descriptor, 'view'>\n\tdeclare readonly maxRowsChange: TModelEmitter<typeof descriptor, 'maxRows'>\n\tdeclare readonly contentFitChange: TModelEmitter<typeof descriptor, 'contentFit'>\n\tdeclare readonly scrollBehaviorChange: TModelEmitter<typeof descriptor, 'scrollBehavior'>\n\tdeclare readonly indicatorChange: TModelEmitter<typeof descriptor, 'indicator'>\n\tdeclare readonly groupSeparatorsChange: TModelEmitter<typeof descriptor, 'groupSeparators'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n\tdeclare readonly modeChange: TModelEmitter<typeof descriptor, 'mode'>\n\tdeclare readonly groupByChange: TModelEmitter<typeof descriptor, 'groupBy'>\n\tdeclare readonly groupsChange: TModelEmitter<typeof descriptor, 'groups'>\n}\n","import {\n\tListBoxCollectionDescriptor,\n\tListBoxDescriptor,\n\tTCollectionExtension,\n\tTDragAndDropCollectionExtension,\n\tTVirtualCollectionExtension,\n} from '@soxa-ui/setup'\nimport type { IListBox, IListBoxProps, TListBoxCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** `engine` — готовая коллекция снаружи: дали — фасад работает на ней, не дали — соберёт свою. */\nexport function setupListBox(\n\tctrl: IListBox | undefined,\n\tprops: object,\n\tengine: IListBoxProps['engine'],\n): TBinding<IListBox, TListBoxCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(ListBoxDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tListBoxCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t)\n\t\t.use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\t\t.use(TDragAndDropCollectionExtension, { elevator: AngularElevatorFactory })\n\t\t.use(TVirtualCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/list-box/item/manifest'\n\nexport const ListBoxItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'contentFit',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n\t'selected',\n] as const\nexport const ListBoxItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soChangeContentFit',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'soChangeSelected',\n\t'soChangeOrder',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'contentFitChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n\t'selectedChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t'contentFit',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t\t{ name: 'selected', transform: booleanInput },\n\t],\n\toutputs: [...ListBoxItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TListBoxItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ListBoxItemInputNames, ListBoxItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare contentFit: TInputValue<typeof descriptor, 'contentFit'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare selected: TInputValue<typeof descriptor, 'selected'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeContentFit: TOutputEmitter<typeof descriptor, 'change:contentFit'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly soChangeSelected: TOutputEmitter<typeof facade, 'change:selected'>\n\tdeclare readonly soChangeOrder: TOutputEmitter<typeof facade, 'change:order'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly contentFitChange: TModelEmitter<typeof descriptor, 'contentFit'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n\tdeclare readonly selectedChange: TModelEmitter<typeof descriptor, 'selected'>\n}\n","import {\n\tListBoxCollectionItemDescriptor,\n\tListBoxItemDescriptor,\n\tTCollectionItemExtension,\n} from '@soxa-ui/setup'\nimport type { IListBoxItem, TListBoxItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** В коллекцию элемент входит, когда принят контекст фасада, — и на сервере тоже. */\nexport function setupListBoxItem(\n\tctrl: IListBoxItem | undefined,\n\tprops: object,\n): TBinding<IListBoxItem, TListBoxItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(ListBoxItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tListBoxCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IListBoxItem } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../../adapter'\nimport { TItemRowComponent } from '../../item-row'\nimport { TIconComponent } from '../../icon'\nimport { TListBoxItemSurface } from '../../../generated/list-box-item.metadata'\nimport { setupListBoxItem } from './setup.component'\n\n/**\n * Элемент списка: строка — Button на `div` (под этот тег написан `TListBoxItem._ariaTag`),\n * написанное на корне получает она. Клик — `list.choose()` фасада: выключенному откажет список.\n */\n@Component({\n\tselector: 'div[so-list-box-item], [so-list-box-item]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTItemRowComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './list-box-item.component.html',\n})\nexport class TListBoxItemComponent extends TListBoxItemSurface<IListBoxItem> {\n\tconstructor() {\n\t\tsuper(setupListBoxItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t\torder: 'order',\n\t\t})\n\t}\n}\n","<div\n\tso-item-row\n\t#control\n\tembedded=\"list-box.row\"\n\t[view]=\"state()['view']\"\n\t[disabled]=\"state()['disabled']\"\n\t[size]=\"state()['size']\"\n\t[variant]=\"state()['variant']\"\n\t[so-attributes]=\"{ ...state()['aria'], ...state()['dataset'] }\"\n\t(click)=\"facade()?.context?.adapters.list.choose()\"\n>\n\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t@if (state()['indicator'] === 'start') {\n\t\t\t<ng-container [ngTemplateOutlet]=\"mark\" />\n\t\t}\n\t\t<ng-content select=\"[slot=leading]\" />\n\t</ng-container>\n\t@if (slot('default'); as content) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\tselected: state()['selected'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t}\n\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t<ng-content select=\"[slot=trailing]\" />\n\t\t@if (state()['indicator'] === 'end') {\n\t\t\t<ng-container [ngTemplateOutlet]=\"mark\" />\n\t\t}\n\t</ng-container>\n</div>\n<!--\n\tОтметка рисуется и у невыбранных: она держит место, и строка не прыгает при выборе.\n\t`aria-hidden`: выбор скринридеру объявляет `aria-selected`.\n-->\n<ng-template #mark>\n\t<span class=\"so-list-box-item__indicator\" aria-hidden=\"true\">\n\t\t@if (slot('indicator-icon'); as indicator) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"indicator\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ selected: state()['selected'] ?? false }\"\n\t\t\t/>\n\t\t} @else if (state()['selected']) {\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"list-box.indicator\"\n\t\t\t\tso-role-icon=\"check\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t}\n\t</span>\n</ng-template>\n<!-- Шаблоны слотов — в слив: в основной проекции они сняли бы запасной текст. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/list-box/group/manifest'\n\nexport const ListBoxGroupInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'label',\n] as const\nexport const ListBoxGroupOutputNames = [\n\t'soChangeLabel',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'labelChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'label',\n\t],\n\toutputs: [...ListBoxGroupOutputNames],\n})\nexport abstract class TListBoxGroupSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ListBoxGroupInputNames, ListBoxGroupOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare label: TInputValue<typeof descriptor, 'label'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeLabel: TOutputEmitter<typeof descriptor, 'change:label'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly labelChange: TModelEmitter<typeof descriptor, 'label'>\n}\n","import { ListBoxGroupDescriptor, TItemGroupExtension } from '@soxa-ui/setup'\nimport type { IItemGroup } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Ключ группы элементы внутри читают при своей сборке: `ngOnInit` группы идёт раньше. */\nexport function setupListBoxGroup(\n\tctrl: IItemGroup | undefined,\n\tprops: object,\n): TBinding<IItemGroup> {\n\tconst adapter = createAngularAdapterContext(ListBoxGroupDescriptor(), { ctrl, props }).use(\n\t\tTItemGroupExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IItemGroup } from '@soxa-ui/core'\nimport { AttributesDirective, provideElevator } from '../../../adapter'\nimport { TListBoxGroupSurface } from '../../../generated/list-box-group.metadata'\nimport { setupListBoxGroup } from './setup.component'\n\n/** Элементы списка под общей подписью: ключ группы получают элементы в её содержимом. */\n@Component({\n\tselector: 'div[so-list-box-group], [so-list-box-group]',\n\timports: [AttributesDirective],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './list-box-group.component.html',\n})\nexport class TListBoxGroupComponent extends TListBoxGroupSurface<IItemGroup> {\n\tconstructor() {\n\t\tsuper(setupListBoxGroup, { strategy: 'host' })\n\t}\n}\n","<!-- `<ng-content>` — вне `@if`: иначе содержимое терялось бы при смене ветки. -->\n@if (state()['label']) {\n\t<div class=\"so-list-box-group__label\" [so-attributes]=\"state()['labelAria']\">\n\t\t{{ state()['label'] }}\n\t</div>\n}\n<ng-content />\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IListBox } from '@soxa-ui/core'\nimport { AttributesDirective, SlotDirective, provideElevator } from '../../adapter'\nimport { TListBoxItemComponent } from './item'\nimport { TListBoxGroupComponent } from './group'\nimport { TListBoxSurface } from '../../generated/list-box.metadata'\nimport { setupListBox } from './setup.component'\n\n/**\n * Список с выбором: корень — рамка, а набор `aria` и написанное на корне получает узел списка.\n * AGENTS.md (Angular), «Коллекция: два контекста — одна связка».\n */\n@Component({\n\tselector: 'div[so-list-box], [so-list-box]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tSlotDirective,\n\t\tTListBoxItemComponent,\n\t\tTListBoxGroupComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './list-box.component.html',\n})\nexport class TListBoxComponent extends TListBoxSurface<IListBox> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupListBox(ctrl, inputs, this.engine), {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n}\n","<!--\n\tЗаписи секции — одна петля на элементы и распорки окна: петли по блокам пересоздавали бы\n\tэлемент при переходе из блока в блок. Пробрасываются только заданные слоты элемента.\n-->\n<ng-template #entries let-entries>\n\t@for (entry of entries; track entry.key) {\n\t\t@if (entry.kind === 'filler') {\n\t\t\t<div class=\"so-list-box__filler\" aria-hidden=\"true\" [style]=\"entry.style\"></div>\n\t\t} @else {\n\t\t\t<div so-list-box-item [ctrl]=\"entry.item\">\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: entry.item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"default\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\tlet-selected=\"selected\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: entry.item, text, selected }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: entry.item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-indicator-icon'); as indicator) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"indicator-icon\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-selected=\"selected\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"indicator\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: entry.item, selected }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</ng-template>\n<ng-content select=\"[slot=header]\" />\n<!-- `aria` — на узле списка: в `listbox` ARIA пускает только опции, шапка и подвал — рядом. -->\n<div #control class=\"so-list-box__list\" tabindex=\"0\" [so-attributes]=\"state()['aria']\">\n\t<!-- Без элементов разметки — секции коллекции, запасным содержимым `<ng-content>`. -->\n\t<ng-content>\n\t\t@for (section of state()['drawnSections'] ?? []; track section.key; let first = $first) {\n\t\t\t@if (state()['groupSeparators'] && !first) {\n\t\t\t\t<div class=\"so-list-box__separator\" aria-hidden=\"true\"></div>\n\t\t\t}\n\t\t\t@if (section.group; as group) {\n\t\t\t\t<div so-list-box-group [label]=\"group.label\">\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"entries\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: section.entries }\"\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t} @else {\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"entries\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: section.entries }\"\n\t\t\t\t/>\n\t\t\t}\n\t\t}\n\t</ng-content>\n\t<!-- `empty` — внутри списка: пустой `listbox` для скринридера — тупик. -->\n\t@if (state()['shown']?.length === 0) {\n\t\t<ng-content select=\"[slot=empty]\" />\n\t}\n</div>\n<ng-content select=\"[slot=footer]\" />\n<!-- Шаблоны слотов — в слив: в основной проекции они сняли бы запасное содержимое. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/tags/manifest'\n\nexport const TagsInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'closable',\n\t'view',\n\t'overflow',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'engine',\n\t'items',\n\t'trackBy',\n\t'mode',\n] as const\nexport const TagsOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeClosable',\n\t'soChangeView',\n\t'soChangeOverflow',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soChangeMode',\n\t'soChangeSelection',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'closableChange',\n\t'viewChange',\n\t'overflowChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'itemsChange',\n\t'trackByChange',\n\t'modeChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'closable', transform: booleanInput },\n\t\t'view',\n\t\t'overflow',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t\t'mode',\n\t],\n\toutputs: [...TagsOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TTagsSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TagsInputNames, TagsOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare closable: TInputValue<typeof descriptor, 'closable'>\n\tdeclare view: TInputValue<typeof descriptor, 'view'>\n\tdeclare overflow: TInputValue<typeof descriptor, 'overflow'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare mode: TInputValue<typeof descriptor, 'mode'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeClosable: TOutputEmitter<typeof descriptor, 'change:closable'>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soChangeOverflow: TOutputEmitter<typeof descriptor, 'change:overflow'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soChangeMode: TOutputEmitter<typeof facade, 'change:mode'>\n\tdeclare readonly soChangeSelection: TOutputEmitter<typeof facade, 'change:selection'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly closableChange: TModelEmitter<typeof descriptor, 'closable'>\n\tdeclare readonly viewChange: TModelEmitter<typeof descriptor, 'view'>\n\tdeclare readonly overflowChange: TModelEmitter<typeof descriptor, 'overflow'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n\tdeclare readonly modeChange: TModelEmitter<typeof descriptor, 'mode'>\n}\n","import { TCollectionExtension, TagsCollectionDescriptor, TagsDescriptor } from '@soxa-ui/setup'\nimport type { ITags, ITagsProps, TTagsCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Tags: движок и регистратор лифт опускает в слой набора; `engine` — готовая коллекция. */\nexport function setupTags(\n\tctrl: ITags | undefined,\n\tprops: object,\n\tengine: ITagsProps['engine'],\n): TBinding<ITags, TTagsCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(TagsDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tTagsCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/tags/item/manifest'\n\nexport const TagsItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'closable',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'selected',\n] as const\nexport const TagsItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soChangeClosable',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeSelected',\n\t'soChangeOrder',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'closableChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'selectedChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t{ name: 'closable', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t{ name: 'selected', transform: booleanInput },\n\t],\n\toutputs: [...TagsItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TTagsItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TagsItemInputNames, TagsItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare closable: TInputValue<typeof descriptor, 'closable'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare selected: TInputValue<typeof descriptor, 'selected'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeClosable: TOutputEmitter<typeof descriptor, 'change:closable'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeSelected: TOutputEmitter<typeof facade, 'change:selected'>\n\tdeclare readonly soChangeOrder: TOutputEmitter<typeof facade, 'change:order'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly closableChange: TModelEmitter<typeof descriptor, 'closable'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly selectedChange: TModelEmitter<typeof descriptor, 'selected'>\n}\n","import {\n\tTCollectionItemExtension,\n\tTagsCollectionItemDescriptor,\n\tTagsItemDescriptor,\n} from '@soxa-ui/setup'\nimport type { ITagsItem, TTagsItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Тег: свой контекст и фасада; в коллекцию входит, когда контекст фасада принят (`ngOnInit`). */\nexport function setupTagsItem(\n\tctrl: ITagsItem | undefined,\n\tprops: object,\n): TBinding<ITagsItem, TTagsItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(TagsItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tTagsCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITagsItem } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../../adapter'\nimport { TButtonComponent } from '../../button'\nimport { TItemRowComponent } from '../../item-row'\nimport { TIconComponent } from '../../icon'\nimport { TTagsItemSurface } from '../../../generated/tags-item.metadata'\nimport { setupTagsItem } from './setup.component'\n\n/**\n * Тег: строка — Button на `div` с набором `aria`, кнопка закрытия — её сосед:\n * потомки опции скринридеру презентационны, и подпись крестика вошла бы в имя тега.\n */\n@Component({\n\tselector: 'div[so-tags-item], [so-tags-item]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTItemRowComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './tags-item.component.html',\n})\nexport class TTagsItemComponent extends TTagsItemSurface<ITagsItem> {\n\tconstructor() {\n\t\tsuper(setupTagsItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t\torder: 'order',\n\t\t})\n\t}\n\n\t/** Закрыть тег; клик не всплывает: иначе `press` корней дал бы выбор и открыл панель Select. */\n\tprotected close(event: Event): void {\n\t\tevent.stopPropagation()\n\t\tthis.facade()?.context?.adapters.tags.close()\n\t}\n}\n","<!--\n\tВыбор — по `press` строки, а не по клику: на клик выключенный тег выбирался бы.\n\tКрестик — `@if`, а не `rendered` кнопки: скрытая кнопка с плагинами стояла бы у каждого тега.\n-->\n<div\n\tso-item-row\n\t#control\n\tembedded=\"tags.row\"\n\t[direction]=\"state()['direction']\"\n\t[disabled]=\"state()['disabled']\"\n\t[size]=\"state()['size']\"\n\t[variant]=\"state()['variant']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(soActionPress)=\"facade()?.context?.adapters.selection.toggle()\"\n>\n\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t<ng-content select=\"[slot=leading]\" />\n\t</ng-container>\n\t@if (slot('default'); as content) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\tselected: state()['selected'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t}\n\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t<ng-content select=\"[slot=trailing]\" />\n\t</ng-container>\n</div>\n@if (state()['tag_closable']) {\n\t<button\n\t\tso-button\n\t\tembedded=\"tags.close\"\n\t\ttype=\"button\"\n\t\tclass=\"so-tags-item__close\"\n\t\t[disabled]=\"state()['disabled']\"\n\t\t[size]=\"state()['size']\"\n\t\t[so-attributes]=\"state()['closeAria']\"\n\t\t(click)=\"close($event)\"\n\t>\n\t\t@if (slot('close-icon'); as icon) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t} @else {\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"tags.close-icon\"\n\t\t\t\tso-role-icon=\"close\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t}\n\t</button>\n}\n<ng-content select=\"ng-template[slot]\" />\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITags } from '@soxa-ui/core'\nimport { SlotDirective, provideElevator } from '../../adapter'\nimport { TTagsItemComponent } from './item'\nimport { TTagsSurface } from '../../generated/tags.metadata'\nimport { setupTags } from './setup.component'\n\n/**\n * Набор тегов: корень — сам ряд с ролью. AGENTS.md (Angular),\n * «Tags — ряд тегов, своя раскладка — шаблон `default`».\n */\n@Component({\n\tselector: 'div[so-tags], [so-tags]',\n\timports: [NgTemplateOutlet, SlotDirective, TTagsItemComponent],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './tags.component.html',\n})\nexport class TTagsComponent extends TTagsSurface<ITags> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupTags(ctrl, inputs, this.engine), { strategy: 'host' })\n\t}\n}\n","<!--\n\tШаблон `default` заменяет и теги разметки, и теги из данных: каждый тег рисуется один раз.\n\tСлоты тега без scope — проекцией (`ngProjectAs`), остальные — шаблонами в его слив.\n\tШаблоны слотов набора — в слив в конце: иначе сняли бы теги из данных.\n-->\n@if (slot('default'); as layout) {\n\t<ng-container\n\t\t[ngTemplateOutlet]=\"layout\"\n\t\t[ngTemplateOutletContext]=\"{ shown: state()['shown'] ?? [] }\"\n\t/>\n} @else {\n\t<ng-content>\n\t\t@for (item of state()['shown'] ?? []; track item.uid) {\n\t\t\t<div so-tags-item [ctrl]=\"item\">\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"default\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\tlet-selected=\"selected\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text, selected }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-close-icon'); as icon) {\n\t\t\t\t\t<ng-template slot=\"close-icon\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"icon\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</ng-content>\n}\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/select/manifest'\n\nexport const SelectInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'open',\n\t'placeholder',\n\t'closeOnSelect',\n\t'clearable',\n\t'editable',\n\t'editableMode',\n\t'removeOnBackspace',\n\t'placement',\n\t'swipe',\n\t'maxRows',\n\t'contentFit',\n\t'scrollBehavior',\n\t'indicator',\n\t'groupSeparators',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n\t'dismiss_enabled',\n\t'engine',\n\t'items',\n\t'trackBy',\n\t'mode',\n\t'groupBy',\n\t'groups',\n\t'tagsOverflow',\n] as const\nexport const SelectOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soOpen',\n\t'soClose',\n\t'soChangeOpen',\n\t'soChangePlaceholder',\n\t'soChangeCloseOnSelect',\n\t'soChangeClearable',\n\t'soChangeEditable',\n\t'soChangeEditableMode',\n\t'soChangeRemoveOnBackspace',\n\t'soChangePlacement',\n\t'soChangeSwipe',\n\t'soChangeMaxRows',\n\t'soChangeContentFit',\n\t'soChangeScrollBehavior',\n\t'soChangeIndicator',\n\t'soChangeGroupSeparators',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'soKeyboardChangeHighlight',\n\t'soEditableChangeQuery',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soChangeMode',\n\t'soChangeSelection',\n\t'soChangeGroupBy',\n\t'soChangeGroups',\n\t'soChangeOverflow',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'openChange',\n\t'placeholderChange',\n\t'closeOnSelectChange',\n\t'clearableChange',\n\t'editableChange',\n\t'editableModeChange',\n\t'removeOnBackspaceChange',\n\t'placementChange',\n\t'swipeChange',\n\t'maxRowsChange',\n\t'contentFitChange',\n\t'scrollBehaviorChange',\n\t'indicatorChange',\n\t'groupSeparatorsChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n\t'dismiss_enabledChange',\n\t'itemsChange',\n\t'trackByChange',\n\t'modeChange',\n\t'groupByChange',\n\t'groupsChange',\n\t'tagsOverflowChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t{ name: 'open', transform: booleanInput },\n\t\t'placeholder',\n\t\t{ name: 'closeOnSelect', transform: booleanInput },\n\t\t{ name: 'clearable', transform: booleanInput },\n\t\t{ name: 'editable', transform: booleanInput },\n\t\t'editableMode',\n\t\t{ name: 'removeOnBackspace', transform: booleanInput },\n\t\t'placement',\n\t\t'swipe',\n\t\t'maxRows',\n\t\t'contentFit',\n\t\t'scrollBehavior',\n\t\t'indicator',\n\t\t{ name: 'groupSeparators', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t\t'mode',\n\t\t'groupBy',\n\t\t'groups',\n\t\t'tagsOverflow',\n\t],\n\toutputs: [...SelectOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TSelectSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(SelectInputNames, SelectOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare open: TInputValue<typeof descriptor, 'open'>\n\tdeclare placeholder: TInputValue<typeof descriptor, 'placeholder'>\n\tdeclare closeOnSelect: TInputValue<typeof descriptor, 'closeOnSelect'>\n\tdeclare clearable: TInputValue<typeof descriptor, 'clearable'>\n\tdeclare editable: TInputValue<typeof descriptor, 'editable'>\n\tdeclare editableMode: TInputValue<typeof descriptor, 'editableMode'>\n\tdeclare removeOnBackspace: TInputValue<typeof descriptor, 'removeOnBackspace'>\n\tdeclare placement: TInputValue<typeof descriptor, 'placement'>\n\tdeclare swipe: TInputValue<typeof descriptor, 'swipe'>\n\tdeclare maxRows: TInputValue<typeof descriptor, 'maxRows'>\n\tdeclare contentFit: TInputValue<typeof descriptor, 'contentFit'>\n\tdeclare scrollBehavior: TInputValue<typeof descriptor, 'scrollBehavior'>\n\tdeclare indicator: TInputValue<typeof descriptor, 'indicator'>\n\tdeclare groupSeparators: TInputValue<typeof descriptor, 'groupSeparators'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare mode: TInputValue<typeof descriptor, 'mode'>\n\tdeclare groupBy: TInputValue<typeof descriptor, 'groupBy'>\n\tdeclare groups: TInputValue<typeof descriptor, 'groups'>\n\tdeclare tagsOverflow: TInputValue<typeof descriptor, 'tagsOverflow'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soOpen: TOutputEmitter<typeof descriptor, 'open'>\n\tdeclare readonly soClose: TOutputEmitter<typeof descriptor, 'close'>\n\tdeclare readonly soChangeOpen: TOutputEmitter<typeof descriptor, 'change:open'>\n\tdeclare readonly soChangePlaceholder: TOutputEmitter<typeof descriptor, 'change:placeholder'>\n\tdeclare readonly soChangeCloseOnSelect: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:closeOnSelect'\n\t>\n\tdeclare readonly soChangeClearable: TOutputEmitter<typeof descriptor, 'change:clearable'>\n\tdeclare readonly soChangeEditable: TOutputEmitter<typeof descriptor, 'change:editable'>\n\tdeclare readonly soChangeEditableMode: TOutputEmitter<typeof descriptor, 'change:editableMode'>\n\tdeclare readonly soChangeRemoveOnBackspace: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:removeOnBackspace'\n\t>\n\tdeclare readonly soChangePlacement: TOutputEmitter<typeof descriptor, 'change:placement'>\n\tdeclare readonly soChangeSwipe: TOutputEmitter<typeof descriptor, 'change:swipe'>\n\tdeclare readonly soChangeMaxRows: TOutputEmitter<typeof descriptor, 'change:maxRows'>\n\tdeclare readonly soChangeContentFit: TOutputEmitter<typeof descriptor, 'change:contentFit'>\n\tdeclare readonly soChangeScrollBehavior: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:scrollBehavior'\n\t>\n\tdeclare readonly soChangeIndicator: TOutputEmitter<typeof descriptor, 'change:indicator'>\n\tdeclare readonly soChangeGroupSeparators: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:groupSeparators'\n\t>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly soKeyboardChangeHighlight: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'keyboard:change:highlight'\n\t>\n\tdeclare readonly soEditableChangeQuery: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'editable:change:query'\n\t>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soChangeMode: TOutputEmitter<typeof facade, 'change:mode'>\n\tdeclare readonly soChangeSelection: TOutputEmitter<typeof facade, 'change:selection'>\n\tdeclare readonly soChangeGroupBy: TOutputEmitter<typeof facade, 'change:groupBy'>\n\tdeclare readonly soChangeGroups: TOutputEmitter<typeof facade, 'change:groups'>\n\tdeclare readonly soChangeOverflow: TOutputEmitter<typeof facade, 'change:overflow'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly openChange: TModelEmitter<typeof descriptor, 'open'>\n\tdeclare readonly placeholderChange: TModelEmitter<typeof descriptor, 'placeholder'>\n\tdeclare readonly closeOnSelectChange: TModelEmitter<typeof descriptor, 'closeOnSelect'>\n\tdeclare readonly clearableChange: TModelEmitter<typeof descriptor, 'clearable'>\n\tdeclare readonly editableChange: TModelEmitter<typeof descriptor, 'editable'>\n\tdeclare readonly editableModeChange: TModelEmitter<typeof descriptor, 'editableMode'>\n\tdeclare readonly removeOnBackspaceChange: TModelEmitter<typeof descriptor, 'removeOnBackspace'>\n\tdeclare readonly placementChange: TModelEmitter<typeof descriptor, 'placement'>\n\tdeclare readonly swipeChange: TModelEmitter<typeof descriptor, 'swipe'>\n\tdeclare readonly maxRowsChange: TModelEmitter<typeof descriptor, 'maxRows'>\n\tdeclare readonly contentFitChange: TModelEmitter<typeof descriptor, 'contentFit'>\n\tdeclare readonly scrollBehaviorChange: TModelEmitter<typeof descriptor, 'scrollBehavior'>\n\tdeclare readonly indicatorChange: TModelEmitter<typeof descriptor, 'indicator'>\n\tdeclare readonly groupSeparatorsChange: TModelEmitter<typeof descriptor, 'groupSeparators'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n\tdeclare readonly modeChange: TModelEmitter<typeof descriptor, 'mode'>\n\tdeclare readonly groupByChange: TModelEmitter<typeof descriptor, 'groupBy'>\n\tdeclare readonly groupsChange: TModelEmitter<typeof descriptor, 'groups'>\n\tdeclare readonly tagsOverflowChange: TModelEmitter<typeof descriptor, 'tagsOverflow'>\n}\n","import {\n\tSelectCollectionDescriptor,\n\tSelectDescriptor,\n\tTCollectionExtension,\n\tTFieldControlExtension,\n\tTVirtualCollectionExtension,\n} from '@soxa-ui/setup'\nimport type { ISelect, ISelectProps, TSelectCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** `engine` — готовая коллекция снаружи: дали — фасад работает на ней, не дали — соберёт свою. */\nexport function setupSelect(\n\tctrl: ISelect | undefined,\n\tprops: object,\n\tengine: ISelectProps['engine'],\n): TBinding<ISelect, TSelectCollectionFacade> {\n\t// Поле формы `Field` связывается с Select, а не с его полем: поле — деталь разметки\n\tconst adapter = createAngularAdapterContext(SelectDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tSelectCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t)\n\t\t.use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\t\t.use(TVirtualCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/select/item/manifest'\n\nexport const SelectItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n\t'selected',\n] as const\nexport const SelectItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'soChangeSelected',\n\t'soChangeOrder',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n\t'selectedChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t\t{ name: 'selected', transform: booleanInput },\n\t],\n\toutputs: [...SelectItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TSelectItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(SelectItemInputNames, SelectItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare selected: TInputValue<typeof descriptor, 'selected'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly soChangeSelected: TOutputEmitter<typeof facade, 'change:selected'>\n\tdeclare readonly soChangeOrder: TOutputEmitter<typeof facade, 'change:order'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n\tdeclare readonly selectedChange: TModelEmitter<typeof descriptor, 'selected'>\n}\n","import {\n\tSelectCollectionItemDescriptor,\n\tSelectItemDescriptor,\n\tTCollectionItemExtension,\n} from '@soxa-ui/setup'\nimport type { ISelectItem, TSelectItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Опция в увезённой панели видит слой Select там, где её написали: DI идёт по объявлениям. */\nexport function setupSelectItem(\n\tctrl: ISelectItem | undefined,\n\tprops: object,\n): TBinding<ISelectItem, TSelectItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(SelectItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tSelectCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ISelectItem } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../../adapter'\nimport { TItemRowComponent } from '../../item-row'\nimport { TIconComponent } from '../../icon'\nimport { TSelectItemSurface } from '../../../generated/select-item.metadata'\nimport { setupSelectItem } from './setup.component'\n\n/**\n * Опция Select: строка — Button на `span` (под этот тег написан `TSelectItem._ariaTag`),\n * написанное на корне получает она. Клик — `select.choose()` фасада, как клавиатура поля.\n */\n@Component({\n\tselector: 'div[so-select-item], [so-select-item]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTItemRowComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './select-item.component.html',\n})\nexport class TSelectItemComponent extends TSelectItemSurface<ISelectItem> {\n\tconstructor() {\n\t\tsuper(setupSelectItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t\torder: 'order',\n\t\t})\n\t}\n}\n","<span\n\tso-item-row\n\t#control\n\tembedded=\"select.row\"\n\t[size]=\"state()['size']\"\n\t[variant]=\"state()['variant']\"\n\t[disabled]=\"state()['disabled']\"\n\t[so-attributes]=\"{ ...state()['aria'], ...state()['dataset'] }\"\n\t(click)=\"facade()?.context?.adapters.select.choose()\"\n>\n\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t@if (state()['indicator'] === 'start') {\n\t\t\t<ng-container [ngTemplateOutlet]=\"mark\" />\n\t\t}\n\t\t<ng-content select=\"[slot=leading]\" />\n\t</ng-container>\n\t@if (slot('default'); as content) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\tselected: state()['selected'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t}\n\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t<ng-content select=\"[slot=trailing]\" />\n\t\t@if (state()['indicator'] === 'end') {\n\t\t\t<ng-container [ngTemplateOutlet]=\"mark\" />\n\t\t}\n\t</ng-container>\n</span>\n<!--\n\tОтметка рисуется и у невыбранных: она держит место, и строка не прыгает при выборе.\n\t`aria-hidden`: выбор скринридеру объявляет `aria-selected`.\n-->\n<ng-template #mark>\n\t<span class=\"so-select-item__indicator\" aria-hidden=\"true\">\n\t\t@if (slot('indicator-icon'); as indicator) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"indicator\"\n\t\t\t\t[ngTemplateOutletContext]=\"{ selected: state()['selected'] ?? false }\"\n\t\t\t/>\n\t\t} @else if (state()['selected']) {\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"select.indicator\"\n\t\t\t\tso-role-icon=\"check\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t}\n\t</span>\n</ng-template>\n<!-- Шаблоны слотов — в слив: в основной проекции они сняли бы запасной текст. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/select/group/manifest'\n\nexport const SelectGroupInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'label',\n] as const\nexport const SelectGroupOutputNames = [\n\t'soChangeLabel',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'labelChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'label',\n\t],\n\toutputs: [...SelectGroupOutputNames],\n})\nexport abstract class TSelectGroupSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(SelectGroupInputNames, SelectGroupOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare label: TInputValue<typeof descriptor, 'label'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeLabel: TOutputEmitter<typeof descriptor, 'change:label'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly labelChange: TModelEmitter<typeof descriptor, 'label'>\n}\n","import { SelectGroupDescriptor, TItemGroupExtension } from '@soxa-ui/setup'\nimport type { IItemGroup } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Ключ группы опции внутри читают при своей сборке: `ngOnInit` группы идёт раньше. */\nexport function setupSelectGroup(\n\tctrl: IItemGroup | undefined,\n\tprops: object,\n): TBinding<IItemGroup> {\n\tconst adapter = createAngularAdapterContext(SelectGroupDescriptor(), { ctrl, props }).use(\n\t\tTItemGroupExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport type { IItemGroup } from '@soxa-ui/core'\nimport { AttributesDirective, provideElevator } from '../../../adapter'\nimport { TSelectGroupSurface } from '../../../generated/select-group.metadata'\nimport { setupSelectGroup } from './setup.component'\n\n/** Опции Select под общей подписью: ключ группы получают опции в её содержимом. */\n@Component({\n\tselector: 'div[so-select-group], [so-select-group]',\n\timports: [AttributesDirective],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './select-group.component.html',\n})\nexport class TSelectGroupComponent extends TSelectGroupSurface<IItemGroup> {\n\tconstructor() {\n\t\tsuper(setupSelectGroup, { strategy: 'host' })\n\t}\n}\n","<!-- `<ng-content>` — вне `@if`: иначе содержимое терялось бы при смене ветки. -->\n@if (state()['label']) {\n\t<div class=\"so-select-group__label\" [so-attributes]=\"state()['labelAria']\">\n\t\t{{ state()['label'] }}\n\t</div>\n}\n<ng-content />\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ISelect } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tRoleIconDirective,\n\tSlotDirective,\n\tprovideElevator,\n} from '../../adapter'\nimport { TFrameComponent } from '../frame'\nimport { TIconComponent } from '../icon'\nimport { TInputComponent } from '../input'\nimport { TTagsComponent } from '../tags'\nimport { TSelectItemComponent } from './item'\nimport { TSelectGroupComponent } from './group'\nimport { TSelectSurface } from '../../generated/select.metadata'\nimport { setupSelect } from './setup.component'\n\n/**\n * Поле выбора из списка: в корне поле (Input над `field` Select) и панель со списком во Frame.\n * AGENTS.md (Angular), «Select — поле в шаблоне, опции — коллекция в панели».\n */\n@Component({\n\tselector: 'div[so-select], [so-select]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tSlotDirective,\n\t\tTFrameComponent,\n\t\tTIconComponent,\n\t\tTInputComponent,\n\t\tTTagsComponent,\n\t\tTSelectItemComponent,\n\t\tTSelectGroupComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './select.component.html',\n})\nexport class TSelectComponent extends TSelectSurface<ISelect> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupSelect(ctrl, inputs, this.engine), {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n}\n","<!--\n\tЗаписи секции — одна петля на опции и распорки окна: петли по блокам пересоздавали бы\n\tопцию при переходе из блока в блок. Пробрасываются только заданные слоты опции.\n-->\n<ng-template #entries let-entries>\n\t@for (entry of entries; track entry.key) {\n\t\t@if (entry.kind === 'filler') {\n\t\t\t<div class=\"so-select__filler\" aria-hidden=\"true\" [style]=\"entry.style\"></div>\n\t\t} @else {\n\t\t\t<div so-select-item [ctrl]=\"entry.item\">\n\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: entry.item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"default\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\tlet-selected=\"selected\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: entry.item, text, selected }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: entry.item }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-container>\n\t\t\t\t}\n\t\t\t\t@if (slot('item-indicator-icon'); as indicator) {\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"indicator-icon\"\n\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\tlet-selected=\"selected\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"indicator\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: entry.item, selected }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t}\n</ng-template>\n<!--\n\tНабор `aria` Select ложится на поле, и поле-хост доводит его до `<input>`. Края — шаблоны\n\tполя, всегда; свой `clear` — только заданный: иначе поле рисует кнопку по `clearable`.\n-->\n@if (slot('field'); as field) {\n\t<ng-container\n\t\t[ngTemplateOutlet]=\"field\"\n\t\t[ngTemplateOutletContext]=\"{ field: instance()?.field }\"\n\t/>\n} @else {\n\t<div\n\t\tso-input\n\t\t#control\n\t\tembedded=\"select.field\"\n\t\tclass=\"so-select__field\"\n\t\t[ctrl]=\"instance()?.field\"\n\t\t[id]=\"state()['id']\"\n\t\t[so-attributes]=\"state()['aria']\"\n\t>\n\t\t<ng-template slot=\"leading\">\n\t\t\t@if (state()['tags']; as tags) {\n\t\t\t\t@if (slot('tags'); as ownTags) {\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"ownTags\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ tags, engine: state()['tags_engine'] }\"\n\t\t\t\t\t/>\n\t\t\t\t} @else {\n\t\t\t\t\t<div\n\t\t\t\t\t\tso-tags\n\t\t\t\t\t\tembedded=\"select.tags\"\n\t\t\t\t\t\tclass=\"so-select__tags\"\n\t\t\t\t\t\t[ctrl]=\"tags\"\n\t\t\t\t\t\t[engine]=\"state()['tags_engine'] ?? undefined\"\n\t\t\t\t\t></div>\n\t\t\t\t}\n\t\t\t}\n\t\t\t<ng-content select=\"[slot=leading]\" />\n\t\t</ng-template>\n\t\t@if (slot('clear'); as clear) {\n\t\t\t<ng-template slot=\"clear\" let-command=\"clear\">\n\t\t\t\t<ng-container\n\t\t\t\t\t[ngTemplateOutlet]=\"clear\"\n\t\t\t\t\t[ngTemplateOutletContext]=\"{ clear: command }\"\n\t\t\t\t/>\n\t\t\t</ng-template>\n\t\t}\n\t\t<ng-template slot=\"trailing\">\n\t\t\t<!-- Класс — на обёртке: тема поворачивает и иконку из шаблона. -->\n\t\t\t<span class=\"so-select__arrow\">\n\t\t\t\t@if (slot('arrow-icon'); as arrow) {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"arrow\" />\n\t\t\t\t} @else {\n\t\t\t\t\t<svg\n\t\t\t\t\t\tso-icon\n\t\t\t\t\t\tembedded=\"select.arrow\"\n\t\t\t\t\t\tso-role-icon=\"arrowDown\"\n\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t></svg>\n\t\t\t\t}\n\t\t\t</span>\n\t\t\t<ng-content select=\"[slot=trailing]\" />\n\t\t</ng-template>\n\t</div>\n}\n<!-- Пометка владельцем на панели: она вне поддерева Select, и нажатие в неё было бы мимо. -->\n<div\n\tso-frame\n\tembedded=\"select.frame\"\n\tclass=\"so-select__panel\"\n\tstrategy=\"fixed\"\n\t[visible]=\"state()['visible'] && state()['open']\"\n\t[anchor_anchor]=\"rootElement()\"\n\t[anchor_placement]=\"state()['panelPlacement']\"\n\t[anchor_flip]=\"state()['panelFlip']\"\n\t[anchor_matchWidth]=\"state()['autoFitWidth']\"\n\t[anchor_offset]=\"4\"\n\t[so-attributes]=\"{ ...state()['panelDataset'], ...state()['dismiss_ownerAttribute'] }\"\n>\n\t<!-- Полоса жеста — вне списка: в `[role=listbox]` скринридер счёл бы её опцией. -->\n\t@if (state()['handleRendered']) {\n\t\t<div class=\"so-select__handle\" aria-hidden=\"true\"></div>\n\t}\n\t<!--\n\t\tБез опций разметки — секции коллекции, запасным содержимым `<ng-content>`. `empty` —\n\t\tвнутри списка: пустой `listbox` для скринридера — тупик.\n\t-->\n\t<div class=\"so-select__list\" [so-attributes]=\"state()['listAria']\">\n\t\t<!--\n\t\t\tOptions from data — from the panel's first opening on (`contentRendered`). The branch is\n\t\t\tinside the fallback content, not around `<ng-content>`: options in markup are the\n\t\t\tprojection, and they enter the collection only mounted.\n\t\t-->\n\t\t<ng-content>\n\t\t\t@if (state()['contentRendered']) {\n\t\t\t\t@for (\n\t\t\t\t\tsection of state()['drawnSections'] ?? [];\n\t\t\t\t\ttrack section.key;\n\t\t\t\t\tlet first = $first\n\t\t\t\t) {\n\t\t\t\t\t@if (state()['groupSeparators'] && !first) {\n\t\t\t\t\t\t<div class=\"so-select__separator\" aria-hidden=\"true\"></div>\n\t\t\t\t\t}\n\t\t\t\t\t@if (section.group; as group) {\n\t\t\t\t\t\t<div so-select-group [label]=\"group.label\">\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"entries\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: section.entries }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"entries\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ $implicit: section.entries }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t</ng-content>\n\t\t@if (state()['shown']?.length === 0) {\n\t\t\t<ng-content select=\"[slot=empty]\" />\n\t\t}\n\t</div>\n</div>\n<!-- Шаблоны слотов — в слив: в основной проекции они сняли бы запасное содержимое. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/radio-group/manifest'\n\nexport const RadioGroupInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'view',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'engine',\n\t'items',\n\t'trackBy',\n] as const\nexport const RadioGroupOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeView',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soItemActivated',\n\t'soItemDeactivated',\n\t'soChangeActivation',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'viewChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'itemsChange',\n\t'trackByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'view',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t],\n\toutputs: [...RadioGroupOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TRadioGroupSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(RadioGroupInputNames, RadioGroupOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare view: TInputValue<typeof descriptor, 'view'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soItemActivated: TOutputEmitter<typeof facade, 'item:activated'>\n\tdeclare readonly soItemDeactivated: TOutputEmitter<typeof facade, 'item:deactivated'>\n\tdeclare readonly soChangeActivation: TOutputEmitter<typeof facade, 'change:activation'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly viewChange: TModelEmitter<typeof descriptor, 'view'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n}\n","import {\n\tRadioGroupCollectionDescriptor,\n\tRadioGroupDescriptor,\n\tTCollectionExtension,\n\tTFieldControlExtension,\n} from '@soxa-ui/setup'\nimport type { IRadioGroup, IRadioGroupProps, TRadioGroupCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Группа радио: поле `Field` связывается с группой, а радио внутри связку поля не берут. */\nexport function setupRadioGroup(\n\tctrl: IRadioGroup | undefined,\n\tprops: object,\n\tengine: IRadioGroupProps['engine'],\n): TBinding<IRadioGroup, TRadioGroupCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(RadioGroupDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tRadioGroupCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/radio-group/item/manifest'\n\nexport const RadioGroupItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'active',\n] as const\nexport const RadioGroupItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeView',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeActive',\n\t'soChangeOrder',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'activeChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t{ name: 'active', transform: booleanInput },\n\t],\n\toutputs: [...RadioGroupItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TRadioGroupItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(RadioGroupItemInputNames, RadioGroupItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare active: TInputValue<typeof descriptor, 'active'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeActive: TOutputEmitter<typeof facade, 'change:active'>\n\tdeclare readonly soChangeOrder: TOutputEmitter<typeof facade, 'change:order'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly activeChange: TModelEmitter<typeof descriptor, 'active'>\n}\n","import {\n\tRadioGroupCollectionItemDescriptor,\n\tRadioGroupItemDescriptor,\n\tTCollectionItemExtension,\n} from '@soxa-ui/setup'\nimport type { IRadioGroupItem, TRadioGroupItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\nexport function setupRadioGroupItem(\n\tctrl: IRadioGroupItem | undefined,\n\tprops: object,\n): TBinding<IRadioGroupItem, TRadioGroupItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(RadioGroupItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tRadioGroupCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IRadioGroupItem } from '@soxa-ui/core'\nimport { AttributesDirective } from '../../../adapter'\nimport { TRadioGroupItemSurface } from '../../../generated/radio-group-item.metadata'\nimport { setupRadioGroupItem } from './setup.component'\n\n/**\n * Радио: корень — подпись (клик по тексту выбирает радио), внутри нативный `<input>`.\n * Группировку по `name`, стрелки и одну остановку Tab на группу даёт браузер.\n * См. AGENTS.md (Angular), «Поле: атрибуты потребителя делятся между корнем и `<input>`».\n */\n@Component({\n\tselector: 'label[so-radio-group-item], [so-radio-group-item]',\n\timports: [NgTemplateOutlet, AttributesDirective],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './radio-group-item.component.html',\n})\nexport class TRadioGroupItemComponent extends TRadioGroupItemSurface<IRadioGroupItem> {\n\tconstructor() {\n\t\tsuper(setupRadioGroupItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n\n\t/** `change` поля: браузер отметил радио, коллекция делает его активным. */\n\tprotected activate(): void {\n\t\tconst context = this.facade()?.context\n\n\t\tif (context) context.adapters.activation.active = true\n\t}\n}\n","<!--\n\tПоле — перед кольцом: кольцо фокуса тема рисует соседним селектором от поля.\n\tТочка стоит всегда: у неотмеченного тема сжимает её в ноль.\n\tВокруг подписи нет пробелов: пустую обёртку тема прячет по `:empty`.\n-->\n<input\n\t#control\n\tclass=\"so-radio-group-item__input\"\n\ttype=\"radio\"\n\t[attr.name]=\"state()['name'] ?? null\"\n\t[attr.value]=\"state()['value'] ?? null\"\n\t[checked]=\"state()['active'] === true\"\n\t[disabled]=\"state()['disabled'] === true\"\n\t[so-attributes]=\"state()['aria']\"\n\t(change)=\"activate()\"\n/>\n<span class=\"so-radio-group-item__control\"\n\t><span class=\"so-radio-group-item__indicator\"></span\n></span>\n<span class=\"so-radio-group-item__text\">\n\t@if (slot('default'); as text) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"text\"\n\t\t\t[ngTemplateOutletContext]=\"{ active: state()['active'] ?? false }\"\n\t\t/>\n\t} @else {\n\t\t<ng-content />\n\t}\n</span>\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IRadioGroup } from '@soxa-ui/core'\nimport { SlotDirective, provideElevator } from '../../adapter'\nimport { TRadioGroupItemComponent } from './item'\nimport { TRadioGroupSurface } from '../../generated/radio-group.metadata'\nimport { setupRadioGroup } from './setup.component'\n\n/** Группа радио; раскладку радио внутри задаёт потребитель. */\n@Component({\n\tselector: 'div[so-radio-group], [so-radio-group]',\n\timports: [NgTemplateOutlet, SlotDirective, TRadioGroupItemComponent],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './radio-group.component.html',\n})\nexport class TRadioGroupComponent extends TRadioGroupSurface<IRadioGroup> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupRadioGroup(ctrl, inputs, this.engine), { strategy: 'host' })\n\t}\n}\n","<!--\n\tПодпись радио из данных — шаблоном `default` в его слив (AGENTS.md (Angular), «Проброс\n\tслотов элементов коллекции — проекцией»). Шаблон слота из группы — в слив в конце:\n\tв основной проекции он снял бы радио из данных.\n-->\n<ng-content>\n\t@for (item of state()['shown'] ?? []; track item.uid) {\n\t\t<label so-radio-group-item [ctrl]=\"item\">\n\t\t\t@if (slot('item'); as content) {\n\t\t\t\t<ng-template slot=\"default\" ngProjectAs=\"ng-template[slot]\" let-active=\"active\">\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, active }\"\n\t\t\t\t\t/>\n\t\t\t\t</ng-template>\n\t\t\t}\n\t\t</label>\n\t}\n</ng-content>\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/tabs/manifest'\n\nexport const TabsInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'orientation',\n\t'alignment',\n\t'position',\n\t'view',\n\t'closable',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'engine',\n\t'items',\n\t'trackBy',\n] as const\nexport const TabsOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeOrientation',\n\t'soChangeAlignment',\n\t'soChangePosition',\n\t'soChangeView',\n\t'soChangeClosable',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soItemActivated',\n\t'soItemDeactivated',\n\t'soItemClose',\n\t'soChangeActivation',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'orientationChange',\n\t'alignmentChange',\n\t'positionChange',\n\t'viewChange',\n\t'closableChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'itemsChange',\n\t'trackByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'orientation',\n\t\t'alignment',\n\t\t'position',\n\t\t'view',\n\t\t{ name: 'closable', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t],\n\toutputs: [...TabsOutputNames],\n})\nexport abstract class TTabsSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TabsInputNames, TabsOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare orientation: TInputValue<typeof descriptor, 'orientation'>\n\tdeclare alignment: TInputValue<typeof descriptor, 'alignment'>\n\tdeclare position: TInputValue<typeof descriptor, 'position'>\n\tdeclare view: TInputValue<typeof descriptor, 'view'>\n\tdeclare closable: TInputValue<typeof descriptor, 'closable'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeOrientation: TOutputEmitter<typeof descriptor, 'change:orientation'>\n\tdeclare readonly soChangeAlignment: TOutputEmitter<typeof descriptor, 'change:alignment'>\n\tdeclare readonly soChangePosition: TOutputEmitter<typeof descriptor, 'change:position'>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soChangeClosable: TOutputEmitter<typeof descriptor, 'change:closable'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soItemActivated: TOutputEmitter<typeof facade, 'item:activated'>\n\tdeclare readonly soItemDeactivated: TOutputEmitter<typeof facade, 'item:deactivated'>\n\tdeclare readonly soItemClose: TOutputEmitter<typeof facade, 'item:close'>\n\tdeclare readonly soChangeActivation: TOutputEmitter<typeof facade, 'change:activation'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly orientationChange: TModelEmitter<typeof descriptor, 'orientation'>\n\tdeclare readonly alignmentChange: TModelEmitter<typeof descriptor, 'alignment'>\n\tdeclare readonly positionChange: TModelEmitter<typeof descriptor, 'position'>\n\tdeclare readonly viewChange: TModelEmitter<typeof descriptor, 'view'>\n\tdeclare readonly closableChange: TModelEmitter<typeof descriptor, 'closable'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n}\n","import {\n\tTCollectionExtension,\n\tTDragAndDropCollectionExtension,\n\tTabsCollectionDescriptor,\n\tTabsDescriptor,\n} from '@soxa-ui/setup'\nimport type { ITabs, ITabsProps, TTabsCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Tabs: движок и регистратор лифт опускает в слой набора — их берут и табы, и панели. */\nexport function setupTabs(\n\tctrl: ITabs | undefined,\n\tprops: object,\n\tengine: ITabsProps['engine'],\n): TBinding<ITabs, TTabsCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(TabsDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tTabsCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t)\n\t\t.use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\t\t.use(TDragAndDropCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/tabs/item/manifest'\n\nexport const TabsItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'closable',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n\t'active',\n] as const\nexport const TabsItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soChangeClosable',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'soChangeActive',\n\t'soChangeOrder',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'closableChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n\t'activeChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t{ name: 'closable', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t\t{ name: 'active', transform: booleanInput },\n\t],\n\toutputs: [...TabsItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TTabsItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TabsItemInputNames, TabsItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare closable: TInputValue<typeof descriptor, 'closable'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare active: TInputValue<typeof descriptor, 'active'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeClosable: TOutputEmitter<typeof descriptor, 'change:closable'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly soChangeActive: TOutputEmitter<typeof facade, 'change:active'>\n\tdeclare readonly soChangeOrder: TOutputEmitter<typeof facade, 'change:order'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly closableChange: TModelEmitter<typeof descriptor, 'closable'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n\tdeclare readonly activeChange: TModelEmitter<typeof descriptor, 'active'>\n}\n","import {\n\tTCollectionItemExtension,\n\tTabsCollectionItemDescriptor,\n\tTabsItemDescriptor,\n} from '@soxa-ui/setup'\nimport type { ITabsItem, TTabsItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Таб: свой контекст и фасада; в коллекцию входит, когда контекст фасада принят (`ngOnInit`). */\nexport function setupTabsItem(\n\tctrl: ITabsItem | undefined,\n\tprops: object,\n): TBinding<ITabsItem, TTabsItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(TabsItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tTabsCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITabsItem } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../../adapter'\nimport { TButtonComponent } from '../../button'\nimport { TIconComponent } from '../../icon'\nimport { TTabsItemSurface } from '../../../generated/tabs-item.metadata'\nimport { setupTabsItem } from './setup.component'\n\n/**\n * Таб: строка — Button с `role=\"tab\"` и набором `aria`, кнопка закрытия — её сосед:\n * интерактивный потомок у `<button role=\"tab\">` HTML запрещает.\n */\n@Component({\n\tselector: 'div[so-tabs-item], [so-tabs-item]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './tabs-item.component.html',\n})\nexport class TTabsItemComponent extends TTabsItemSurface<ITabsItem> {\n\tconstructor() {\n\t\tsuper(setupTabsItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t\torder: 'order',\n\t\t})\n\t}\n\n\t/** Клик по строке: таб становится активным, если активация не отменена. */\n\tprotected activate(): void {\n\t\tconst context = this.facade()?.context\n\n\t\tif (context) context.adapters.activation.active = true\n\t}\n\n\t/** Клик по крестику: закрыть таб; клик не всплывает, как `@click.stop` у Vue. */\n\tprotected close(event: Event): void {\n\t\tevent.stopPropagation()\n\t\tthis.facade()?.context?.adapters.tabs.close()\n\t}\n}\n","<!--\n\tКрестик — `@if`, а не `rendered` кнопки: у Angular тот прячет корень, и скрытая\n\tкнопка со своими плагинами стояла бы у каждого таба.\n-->\n<button\n\tso-button\n\t#control\n\tembedded=\"tabs.row\"\n\ttype=\"button\"\n\t[disabled]=\"state()['disabled']\"\n\t[size]=\"state()['size']\"\n\t[variant]=\"state()['variant']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(click)=\"activate()\"\n>\n\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t<ng-content select=\"[slot=leading]\" />\n\t</ng-container>\n\t@if (slot('default'); as content) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\tactive: state()['active'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t}\n\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t<ng-content select=\"[slot=trailing]\" />\n\t</ng-container>\n</button>\n@if (state()['tab_closable']) {\n\t<button\n\t\tso-button\n\t\tembedded=\"tabs.close\"\n\t\ttype=\"button\"\n\t\tclass=\"so-tabs-item__close\"\n\t\t[disabled]=\"state()['disabled']\"\n\t\t[size]=\"state()['size']\"\n\t\t[so-attributes]=\"state()['closeAria']\"\n\t\t(click)=\"close($event)\"\n\t>\n\t\t@if (slot('close-icon'); as icon) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t} @else {\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"tabs.close-icon\"\n\t\t\t\tso-role-icon=\"close\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t}\n\t</button>\n}\n<ng-content select=\"ng-template[slot]\" />\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITabs } from '@soxa-ui/core'\nimport { AttributesDirective, SlotDirective, provideElevator } from '../../adapter'\nimport { TTabsItemComponent } from './item'\nimport { TTabsSurface } from '../../generated/tabs.metadata'\nimport { setupTabs } from './setup.component'\n\n/**\n * Набор вкладок: ряд со списком табов и панели под ним. Набор `aria` и атрибуты\n * потребителя — списку (`#control`), слоты `leading` и `trailing` — в ряду рядом\n * с ним. Панели — слот `content`: `default` лежит внутри `[role=tablist]`.\n */\n@Component({\n\tselector: 'div[so-tabs], [so-tabs]',\n\timports: [NgTemplateOutlet, AttributesDirective, SlotDirective, TTabsItemComponent],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './tabs.component.html',\n})\nexport class TTabsComponent extends TTabsSurface<ITabs> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupTabs(ctrl, inputs, this.engine), {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t})\n\t}\n}\n","<!--\n\tРяд — список табов и края по его сторонам. Края — в ряду, а не в списке: в\n\t`[role=tablist]` ARIA пускает только `tab`. Края — шаблонами: есть ли что-то в\n\t`<ng-content>`, Angular не сообщает.\n\tСлоты таба без scope — проекцией (`ngProjectAs`), остальные — шаблонами в его слив.\n\tШаблоны слотов набора — в слив в конце: иначе сняли бы табы из данных.\n-->\n<div class=\"so-tabs__bar\">\n\t@if (slot('leading'); as leading) {\n\t\t<div class=\"so-tabs__leading\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"leading\" />\n\t\t</div>\n\t}\n\t<div #control class=\"so-tabs__list\" [so-attributes]=\"state()['aria']\">\n\t\t<ng-content>\n\t\t\t@for (item of state()['shown'] ?? []; track item.uid) {\n\t\t\t\t<div so-tabs-item [ctrl]=\"item\">\n\t\t\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t}\n\t\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\tslot=\"default\"\n\t\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\t\tlet-active=\"active\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text, active }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t}\n\t\t\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t\t\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-container>\n\t\t\t\t\t}\n\t\t\t\t\t@if (slot('item-close-icon'); as icon) {\n\t\t\t\t\t\t<ng-template slot=\"close-icon\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"icon\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t}\n\t\t</ng-content>\n\t</div>\n\t@if (slot('trailing'); as trailing) {\n\t\t<div class=\"so-tabs__trailing\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"trailing\" />\n\t\t</div>\n\t}\n</div>\n<ng-content select=\"[slot=content]\" />\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/tabs/content/manifest'\n\nexport const TabsContentInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'value',\n\t'id',\n] as const\nexport const TabsContentOutputNames = [\n\t'soChangeValue',\n\t'soChangeId',\n\t'soChangeActive',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'valueChange',\n\t'idChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'value',\n\t\t'id',\n\t],\n\toutputs: [...TabsContentOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TTabsContentSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TabsContentInputNames, TabsContentOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly soChangeActive: TOutputEmitter<typeof facade, 'change:active'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n}\n","import {\n\tTTabsContentBindingExtension,\n\tTabsCollectionContentDescriptor,\n\tTabsContentDescriptor,\n} from '@soxa-ui/setup'\nimport type { ITabsContent, TTabsContentCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Панель таба: свой таб по `value` находит лифтом `TTabsContentBindingExtension`. */\nexport function setupTabsContent(\n\tctrl: ITabsContent | undefined,\n\tprops: object,\n): TBinding<ITabsContent, TTabsContentCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(TabsContentDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst content = createAngularAdapterContext(\n\t\tTabsCollectionContentDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TTabsContentBindingExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(content))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITabsContent } from '@soxa-ui/core'\nimport { TTabsContentSurface } from '../../../generated/tabs-content.metadata'\nimport { setupTabsContent } from './setup.component'\n\n/**\n * Панель таба: видна, когда активен связанный по `value` таб.\n * AGENTS.md (Angular), «Панель таба скрыта, пока её таб не активен».\n */\n@Component({\n\tselector: 'div[so-tabs-content], [so-tabs-content]',\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './tabs-content.component.html',\n})\nexport class TTabsContentComponent extends TTabsContentSurface<ITabsContent> {\n\tconstructor() {\n\t\tsuper(setupTabsContent, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'aria'],\n\t\t\tshownBy: 'active',\n\t\t})\n\t}\n}\n","<!--\n\tThe content of an inactive panel is not in the document. A projection is created right away by\n\tthe template that wrote it, and `@if` only keeps it out of the document; the `default` template\n\tis created here, so an inactive panel creates nothing, and leaving the tab removes it, as `v-if`\n\tdoes in Vue. Given, it is drawn instead of the projection.\n-->\n@if (state()['active']) {\n\t@if (slot('default'); as content) {\n\t\t<ng-container [ngTemplateOutlet]=\"content\" />\n\t} @else {\n\t\t<ng-content />\n\t}\n}\n<!-- The sink of slot templates: the panel draws them itself, they are not projected. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/accordion/manifest'\n\nexport const AccordionInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'view',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'engine',\n\t'items',\n\t'trackBy',\n\t'mode',\n] as const\nexport const AccordionOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeView',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soChangeMode',\n\t'soChangeSelection',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'viewChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'itemsChange',\n\t'trackByChange',\n\t'modeChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'view',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t\t'mode',\n\t],\n\toutputs: [...AccordionOutputNames],\n})\nexport abstract class TAccordionSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(AccordionInputNames, AccordionOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare view: TInputValue<typeof descriptor, 'view'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare mode: TInputValue<typeof descriptor, 'mode'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeView: TOutputEmitter<typeof descriptor, 'change:view'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soChangeMode: TOutputEmitter<typeof facade, 'change:mode'>\n\tdeclare readonly soChangeSelection: TOutputEmitter<typeof facade, 'change:selection'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly viewChange: TModelEmitter<typeof descriptor, 'view'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n\tdeclare readonly modeChange: TModelEmitter<typeof descriptor, 'mode'>\n}\n","import {\n\tAccordionCollectionDescriptor,\n\tAccordionDescriptor,\n\tTCollectionExtension,\n\tTDragAndDropCollectionExtension,\n} from '@soxa-ui/setup'\nimport type { IAccordion, IAccordionProps, TAccordionCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Аккордеон; `engine` — готовая коллекция снаружи (`completeEngine`). */\nexport function setupAccordion(\n\tctrl: IAccordion | undefined,\n\tprops: object,\n\tengine: IAccordionProps['engine'],\n): TBinding<IAccordion, TAccordionCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(AccordionDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tAccordionCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t)\n\t\t.use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\t\t.use(TDragAndDropCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/accordion/item/manifest'\n\nexport const AccordionItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'text',\n\t'arrowPlacement',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n\t'selected',\n] as const\nexport const AccordionItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'soChangeArrowPlacement',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'soChangeSelected',\n\t'soChangeOrder',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'textChange',\n\t'arrowPlacementChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n\t'selectedChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'text',\n\t\t'arrowPlacement',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t\t{ name: 'selected', transform: booleanInput },\n\t],\n\toutputs: [...AccordionItemOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TAccordionItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(AccordionItemInputNames, AccordionItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _controlRef = viewChild<unknown, ElementRef<Element>>('control', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'control') return this._controlRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare text: TInputValue<typeof descriptor, 'text'>\n\tdeclare arrowPlacement: TInputValue<typeof descriptor, 'arrowPlacement'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare selected: TInputValue<typeof descriptor, 'selected'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeArrowPlacement: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:arrowPlacement'\n\t>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly soChangeSelected: TOutputEmitter<typeof facade, 'change:selected'>\n\tdeclare readonly soChangeOrder: TOutputEmitter<typeof facade, 'change:order'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly textChange: TModelEmitter<typeof descriptor, 'text'>\n\tdeclare readonly arrowPlacementChange: TModelEmitter<typeof descriptor, 'arrowPlacement'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n\tdeclare readonly selectedChange: TModelEmitter<typeof descriptor, 'selected'>\n}\n","import {\n\tAccordionCollectionItemDescriptor,\n\tAccordionItemDescriptor,\n\tTCollectionItemExtension,\n} from '@soxa-ui/setup'\nimport type { IAccordionItem, TAccordionItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\nexport function setupAccordionItem(\n\tctrl: IAccordionItem | undefined,\n\tprops: object,\n): TBinding<IAccordionItem, TAccordionItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(AccordionItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tAccordionCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IAccordionItem } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective } from '../../../adapter'\nimport { TButtonComponent } from '../../button'\nimport { TIconComponent } from '../../icon'\nimport { TAccordionItemSurface } from '../../../generated/accordion-item.metadata'\nimport { setupAccordionItem } from './setup.component'\n\n/**\n * Секция аккордеона: заголовок — Button (`#control`), под ним панель.\n * Класс стрелки — на обёртке: тема поворачивает её у раскрытой секции, и иконка\n * из слота поворачивается так же.\n */\n@Component({\n\tselector: 'div[so-accordion-item], [so-accordion-item]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './accordion-item.component.html',\n})\nexport class TAccordionItemComponent extends TAccordionItemSurface<IAccordionItem> {\n\tconstructor() {\n\t\tsuper(setupAccordionItem, {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs', 'dataset'],\n\t\t\tcontrol: true,\n\t\t\torder: 'order',\n\t\t})\n\t}\n}\n","<button\n\tso-button\n\t#control\n\tembedded=\"accordion.header\"\n\ttype=\"button\"\n\tclass=\"so-accordion-item__header\"\n\t[view]=\"state()['view']\"\n\t[disabled]=\"state()['disabled']\"\n\t[size]=\"state()['size']\"\n\t[variant]=\"state()['variant']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(click)=\"facade()?.context?.adapters.selection.toggle()\"\n>\n\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t@if (state()['arrowPlacement'] === 'start') {\n\t\t\t<span class=\"so-accordion-item__arrow\">\n\t\t\t\t@if (slot('arrow-icon'); as icon) {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t\t} @else {\n\t\t\t\t\t<svg\n\t\t\t\t\t\tso-icon\n\t\t\t\t\t\tembedded=\"accordion.arrow\"\n\t\t\t\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t></svg>\n\t\t\t\t}\n\t\t\t</span>\n\t\t}\n\t\t<ng-content select=\"[slot=leading]\" />\n\t</ng-container>\n\t@if (slot('header'); as header) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\tselected: state()['selected'] ?? false,\n\t\t\t}\"\n\t\t/>\n\t} @else {\n\t\t<ng-content select=\"[slot=header]\">{{ state()['text'] }}</ng-content>\n\t}\n\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t<ng-content select=\"[slot=trailing]\" />\n\t\t@if (state()['arrowPlacement'] === 'end') {\n\t\t\t<span class=\"so-accordion-item__arrow\">\n\t\t\t\t@if (slot('arrow-icon'); as icon) {\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t\t} @else {\n\t\t\t\t\t<svg\n\t\t\t\t\t\tso-icon\n\t\t\t\t\t\tembedded=\"accordion.arrow\"\n\t\t\t\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t></svg>\n\t\t\t\t}\n\t\t\t</span>\n\t\t}\n\t</ng-container>\n</button>\n<div class=\"so-accordion-item__body\">\n\t<div class=\"so-accordion-item__content\" [so-attributes]=\"state()['contentAria']\">\n\t\t<ng-content />\n\t</div>\n</div>\n<ng-content select=\"ng-template[slot]\" />\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IAccordion } from '@soxa-ui/core'\nimport { SlotDirective, provideElevator } from '../../adapter'\nimport { TAccordionItemComponent } from './item'\nimport { TAccordionSurface } from '../../generated/accordion.metadata'\nimport { setupAccordion } from './setup.component'\n\n/**\n * Набор раскрывающихся секций. Панель — не отдельная часть: она внутри секции, и у\n * секций из данных её содержимое — слот `item-content`.\n */\n@Component({\n\tselector: 'div[so-accordion], [so-accordion]',\n\timports: [NgTemplateOutlet, SlotDirective, TAccordionItemComponent],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './accordion.component.html',\n})\nexport class TAccordionComponent extends TAccordionSurface<IAccordion> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupAccordion(ctrl, inputs, this.engine), {\n\t\t\tstrategy: 'host',\n\t\t\tsets: ['attrs'],\n\t\t})\n\t}\n}\n","<!--\n\tПроброс слотов секции — AGENTS.md (Angular), «Проброс слотов элементов коллекции —\n\tпроекцией»: `item-content` — основная проекция секции, её панель. Шаблоны слотов из\n\tаккордеона — в слив в конце: в основной проекции они сняли бы секции из данных.\n-->\n<ng-content>\n\t@for (item of state()['shown'] ?? []; track item.uid) {\n\t\t<div so-accordion-item [ctrl]=\"item\">\n\t\t\t@if (slot('item-arrow-icon'); as icon) {\n\t\t\t\t<ng-template slot=\"arrow-icon\" ngProjectAs=\"ng-template[slot]\">\n\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" [ngTemplateOutletContext]=\"{ item }\" />\n\t\t\t\t</ng-template>\n\t\t\t}\n\t\t\t@if (slot('item-leading'); as leading) {\n\t\t\t\t<ng-container ngProjectAs=\"[slot=leading]\">\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"leading\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t/>\n\t\t\t\t</ng-container>\n\t\t\t}\n\t\t\t@if (slot('item'); as header) {\n\t\t\t\t<ng-template\n\t\t\t\t\tslot=\"header\"\n\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\tlet-selected=\"selected\"\n\t\t\t\t>\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text, selected }\"\n\t\t\t\t\t/>\n\t\t\t\t</ng-template>\n\t\t\t}\n\t\t\t@if (slot('item-trailing'); as trailing) {\n\t\t\t\t<ng-container ngProjectAs=\"[slot=trailing]\">\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"trailing\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item }\"\n\t\t\t\t\t/>\n\t\t\t\t</ng-container>\n\t\t\t}\n\t\t\t@if (slot('item-content'); as content) {\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"content\" [ngTemplateOutletContext]=\"{ item }\" />\n\t\t\t}\n\t\t</div>\n\t}\n</ng-content>\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/pagination/manifest'\n\nexport const PaginationInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'total',\n\t'pageSize',\n\t'pages',\n\t'middleCount',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'engine',\n] as const\nexport const PaginationOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeTotal',\n\t'soChangePageSize',\n\t'soChangePages',\n\t'soChangeMiddleCount',\n\t'soChangeLocale',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'totalChange',\n\t'pageSizeChange',\n\t'pagesChange',\n\t'middleCountChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'total',\n\t\t'pageSize',\n\t\t'pages',\n\t\t'middleCount',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'engine',\n\t],\n\toutputs: [...PaginationOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TPaginationSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(PaginationInputNames, PaginationOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare total: TInputValue<typeof descriptor, 'total'>\n\tdeclare pageSize: TInputValue<typeof descriptor, 'pageSize'>\n\tdeclare pages: TInputValue<typeof descriptor, 'pages'>\n\tdeclare middleCount: TInputValue<typeof descriptor, 'middleCount'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeTotal: TOutputEmitter<typeof descriptor, 'change:total'>\n\tdeclare readonly soChangePageSize: TOutputEmitter<typeof descriptor, 'change:pageSize'>\n\tdeclare readonly soChangePages: TOutputEmitter<typeof descriptor, 'change:pages'>\n\tdeclare readonly soChangeMiddleCount: TOutputEmitter<typeof descriptor, 'change:middleCount'>\n\tdeclare readonly soChangeLocale: TOutputEmitter<typeof descriptor, 'change:locale'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly totalChange: TModelEmitter<typeof descriptor, 'total'>\n\tdeclare readonly pageSizeChange: TModelEmitter<typeof descriptor, 'pageSize'>\n\tdeclare readonly pagesChange: TModelEmitter<typeof descriptor, 'pages'>\n\tdeclare readonly middleCountChange: TModelEmitter<typeof descriptor, 'middleCount'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import {\n\tPaginationCollectionDescriptor,\n\tPaginationDescriptor,\n\tTCollectionExtension,\n} from '@soxa-ui/setup'\nimport type { IPagination, IPaginationProps, TPaginationCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Пагинация: страницы окна кладёт в движок расширение коллекции `pagination`. */\nexport function setupPagination(\n\tctrl: IPagination | undefined,\n\tprops: object,\n\tengine: IPaginationProps['engine'],\n): TBinding<IPagination, TPaginationCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(PaginationDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tPaginationCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/pagination/item/manifest'\n\nexport const PaginationItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n] as const\nexport const PaginationItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeText',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t],\n\toutputs: [...PaginationItemOutputNames],\n})\nexport abstract class TPaginationItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(PaginationItemInputNames, PaginationItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n}\n","import {\n\tPaginationCollectionItemDescriptor,\n\tPaginationItemDescriptor,\n\tTCollectionItemExtension,\n} from '@soxa-ui/setup'\nimport type { IPaginationItem, TPaginationItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Страница пагинации: ключ, текст и наборы ей пишет расширение коллекции. */\nexport function setupPaginationItem(\n\tctrl: IPaginationItem | undefined,\n\tprops: object,\n): TBinding<IPaginationItem, TPaginationItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(PaginationItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tPaginationCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IPaginationItem } from '@soxa-ui/core'\nimport { AttributesDirective } from '../../../adapter'\nimport { TButtonComponent } from '../../button'\nimport { TPaginationItemSurface } from '../../../generated/pagination-item.metadata'\nimport { setupPaginationItem } from './setup.component'\n\n/**\n * Страница пагинации — внутренняя часть: её рисует только пагинация, по одной на\n * страницу окна. Текущая — не выключенная кнопка: каждая страница — своя остановка Tab.\n */\n@Component({\n\tselector: 'li[so-pagination-item], [so-pagination-item]',\n\timports: [NgTemplateOutlet, AttributesDirective, TButtonComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './pagination-item.component.html',\n})\nexport class TPaginationItemComponent extends TPaginationItemSurface<IPaginationItem> {\n\tconstructor() {\n\t\tsuper(setupPaginationItem, { strategy: 'host', sets: ['attrs', 'dataset'] })\n\t}\n\n\t/** Нажатие строки: страница становится текущей — активацией коллекции. */\n\tprotected activate(): void {\n\t\tconst context = this.facade()?.context\n\n\t\tif (context) context.adapters.activation.active = true\n\t}\n}\n","<!--\n\tВида у строки нет: `plain`, заливку текущей и квадрат узкого номера даёт тема.\n\tШаблон `default` от пагинации — в слив в конце: в основной проекции снял бы текст.\n-->\n<button\n\tso-button\n\tembedded=\"pagination.page\"\n\ttype=\"button\"\n\t[disabled]=\"state()['disabled']\"\n\t[size]=\"state()['size']\"\n\t[variant]=\"state()['variant']\"\n\t[so-attributes]=\"state()['aria']\"\n\t(click)=\"activate()\"\n>\n\t@if (slot('default'); as content) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{ text: state()['text'] ?? '' }\"\n\t\t/>\n\t} @else {\n\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t}\n</button>\n<ng-content select=\"ng-template[slot]\" />\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IPagination } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tRoleIconDirective,\n\tSlotDirective,\n\tprovideElevator,\n} from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TIconComponent } from '../icon'\nimport { TPaginationItemComponent } from './item'\nimport { TPaginationSurface } from '../../generated/pagination.metadata'\nimport { setupPagination } from './setup.component'\n\n/**\n * Постраничная навигация: стрелка «назад», список страниц, стрелка «вперёд».\n * Имя корню (`aria_label`) даёт приложение: что листают, знает только оно.\n */\n@Component({\n\tselector: 'nav[so-pagination], [so-pagination]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tSlotDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t\tTPaginationItemComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './pagination.component.html',\n})\nexport class TPaginationComponent extends TPaginationSurface<IPagination> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupPagination(ctrl, inputs, this.engine), { strategy: 'host' })\n\t}\n}\n","<!--\n\tСтрелки — вне списка: в списке только страницы и пропуски. Значок обеих — `arrowRight`:\n\t«назад» тема зеркалит по направлению строки.\n-->\n<button\n\tso-button\n\tembedded=\"pagination.prev\"\n\ttype=\"button\"\n\tclass=\"so-pagination__prev\"\n\t[size]=\"state()['size']\"\n\t[variant]=\"state()['variant']\"\n\t[disabled]=\"state()['prevDisabled']\"\n\t[so-attributes]=\"state()['prevAria']\"\n\t(click)=\"instance()?.prev()\"\n>\n\t@if (slot('prev-icon'); as icon) {\n\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t} @else {\n\t\t<svg\n\t\t\tso-icon\n\t\t\tembedded=\"pagination.prev-icon\"\n\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t[size]=\"state()['size']\"\n\t\t></svg>\n\t}\n</button>\n<!--\n\tКлюч — `cell.key`: страница, оставшаяся при сдвиге окна, — тот же узел, и фокус с неё\n\tне слетает. Слот `item` — шаблоном `default` страницы: он уходит в её слив.\n-->\n<ol class=\"so-pagination__list\">\n\t@for (cell of state()['cells'] ?? []; track cell.key) {\n\t\t@if (cell.kind === 'item') {\n\t\t\t<li so-pagination-item [ctrl]=\"cell.item\">\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template slot=\"default\" ngProjectAs=\"ng-template[slot]\" let-text=\"text\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item: cell.item, text }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t</li>\n\t\t} @else {\n\t\t\t<!--\n\t\t\t\tПропуск — не кнопка: на нём ничего не нажимают, и фокуса у него нет.\n\t\t\t-->\n\t\t\t<li class=\"so-pagination__ellipsis\">…</li>\n\t\t}\n\t}\n</ol>\n<button\n\tso-button\n\tembedded=\"pagination.next\"\n\ttype=\"button\"\n\tclass=\"so-pagination__next\"\n\t[size]=\"state()['size']\"\n\t[variant]=\"state()['variant']\"\n\t[disabled]=\"state()['nextDisabled']\"\n\t[so-attributes]=\"state()['nextAria']\"\n\t(click)=\"instance()?.next()\"\n>\n\t@if (slot('next-icon'); as icon) {\n\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t} @else {\n\t\t<svg\n\t\t\tso-icon\n\t\t\tembedded=\"pagination.next-icon\"\n\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t[size]=\"state()['size']\"\n\t\t></svg>\n\t}\n</button>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/calendar/manifest'\n\nexport const CalendarInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'min',\n\t'max',\n\t'unavailable',\n\t'weekStart',\n\t'timeZone',\n\t'months',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'engine',\n\t'mode',\n] as const\nexport const CalendarOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeMin',\n\t'soChangeMax',\n\t'soChangeUnavailable',\n\t'soChangeWeekStart',\n\t'soChangeLocale',\n\t'soChangeTimeZone',\n\t'soChangeMonths',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeMode',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'minChange',\n\t'maxChange',\n\t'unavailableChange',\n\t'weekStartChange',\n\t'timeZoneChange',\n\t'monthsChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'modeChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t'min',\n\t\t'max',\n\t\t'unavailable',\n\t\t'weekStart',\n\t\t'timeZone',\n\t\t'months',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'engine',\n\t\t'mode',\n\t],\n\toutputs: [...CalendarOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TCalendarSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(CalendarInputNames, CalendarOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare min: TInputValue<typeof descriptor, 'min'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare unavailable: TInputValue<typeof descriptor, 'unavailable'>\n\tdeclare weekStart: TInputValue<typeof descriptor, 'weekStart'>\n\tdeclare timeZone: TInputValue<typeof descriptor, 'timeZone'>\n\tdeclare months: TInputValue<typeof descriptor, 'months'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare mode: TInputValue<typeof descriptor, 'mode'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeMin: TOutputEmitter<typeof descriptor, 'change:min'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeUnavailable: TOutputEmitter<typeof descriptor, 'change:unavailable'>\n\tdeclare readonly soChangeWeekStart: TOutputEmitter<typeof descriptor, 'change:weekStart'>\n\tdeclare readonly soChangeLocale: TOutputEmitter<typeof descriptor, 'change:locale'>\n\tdeclare readonly soChangeTimeZone: TOutputEmitter<typeof descriptor, 'change:timeZone'>\n\tdeclare readonly soChangeMonths: TOutputEmitter<typeof descriptor, 'change:months'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeMode: TOutputEmitter<typeof facade, 'change:mode'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly minChange: TModelEmitter<typeof descriptor, 'min'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly unavailableChange: TModelEmitter<typeof descriptor, 'unavailable'>\n\tdeclare readonly weekStartChange: TModelEmitter<typeof descriptor, 'weekStart'>\n\tdeclare readonly timeZoneChange: TModelEmitter<typeof descriptor, 'timeZone'>\n\tdeclare readonly monthsChange: TModelEmitter<typeof descriptor, 'months'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly modeChange: TModelEmitter<typeof descriptor, 'mode'>\n}\n","import {\n\tCalendarCollectionDescriptor,\n\tCalendarDescriptor,\n\tTCollectionExtension,\n} from '@soxa-ui/setup'\nimport type { ICalendar, ICalendarProps, TCalendarCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Calendar: лифт опускает движок и регистратор дней в слой календаря; `engine` — от DatePicker. */\nexport function setupCalendar(\n\tctrl: ICalendar | undefined,\n\tprops: object,\n\tengine: ICalendarProps['engine'],\n): TBinding<ICalendar, TCalendarCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(CalendarDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tCalendarCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/calendar/item/manifest'\n\nexport const CalendarItemInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n] as const\nexport const CalendarItemOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeDate',\n\t'soChangeText',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t],\n\toutputs: [...CalendarItemOutputNames],\n})\nexport abstract class TCalendarItemSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(CalendarItemInputNames, CalendarItemOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeDate: TOutputEmitter<typeof descriptor, 'change:date'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n}\n","import {\n\tCalendarCollectionItemDescriptor,\n\tCalendarItemDescriptor,\n\tTCollectionItemExtension,\n} from '@soxa-ui/setup'\nimport type { ICalendarItem, TCalendarItemCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** День календаря: свой контекст и фасада; выбирают его плагины календаря на корне. */\nexport function setupCalendarItem(\n\tctrl: ICalendarItem | undefined,\n\tprops: object,\n): TBinding<ICalendarItem, TCalendarItemCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(CalendarItemDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tCalendarCollectionItemDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ICalendarItem } from '@soxa-ui/core'\nimport { TCalendarItemSurface } from '../../../generated/calendar-item.metadata'\nimport { setupCalendarItem } from './setup.component'\n\n/**\n * День календаря — сама ячейка `td`: чужой тег внутри `table` браузер выкинет.\n * Кнопки внутри нет: фокус по APG стоит на ячейке.\n */\n@Component({\n\tselector: 'td[so-calendar-item], [so-calendar-item]',\n\timports: [NgTemplateOutlet],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './calendar-item.component.html',\n})\nexport class TCalendarItemComponent extends TCalendarItemSurface<ICalendarItem> {\n\tconstructor() {\n\t\tsuper(setupCalendarItem, { strategy: 'host' })\n\t}\n}\n","<!--\n\tПлитка — `div`, а не `span`: в слот кладут и блочное. Номер — `[textContent]`, а не\n\tинтерполяцией: от отступа Prettier Angular оставил бы пробелы.\n-->\n@if (slot('default'); as content) {\n\t<div class=\"so-calendar-item__day\">\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t[ngTemplateOutletContext]=\"{ text: state()['text'] ?? '' }\"\n\t\t/>\n\t</div>\n} @else {\n\t<div class=\"so-calendar-item__day\" [textContent]=\"state()['text'] ?? ''\"></div>\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ICalendar } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tRoleIconDirective,\n\tSlotDirective,\n\tprovideElevator,\n} from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TIconComponent } from '../icon'\nimport { TListBoxComponent } from '../list-box'\nimport { TPopoverComponent } from '../popover'\nimport { TCalendarItemComponent } from './item'\nimport { TCalendarSurface } from '../../generated/calendar.metadata'\nimport { setupCalendar } from './setup.component'\n\n/**\n * Календарь: сетки показанных месяцев, одна пара кнопок листания и подвал.\n * AGENTS.md (Angular), «Даты — поле из частей, сетка из `td`, поле с календарём в панели».\n */\n@Component({\n\tselector: 'div[so-calendar], [so-calendar]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tSlotDirective,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t\tTListBoxComponent,\n\t\tTPopoverComponent,\n\t\tTCalendarItemComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './calendar.component.html',\n})\nexport class TCalendarComponent extends TCalendarSurface<ICalendar> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupCalendar(ctrl, inputs, this.engine), { strategy: 'host' })\n\t}\n}\n","<!--\n\tThere is no main projection: the view puts the days into the collection by grid months. The\n\tfooter is a row of its own: next to the months it would widen their row. Node text is\n\t`[textContent]`, not interpolation: Angular would keep the spaces of Prettier indentation.\n-->\n<div class=\"so-calendar__months\">\n\t<!-- Keyed by grid place: when paging, the heading, its popover and the live region stay the same nodes. -->\n\t@for (grid of state()['grids'] ?? []; track $index; let index = $index) {\n\t\t<div class=\"so-calendar__month\">\n\t\t\t<!--\n\t\t\t\tThe place block is keyed by the presence of the record, not by the record: the\n\t\t\t\trecord is new on every change, while Popover takes `ctrl` only when it is\n\t\t\t\tassembled, and so does ListBox with `ctrl` and `engine`, assembled with the first\n\t\t\t\topen of the panel. The popover's root is a `div`: a block panel has no place inside\n\t\t\t\ta `span`.\n\t\t\t-->\n\t\t\t@if (state()['pickers']?.[index]; as picker) {\n\t\t\t\t<div\n\t\t\t\t\tso-popover\n\t\t\t\t\tembedded=\"calendar.picker\"\n\t\t\t\t\tclass=\"so-calendar__heading\"\n\t\t\t\t\tcontained\n\t\t\t\t\tedge=\"top\"\n\t\t\t\t\t[ctrl]=\"picker.popover\"\n\t\t\t\t\t[aria_labelledBy]=\"picker.labelledBy\"\n\t\t\t\t>\n\t\t\t\t\t<ng-template\n\t\t\t\t\t\tslot=\"trigger\"\n\t\t\t\t\t\tlet-triggerAria=\"triggerAria\"\n\t\t\t\t\t\tlet-triggerDataset=\"triggerDataset\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tso-button\n\t\t\t\t\t\t\tembedded=\"calendar.title\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"so-calendar__title\"\n\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t[disabled]=\"state()['disabled']\"\n\t\t\t\t\t\t\t[so-attributes]=\"{ ...triggerAria, ...triggerDataset }\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclass=\"so-calendar__title-text\"\n\t\t\t\t\t\t\t\t[so-attributes]=\"grid.titleAria\"\n\t\t\t\t\t\t\t\t[textContent]=\"grid.title\"\n\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t</button>\n\t\t\t\t\t</ng-template>\n\t\t\t\t\t<!--\n\t\t\t\t\t\tThe card is the popover's `default` template, not its projection: the place\n\t\t\t\t\t\tpopover has `lazyMount`, and the template's ListBox and buttons come with the\n\t\t\t\t\t\tfirst open of the panel, not with every month. The place's list instance comes\n\t\t\t\t\t\twith that same first open, so ListBox stands in a branch by the presence of\n\t\t\t\t\t\tthe list. The list comes before the header in the DOM: focus on open lands on\n\t\t\t\t\t\tit, and the theme puts the header on top.\n\t\t\t\t\t-->\n\t\t\t\t\t<ng-template slot=\"default\">\n\t\t\t\t\t\t<div class=\"so-calendar__picker\">\n\t\t\t\t\t\t\t@if (picker.list; as list) {\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tso-list-box\n\t\t\t\t\t\t\t\t\tembedded=\"calendar.picker-list\"\n\t\t\t\t\t\t\t\t\tclass=\"so-calendar__picker-list\"\n\t\t\t\t\t\t\t\t\tindicator=\"none\"\n\t\t\t\t\t\t\t\t\t[ctrl]=\"list.ctrl\"\n\t\t\t\t\t\t\t\t\t[engine]=\"list.engine\"\n\t\t\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t\t\t[aria_labelledBy]=\"picker.labelledBy\"\n\t\t\t\t\t\t\t\t></div>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<div class=\"so-calendar__picker-header\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tso-button\n\t\t\t\t\t\t\t\t\tembedded=\"calendar.picker-heading\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclass=\"so-calendar__picker-heading\"\n\t\t\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t\t\t[text]=\"picker.heading\"\n\t\t\t\t\t\t\t\t\t[so-attributes]=\"picker.headingAria\"\n\t\t\t\t\t\t\t\t></button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tso-button\n\t\t\t\t\t\t\t\t\tembedded=\"calendar.picker-prev\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclass=\"so-calendar__picker-prev\"\n\t\t\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t\t\t[disabled]=\"picker.prevDisabled\"\n\t\t\t\t\t\t\t\t\t[so-attributes]=\"picker.prevAria\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\tso-icon\n\t\t\t\t\t\t\t\t\t\tembedded=\"calendar.picker-prev-icon\"\n\t\t\t\t\t\t\t\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t\t\t></svg>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tso-button\n\t\t\t\t\t\t\t\t\tembedded=\"calendar.picker-next\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tclass=\"so-calendar__picker-next\"\n\t\t\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t\t\t[disabled]=\"picker.nextDisabled\"\n\t\t\t\t\t\t\t\t\t[so-attributes]=\"picker.nextAria\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\t\t\tso-icon\n\t\t\t\t\t\t\t\t\t\tembedded=\"calendar.picker-next-icon\"\n\t\t\t\t\t\t\t\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t\t\t></svg>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</ng-template>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\t<!--\n\t\t\t\tPaging buttons — one pair, at the first month: Tab follows the eye. Both use the\n\t\t\t\t`arrowRight` icon, the theme mirrors «back».\n\t\t\t-->\n\t\t\t@if (index === 0) {\n\t\t\t\t<button\n\t\t\t\t\tso-button\n\t\t\t\t\tembedded=\"calendar.prev\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"so-calendar__prev\"\n\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t[disabled]=\"state()['prevDisabled']\"\n\t\t\t\t\t[so-attributes]=\"state()['prevAria']\"\n\t\t\t\t>\n\t\t\t\t\t@if (slot('prev-icon'); as icon) {\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\tso-icon\n\t\t\t\t\t\t\tembedded=\"calendar.prev-icon\"\n\t\t\t\t\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t></svg>\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t\t<button\n\t\t\t\t\tso-button\n\t\t\t\t\tembedded=\"calendar.next\"\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"so-calendar__next\"\n\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t[disabled]=\"state()['nextDisabled']\"\n\t\t\t\t\t[so-attributes]=\"state()['nextAria']\"\n\t\t\t\t>\n\t\t\t\t\t@if (slot('next-icon'); as icon) {\n\t\t\t\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t\t\t\t} @else {\n\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\tso-icon\n\t\t\t\t\t\t\tembedded=\"calendar.next-icon\"\n\t\t\t\t\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t></svg>\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t}\n\t\t\t<!--\n\t\t\t\tA week is keyed by its place in the grid: when the first day of the week changes\n\t\t\t\twith the language, six days of seven stay in their row and are not rebuilt.\n\t\t\t\tA cell is keyed by its day, a placeholder by the date: the day takes `ctrl` at\n\t\t\t\tassembly, and another item on the same date changes the key. The `item`\n\t\t\t\ttemplate goes to the day only when set.\n\t\t\t-->\n\t\t\t<table class=\"so-calendar__grid\" [so-attributes]=\"grid.gridAria\">\n\t\t\t\t<thead aria-hidden=\"true\">\n\t\t\t\t\t<tr class=\"so-calendar__weekdays\">\n\t\t\t\t\t\t@for (weekday of state()['weekdays'] ?? []; track $index) {\n\t\t\t\t\t\t\t<th class=\"so-calendar__weekday\" [textContent]=\"weekday.label\"></th>\n\t\t\t\t\t\t}\n\t\t\t\t\t</tr>\n\t\t\t\t</thead>\n\t\t\t\t<tbody>\n\t\t\t\t\t@for (week of grid.weeks; track $index) {\n\t\t\t\t\t\t<tr class=\"so-calendar__week\">\n\t\t\t\t\t\t\t@for (cell of week; track cell.item ?? cell.date) {\n\t\t\t\t\t\t\t\t@if (cell.item; as item) {\n\t\t\t\t\t\t\t\t\t<td so-calendar-item [ctrl]=\"item\">\n\t\t\t\t\t\t\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t\t\t\t\t\t\t<ng-template slot=\"default\" let-text=\"text\">\n\t\t\t\t\t\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text }\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t</td>\n\t\t\t\t\t\t\t\t} @else {\n\t\t\t\t\t\t\t\t\t<td\n\t\t\t\t\t\t\t\t\t\tclass=\"so-calendar__filler\"\n\t\t\t\t\t\t\t\t\t\t[so-attributes]=\"cell.aria\"\n\t\t\t\t\t\t\t\t\t></td>\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t}\n\t\t\t\t</tbody>\n\t\t\t</table>\n\t\t</div>\n\t}\n</div>\n<!-- The footer only with a `footer` template: an empty row would hold space under the grids. -->\n@if (slot('footer'); as footer) {\n\t<div class=\"so-calendar__footer\">\n\t\t<ng-container [ngTemplateOutlet]=\"footer\" />\n\t</div>\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\tValueAccessorDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/date-picker/manifest'\n\nexport const DatePickerInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'value',\n\t'name',\n\t'readonly',\n\t'required',\n\t'clearable',\n\t'mode',\n\t'open',\n\t'closeOnSelect',\n\t'confirmable',\n\t'min',\n\t'max',\n\t'unavailable',\n\t'validate',\n\t'weekStart',\n\t'timeZone',\n\t'startName',\n\t'endName',\n\t'swipe',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'id',\n\t'dismiss_enabled',\n\t'hideOutside_enabled',\n] as const\nexport const DatePickerOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeValue',\n\t'soChangeName',\n\t'soChangeReadonly',\n\t'soChangeRequired',\n\t'soChangeClearable',\n\t'soOpen',\n\t'soClose',\n\t'soChangeMode',\n\t'soChangeOpen',\n\t'soChangeCloseOnSelect',\n\t'soChangeConfirmable',\n\t'soChangeMin',\n\t'soChangeMax',\n\t'soChangeUnavailable',\n\t'soChangeValidate',\n\t'soChangeWeekStart',\n\t'soChangeLocale',\n\t'soChangeTimeZone',\n\t'soChangeStartName',\n\t'soChangeEndName',\n\t'soChangeSwipe',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soChangeId',\n\t'soDismissDismiss',\n\t'soDismissChangeEnabled',\n\t'soHideOutsideChangeEnabled',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'valueChange',\n\t'nameChange',\n\t'readonlyChange',\n\t'requiredChange',\n\t'clearableChange',\n\t'modeChange',\n\t'openChange',\n\t'closeOnSelectChange',\n\t'confirmableChange',\n\t'minChange',\n\t'maxChange',\n\t'unavailableChange',\n\t'validateChange',\n\t'weekStartChange',\n\t'timeZoneChange',\n\t'startNameChange',\n\t'endNameChange',\n\t'swipeChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'idChange',\n\t'dismiss_enabledChange',\n\t'hideOutside_enabledChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'value',\n\t\t'name',\n\t\t{ name: 'readonly', transform: booleanInput },\n\t\t{ name: 'required', transform: booleanInput },\n\t\t{ name: 'clearable', transform: booleanInput },\n\t\t'mode',\n\t\t{ name: 'open', transform: booleanInput },\n\t\t{ name: 'closeOnSelect', transform: booleanInput },\n\t\t{ name: 'confirmable', transform: booleanInput },\n\t\t'min',\n\t\t'max',\n\t\t'unavailable',\n\t\t{ name: 'validate', transform: booleanInput },\n\t\t'weekStart',\n\t\t'timeZone',\n\t\t'startName',\n\t\t'endName',\n\t\t'swipe',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'id',\n\t\t{ name: 'dismiss_enabled', transform: booleanInput },\n\t\t{ name: 'hideOutside_enabled', transform: booleanInput },\n\t],\n\toutputs: [...DatePickerOutputNames],\n\thostDirectives: [ValueAccessorDirective],\n})\nexport abstract class TDatePickerSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(DatePickerInputNames, DatePickerOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare value: TInputValue<typeof descriptor, 'value'>\n\tdeclare name: TInputValue<typeof descriptor, 'name'>\n\tdeclare readonly: TInputValue<typeof descriptor, 'readonly'>\n\tdeclare required: TInputValue<typeof descriptor, 'required'>\n\tdeclare clearable: TInputValue<typeof descriptor, 'clearable'>\n\tdeclare mode: TInputValue<typeof descriptor, 'mode'>\n\tdeclare open: TInputValue<typeof descriptor, 'open'>\n\tdeclare closeOnSelect: TInputValue<typeof descriptor, 'closeOnSelect'>\n\tdeclare confirmable: TInputValue<typeof descriptor, 'confirmable'>\n\tdeclare min: TInputValue<typeof descriptor, 'min'>\n\tdeclare max: TInputValue<typeof descriptor, 'max'>\n\tdeclare unavailable: TInputValue<typeof descriptor, 'unavailable'>\n\tdeclare validate: TInputValue<typeof descriptor, 'validate'>\n\tdeclare weekStart: TInputValue<typeof descriptor, 'weekStart'>\n\tdeclare timeZone: TInputValue<typeof descriptor, 'timeZone'>\n\tdeclare startName: TInputValue<typeof descriptor, 'startName'>\n\tdeclare endName: TInputValue<typeof descriptor, 'endName'>\n\tdeclare swipe: TInputValue<typeof descriptor, 'swipe'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare id: TInputValue<typeof descriptor, 'id'>\n\tdeclare dismiss_enabled: TInputValue<typeof descriptor, 'dismiss_enabled'>\n\tdeclare hideOutside_enabled: TInputValue<typeof descriptor, 'hideOutside_enabled'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeValue: TOutputEmitter<typeof descriptor, 'change:value'>\n\tdeclare readonly soChangeName: TOutputEmitter<typeof descriptor, 'change:name'>\n\tdeclare readonly soChangeReadonly: TOutputEmitter<typeof descriptor, 'change:readonly'>\n\tdeclare readonly soChangeRequired: TOutputEmitter<typeof descriptor, 'change:required'>\n\tdeclare readonly soChangeClearable: TOutputEmitter<typeof descriptor, 'change:clearable'>\n\tdeclare readonly soOpen: TOutputEmitter<typeof descriptor, 'open'>\n\tdeclare readonly soClose: TOutputEmitter<typeof descriptor, 'close'>\n\tdeclare readonly soChangeMode: TOutputEmitter<typeof descriptor, 'change:mode'>\n\tdeclare readonly soChangeOpen: TOutputEmitter<typeof descriptor, 'change:open'>\n\tdeclare readonly soChangeCloseOnSelect: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:closeOnSelect'\n\t>\n\tdeclare readonly soChangeConfirmable: TOutputEmitter<typeof descriptor, 'change:confirmable'>\n\tdeclare readonly soChangeMin: TOutputEmitter<typeof descriptor, 'change:min'>\n\tdeclare readonly soChangeMax: TOutputEmitter<typeof descriptor, 'change:max'>\n\tdeclare readonly soChangeUnavailable: TOutputEmitter<typeof descriptor, 'change:unavailable'>\n\tdeclare readonly soChangeValidate: TOutputEmitter<typeof descriptor, 'change:validate'>\n\tdeclare readonly soChangeWeekStart: TOutputEmitter<typeof descriptor, 'change:weekStart'>\n\tdeclare readonly soChangeLocale: TOutputEmitter<typeof descriptor, 'change:locale'>\n\tdeclare readonly soChangeTimeZone: TOutputEmitter<typeof descriptor, 'change:timeZone'>\n\tdeclare readonly soChangeStartName: TOutputEmitter<typeof descriptor, 'change:startName'>\n\tdeclare readonly soChangeEndName: TOutputEmitter<typeof descriptor, 'change:endName'>\n\tdeclare readonly soChangeSwipe: TOutputEmitter<typeof descriptor, 'change:swipe'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soChangeId: TOutputEmitter<typeof descriptor, 'change:id'>\n\tdeclare readonly soDismissDismiss: TOutputEmitter<typeof descriptor, 'dismiss:dismiss'>\n\tdeclare readonly soDismissChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'dismiss:change:enabled'\n\t>\n\tdeclare readonly soHideOutsideChangeEnabled: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'hideOutside:change:enabled'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly valueChange: TModelEmitter<typeof descriptor, 'value'>\n\tdeclare readonly nameChange: TModelEmitter<typeof descriptor, 'name'>\n\tdeclare readonly readonlyChange: TModelEmitter<typeof descriptor, 'readonly'>\n\tdeclare readonly requiredChange: TModelEmitter<typeof descriptor, 'required'>\n\tdeclare readonly clearableChange: TModelEmitter<typeof descriptor, 'clearable'>\n\tdeclare readonly modeChange: TModelEmitter<typeof descriptor, 'mode'>\n\tdeclare readonly openChange: TModelEmitter<typeof descriptor, 'open'>\n\tdeclare readonly closeOnSelectChange: TModelEmitter<typeof descriptor, 'closeOnSelect'>\n\tdeclare readonly confirmableChange: TModelEmitter<typeof descriptor, 'confirmable'>\n\tdeclare readonly minChange: TModelEmitter<typeof descriptor, 'min'>\n\tdeclare readonly maxChange: TModelEmitter<typeof descriptor, 'max'>\n\tdeclare readonly unavailableChange: TModelEmitter<typeof descriptor, 'unavailable'>\n\tdeclare readonly validateChange: TModelEmitter<typeof descriptor, 'validate'>\n\tdeclare readonly weekStartChange: TModelEmitter<typeof descriptor, 'weekStart'>\n\tdeclare readonly timeZoneChange: TModelEmitter<typeof descriptor, 'timeZone'>\n\tdeclare readonly startNameChange: TModelEmitter<typeof descriptor, 'startName'>\n\tdeclare readonly endNameChange: TModelEmitter<typeof descriptor, 'endName'>\n\tdeclare readonly swipeChange: TModelEmitter<typeof descriptor, 'swipe'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly idChange: TModelEmitter<typeof descriptor, 'id'>\n\tdeclare readonly dismiss_enabledChange: TModelEmitter<typeof descriptor, 'dismiss_enabled'>\n\tdeclare readonly hideOutside_enabledChange: TModelEmitter<\n\t\ttypeof descriptor,\n\t\t'hideOutside_enabled'\n\t>\n}\n","import { DatePickerDescriptor, TFieldControlExtension } from '@soxa-ui/setup'\nimport type { IDatePicker } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** DatePicker: связку `Field` берёт из слоя над собой, а своему содержимому опускает пустую. */\nexport function setupDatePicker(\n\tctrl: IDatePicker | undefined,\n\tprops: object,\n): TBinding<IDatePicker> {\n\tconst adapter = createAngularAdapterContext(DatePickerDescriptor(), { ctrl, props }).use(\n\t\tTFieldControlExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IDatePicker } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tRoleIconDirective,\n\tSlotDirective,\n\tprovideElevator,\n} from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TCalendarComponent } from '../calendar'\nimport { TDateInputComponent } from '../date-input'\nimport { TFrameComponent } from '../frame'\nimport { TIconComponent } from '../icon'\nimport { TDatePickerSurface } from '../../generated/date-picker.metadata'\nimport { setupDatePicker } from './setup.component'\n\n/**\n * Поле даты и календарь в панели, как Select — поле и список (APG, Date Picker Dialog).\n * AGENTS.md (Angular), «Даты — поле из частей, сетка из `td`, поле с календарём в панели».\n */\n@Component({\n\tselector: 'div[so-date-picker], [so-date-picker]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tSlotDirective,\n\t\tTButtonComponent,\n\t\tTCalendarComponent,\n\t\tTDateInputComponent,\n\t\tTFrameComponent,\n\t\tTIconComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './date-picker.component.html',\n})\nexport class TDatePickerComponent extends TDatePickerSurface<IDatePicker> {\n\tconstructor() {\n\t\tsuper(setupDatePicker, { strategy: 'host', aria: 'rootAria', id: 'id' })\n\t}\n\n\t/** Очистка — командой DatePicker'а; клик не всплывает, как `@click.stop` у Vue. */\n\tprotected clearClick(event: Event): void {\n\t\tevent.stopPropagation()\n\t\tthis.instance()?.clear()\n\t}\n\n\t/** «Отмена» подвала: закрыть панель; черновик выбора сбрасывает само закрытие. */\n\tprotected close(): void {\n\t\tconst picker = this.instance()\n\n\t\tif (picker) picker.open = false\n\t}\n}\n","<!-- Кнопки очистки и календаря у режимов одни — шаблоны `#clearButton` и `#trigger`. -->\n@if (state()['mode'] === 'single') {\n\t<!--\n\t\tИмя DatePicker'а и его `aria` — полю: оно и есть группа частей. Шаблон `clear` — только\n\t\tкогда есть что рисовать: шаблон непрозрачен, и пустой поле от заданного не отличит.\n\t-->\n\t<div\n\t\tso-date-input\n\t\tembedded=\"date-picker.field\"\n\t\tclass=\"so-date-picker__field\"\n\t\t[ctrl]=\"instance()?.field\"\n\t\t[aria_label]=\"aria_label\"\n\t\t[aria_labelledBy]=\"aria_labelledBy\"\n\t\t[aria_describedBy]=\"aria_describedBy\"\n\t\t[so-attributes]=\"state()['aria']\"\n\t>\n\t\t@if (slot('clear') || state()['clearable']) {\n\t\t\t<ng-template slot=\"clear\">\n\t\t\t\t<ng-container [ngTemplateOutlet]=\"clearButton\" />\n\t\t\t</ng-template>\n\t\t}\n\t\t<ng-template slot=\"trailing\">\n\t\t\t<ng-container [ngTemplateOutlet]=\"trigger\" />\n\t\t</ng-template>\n\t</div>\n} @else {\n\t<!-- Кнопки — после поля конца, а не в его слоте: они работают со всем периодом. -->\n\t<div\n\t\tso-date-input\n\t\tembedded=\"date-picker.start\"\n\t\tclass=\"so-date-picker__start\"\n\t\t[ctrl]=\"instance()?.start\"\n\t\t[aria_label]=\"state()['names_start']\"\n\t></div>\n\t<span class=\"so-date-picker__dash\" aria-hidden=\"true\">–</span>\n\t<div\n\t\tso-date-input\n\t\tembedded=\"date-picker.end\"\n\t\tclass=\"so-date-picker__end\"\n\t\t[ctrl]=\"instance()?.end\"\n\t\t[aria_label]=\"state()['names_end']\"\n\t></div>\n\t<ng-container [ngTemplateOutlet]=\"clearButton\" />\n\t<ng-container [ngTemplateOutlet]=\"trigger\" />\n}\n<!-- Кнопка очистки — DatePicker'а, а не поля: он сам поле и очищает значение целиком. -->\n<ng-template #clearButton>\n\t@if (slot('clear'); as clear) {\n\t\t<ng-container\n\t\t\t[ngTemplateOutlet]=\"clear\"\n\t\t\t[ngTemplateOutletContext]=\"{ clear: instance()?.clear }\"\n\t\t/>\n\t} @else if (state()['clearable']) {\n\t\t<button\n\t\t\tso-button\n\t\t\tembedded=\"date-picker.clear\"\n\t\t\ttype=\"button\"\n\t\t\tclass=\"so-date-picker__clear\"\n\t\t\t[size]=\"state()['size']\"\n\t\t\t[disabled]=\"state()['disabled']\"\n\t\t\t[so-attributes]=\"state()['clearAria']\"\n\t\t\t(click)=\"clearClick($event)\"\n\t\t>\n\t\t\t<svg\n\t\t\t\tso-icon\n\t\t\t\tembedded=\"date-picker.clear-icon\"\n\t\t\t\tso-role-icon=\"close\"\n\t\t\t\t[size]=\"state()['size']\"\n\t\t\t></svg>\n\t\t</button>\n\t}\n</ng-template>\n<!-- Значок кнопки календаря — без своего размера: по кеглю кнопки. -->\n<ng-template #trigger>\n\t<button\n\t\tso-button\n\t\tembedded=\"date-picker.trigger\"\n\t\ttype=\"button\"\n\t\tclass=\"so-date-picker__trigger\"\n\t\t[size]=\"state()['size']\"\n\t\t[disabled]=\"!state()['openable']\"\n\t\t[so-attributes]=\"{ ...state()['triggerAria'], ...state()['triggerDataset'] }\"\n\t>\n\t\t@if (slot('trigger-icon'); as icon) {\n\t\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t\t} @else {\n\t\t\t<svg so-icon embedded=\"date-picker.trigger-icon\" so-role-icon=\"calendar\"></svg>\n\t\t}\n\t</button>\n</ng-template>\n<!--\n\tОткрытость — `[visible]`: закрытая панель прячется, а не размонтируется. Своего `rendered`\n\tнет: панель увезена в `body`, её прячет признак поддерева базы. Наборы — одним объектом:\n\tдиректива набора на элементе одна.\n-->\n<div\n\tso-frame\n\tembedded=\"date-picker.frame\"\n\tclass=\"so-date-picker__panel\"\n\ttabindex=\"-1\"\n\tstrategy=\"fixed\"\n\t[visible]=\"state()['visible'] && state()['open']\"\n\t[anchor_anchor]=\"rootElement()\"\n\t[anchor_offset]=\"4\"\n\t[so-attributes]=\"{\n\t\t...state()['panelAria'],\n\t\t...state()['panelDataset'],\n\t\t...state()['dismiss_ownerAttribute'],\n\t}\"\n>\n\t@if (state()['handleRendered']) {\n\t\t<div class=\"so-date-picker__handle\" aria-hidden=\"true\"></div>\n\t}\n\t<!--\n\t\tПрокручивается обёртка, а не панель: касание вдоль оси панели плагин отдаёт жесту.\n\t\tШаблон `item` — календарю, только заданный; подвал — только при `confirmable`.\n\t-->\n\t<div class=\"so-date-picker__content\">\n\t\t<!-- The calendar from the panel's first opening on (`contentRendered`) -->\n\t\t@if (state()['contentRendered']) {\n\t\t\t<div\n\t\t\t\tso-calendar\n\t\t\t\tembedded=\"date-picker.calendar\"\n\t\t\t\tclass=\"so-date-picker__calendar\"\n\t\t\t\t[ctrl]=\"instance()?.calendar\"\n\t\t\t\t[engine]=\"instance()?.engine\"\n\t\t\t>\n\t\t\t\t@if (slot('item'); as content) {\n\t\t\t\t\t<ng-template slot=\"item\" let-item=\"item\" let-text=\"text\">\n\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ item, text }\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t\t@if (state()['confirmable']) {\n\t\t\t\t\t<ng-template slot=\"footer\">\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tso-button\n\t\t\t\t\t\t\tembedded=\"date-picker.cancel\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"so-date-picker__cancel\"\n\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t[text]=\"state()['names_cancel']\"\n\t\t\t\t\t\t\t(click)=\"close()\"\n\t\t\t\t\t\t></button>\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tso-button\n\t\t\t\t\t\t\tembedded=\"date-picker.confirm\"\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tclass=\"so-date-picker__confirm\"\n\t\t\t\t\t\t\t[size]=\"state()['size']\"\n\t\t\t\t\t\t\t[disabled]=\"state()['confirmDisabled']\"\n\t\t\t\t\t\t\t[text]=\"state()['names_confirm']\"\n\t\t\t\t\t\t\t(click)=\"instance()?.confirm()\"\n\t\t\t\t\t\t></button>\n\t\t\t\t\t</ng-template>\n\t\t\t\t}\n\t\t\t</div>\n\t\t}\n\t</div>\n</div>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/scroller/manifest'\n\nexport const ScrollerInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'viewportAria',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n] as const\nexport const ScrollerOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'viewportAriaChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t'viewportAria',\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t],\n\toutputs: [...ScrollerOutputNames],\n})\nexport abstract class TScrollerSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(ScrollerInputNames, ScrollerOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare viewportAria: TInputValue<typeof descriptor, 'viewportAria'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly viewportAriaChange: TModelEmitter<typeof descriptor, 'viewportAria'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n}\n","import { ScrollerDescriptor } from '@soxa-ui/setup'\nimport type { IScroller } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\nexport function setupScroller(ctrl: IScroller | undefined, props: object): TBinding<IScroller> {\n\tconst adapter = createAngularAdapterContext(ScrollerDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { IScroller } from '@soxa-ui/core'\nimport { AttributesDirective, RoleIconDirective, TextPipe } from '../../adapter'\nimport { TButtonComponent } from '../button'\nimport { TIconComponent } from '../icon'\nimport { TScrollerSurface } from '../../generated/scroller.metadata'\nimport { setupScroller } from './setup.component'\n\n/**\n * Лента содержимого в одну строку с кнопками «назад» и «вперёд» по сторонам вьюпорта.\n * Значок кнопки — шаблон слота: есть ли что-то в `<ng-content>`, Angular не сообщает.\n */\n@Component({\n\tselector: 'div[so-scroller], [so-scroller]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tRoleIconDirective,\n\t\tTextPipe,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './scroller.component.html',\n})\nexport class TScrollerComponent extends TScrollerSurface<IScroller> {\n\tconstructor() {\n\t\tsuper(setupScroller, { strategy: 'host' })\n\t}\n}\n","<!--\n\tКнопки без обработчиков: клики ловит плагин вьюпорта на корне. Роли «влево» у иконок нет:\n\tу обеих кнопок `arrowRight`, стрелку «назад» зеркалит тема.\n-->\n<button\n\tso-button\n\tembedded=\"scroller.prev\"\n\ttype=\"button\"\n\tclass=\"so-scroller__prev\"\n\t[size]=\"state()['size']\"\n\t[disabled]=\"state()['prevDisabled']\"\n\t[so-attributes]=\"state()['prevAria']\"\n>\n\t@if (slot('prev-icon'); as icon) {\n\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t} @else {\n\t\t<svg\n\t\t\tso-icon\n\t\t\tembedded=\"scroller.prev-icon\"\n\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t[size]=\"state()['size']\"\n\t\t></svg>\n\t}\n</button>\n<!--\n\tВьюпорт — он же ряд: лишний узел отрезал бы элементы от роли потребителя, а тема ставит\n\tснап по прямым детям. `viewportAria` поверх `tabindex`: ряд с roving tabindex решает сам.\n-->\n<div\n\tclass=\"so-scroller__viewport\"\n\t[so-attributes]=\"{\n\t\ttabindex:\n\t\t\tstate()['viewportTabIndex'] === undefined\n\t\t\t\t? null\n\t\t\t\t: (state()['viewportTabIndex'] | soText),\n\t\t...state()['viewportAria'],\n\t}\"\n>\n\t<ng-content />\n</div>\n<button\n\tso-button\n\tembedded=\"scroller.next\"\n\ttype=\"button\"\n\tclass=\"so-scroller__next\"\n\t[size]=\"state()['size']\"\n\t[disabled]=\"state()['nextDisabled']\"\n\t[so-attributes]=\"state()['nextAria']\"\n>\n\t@if (slot('next-icon'); as icon) {\n\t\t<ng-container [ngTemplateOutlet]=\"icon\" />\n\t} @else {\n\t\t<svg\n\t\t\tso-icon\n\t\t\tembedded=\"scroller.next-icon\"\n\t\t\tso-role-icon=\"arrowRight\"\n\t\t\t[size]=\"state()['size']\"\n\t\t></svg>\n\t}\n</button>\n<!-- Слив шаблонов слотов: в основной проекции их якоря легли бы во вьюпорт. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, ElementRef, viewChild, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n\ttype TTemplateRef,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/table/manifest'\n\nexport const TableInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'size',\n\t'variant',\n\t'disabled',\n\t'focused',\n\t'stickyHead',\n\t'columnFit',\n\t'reorderPreview',\n\t'resizePreview',\n\t'resizable',\n\t'reorderable',\n\t'aria_label',\n\t'aria_labelledBy',\n\t'aria_describedBy',\n\t'engine',\n\t'items',\n\t'trackBy',\n\t'mode',\n\t'columns',\n\t'sort',\n\t'sortMode',\n\t'presorted',\n\t'grid',\n] as const\nexport const TableOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeLocale',\n\t'soChangeStickyHead',\n\t'soChangeColumnFit',\n\t'soChangeReorderPreview',\n\t'soChangeResizePreview',\n\t'soChangeResizable',\n\t'soChangeReorderable',\n\t'soActionPress',\n\t'soActionClick',\n\t'soActionFocus',\n\t'soActionBlur',\n\t'soAriaChangeLabel',\n\t'soAriaChangeLabelledBy',\n\t'soAriaChangeDescribedBy',\n\t'soEngineCreate',\n\t'soItemAddBefore',\n\t'soItemAdded',\n\t'soItemRemoveBefore',\n\t'soItemRemoved',\n\t'soItemUpdateBefore',\n\t'soItemUpdated',\n\t'soItemMoveBefore',\n\t'soItemMoved',\n\t'soItemsClearBefore',\n\t'soChangeCount',\n\t'soReset',\n\t'soItemsAdded',\n\t'soItemsRemoved',\n\t'soChangeShown',\n\t'soChangeItems',\n\t'soChangeTrackBy',\n\t'soColumnResize',\n\t'soColumnMove',\n\t'soChangeMode',\n\t'soChangeShownColumns',\n\t'soChangeSort',\n\t'soChangeSortMode',\n\t'soChangePresorted',\n\t'soChangeGrid',\n\t'soChangeSelection',\n\t'soChangeShownSelection',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'sizeChange',\n\t'variantChange',\n\t'disabledChange',\n\t'focusedChange',\n\t'stickyHeadChange',\n\t'columnFitChange',\n\t'reorderPreviewChange',\n\t'resizePreviewChange',\n\t'resizableChange',\n\t'reorderableChange',\n\t'aria_labelChange',\n\t'aria_labelledByChange',\n\t'aria_describedByChange',\n\t'itemsChange',\n\t'trackByChange',\n\t'modeChange',\n\t'columnsChange',\n\t'sortChange',\n\t'sortModeChange',\n\t'presortedChange',\n\t'gridChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t'size',\n\t\t'variant',\n\t\t{ name: 'disabled', transform: booleanInput },\n\t\t{ name: 'focused', transform: booleanInput },\n\t\t{ name: 'stickyHead', transform: booleanInput },\n\t\t'columnFit',\n\t\t'reorderPreview',\n\t\t'resizePreview',\n\t\t{ name: 'resizable', transform: booleanInput },\n\t\t{ name: 'reorderable', transform: booleanInput },\n\t\t'aria_label',\n\t\t'aria_labelledBy',\n\t\t'aria_describedBy',\n\t\t'engine',\n\t\t'items',\n\t\t'trackBy',\n\t\t'mode',\n\t\t'columns',\n\t\t'sort',\n\t\t'sortMode',\n\t\t{ name: 'presorted', transform: booleanInput },\n\t\t{ name: 'grid', transform: booleanInput },\n\t],\n\toutputs: [...TableOutputNames],\n})\nexport abstract class TTableSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TableInputNames, TableOutputNames, setup, spec)\n\t}\n\tprivate readonly _rootRef = viewChild<unknown, ElementRef<Element>>('root', {\n\t\tread: ElementRef,\n\t})\n\tprotected override templateNode(ref: TTemplateRef): Element | null {\n\t\tif (ref === 'root') return this._rootRef()?.nativeElement ?? null\n\t\treturn null\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare size: TInputValue<typeof descriptor, 'size'>\n\tdeclare variant: TInputValue<typeof descriptor, 'variant'>\n\tdeclare disabled: TInputValue<typeof descriptor, 'disabled'>\n\tdeclare focused: TInputValue<typeof descriptor, 'focused'>\n\tdeclare stickyHead: TInputValue<typeof descriptor, 'stickyHead'>\n\tdeclare columnFit: TInputValue<typeof descriptor, 'columnFit'>\n\tdeclare reorderPreview: TInputValue<typeof descriptor, 'reorderPreview'>\n\tdeclare resizePreview: TInputValue<typeof descriptor, 'resizePreview'>\n\tdeclare resizable: TInputValue<typeof descriptor, 'resizable'>\n\tdeclare reorderable: TInputValue<typeof descriptor, 'reorderable'>\n\tdeclare aria_label: TInputValue<typeof descriptor, 'aria_label'>\n\tdeclare aria_labelledBy: TInputValue<typeof descriptor, 'aria_labelledBy'>\n\tdeclare aria_describedBy: TInputValue<typeof descriptor, 'aria_describedBy'>\n\tdeclare engine: TInputValue<typeof descriptor, 'engine'>\n\tdeclare items: TInputValue<typeof descriptor, 'items'>\n\tdeclare trackBy: TInputValue<typeof descriptor, 'trackBy'>\n\tdeclare mode: TInputValue<typeof descriptor, 'mode'>\n\tdeclare columns: TInputValue<typeof descriptor, 'columns'>\n\tdeclare sort: TInputValue<typeof descriptor, 'sort'>\n\tdeclare sortMode: TInputValue<typeof descriptor, 'sortMode'>\n\tdeclare presorted: TInputValue<typeof descriptor, 'presorted'>\n\tdeclare grid: TInputValue<typeof descriptor, 'grid'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soChangeLocale: TOutputEmitter<typeof descriptor, 'change:locale'>\n\tdeclare readonly soChangeStickyHead: TOutputEmitter<typeof descriptor, 'change:stickyHead'>\n\tdeclare readonly soChangeColumnFit: TOutputEmitter<typeof descriptor, 'change:columnFit'>\n\tdeclare readonly soChangeReorderPreview: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:reorderPreview'\n\t>\n\tdeclare readonly soChangeResizePreview: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'change:resizePreview'\n\t>\n\tdeclare readonly soChangeResizable: TOutputEmitter<typeof descriptor, 'change:resizable'>\n\tdeclare readonly soChangeReorderable: TOutputEmitter<typeof descriptor, 'change:reorderable'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soActionPress: TOutputEmitter<typeof descriptor, 'action:press'>\n\tdeclare readonly soActionClick: TOutputEmitter<typeof descriptor, 'action:click'>\n\tdeclare readonly soActionFocus: TOutputEmitter<typeof descriptor, 'action:focus'>\n\tdeclare readonly soActionBlur: TOutputEmitter<typeof descriptor, 'action:blur'>\n\tdeclare readonly soAriaChangeLabel: TOutputEmitter<typeof descriptor, 'aria:change:label'>\n\tdeclare readonly soAriaChangeLabelledBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:labelledBy'\n\t>\n\tdeclare readonly soAriaChangeDescribedBy: TOutputEmitter<\n\t\ttypeof descriptor,\n\t\t'aria:change:describedBy'\n\t>\n\tdeclare readonly soEngineCreate: TOutputEmitter<typeof facade, 'engine:create'>\n\tdeclare readonly soItemAddBefore: TOutputEmitter<typeof facade, 'item:add:before'>\n\tdeclare readonly soItemAdded: TOutputEmitter<typeof facade, 'item:added'>\n\tdeclare readonly soItemRemoveBefore: TOutputEmitter<typeof facade, 'item:remove:before'>\n\tdeclare readonly soItemRemoved: TOutputEmitter<typeof facade, 'item:removed'>\n\tdeclare readonly soItemUpdateBefore: TOutputEmitter<typeof facade, 'item:update:before'>\n\tdeclare readonly soItemUpdated: TOutputEmitter<typeof facade, 'item:updated'>\n\tdeclare readonly soItemMoveBefore: TOutputEmitter<typeof facade, 'item:move:before'>\n\tdeclare readonly soItemMoved: TOutputEmitter<typeof facade, 'item:moved'>\n\tdeclare readonly soItemsClearBefore: TOutputEmitter<typeof facade, 'items:clear:before'>\n\tdeclare readonly soChangeCount: TOutputEmitter<typeof facade, 'change:count'>\n\tdeclare readonly soReset: TOutputEmitter<typeof facade, 'reset'>\n\tdeclare readonly soItemsAdded: TOutputEmitter<typeof facade, 'items:added'>\n\tdeclare readonly soItemsRemoved: TOutputEmitter<typeof facade, 'items:removed'>\n\tdeclare readonly soChangeShown: TOutputEmitter<typeof facade, 'change:shown'>\n\tdeclare readonly soChangeItems: TOutputEmitter<typeof facade, 'change:items'>\n\tdeclare readonly soChangeTrackBy: TOutputEmitter<typeof facade, 'change:trackBy'>\n\tdeclare readonly soColumnResize: TOutputEmitter<typeof facade, 'column:resize'>\n\tdeclare readonly soColumnMove: TOutputEmitter<typeof facade, 'column:move'>\n\tdeclare readonly soChangeMode: TOutputEmitter<typeof facade, 'change:mode'>\n\tdeclare readonly soChangeShownColumns: TOutputEmitter<typeof facade, 'change:shownColumns'>\n\tdeclare readonly soChangeSort: TOutputEmitter<typeof facade, 'change:sort'>\n\tdeclare readonly soChangeSortMode: TOutputEmitter<typeof facade, 'change:sortMode'>\n\tdeclare readonly soChangePresorted: TOutputEmitter<typeof facade, 'change:presorted'>\n\tdeclare readonly soChangeGrid: TOutputEmitter<typeof facade, 'change:grid'>\n\tdeclare readonly soChangeSelection: TOutputEmitter<typeof facade, 'change:selection'>\n\tdeclare readonly soChangeShownSelection: TOutputEmitter<typeof facade, 'change:shownSelection'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly sizeChange: TModelEmitter<typeof descriptor, 'size'>\n\tdeclare readonly variantChange: TModelEmitter<typeof descriptor, 'variant'>\n\tdeclare readonly disabledChange: TModelEmitter<typeof descriptor, 'disabled'>\n\tdeclare readonly focusedChange: TModelEmitter<typeof descriptor, 'focused'>\n\tdeclare readonly stickyHeadChange: TModelEmitter<typeof descriptor, 'stickyHead'>\n\tdeclare readonly columnFitChange: TModelEmitter<typeof descriptor, 'columnFit'>\n\tdeclare readonly reorderPreviewChange: TModelEmitter<typeof descriptor, 'reorderPreview'>\n\tdeclare readonly resizePreviewChange: TModelEmitter<typeof descriptor, 'resizePreview'>\n\tdeclare readonly resizableChange: TModelEmitter<typeof descriptor, 'resizable'>\n\tdeclare readonly reorderableChange: TModelEmitter<typeof descriptor, 'reorderable'>\n\tdeclare readonly aria_labelChange: TModelEmitter<typeof descriptor, 'aria_label'>\n\tdeclare readonly aria_labelledByChange: TModelEmitter<typeof descriptor, 'aria_labelledBy'>\n\tdeclare readonly aria_describedByChange: TModelEmitter<typeof descriptor, 'aria_describedBy'>\n\tdeclare readonly itemsChange: TModelEmitter<typeof descriptor, 'items'>\n\tdeclare readonly trackByChange: TModelEmitter<typeof descriptor, 'trackBy'>\n\tdeclare readonly modeChange: TModelEmitter<typeof descriptor, 'mode'>\n\tdeclare readonly columnsChange: TModelEmitter<typeof descriptor, 'columns'>\n\tdeclare readonly sortChange: TModelEmitter<typeof descriptor, 'sort'>\n\tdeclare readonly sortModeChange: TModelEmitter<typeof descriptor, 'sortMode'>\n\tdeclare readonly presortedChange: TModelEmitter<typeof descriptor, 'presorted'>\n\tdeclare readonly gridChange: TModelEmitter<typeof descriptor, 'grid'>\n}\n","import {\n\tTCollectionExtension,\n\tTVirtualCollectionExtension,\n\tTableCollectionDescriptor,\n\tTableDescriptor,\n} from '@soxa-ui/setup'\nimport type { ITable, ITableProps, TTableCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** `engine` — готовая коллекция снаружи: дали — фасад работает на ней, не дали — соберёт свою. */\nexport function setupTable(\n\tctrl: ITable | undefined,\n\tprops: object,\n\tengine: ITableProps['engine'],\n): TBinding<ITable, TTableCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(TableDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst collectionAdapter = createAngularAdapterContext(\n\t\tTableCollectionDescriptor(),\n\t\t{ props, options: { owner: adapter.instance, engine } },\n\t\t{ bundle: adapter.bundle },\n\t)\n\t\t.use(TCollectionExtension, { elevator: AngularElevatorFactory })\n\t\t.use(TVirtualCollectionExtension, { elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(collectionAdapter))\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor } from '../components/table/column/manifest'\n\nexport const TableColumnInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n] as const\nexport const TableColumnOutputNames = [\n\t'soChangeText',\n\t'soChangeDisabled',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t],\n\toutputs: [...TableColumnOutputNames],\n})\nexport abstract class TTableColumnSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TableColumnInputNames, TableColumnOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeText: TOutputEmitter<typeof descriptor, 'change:text'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n}\n","import { TableColumnDescriptor } from '@soxa-ui/setup'\nimport type { ITableColumn } from '@soxa-ui/core'\nimport { createAngularAdapterContext, useAdapter } from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Фасада у колонки нет: лифт таблицы отдаёт движок строк, и колонка вошла бы в него строкой. */\nexport function setupTableColumn(\n\tctrl: ITableColumn | undefined,\n\tprops: object,\n): TBinding<ITableColumn> {\n\tconst adapter = createAngularAdapterContext(TableColumnDescriptor(), { ctrl, props })\n\n\treturn useAdapter(adapter)\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITableColumn } from '@soxa-ui/core'\nimport {\n\tAttributesDirective,\n\tFieldTextDirective,\n\tRoleIconDirective,\n\tTextPipe,\n} from '../../../adapter'\nimport { TButtonComponent } from '../../button'\nimport { TIconComponent } from '../../icon'\nimport { TTableColumnSurface } from '../../../generated/table-column.metadata'\nimport { setupTableColumn } from './setup.component'\n\n/**\n * Заголовок колонки — ячейка шапки `th`, её рисует сама таблица по показанным колонкам.\n * Имя — ссылка на подпись: своё браузер собрал бы из всей ячейки, с ручкой и кнопкой.\n */\n@Component({\n\tselector: 'th[so-table-column], [so-table-column]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tFieldTextDirective,\n\t\tRoleIconDirective,\n\t\tTextPipe,\n\t\tTButtonComponent,\n\t\tTIconComponent,\n\t],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './table-column.component.html',\n})\nexport class TTableColumnComponent extends TTableColumnSurface<ITableColumn> {\n\tconstructor() {\n\t\tsuper(setupTableColumn, { strategy: 'host', style: 'widthStyle' })\n\t}\n}\n","<span class=\"so-table-column__content\">\n\t<span class=\"so-table-column__text\" [so-attributes]=\"state()['textAria']\">\n\t\t@if (slot('default'); as content) {\n\t\t\t<ng-container\n\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\t\ttext: state()['text'] ?? '',\n\t\t\t\t\tsortable: state()['sortable'] ?? false,\n\t\t\t\t}\"\n\t\t\t/>\n\t\t} @else {\n\t\t\t<ng-content>{{ state()['text'] }}</ng-content>\n\t\t}\n\t</span>\n\t<!--\n\t\tКнопку рисует колонка, а не таблица через слот: в подписи она дописала бы своё имя\n\t\tк имени заголовка. `@if`, а не `rendered`: скрытая кнопка стояла бы у каждой колонки.\n\t-->\n\t@if (state()['sortable']) {\n\t\t<button\n\t\t\tso-button\n\t\t\tembedded=\"table.sort\"\n\t\t\ttype=\"button\"\n\t\t\tclass=\"so-table-column__sort\"\n\t\t\t[disabled]=\"state()['disabled']\"\n\t\t\t[so-attributes]=\"state()['sortAria']\"\n\t\t\t(soActionPress)=\"instance()?.toggleSort()\"\n\t\t>\n\t\t\t<span class=\"so-table-column__sort-icon\" aria-hidden=\"true\">\n\t\t\t\t<svg so-icon embedded=\"table.sort-icon\" so-role-icon=\"arrowUpward\"></svg>\n\t\t\t</span>\n\t\t</button>\n\t}\n</span>\n<!-- Ширину `[so-field-text]` пишет после `[min]` и `[max]`: иначе её прижал бы ход 0–100. -->\n@if (state()['resizerRendered'] && state()['resizer']; as resizer) {\n\t<span class=\"so-table-column__resizer\">\n\t\t<input\n\t\t\tclass=\"so-table-column__input\"\n\t\t\ttype=\"range\"\n\t\t\t[min]=\"resizer.min\"\n\t\t\t[max]=\"resizer.max\"\n\t\t\t[so-field-text]=\"resizer.value | soText\"\n\t\t\t[so-attributes]=\"state()['resizerAria']\"\n\t\t/>\n\t</span>\n}\n<!-- Шаблоны слотов — в слив: в основной проекции они сняли бы запасной текст. -->\n<ng-content select=\"ng-template[slot]\" />\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive, contentChildren } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type {\n\tDescriptorInstance,\n\tDescriptorPluginOutputs,\n\tDescriptorPluginProps,\n} from '@soxa-ui/setup'\nimport {\n\tSlotDirective,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport { TViewSurface } from './view.metadata'\nimport type { descriptor, facade } from '../components/table/row/manifest'\n\nexport const TableRowInputNames = [\n\t'embedded',\n\t'pluginProps',\n\t'rendered',\n\t'visible',\n\t'direction',\n\t'selected',\n] as const\nexport const TableRowOutputNames = [\n\t'soChangeSize',\n\t'soChangeVariant',\n\t'soChangeDisabled',\n\t'soChangeFocused',\n\t'soChangeSelected',\n\t'renderedChange',\n\t'visibleChange',\n\t'tagChange',\n\t'directionChange',\n\t'selectedChange',\n] as const\n\n@Directive({\n\tinputs: [\n\t\t'embedded',\n\t\t'pluginProps',\n\t\t{ name: 'rendered', transform: booleanInput },\n\t\t{ name: 'visible', transform: booleanInput },\n\t\t'direction',\n\t\t{ name: 'selected', transform: booleanInput },\n\t],\n\toutputs: [...TableRowOutputNames],\n})\nexport abstract class TTableRowSurface<TInstance extends IEntity> extends TViewSurface<\n\tTInstance,\n\tDescriptorInstance<typeof facade>,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tDescriptorInstance<typeof facade>,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(TableRowInputNames, TableRowOutputNames, setup, spec)\n\t}\n\tprivate readonly _slots = contentChildren(SlotDirective)\n\tprotected override slotTemplates(): readonly SlotDirective[] {\n\t\treturn this._slots()\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare rendered: TInputValue<typeof descriptor, 'rendered'>\n\tdeclare visible: TInputValue<typeof descriptor, 'visible'>\n\tdeclare direction: TInputValue<typeof descriptor, 'direction'>\n\tdeclare selected: TInputValue<typeof descriptor, 'selected'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soShow: TOutputEmitter<typeof descriptor, 'show'>\n\tdeclare readonly soHide: TOutputEmitter<typeof descriptor, 'hide'>\n\tdeclare readonly soShowBefore: TOutputEmitter<typeof descriptor, 'show:before'>\n\tdeclare readonly soHideBefore: TOutputEmitter<typeof descriptor, 'hide:before'>\n\tdeclare readonly soReady: TOutputEmitter<typeof descriptor, 'ready'>\n\tdeclare readonly soChangeRendered: TOutputEmitter<typeof descriptor, 'change:rendered'>\n\tdeclare readonly soChangeVisible: TOutputEmitter<typeof descriptor, 'change:visible'>\n\tdeclare readonly soChangeTag: TOutputEmitter<typeof descriptor, 'change:tag'>\n\tdeclare readonly soChangeDirection: TOutputEmitter<typeof descriptor, 'change:direction'>\n\tdeclare readonly soChangeSize: TOutputEmitter<typeof descriptor, 'change:size'>\n\tdeclare readonly soChangeVariant: TOutputEmitter<typeof descriptor, 'change:variant'>\n\tdeclare readonly soChangeDisabled: TOutputEmitter<typeof descriptor, 'change:disabled'>\n\tdeclare readonly soChangeFocused: TOutputEmitter<typeof descriptor, 'change:focused'>\n\tdeclare readonly soElementReady: TOutputEmitter<typeof descriptor, 'element:ready'>\n\tdeclare readonly soElementRemoved: TOutputEmitter<typeof descriptor, 'element:removed'>\n\tdeclare readonly soChangeSelected: TOutputEmitter<typeof facade, 'change:selected'>\n\tdeclare readonly renderedChange: TModelEmitter<typeof descriptor, 'rendered'>\n\tdeclare readonly visibleChange: TModelEmitter<typeof descriptor, 'visible'>\n\tdeclare readonly tagChange: TModelEmitter<typeof descriptor, 'tag'>\n\tdeclare readonly directionChange: TModelEmitter<typeof descriptor, 'direction'>\n\tdeclare readonly selectedChange: TModelEmitter<typeof descriptor, 'selected'>\n}\n","import {\n\tTCollectionItemExtension,\n\tTableCollectionRowDescriptor,\n\tTableRowDescriptor,\n} from '@soxa-ui/setup'\nimport type { ITableRow, TTableRowCollectionFacade } from '@soxa-ui/core'\nimport {\n\tAngularElevatorFactory,\n\tcreateAngularAdapterContext,\n\tjoinBindings,\n\tuseAdapter,\n\tuseCollectionAdapter,\n} from '../../../adapter'\nimport type { TBinding } from '../../../adapter'\n\n/** Чекбокс строки держит таблица: шаблон берёт его у контекста строки только в ячейке выбора. */\nexport function setupTableRow(\n\tctrl: ITableRow | undefined,\n\tprops: object,\n): TBinding<ITableRow, TTableRowCollectionFacade> {\n\tconst adapter = createAngularAdapterContext(TableRowDescriptor(), { ctrl, props })\n\tconst owner = useAdapter(adapter)\n\n\tconst item = createAngularAdapterContext(\n\t\tTableCollectionRowDescriptor(),\n\t\t{ props },\n\t\t{ bundle: adapter.bundle },\n\t).use(TCollectionItemExtension, { adapter, elevator: AngularElevatorFactory })\n\n\treturn joinBindings(owner, useCollectionAdapter(item))\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITableRow } from '@soxa-ui/core'\nimport { AttributesDirective, RunsPipe } from '../../../adapter'\nimport { TCheckBoxComponent } from '../../check-box'\nimport { TTableRowSurface } from '../../../generated/table-row.metadata'\nimport { setupTableRow } from './setup.component'\n\n/**\n * Строка таблицы — `tr`, её рисует сама таблица по записи `drawn`; ячейки — в её шаблоне.\n * AGENTS.md (Angular), «Таблица: части рисует она сама, ячейки — шаблон строки».\n */\n@Component({\n\tselector: 'tr[so-table-row], [so-table-row]',\n\timports: [NgTemplateOutlet, AttributesDirective, RunsPipe, TCheckBoxComponent],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\ttemplateUrl: './table-row.component.html',\n})\nexport class TTableRowComponent extends TTableRowSurface<ITableRow> {\n\tconstructor() {\n\t\tsuper(setupTableRow, { strategy: 'host' })\n\t}\n}\n","<!-- Чекбокс — только в этой ветке: геттер item-адаптера таблицы его создаёт. -->\n@if (state()['selecting']) {\n\t<td class=\"so-table-row__select\" [so-attributes]=\"state()['cellAria']\">\n\t\t<span\n\t\t\tso-check-box\n\t\t\tembedded=\"table.select\"\n\t\t\t[ctrl]=\"facade()?.context?.adapters.table.checkBox\"\n\t\t\t[aria_labelledBy]=\"state()['rowHeaderId']\"\n\t\t></span>\n\t</td>\n}\n<!--\n\tВетки — над петлёй ячеек: блок Angular — ещё якорь и представление, и ветка в ячейке стоила бы\n\tих на каждую. Ветка по шаблону — одна на строку, по заголовку строки — одна на серию ячеек с\n\tтем же `rowHeader` (`soRuns`). Ключ ячейки — колонка: новая запись строки рисуется в тех же\n\tузлах, с фокусом сетки.\n-->\n@if (slot('cell'); as content) {\n\t@for (run of state()['cells'] ?? [] | soRuns: 'rowHeader'; track $index) {\n\t\t@if (run.value) {\n\t\t\t@for (cell of run.items; track cell.column.uid) {\n\t\t\t\t<th\n\t\t\t\t\tclass=\"so-table-row__cell\"\n\t\t\t\t\tscope=\"row\"\n\t\t\t\t\t[so-attributes]=\"{ ...cell.dataset, ...state()['cellAria'], ...cell.aria }\"\n\t\t\t\t>\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\t\t\t\trow: instance(),\n\t\t\t\t\t\t\tcolumn: cell.column,\n\t\t\t\t\t\t\tvalue: cell.value,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t/>\n\t\t\t\t</th>\n\t\t\t}\n\t\t} @else {\n\t\t\t@for (cell of run.items; track cell.column.uid) {\n\t\t\t\t<td\n\t\t\t\t\tclass=\"so-table-row__cell\"\n\t\t\t\t\t[so-attributes]=\"{ ...cell.dataset, ...state()['cellAria'], ...cell.aria }\"\n\t\t\t\t>\n\t\t\t\t\t<ng-container\n\t\t\t\t\t\t[ngTemplateOutlet]=\"content\"\n\t\t\t\t\t\t[ngTemplateOutletContext]=\"{\n\t\t\t\t\t\t\trow: instance(),\n\t\t\t\t\t\t\tcolumn: cell.column,\n\t\t\t\t\t\t\tvalue: cell.value,\n\t\t\t\t\t\t}\"\n\t\t\t\t\t/>\n\t\t\t\t</td>\n\t\t\t}\n\t\t}\n\t}\n} @else {\n\t<!--\n\t\tТекст — свойством, а не интерполяцией: Prettier переносит содержимое ячейки на свою\n\t\tстроку, и Angular оставил бы пробелы по краям.\n\t-->\n\t@for (run of state()['cells'] ?? [] | soRuns: 'rowHeader'; track $index) {\n\t\t@if (run.value) {\n\t\t\t@for (cell of run.items; track cell.column.uid) {\n\t\t\t\t<th\n\t\t\t\t\tclass=\"so-table-row__cell\"\n\t\t\t\t\tscope=\"row\"\n\t\t\t\t\t[so-attributes]=\"{ ...cell.dataset, ...state()['cellAria'], ...cell.aria }\"\n\t\t\t\t\t[textContent]=\"cell.text\"\n\t\t\t\t></th>\n\t\t\t}\n\t\t} @else {\n\t\t\t@for (cell of run.items; track cell.column.uid) {\n\t\t\t\t<td\n\t\t\t\t\tclass=\"so-table-row__cell\"\n\t\t\t\t\t[so-attributes]=\"{ ...cell.dataset, ...state()['cellAria'], ...cell.aria }\"\n\t\t\t\t\t[textContent]=\"cell.text\"\n\t\t\t\t></td>\n\t\t\t}\n\t\t}\n\t}\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core'\nimport { NgTemplateOutlet } from '@angular/common'\nimport type { ITable } from '@soxa-ui/core'\nimport { AttributesDirective, SlotDirective, provideElevator } from '../../adapter'\nimport { TCheckBoxComponent } from '../check-box'\nimport { TTableColumnComponent } from './column'\nimport { TTableRowComponent } from './row'\nimport { TTableSurface } from '../../generated/table.metadata'\nimport { setupTable } from './setup.component'\n\n/**\n * Таблица: элемент потребителя — окно (`<div so-table>`), корень — `table` в шаблоне.\n * AGENTS.md (Angular), «Корень внутри обёртки — окно таблицы»,\n * «Таблица: части рисует она сама, ячейки — шаблон строки».\n */\n@Component({\n\tselector: 'div[so-table], [so-table]',\n\timports: [\n\t\tNgTemplateOutlet,\n\t\tAttributesDirective,\n\t\tSlotDirective,\n\t\tTCheckBoxComponent,\n\t\tTTableColumnComponent,\n\t\tTTableRowComponent,\n\t],\n\tproviders: [provideElevator()],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\thost: { class: 'so-table__viewport' },\n\ttemplateUrl: './table.component.html',\n})\nexport class TTableComponent extends TTableSurface<ITable> {\n\tconstructor() {\n\t\tsuper((ctrl, inputs) => setupTable(ctrl, inputs, this.engine), { strategy: 'wrapped' })\n\t}\n}\n","<!--\n\tШаблоны `header` и `cell` уходят частям пробросом, только заданные: пустой шаблон\n\tAngular от заданного не отличает.\n-->\n<table #root>\n\t<thead class=\"so-table__head\">\n\t\t<tr class=\"so-table__head-row\" [so-attributes]=\"state()['headRowAria']\">\n\t\t\t<!--\n\t\t\t\tКолонка выбора — разметка таблицы, а не колонка коллекции. В `single` — пустая\n\t\t\t\t`td`: пустой заголовок скринридеры считают ошибкой.\n\t\t\t-->\n\t\t\t@if (state()['mode'] === 'multiple') {\n\t\t\t\t<th class=\"so-table__select\" [so-attributes]=\"state()['cellAria']\">\n\t\t\t\t\t<span\n\t\t\t\t\t\tso-check-box\n\t\t\t\t\t\tembedded=\"table.select-all\"\n\t\t\t\t\t\t[ctrl]=\"facade()?.selectAll\"\n\t\t\t\t\t\t[aria_label]=\"state()['names_selectAll']\"\n\t\t\t\t\t></span>\n\t\t\t\t</th>\n\t\t\t} @else if (state()['mode'] === 'single') {\n\t\t\t\t<td class=\"so-table__select\" [so-attributes]=\"state()['cellAria']\"></td>\n\t\t\t}\n\t\t\t@for (column of state()['shownColumns'] ?? []; track column.uid) {\n\t\t\t\t<th so-table-column [ctrl]=\"column\">\n\t\t\t\t\t@if (slot('header'); as header) {\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\tslot=\"default\"\n\t\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\t\tlet-text=\"text\"\n\t\t\t\t\t\t\tlet-sortable=\"sortable\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"header\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ column, text, sortable }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t}\n\t\t\t\t</th>\n\t\t\t}\n\t\t</tr>\n\t</thead>\n\t<tbody class=\"so-table__body\">\n\t\t<!-- Ключ — ключ записи: строка, оставшаяся в окне, — тот же узел с фокусом сетки. -->\n\t\t@for (entry of state()['drawn'] ?? []; track entry.key) {\n\t\t\t@if (entry.kind === 'filler') {\n\t\t\t\t<tr class=\"so-table__filler-row\" aria-hidden=\"true\" [style]=\"entry.style\">\n\t\t\t\t\t<td class=\"so-table__filler\" [attr.colspan]=\"state()['columnCount']\"></td>\n\t\t\t\t</tr>\n\t\t\t} @else {\n\t\t\t\t<tr so-table-row [ctrl]=\"entry.item\">\n\t\t\t\t\t@if (slot('cell'); as cell) {\n\t\t\t\t\t\t<ng-template\n\t\t\t\t\t\t\tslot=\"cell\"\n\t\t\t\t\t\t\tngProjectAs=\"ng-template[slot]\"\n\t\t\t\t\t\t\tlet-row=\"row\"\n\t\t\t\t\t\t\tlet-column=\"column\"\n\t\t\t\t\t\t\tlet-value=\"value\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<ng-container\n\t\t\t\t\t\t\t\t[ngTemplateOutlet]=\"cell\"\n\t\t\t\t\t\t\t\t[ngTemplateOutletContext]=\"{ row, column, value }\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</ng-template>\n\t\t\t\t\t}\n\t\t\t\t</tr>\n\t\t\t}\n\t\t}\n\t\t@if (state()['shown']?.length === 0) {\n\t\t\t<tr class=\"so-table__empty-row\">\n\t\t\t\t<td class=\"so-table__empty\" [attr.colspan]=\"state()['columnCount']\">\n\t\t\t\t\t<ng-content select=\"[slot=empty]\" />\n\t\t\t\t</td>\n\t\t\t</tr>\n\t\t}\n\t</tbody>\n</table>\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tTComponentBase,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TModelEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport { booleanInput } from '../adapter/runtime/boolean-input'\nimport type { descriptor } from '../components/virtual/manifest'\n\nexport const VirtualInputNames = ['embedded', 'pluginProps', 'enabled'] as const\nexport const VirtualOutputNames = [\n\t'soBundleCreate',\n\t'soPluginEvent',\n\t'soChangeEnabled',\n\t'enabledChange',\n] as const\n\n@Directive({\n\tinputs: ['embedded', 'pluginProps', { name: 'enabled', transform: booleanInput }],\n\toutputs: [...VirtualOutputNames],\n})\nexport abstract class TVirtualSurface<TInstance extends IEntity> extends TComponentBase<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(VirtualInputNames, VirtualOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare enabled: TInputValue<typeof descriptor, 'enabled'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soChangeEnabled: TOutputEmitter<typeof descriptor, 'change:enabled'>\n\tdeclare readonly enabledChange: TModelEmitter<typeof descriptor, 'enabled'>\n}\n","import { TVirtualExtension, VirtualDescriptor } from '@soxa-ui/setup'\nimport type { IVirtual } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Подключение к окну обёртка опускает лифтом коллекциям в содержимом. */\nexport function setupVirtual(ctrl: IVirtual | undefined, props: object): TBinding<IVirtual> {\n\tconst adapter = createAngularAdapterContext(VirtualDescriptor(), { ctrl, props }).use(\n\t\tTVirtualExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Directive } from '@angular/core'\nimport type { IVirtual } from '@soxa-ui/core'\nimport { provideElevator } from '../../adapter'\nimport { TVirtualSurface } from '../../generated/virtual.metadata'\nimport { setupVirtual } from './setup.component'\n\n/**\n * Окно для длинных списков: коллекции внутри рисуют только видимые элементы; своего узла нет.\n * AGENTS.md (Angular), «Окно — `<ng-container so-virtual>`».\n */\n@Directive({\n\tselector: '[so-virtual]',\n\tproviders: [provideElevator()],\n})\nexport class TVirtualComponent extends TVirtualSurface<IVirtual> {\n\tconstructor() {\n\t\tsuper(setupVirtual)\n\t}\n}\n","// Auto-generated by @soxa-ui/angular codegen. DO NOT EDIT.\nimport { Directive } from '@angular/core'\nimport type { IEntity } from '@soxa-ui/core'\nimport type { DescriptorPluginOutputs, DescriptorPluginProps } from '@soxa-ui/setup'\nimport {\n\tTComponentBase,\n\ttype TInputValue,\n\ttype TOutputEmitter,\n\ttype TRootSpec,\n\ttype TSetup,\n} from '../adapter/runtime'\nimport type { descriptor } from '../components/drag-and-drop/manifest'\n\nexport const DragAndDropInputNames = ['embedded', 'pluginProps'] as const\nexport const DragAndDropOutputNames = [\n\t'soBundleCreate',\n\t'soPluginEvent',\n\t'soMoveBefore',\n\t'soMove',\n] as const\n\n@Directive({ inputs: ['embedded', 'pluginProps'], outputs: [...DragAndDropOutputNames] })\nexport abstract class TDragAndDropSurface<TInstance extends IEntity> extends TComponentBase<\n\tTInstance,\n\tunknown,\n\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n> {\n\tconstructor(\n\t\tsetup: TSetup<\n\t\t\tTInstance,\n\t\t\tunknown,\n\t\t\tDescriptorPluginProps<typeof descriptor> & DescriptorPluginOutputs<typeof descriptor>\n\t\t>,\n\t\tspec?: TRootSpec,\n\t) {\n\t\tsuper(DragAndDropInputNames, DragAndDropOutputNames, setup, spec)\n\t}\n\tdeclare embedded: TInputValue<typeof descriptor, 'embedded'>\n\tdeclare pluginProps: TInputValue<typeof descriptor, 'pluginProps'>\n\tdeclare readonly soBundleCreate: TOutputEmitter<typeof descriptor, 'bundle:create'>\n\tdeclare readonly soPluginEvent: TOutputEmitter<typeof descriptor, 'plugin:event'>\n\tdeclare readonly soMoveBefore: TOutputEmitter<typeof descriptor, 'move:before'>\n\tdeclare readonly soMove: TOutputEmitter<typeof descriptor, 'move'>\n}\n","import { DragAndDropDescriptor, TDragAndDropExtension } from '@soxa-ui/setup'\nimport type { IDragAndDrop } from '@soxa-ui/core'\nimport { AngularElevatorFactory, createAngularAdapterContext, useAdapter } from '../../adapter'\nimport type { TBinding } from '../../adapter'\n\n/** Свой экземпляр обёртка опускает лифтом коллекциям в содержимом. */\nexport function setupDragAndDrop(\n\tctrl: IDragAndDrop | undefined,\n\tprops: object,\n): TBinding<IDragAndDrop> {\n\tconst adapter = createAngularAdapterContext(DragAndDropDescriptor(), { ctrl, props }).use(\n\t\tTDragAndDropExtension,\n\t\t{ elevator: AngularElevatorFactory },\n\t)\n\n\treturn useAdapter(adapter)\n}\n","import { Directive } from '@angular/core'\nimport type { IDragAndDrop } from '@soxa-ui/core'\nimport { provideElevator } from '../../adapter'\nimport { TDragAndDropSurface } from '../../generated/drag-and-drop.metadata'\nimport { setupDragAndDrop } from './setup.component'\n\n/**\n * Перестановка элементов коллекций внутри перетаскиванием; своего узла нет.\n * AGENTS.md (Angular), «Перестановка — `<ng-container so-drag-and-drop>`».\n */\n@Directive({\n\tselector: '[so-drag-and-drop]',\n\tproviders: [provideElevator()],\n})\nexport class TDragAndDropComponent extends TDragAndDropSurface<IDragAndDrop> {\n\tconstructor() {\n\t\tsuper(setupDragAndDrop)\n\t}\n}\n"],"mappings":"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;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACS;AACV,MAAa,oBAAoB;CAChC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACS;AA+CV,IAAsB,iBAAtB,MAAsB,uBAAkD,aAIvE;CACA,YACC,OAKA,MAAgB;EAEhB,MAAM,kBAAkB,mBAAmB,OAAO,IAAI;EAEtC,KAAA,cAAc,UAAwC,WAAS;GAAA,GAAA,YAAA,EAAA,WAAA,cAAA,+BAAA,CAAA;GAC/E,MAAM;EAAU,CAAA;EAMA,KAAA,SAAS,gBAAgB,eAAc,GAAA,YAAA,CAAA,EAAA,WAAA,SAAA,CAAA,+BAAA,CAAA,CAAA;CARxD;CAImB,aAAa,KAAiB;EAChD,IAAI,QAAQ,WAAW,OAAO,KAAK,YAAW,CAAE,EAAE,iBAAiB;EACnE,OAAO;CACR;CAEmB,gBAAa;EAC/B,OAAO,KAAK,OAAM;CACnB;CAzBqB;EAAA,KAAA,OAAA,GAAA,mBAAA;GAAA,YAAA;GAAA,SAAA;GAAA,UAAA;GAAA,MAAA;GAAc,MAAA;GAAA,QAAA,GAAA,gBAAA;EAAA,CAAA;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,UAAA;KAAA,QAAA;MAAA;MAAA;MAAA;KAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAChB;KAAmB,UAAA;KAAA,QAAA,CAAA,eAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACnB;KAAiB,UAAA;KAAA,QAAA,CAAA,cAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACjB;KAAa,UAAA;KAAA,QAAA,CAAA,MAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACb;KAAgB,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MAChB;KAAc,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACd;KAAiB,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACjB;KAAiB,UAAA;IAAA;IAAA;KAAA,MAAA;KAAA,MACjB;KAAsB,UAAA;IAAA;GAAA;GAAA,iBAAA,GAAA,wBAAA;EAAA,CAAA;CAAA;;AAMX,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAjB9B,MAAA;EACU,MAAA,CAAA;GAAA,UAAA;GAAiC,SAClC;IACR;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;GACA;GAAA,WACU,CAAC,gBAAe,CAAE;GAAC,iBACb,wBAAwB;GAAM,UAAA;EAAA,CAAA;;;;AElBhD,MAAa,uBAAuB;CACnC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACS;AACV,MAAa,wBAAwB;CACpC;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CAC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"}
|