@taiga-ui/layout
Version:
A package with Taiga UI layout components
95 lines • 15.6 kB
JavaScript
import { ChangeDetectionStrategy, Component, Directive, inject, Input, signal, ViewEncapsulation, } from '@angular/core';
import { tuiWithStyles } from '@taiga-ui/cdk/utils/miscellaneous';
import { TUI_BUTTON_OPTIONS } from '@taiga-ui/core/components/button';
import { TUI_NOTIFICATION_OPTIONS } from '@taiga-ui/core/components/notification';
import { TUI_TEXTFIELD_OPTIONS, TuiTextfieldOptionsDirective, } from '@taiga-ui/core/components/textfield';
import { TUI_SEGMENTED_OPTIONS } from '@taiga-ui/kit/components/segmented';
import { TUI_SWITCH_OPTIONS } from '@taiga-ui/kit/components/switch';
import { TUI_HEADER_OPTIONS } from '@taiga-ui/layout/components/header';
import { TUI_FORM_OPTIONS } from './form.options';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/core/components/textfield";
const HEADER_SIZE = {
s: 'xxxs',
m: 'xs',
l: 's',
};
class TuiFormStyles {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFormStyles, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TuiFormStyles, isStandalone: true, selector: "ng-component", host: { classAttribute: "tui-form" }, ngImport: i0, template: '', isInline: true, styles: ["[tuiForm]{display:flex;flex-direction:column;align-items:stretch}[tuiForm][data-size=s]{gap:.75rem;font:var(--tui-font-text-s)}[tuiForm][data-size=s] tui-error:not(.tui-space-top-none){margin-top:-.75rem}[tuiForm][data-size=s] [tuiHeader]{padding-bottom:.5rem}[tuiForm][data-size=s] [tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-ui-s)}[tuiForm][data-size=m]{gap:1rem;font:var(--tui-font-text-s)}[tuiForm][data-size=m] tui-error:not(.tui-space-top-none){margin-top:-1rem}[tuiForm][data-size=l]{gap:1.25rem;font:var(--tui-font-text-m)}[tuiForm][data-size=l] tui-error:not(.tui-space-top-none){margin-top:-1.25rem}[tuiForm]>header{padding-bottom:.25rem}[tuiForm]>fieldset{display:grid;gap:inherit;grid-auto-flow:column;grid-auto-columns:1fr;border:none;padding:0;margin:0}[tuiForm]>footer{display:flex;gap:.75rem;margin-top:.25rem}[tuiForm]>button,[tuiForm]>a{align-self:flex-start}[tuiForm] [tuiLabel]:not([data-orientation=vertical]){font:inherit}[tuiForm][data-size=s] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip],[tuiForm][data-size=m] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip]{block-size:1.25rem}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiFormStyles, decorators: [{
type: Component,
args: [{ standalone: true, template: '', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
class: 'tui-form',
}, styles: ["[tuiForm]{display:flex;flex-direction:column;align-items:stretch}[tuiForm][data-size=s]{gap:.75rem;font:var(--tui-font-text-s)}[tuiForm][data-size=s] tui-error:not(.tui-space-top-none){margin-top:-.75rem}[tuiForm][data-size=s] [tuiHeader]{padding-bottom:.5rem}[tuiForm][data-size=s] [tuiHeader] [tuiSubtitle]{font:var(--tui-font-text-ui-s)}[tuiForm][data-size=m]{gap:1rem;font:var(--tui-font-text-s)}[tuiForm][data-size=m] tui-error:not(.tui-space-top-none){margin-top:-1rem}[tuiForm][data-size=l]{gap:1.25rem;font:var(--tui-font-text-m)}[tuiForm][data-size=l] tui-error:not(.tui-space-top-none){margin-top:-1.25rem}[tuiForm]>header{padding-bottom:.25rem}[tuiForm]>fieldset{display:grid;gap:inherit;grid-auto-flow:column;grid-auto-columns:1fr;border:none;padding:0;margin:0}[tuiForm]>footer{display:flex;gap:.75rem;margin-top:.25rem}[tuiForm]>button,[tuiForm]>a{align-self:flex-start}[tuiForm] [tuiLabel]:not([data-orientation=vertical]){font:inherit}[tuiForm][data-size=s] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip],[tuiForm][data-size=m] [tuiLabel]:not([data-orientation=vertical]) [tuiTooltip]{block-size:1.25rem}\n"] }]
}] });
class TuiForm {
constructor() {
this.options = inject(TUI_FORM_OPTIONS);
this.nothing = tuiWithStyles(TuiFormStyles);
this.size = this.options.size;
}
set tuiForm(size) {
this.size = size || this.options.size;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiForm, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: TuiForm, isStandalone: true, selector: "[tuiForm]", inputs: { tuiForm: "tuiForm" }, host: { attributes: { "tuiForm": "" }, properties: { "attr.data-size": "size" } }, providers: [
projectSize(TUI_BUTTON_OPTIONS, (size) => size),
projectSize(TUI_NOTIFICATION_OPTIONS, (size) => size),
projectSize(TUI_HEADER_OPTIONS, (size) => HEADER_SIZE[size]),
projectSize(TUI_SWITCH_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
projectSize(TUI_SEGMENTED_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
{
provide: TUI_TEXTFIELD_OPTIONS,
useFactory: () => ({
...inject(TUI_TEXTFIELD_OPTIONS, { skipSelf: true }),
size: signal(inject(TuiForm).size),
}),
},
], hostDirectives: [{ directive: i1.TuiTextfieldOptionsDirective, inputs: ["tuiTextfieldAppearance", "tuiTextfieldAppearance", "tuiTextfieldCleaner", "tuiTextfieldCleaner"] }], ngImport: i0 }); }
}
export { TuiForm };
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TuiForm, decorators: [{
type: Directive,
args: [{
standalone: true,
selector: '[tuiForm]',
providers: [
projectSize(TUI_BUTTON_OPTIONS, (size) => size),
projectSize(TUI_NOTIFICATION_OPTIONS, (size) => size),
projectSize(TUI_HEADER_OPTIONS, (size) => HEADER_SIZE[size]),
projectSize(TUI_SWITCH_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
projectSize(TUI_SEGMENTED_OPTIONS, (size) => (size === 'l' ? 'm' : 's')),
{
provide: TUI_TEXTFIELD_OPTIONS,
useFactory: () => ({
...inject(TUI_TEXTFIELD_OPTIONS, { skipSelf: true }),
size: signal(inject(TuiForm).size),
}),
},
],
hostDirectives: [
{
directive: TuiTextfieldOptionsDirective,
inputs: ['tuiTextfieldAppearance', 'tuiTextfieldCleaner'],
},
],
host: {
tuiForm: '',
'[attr.data-size]': 'size',
},
}]
}], propDecorators: { tuiForm: [{
type: Input
}] } });
function projectSize(provide, project) {
return {
provide,
useFactory: () => ({
...inject(provide, { skipSelf: true }),
size: project(inject(TuiForm).size),
}),
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sYXlvdXQvY29tcG9uZW50cy9mb3JtL2Zvcm0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsR0FDcEIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hGLE9BQU8sRUFDSCxxQkFBcUIsRUFDckIsNEJBQTRCLEdBQy9CLE1BQU0scUNBQXFDLENBQUM7QUFDN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFHdEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7OztBQUVoRCxNQUFNLFdBQVcsR0FBRztJQUNoQixDQUFDLEVBQUUsTUFBTTtJQUNULENBQUMsRUFBRSxJQUFJO0lBQ1AsQ0FBQyxFQUFFLEdBQUc7Q0FDQSxDQUFDO0FBRVgsTUFVTSxhQUFhOytHQUFiLGFBQWE7bUdBQWIsYUFBYSw4R0FSTCxFQUFFOzs0RkFRVixhQUFhO2tCQVZsQixTQUFTO2lDQUNNLElBQUksWUFDTixFQUFFLGlCQUVHLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLFVBQVU7cUJB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cUJBQXFCLENBQUM7eUJBQzVEO3FCQUNKO29CQUNELElBQUksRUFBRTt3QkFDRixPQUFPLEVBQUUsRUFBRTt3QkFDWCxrQkFBa0IsRUFBRSxNQUFNO3FCQUM3QjtpQkFDSjs4QkFTYyxPQUFPO3NCQURqQixLQUFLOztBQU1WLFNBQVMsV0FBVyxDQUNoQixPQUE0QixFQUM1QixPQUFtRDtJQUVuRCxPQUFPO1FBQ0gsT0FBTztRQUNQLFVBQVUsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1lBQ2YsR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLEVBQUMsUUFBUSxFQUFFLElBQUksRUFBQyxDQUFDO1lBQ3BDLElBQUksRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQztTQUN0QyxDQUFDO0tBQ0wsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7SW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERpcmVjdGl2ZSxcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgc2lnbmFsLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtUdWlIYW5kbGVyfSBmcm9tICdAdGFpZ2EtdWkvY2RrL3R5cGVzJztcbmltcG9ydCB7dHVpV2l0aFN0eWxlc30gZnJvbSAnQHRhaWdhLXVpL2Nkay91dGlscy9taXNjZWxsYW5lb3VzJztcbmltcG9ydCB7VFVJX0JVVFRPTl9PUFRJT05TfSBmcm9tICdAdGFpZ2EtdWkvY29yZS9jb21wb25lbnRzL2J1dHRvbic7XG5pbXBvcnQge1RVSV9OT1RJRklDQVRJT05fT1BUSU9OU30gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHtcbiAgICBUVUlfVEVYVEZJRUxEX09QVElPTlMsXG4gICAgVHVpVGV4dGZpZWxkT3B0aW9uc0RpcmVjdGl2ZSxcbn0gZnJvbSAnQHRhaWdhLXVpL2NvcmUvY29tcG9uZW50cy90ZXh0ZmllbGQnO1xuaW1wb3J0IHtUVUlfU0VHTUVOVEVEX09QVElPTlN9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zZWdtZW50ZWQnO1xuaW1wb3J0IHtUVUlfU1dJVENIX09QVElPTlN9IGZyb20gJ0B0YWlnYS11aS9raXQvY29tcG9uZW50cy9zd2l0Y2gnO1xuaW1wb3J0IHtUVUlfSEVBREVSX09QVElPTlN9IGZyb20gJ0B0YWlnYS11aS9sYXlvdXQvY29tcG9uZW50cy9oZWFkZXInO1xuXG5pbXBvcnQgdHlwZSB7VHVpRm9ybU9wdGlvbnN9IGZyb20gJy4vZm9ybS5vcHRpb25zJztcbmltcG9ydCB7VFVJX0ZPUk1fT1BUSU9OU30gZnJvbSAnLi9mb3JtLm9wdGlvbnMnO1xuXG5jb25zdCBIRUFERVJfU0laRSA9IHtcbiAgICBzOiAneHh4cycsXG4gICAgbTogJ3hzJyxcbiAgICBsOiAncycsXG59IGFzIGNvbnN0O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlOiAnJyxcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLnN0eWxlcy5sZXNzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAndHVpLWZvcm0nLFxuICAgIH0sXG59KVxuY2xhc3MgVHVpRm9ybVN0eWxlcyB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnW3R1aUZvcm1dJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgcHJvamVjdFNpemUoVFVJX0JVVFRPTl9PUFRJT05TLCAoc2l6ZSkgPT4gc2l6ZSksXG4gICAgICAgIHByb2plY3RTaXplKFRVSV9OT1RJRklDQVRJT05fT1BUSU9OUywgKHNpemUpID0+IHNpemUpLFxuICAgICAgICBwcm9qZWN0U2l6ZShUVUlfSEVBREVSX09QVElPTlMsIChzaXplKSA9PiBIRUFERVJfU0laRVtzaXplXSksXG4gICAgICAgIHByb2plY3RTaXplKFRVSV9TV0lUQ0hfT1BUSU9OUywgKHNpemUpID0+IChzaXplID09PSAnbCcgPyAnbScgOiAncycpKSxcbiAgICAgICAgcHJvamVjdFNpemUoVFVJX1NFR01FTlRFRF9PUFRJT05TLCAoc2l6ZSkgPT4gKHNpemUgPT09ICdsJyA/ICdtJyA6ICdzJykpLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBUVUlfVEVYVEZJRUxEX09QVElPTlMsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoKSA9PiAoe1xuICAgICAgICAgICAgICAgIC4uLmluamVjdChUVUlfVEVYVEZJRUxEX09QVElPTlMsIHtza2lwU2VsZjogdHJ1ZX0pLFxuICAgICAgICAgICAgICAgIHNpemU6IHNpZ25hbChpbmplY3QoVHVpRm9ybSkuc2l6ZSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGRpcmVjdGl2ZTogVHVpVGV4dGZpZWxkT3B0aW9uc0RpcmVjdGl2ZSxcbiAgICAgICAgICAgIGlucHV0czogWyd0dWlUZXh0ZmllbGRBcHBlYXJhbmNlJywgJ3R1aVRleHRmaWVsZENsZWFuZXInXSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHVpRm9ybTogJycsXG4gICAgICAgICdbYXR0ci5kYXRhLXNpemVdJzogJ3NpemUnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIFR1aUZvcm0ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBvcHRpb25zID0gaW5qZWN0KFRVSV9GT1JNX09QVElPTlMpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG5vdGhpbmcgPSB0dWlXaXRoU3R5bGVzKFR1aUZvcm1TdHlsZXMpO1xuXG4gICAgcHVibGljIHNpemU6IFR1aUZvcm1PcHRpb25zWydzaXplJ10gPSB0aGlzLm9wdGlvbnMuc2l6ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHNldCB0dWlGb3JtKHNpemU6IFR1aUZvcm1PcHRpb25zWydzaXplJ10gfCAnJykge1xuICAgICAgICB0aGlzLnNpemUgPSBzaXplIHx8IHRoaXMub3B0aW9ucy5zaXplO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gcHJvamVjdFNpemUoXG4gICAgcHJvdmlkZTogSW5qZWN0aW9uVG9rZW48YW55PixcbiAgICBwcm9qZWN0OiBUdWlIYW5kbGVyPFR1aUZvcm1PcHRpb25zWydzaXplJ10sIHN0cmluZz4sXG4pOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcHJvdmlkZSxcbiAgICAgICAgdXNlRmFjdG9yeTogKCkgPT4gKHtcbiAgICAgICAgICAgIC4uLmluamVjdChwcm92aWRlLCB7c2tpcFNlbGY6IHRydWV9KSxcbiAgICAgICAgICAgIHNpemU6IHByb2plY3QoaW5qZWN0KFR1aUZvcm0pLnNpemUpLFxuICAgICAgICB9KSxcbiAgICB9O1xufVxuIl19