UNPKG

@notiz/formly-tailwindcss

Version:
1 lines 78.9 kB
{"version":3,"file":"notiz-formly-tailwindcss.mjs","sources":["../../../projects/formly-tailwindcss/src/lib/button/button.component.ts","../../../projects/formly-tailwindcss/src/lib/button/button.module.ts","../../../projects/formly-tailwindcss/src/lib/checkbox/checkbox.component.ts","../../../projects/formly-tailwindcss/src/lib/checkbox/checkbox.module.ts","../../../projects/formly-tailwindcss/src/lib/datepicker/datepicker.component.ts","../../../projects/formly-tailwindcss/src/lib/datepicker/datepicker.module.ts","../../../projects/formly-tailwindcss/src/lib/divider/divider.component.ts","../../../projects/formly-tailwindcss/src/lib/divider/divider.module.ts","../../../projects/formly-tailwindcss/src/lib/file/file-value-accessor.ts","../../../projects/formly-tailwindcss/src/lib/file/file.component.ts","../../../projects/formly-tailwindcss/src/lib/file/file.module.ts","../../../projects/formly-tailwindcss/src/lib/form-field/form-field.component.ts","../../../projects/formly-tailwindcss/src/lib/form-field/form-field.module.ts","../../../projects/formly-tailwindcss/src/lib/input/input.component.ts","../../../projects/formly-tailwindcss/src/lib/input/input.module.ts","../../../projects/formly-tailwindcss/src/lib/textarea/textarea.component.ts","../../../projects/formly-tailwindcss/src/lib/textarea/textarea.module.ts","../../../projects/formly-tailwindcss/src/lib/select/select.component.ts","../../../projects/formly-tailwindcss/src/lib/select/select.module.ts","../../../projects/formly-tailwindcss/src/lib/link/link.component.ts","../../../projects/formly-tailwindcss/src/lib/link/link.module.ts","../../../projects/formly-tailwindcss/src/lib/radio/radio.component.ts","../../../projects/formly-tailwindcss/src/lib/radio/radio.module.ts","../../../projects/formly-tailwindcss/src/lib/range/range.component.ts","../../../projects/formly-tailwindcss/src/lib/range/range.module.ts","../../../projects/formly-tailwindcss/src/lib/typography/typography.component.ts","../../../projects/formly-tailwindcss/src/lib/typography/typography.module.ts","../../../projects/formly-tailwindcss/src/lib/formly-tailwindcss.module.ts","../../../projects/formly-tailwindcss/src/lib/validation/validation.ts","../../../projects/formly-tailwindcss/src/notiz-formly-tailwindcss.ts"],"sourcesContent":["import { Component, HostBinding, TemplateRef, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n} from '@ngx-formly/core';\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\n\nexport interface ButtonProps extends FormlyFieldProps {\n type?: string | 'button' | 'submit' | 'reset';\n style?: string;\n text?: string;\n template?: TemplateRef<any> | string;\n onClick?: (event: any) => void;\n}\n\nexport interface FormlyButtonFieldConfig\n extends FormlyFieldConfig<ButtonProps> {\n type: 'button' | Type<FormlyTailwindButton>;\n}\n\n@Component({\n selector: 'formly-button',\n template: `\n <button\n class=\"form-button w-full\"\n [type]=\"props.type\"\n [ngClass]=\"'form-button-' + props.style\"\n [class.form-button-disabled]=\"props.disabled\"\n (click)=\"onClick($event)\"\n [disabled]=\"\n props.type === 'submit'\n ? form.invalid || props.disabled\n : props.disabled\n \"\n >\n <ng-container\n *ngIf=\"props.template || props.text as content\"\n [ngTemplateOutlet]=\"stringOrTemplate\"\n [ngTemplateOutletContext]=\"{ content: content }\"\n >\n </ng-container>\n </button>\n\n <ng-template #stringOrTemplate let-content=\"content\">\n <ng-container *ngIf=\"!content.createEmbeddedView; else template\">\n {{ content }}\n </ng-container>\n <ng-template #template>\n <ng-container\n [ngTemplateOutlet]=\"content\"\n [ngTemplateOutletContext]=\"{ field: props }\"\n ></ng-container>\n </ng-template>\n </ng-template>\n `,\n standalone: true,\n imports: [NgClass, NgIf, NgTemplateOutlet],\n})\nexport class FormlyTailwindButton extends FieldType<\n FieldTypeConfig<ButtonProps>\n> {\n @HostBinding('class') class = 'block mt-4';\n\n override defaultOptions = {\n props: {\n type: 'button', // button, submit, reset\n },\n };\n\n onClick(event: any) {\n if (this.props.onClick) {\n this.props.onClick(event);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyTailwindButton } from './button.component';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'button',\n component: FormlyTailwindButton,\n },\n ],\n }),\n FormlyTailwindButton,\n ],\n exports: [FormlyTailwindButton],\n})\nexport class FormlyTailwindButtonModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n FormlyModule,\n} from '@ngx-formly/core';\nimport { NgClass, NgIf } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nexport interface CheckboxProps extends FormlyFieldProps {\n indeterminate?: boolean;\n hideRequiredMarker?: boolean;\n}\n\nexport interface FormlyCheckboxFieldConfig\n extends FormlyFieldConfig<CheckboxProps> {\n type: 'checkbox' | Type<FormlyTailwindCheckbox>;\n}\n\n@Component({\n selector: 'formly-checkbox',\n template: `\n <input\n class=\"form-checkbox\"\n [ngClass]=\"{ 'cursor-not-allowed': props.disabled }\"\n type=\"checkbox\"\n [id]=\"id\"\n [name]=\"key\"\n [readonly]=\"props.readonly\"\n [disabled]=\"props.disabled ? props.disabled : false\"\n [required]=\"props.required ? props.required : false\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [indeterminate]=\"props.indeterminate && formControl.value == null\"\n [tabIndex]=\"props.tabindex\"\n [attr.aria-describedby]=\"key\"\n />\n\n <label\n [for]=\"id\"\n class=\"form-checkbox-label ml-2 flex items-center text-gray-700\"\n [ngClass]=\"{ 'cursor-not-allowed': props.disabled }\"\n >\n <!-- TODO same label as the wrapper -->\n <div [innerHtml]=\"props.label\"></div>\n <!-- TODO is this needed when the wrapper is applied? -->\n <span\n *ngIf=\"props.required && !props.hideRequiredMarker\"\n class=\"form-required text-red-700\"\n >\n *\n </span>\n </label>\n `,\n standalone: true,\n imports: [NgClass, ReactiveFormsModule, FormlyModule, NgIf],\n})\nexport class FormlyTailwindCheckbox extends FieldType<\n FieldTypeConfig<CheckboxProps>\n> {\n override defaultOptions = {\n props: {\n indeterminate: true,\n hideLabel: true,\n },\n };\n\n @HostBinding('class') get class() {\n return `flex items-center ${\n this.props.disabled ? 'cursor-not-allowed' : ''\n }`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyTailwindCheckbox } from './checkbox.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'checkbox',\n component: FormlyTailwindCheckbox,\n wrappers: ['form-field'],\n },\n {\n name: 'boolean',\n extends: 'checkbox',\n },\n ],\n }),\n FormlyTailwindCheckbox,\n ],\n exports: [FormlyTailwindCheckbox],\n})\nexport class FormlyTailwindCheckboxModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n FormlyModule,\n} from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nexport interface DatepickerProps extends FormlyFieldProps {}\n\nexport interface FormlyDatepickerFieldConfig\n extends FormlyFieldConfig<DatepickerProps> {\n type: 'datepicker' | Type<FormlyTailwindDatepicker>;\n}\n\n@Component({\n selector: 'formly-datepicker',\n template: `\n <input\n class=\"form-input w-full\"\n [class.cursor-not-allowed]=\"props.disabled\"\n [type]=\"type\"\n [id]=\"id\"\n [name]=\"key\"\n [readonly]=\"props.readonly\"\n [required]=\"props.required ? props.required : false\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n [placeholder]=\"props.placeholder\"\n />\n `,\n standalone: true,\n imports: [ReactiveFormsModule, FormlyModule],\n})\nexport class FormlyTailwindDatepicker extends FieldType<\n FieldTypeConfig<FormlyFieldProps>\n> {\n @HostBinding('class') class = 'block';\n\n supportedDateTypes = ['date', 'datetime-local', 'month', 'week', 'time'];\n\n get type() {\n if (this.props.type !== undefined) {\n const supportedType = this.supportedDateTypes.some(\n (types) => types === this.props.type\n );\n\n if (!supportedType) {\n console.warn(\n `Datepicker doesn't support ${this.props.type} fallback to 'date'.`\n );\n }\n return supportedType ? this.props.type : 'date';\n }\n return 'date';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyTailwindDatepicker } from './datepicker.component';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'datepicker',\n component: FormlyTailwindDatepicker,\n wrappers: ['form-field'],\n },\n {\n name: 'date',\n extends: 'datepicker',\n },\n {\n name: 'datetime-local',\n extends: 'datepicker',\n defaultOptions: {\n props: {\n type: 'datetime-local',\n },\n },\n },\n {\n name: 'month',\n extends: 'datepicker',\n defaultOptions: {\n props: {\n type: 'month',\n },\n },\n },\n {\n name: 'week',\n extends: 'datepicker',\n defaultOptions: {\n props: {\n type: 'week',\n },\n },\n },\n {\n name: 'time',\n extends: 'datepicker',\n defaultOptions: {\n props: {\n type: 'time',\n },\n },\n },\n ],\n }),\n FormlyTailwindDatepicker,\n ],\n exports: [FormlyTailwindDatepicker],\n})\nexport class FormlyTailwindDatepickerModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n} from '@ngx-formly/core';\nimport { NgClass } from '@angular/common';\n\nexport interface DividerProps extends FormlyFieldProps {\n dividerClasses?: string;\n textClasses?: string;\n text?: string;\n}\n\nexport interface FormlyDividerFieldConfig\n extends FormlyFieldConfig<DividerProps> {\n type: 'divider' | Type<FormlyTailwindDivider>;\n}\n\n@Component({\n selector: 'formly-divider',\n template: `\n <div class=\"form-divider relative\">\n <div class=\"absolute inset-0 flex items-center\" aria-hidden=\"true\">\n <div\n class=\"form-divider-border w-full border-t\"\n [ngClass]=\"[props.dividerClasses]\"\n ></div>\n </div>\n <div class=\"relative flex justify-center\">\n <span class=\"form-divider-text px-2\" [ngClass]=\"[props.textClasses]\">\n {{ props.text }}\n </span>\n </div>\n </div>\n `,\n standalone: true,\n imports: [NgClass],\n})\nexport class FormlyTailwindDivider extends FieldType<\n FieldTypeConfig<DividerProps>\n> {\n @HostBinding('class') class = 'block mt-4';\n\n override defaultOptions = {\n props: {\n dividerClasses: 'border-gray-300',\n textClasses: 'bg-white text-sm text-red-500',\n },\n };\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyTailwindDivider } from './divider.component';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'divider',\n component: FormlyTailwindDivider,\n },\n ],\n }),\n FormlyTailwindDivider,\n ],\n exports: [FormlyTailwindDivider],\n})\nexport class FormlyTailwindDividerModule {}\n","import { Directive } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms';\n\n@Directive({\n selector: 'input[type=file]',\n host: {\n '(change)': 'onChange($event.target.files)',\n '(blur)': 'onTouched()',\n },\n providers: [\n { provide: NG_VALUE_ACCESSOR, useExisting: FileValueAccessor, multi: true },\n ],\n standalone: true,\n})\n// https://github.com/angular/angular/issues/7341\nexport class FileValueAccessor implements ControlValueAccessor {\n value: any;\n onChange = (_: any) => {};\n onTouched = () => {};\n\n writeValue(value: any) {}\n registerOnChange(fn: any) {\n this.onChange = fn;\n }\n registerOnTouched(fn: any) {\n this.onTouched = fn;\n }\n}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n FormlyModule,\n} from '@ngx-formly/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { FileValueAccessor } from './file-value-accessor';\n\nexport interface FileProps extends FormlyFieldProps {\n accept?: string | string[];\n multiple?: boolean;\n}\n\nexport interface FormlyFileFieldConfig extends FormlyFieldConfig<FileProps> {\n type: 'file' | Type<FormlyTailwindFile>;\n}\n\n@Component({\n selector: 'formly-file',\n template: `\n <!-- TODO use file variant in tailwindcss@3.x.x to style the input -->\n <input\n class=\"form-file w-full\"\n type=\"file\"\n [id]=\"id\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [accept]=\"props.accept\"\n [multiple]=\"props.multiple\"\n />\n `,\n standalone: true,\n imports: [FileValueAccessor, ReactiveFormsModule, FormlyModule],\n})\nexport class FormlyTailwindFile extends FieldType<FieldTypeConfig<FileProps>> {\n @HostBinding('class') class = 'block';\n\n override defaultOptions = {\n props: {\n accept: [],\n multiple: false,\n },\n };\n}\n","import { NgModule } from '@angular/core';\n\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyTailwindFile } from './file.component';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'file',\n component: FormlyTailwindFile,\n wrappers: ['form-field'],\n },\n ],\n }),\n FormlyTailwindFile,\n ],\n exports: [FormlyTailwindFile],\n providers: [],\n})\nexport class FormlyTailwindFileModule {}\n","import { Component, TemplateRef } from '@angular/core';\nimport {\n FieldWrapper,\n FormlyFieldConfig,\n FormlyFieldProps,\n FormlyModule,\n} from '@ngx-formly/core';\nimport { NgClass, NgIf, NgTemplateOutlet } from '@angular/common';\n\nexport interface WrapperFieldProps extends FormlyFieldProps {\n hideLabel?: boolean;\n hideRequiredMarker?: boolean;\n hintStart?: TemplateRef<any> | string;\n hintEnd?: TemplateRef<any> | string;\n}\n\n@Component({\n selector: 'formly-field',\n template: `\n <div\n class=\"mt-4 block\"\n [class.form-error]=\"showError\"\n [class.form-disabled]=\"props.disabled\"\n [ngClass]=\"{\n 'form-disabled opacity-50': props.disabled\n }\"\n >\n <label\n *ngIf=\"props.label && !props.hideLabel\"\n class=\"form-label mb-0.5 inline-flex text-gray-700\"\n [for]=\"id\"\n >\n <div [innerHtml]=\"props.label\"></div>\n <span\n *ngIf=\"props.required && !props.hideRequiredMarker\"\n class=\"form-required text-red-700\"\n >\n *\n </span>\n </label>\n <ng-container #fieldComponent></ng-container>\n <div\n *ngIf=\"\n (props.description || props.hintStart || props.hintEnd) && !showError\n \"\n class=\"form-hint mt-0.5 flex justify-between\"\n >\n <ng-container\n *ngIf=\"props.description || props.hintStart as hint\"\n [ngTemplateOutlet]=\"stringOrTemplate\"\n [ngTemplateOutletContext]=\"{ content: hint }\"\n >\n </ng-container>\n <!-- divider if hintStart is empty to position hintEnd correctly -->\n <div\n *ngIf=\"!(props.description || props.hintStart) && props.hintEnd\"\n ></div>\n <ng-container\n *ngIf=\"props.hintEnd as hintEnd\"\n [ngTemplateOutlet]=\"stringOrTemplate\"\n [ngTemplateOutletContext]=\"{ content: hintEnd }\"\n >\n </ng-container>\n </div>\n\n <div\n *ngIf=\"showError\"\n class=\"form-error-message mt-0.5 text-sm text-red-400\"\n >\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n </div>\n\n <ng-template #stringOrTemplate let-content=\"content\">\n <ng-container *ngIf=\"!content.createEmbeddedView; else template\">\n <span class=\"form-hint-text text-sm text-gray-600\">\n {{ content }}\n </span>\n </ng-container>\n <ng-template #template>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </ng-template>\n </ng-template>\n `,\n standalone: true,\n imports: [NgClass, NgIf, NgTemplateOutlet, FormlyModule],\n})\nexport class FormlyTailwindWrapperFormField extends FieldWrapper<\n FormlyFieldConfig<WrapperFieldProps>\n> {}\n","import { NgModule } from '@angular/core';\nimport { FormlyTailwindWrapperFormField } from './form-field.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n wrappers: [\n {\n name: 'form-field',\n component: FormlyTailwindWrapperFormField,\n },\n ],\n }),\n FormlyTailwindWrapperFormField,\n ],\n exports: [FormlyTailwindWrapperFormField],\n})\nexport class FormlyTailwindFormFieldModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n FormlyModule,\n} from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { NgIf } from '@angular/common';\n\nexport interface InputProps extends FormlyFieldProps {}\n\nexport interface FormlyInputFieldConfig extends FormlyFieldConfig<InputProps> {\n type: 'input' | Type<FormlyTailwindInput>;\n}\n\n@Component({\n selector: 'formly-input',\n template: `\n <input\n *ngIf=\"type !== 'number'; else numberInput\"\n class=\"form-input w-full\"\n [class.cursor-not-allowed]=\"props.disabled\"\n [id]=\"id\"\n [name]=\"key\"\n [type]=\"type\"\n [readonly]=\"props.readonly\"\n [required]=\"props.required ? props.required : false\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n [placeholder]=\"props.placeholder\"\n />\n\n <ng-template #numberInput>\n <input\n type=\"number\"\n class=\"form-input w-full\"\n [class.cursor-not-allowed]=\"props.disabled\"\n [id]=\"id\"\n [name]=\"key\"\n [readonly]=\"props.readonly\"\n [required]=\"props.required ? props.required : false\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n [placeholder]=\"props.placeholder\"\n />\n </ng-template>\n `,\n standalone: true,\n imports: [NgIf, ReactiveFormsModule, FormlyModule],\n})\nexport class FormlyTailwindInput extends FieldType<\n FieldTypeConfig<InputProps>\n> {\n @HostBinding('class') class = 'block';\n\n get type() {\n return this.props.type || 'text';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyTailwindInput } from './input.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'input',\n component: FormlyTailwindInput,\n wrappers: ['form-field'],\n },\n { name: 'string', extends: 'input' },\n { name: 'text', extends: 'input' },\n {\n name: 'email',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'email',\n },\n },\n },\n {\n name: 'password',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'password',\n },\n },\n },\n {\n name: 'number',\n extends: 'input',\n defaultOptions: {\n props: {\n type: 'number',\n },\n },\n },\n ],\n }),\n FormlyTailwindInput,\n ],\n exports: [FormlyTailwindInput],\n})\nexport class FormlyTailwindInputModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n FormlyModule,\n} from '@ngx-formly/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nexport interface TextareaProps extends FormlyFieldProps {\n cols?: number;\n rows?: number;\n}\n\nexport interface FormlyTextAreaFieldConfig\n extends FormlyFieldConfig<TextareaProps> {\n type: 'textarea' | Type<FormlyTailwindTextarea>;\n}\n\n@Component({\n selector: 'formly-textarea',\n template: `\n <textarea\n class=\"form-textarea w-full\"\n [class.cursor-not-allowed]=\"props.disabled\"\n [id]=\"id\"\n [cols]=\"props.cols\"\n [rows]=\"props.rows\"\n [required]=\"props.required ? props.required : false\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n ></textarea>\n `,\n standalone: true,\n imports: [ReactiveFormsModule, FormlyModule],\n})\nexport class FormlyTailwindTextarea extends FieldType<\n FieldTypeConfig<TextareaProps>\n> {\n @HostBinding('class') class = 'block';\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyTailwindTextarea } from './textarea.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'textarea',\n component: FormlyTailwindTextarea,\n wrappers: ['form-field'],\n },\n ],\n }),\n FormlyTailwindTextarea,\n ],\n exports: [FormlyTailwindTextarea],\n})\nexport class FormlyTailwindTextareaModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n FormlyModule,\n} from '@ngx-formly/core';\nimport {\n FormlyFieldSelectProps,\n FormlySelectModule,\n} from '@ngx-formly/core/select';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgIf, NgFor, AsyncPipe } from '@angular/common';\n\nexport interface SelectProps extends FormlyFieldProps, FormlyFieldSelectProps {\n multiple?: boolean;\n compareWith: (o1: any, o2: any) => boolean;\n}\n\nexport interface FormlySelectFieldConfig\n extends FormlyFieldConfig<SelectProps> {\n type: 'select' | Type<FormlyTailwindSelect>;\n}\n\n@Component({\n selector: 'formly-select',\n template: `\n <select\n *ngIf=\"props.multiple; else singleSelect\"\n class=\"form-multiselect w-full\"\n [class.cursor-not-allowed]=\"props.disabled\"\n [id]=\"id\"\n [formControl]=\"formControl\"\n [compareWith]=\"props.compareWith\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n [required]=\"props.required ? props.required : false\"\n multiple\n >\n <ng-container\n *ngIf=\"props.options | formlySelectOptions : field | async as options\"\n >\n <ng-container *ngFor=\"let option of options\">\n <option\n *ngIf=\"!option.group; else optionGroup\"\n [ngValue]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n <ng-template #optionGroup>\n <optgroup [label]=\"option.label\">\n <option\n *ngFor=\"let child of option.group\"\n [class.cursor-not-allowed]=\"child.disabled\"\n [ngValue]=\"child.value\"\n [disabled]=\"child.disabled\"\n >\n {{ child.label }}\n </option>\n </optgroup>\n </ng-template>\n </ng-container>\n </ng-container>\n </select>\n\n <ng-template #singleSelect>\n <select\n class=\"form-select w-full\"\n [class.cursor-not-allowed]=\"props.disabled\"\n [id]=\"id\"\n [formControl]=\"formControl\"\n [compareWith]=\"props.compareWith\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n [required]=\"props.required ? props.required : false\"\n >\n <option *ngIf=\"props.placeholder\" [ngValue]=\"undefined\">\n {{ props.placeholder }}\n </option>\n <ng-container\n *ngIf=\"props.options | formlySelectOptions : field | async as options\"\n >\n <ng-container *ngFor=\"let option of options\">\n <option\n *ngIf=\"!option.group; else optionGroup\"\n [ngValue]=\"option.value\"\n [disabled]=\"option.disabled\"\n >\n {{ option.label }}\n </option>\n <ng-template #optionGroup>\n <optgroup [label]=\"option.label\">\n <option\n *ngFor=\"let child of option.group\"\n [class.cursor-not-allowed]=\"child.disabled\"\n [ngValue]=\"child.value\"\n [disabled]=\"child.disabled\"\n >\n {{ child.label }}\n </option>\n </optgroup>\n </ng-template>\n </ng-container>\n </ng-container>\n </select>\n </ng-template>\n `,\n standalone: true,\n imports: [\n NgIf,\n NgFor,\n AsyncPipe,\n ReactiveFormsModule,\n FormlyModule,\n FormlySelectModule,\n ],\n})\nexport class FormlyTailwindSelect extends FieldType<\n FieldTypeConfig<SelectProps>\n> {\n override defaultOptions = {\n props: {\n options: [],\n compareWith(o1: any, o2: any) {\n return o1 === o2;\n },\n },\n };\n\n @HostBinding('class') class = 'block';\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyTailwindSelect } from './select.component';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'select',\n component: FormlyTailwindSelect,\n wrappers: ['form-field'],\n },\n { name: 'enum', extends: 'select' },\n ],\n }),\n FormlyTailwindSelect,\n ],\n exports: [FormlyTailwindSelect],\n})\nexport class FormlyTailwindSelectModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n} from '@ngx-formly/core';\nimport { RouterLink } from '@angular/router';\nimport { NgIf, NgClass } from '@angular/common';\n\nexport enum LinkTarget {\n nothing = '',\n blank = '_blank',\n self = '_self',\n parent = '_parent',\n}\n\nexport enum LinkRel {\n noOpener = 'noopener',\n noReferrer = 'noreferrer',\n}\n\nexport interface LinkProps extends FormlyFieldProps {\n link?: string;\n target?: LinkTarget;\n rel?: LinkRel;\n text?: string;\n}\n\nexport interface FormlyLinkFieldConfig extends FormlyFieldConfig<LinkProps> {\n type: 'link' | Type<FormlyTailwindLink>;\n}\n\n@Component({\n selector: 'formly-link',\n template: `\n <a\n *ngIf=\"isExternalLink; else internalLink\"\n [href]=\"props.link\"\n class=\"form-link\"\n [target]=\"props.target\"\n [rel]=\"props.rel\"\n [ngClass]=\"{ 'cursor-not-allowed opacity-50': props.disabled }\"\n >\n {{ props.text }}\n </a>\n\n <ng-template #internalLink>\n <a\n [routerLink]=\"props.link\"\n class=\"form-link\"\n [ngClass]=\"{ 'cursor-not-allowed opacity-50': props.disabled }\"\n >\n {{ props.text }}\n </a>\n </ng-template>\n `,\n standalone: true,\n imports: [NgIf, NgClass, RouterLink],\n})\nexport class FormlyTailwindLink extends FieldType<FieldTypeConfig<LinkProps>> {\n @HostBinding('class') class = 'block';\n\n override defaultOptions = {\n props: {\n target: LinkTarget.nothing,\n rel: LinkRel.noOpener,\n },\n };\n\n get isExternalLink(): boolean {\n return /^(https?.*|mailto|tel).*/.test(this.props.link as string);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyTailwindLink } from './link.component';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'link',\n component: FormlyTailwindLink,\n },\n ],\n }),\n FormlyTailwindLink,\n ],\n exports: [FormlyTailwindLink],\n})\nexport class FormlyTailwindLinkModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n} from '@ngx-formly/core';\nimport {\n FormlyFieldSelectProps,\n FormlySelectModule,\n} from '@ngx-formly/core/select';\nimport { NgFor, NgClass, AsyncPipe } from '@angular/common';\n\nexport enum RadioOrientation {\n col = 'col',\n row = 'row',\n}\n\nexport interface RadioProps extends FormlyFieldProps, FormlyFieldSelectProps {\n orientation?: RadioOrientation;\n}\n\nexport interface FormlyRadioFieldConfig extends FormlyFieldConfig<RadioProps> {\n type: 'radio' | Type<FormlyTailwindRadio>;\n}\n\n@Component({\n selector: 'formly-radio',\n template: `\n <div\n *ngFor=\"\n let option of props.options | formlySelectOptions : field | async;\n let i = index\n \"\n class=\"mr-2 inline-flex items-center\"\n [ngClass]=\"{\n 'form-radio-disabled': option.disabled,\n 'cursor-not-allowed ': option.disabled || props.disabled,\n 'opacity-50': option.disabled && !props.disabled\n }\"\n >\n <input\n type=\"radio\"\n class=\"form-radio\"\n [ngClass]=\"{ 'cursor-not-allowed ': option.disabled || props.disabled }\"\n [id]=\"id + '_' + i\"\n [name]=\"field.name || id\"\n [value]=\"option.value\"\n [disabled]=\"option.disabled || props.disabled ? true : false\"\n (change)=\"onChange(option.value)\"\n [checked]=\"(formControl.value || field.defaultValue) === option.value\"\n />\n <label\n class=\"form-radio-label ml-2 text-gray-700\"\n [ngClass]=\"{ 'cursor-not-allowed ': option.disabled || props.disabled }\"\n [for]=\"id + '_' + i\"\n >\n {{ option.label }}\n </label>\n </div>\n `,\n standalone: true,\n imports: [NgFor, NgClass, AsyncPipe, FormlySelectModule],\n})\nexport class FormlyTailwindRadio extends FieldType<\n FieldTypeConfig<RadioProps>\n> {\n override defaultOptions = {\n props: {\n options: [],\n orientation: RadioOrientation.row,\n },\n };\n\n @HostBinding('class') get class() {\n return `flex ${this.props.orientation === 'col' ? 'flex-col' : 'flex-row'}`;\n }\n\n onChange(value: any) {\n this.formControl.setValue(value);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyTailwindRadio } from './radio.component';\nimport { FormlyModule } from '@ngx-formly/core';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'radio',\n component: FormlyTailwindRadio,\n wrappers: ['form-field'],\n },\n ],\n }),\n FormlyTailwindRadio,\n ],\n exports: [FormlyTailwindRadio],\n})\nexport class FormlyTailwindRadioModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n FormlyModule,\n} from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nexport interface RangeProps extends FormlyFieldProps {}\n\nexport interface FormlyRangeFieldConfig extends FormlyFieldConfig<RangeProps> {\n type: 'range' | Type<FormlyTailwindRange>;\n}\n\n@Component({\n selector: 'formly-range',\n template: `\n <input\n class=\"form-range w-full\"\n [class.cursor-not-allowed]=\"props.disabled\"\n type=\"range\"\n [id]=\"id\"\n [name]=\"key\"\n [readonly]=\"props.readonly\"\n [required]=\"props.required ? props.required : false\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [min]=\"props.min\"\n [max]=\"props.max\"\n [step]=\"props.step\"\n />\n `,\n standalone: true,\n imports: [ReactiveFormsModule, FormlyModule],\n})\nexport class FormlyTailwindRange extends FieldType<\n FieldTypeConfig<RangeProps>\n> {\n override defaultOptions = {\n props: {\n min: 0,\n max: 100,\n step: 1,\n },\n };\n\n @HostBinding('class') class = 'block';\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyTailwindRange } from './range.component';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'range',\n component: FormlyTailwindRange,\n wrappers: ['form-field'],\n },\n { name: 'slider', extends: 'range' },\n ],\n }),\n FormlyTailwindRange,\n ],\n exports: [FormlyTailwindRange],\n})\nexport class FormlyTailwindRangeModule {}\n","import { Component, HostBinding, Type } from '@angular/core';\nimport {\n FieldType,\n FieldTypeConfig,\n FormlyFieldConfig,\n FormlyFieldProps,\n} from '@ngx-formly/core';\n\nexport interface TypographyProps extends FormlyFieldProps {\n content?: string;\n}\n\nexport interface FormlyTypographyFieldConfig\n extends FormlyFieldConfig<TypographyProps> {\n type: 'typography' | Type<FormlyTailwindTypography>;\n}\n\n@Component({\n selector: 'formly-typography',\n template: `<div class=\"form-typography\" [innerHTML]=\"props.content\"></div> `,\n standalone: true,\n})\nexport class FormlyTailwindTypography extends FieldType<\n FieldTypeConfig<TypographyProps>\n> {\n @HostBinding('class') class = 'block';\n\n override defaultOptions = {\n className: 'prose',\n };\n}\n","import { NgModule } from '@angular/core';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyTailwindTypography } from './typography.component';\n\n@NgModule({\n imports: [\n FormlyModule.forChild({\n types: [\n {\n name: 'typography',\n component: FormlyTailwindTypography,\n },\n { name: 'content', extends: 'typography' },\n ],\n }),\n FormlyTailwindTypography,\n ],\n exports: [FormlyTailwindTypography],\n})\nexport class FormlyTailwindTypographyModule {}\n","import { NgModule } from '@angular/core';\nimport { FormlyTailwindFormFieldModule } from './form-field/form-field.module';\nimport { FormlyTailwindInputModule } from './input/input.module';\nimport { FormlyTailwindTextareaModule } from './textarea/textarea.module';\nimport { FormlyTailwindSelectModule } from './select/select.module';\nimport { FormlyTailwindCheckboxModule } from './checkbox/checkbox.module';\nimport { FormlyTailwindDatepickerModule } from './datepicker/datepicker.module';\nimport { FormlyTailwindDividerModule } from './divider/divider.module';\nimport { FormlyTailwindLinkModule } from './link/link.module';\nimport { FormlyTailwindRadioModule } from './radio/radio.module';\nimport { FormlyTailwindRangeModule } from './range/range.module';\nimport { FormlyTailwindFileModule } from './file/file.module';\nimport { FormlyTailwindButtonModule } from './button/button.module';\nimport { FormlyTailwindTypographyModule } from './typography/typography.module';\n\n@NgModule({\n imports: [\n FormlyTailwindButtonModule,\n FormlyTailwindCheckboxModule,\n FormlyTailwindDatepickerModule,\n FormlyTailwindDividerModule,\n FormlyTailwindFormFieldModule,\n FormlyTailwindInputModule,\n FormlyTailwindLinkModule,\n FormlyTailwindRadioModule,\n FormlyTailwindRangeModule,\n FormlyTailwindSelectModule,\n FormlyTailwindTextareaModule,\n FormlyTailwindFileModule,\n FormlyTailwindTypographyModule,\n ],\n})\nexport class FormlyTailwindcssModule {}\n","import { Validators } from '@angular/forms';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { ValidatorOption } from '@ngx-formly/core/lib/models';\n\nexport const validators: ValidatorOption[] = [\n { name: 'required', validation: Validators.required },\n { name: 'requiredTrue', validation: Validators.requiredTrue },\n { name: 'email', validation: Validators.email },\n {\n name: 'minLength',\n validation: (control, field) => {\n return Validators.minLength(field.props?.minLength || 0);\n },\n },\n {\n name: 'maxLength',\n validation: (control, field) => {\n return Validators.maxLength(field.props?.maxLength || 0);\n },\n },\n {\n name: 'min',\n validation: (control, field) => {\n return Validators.min(field.props?.min || 0);\n },\n },\n {\n name: 'max',\n validation: (control, field) => {\n return Validators.min(field.props?.max || 0);\n },\n },\n];\n\nexport const validationMessages = [\n {\n name: 'required',\n message: 'Is required.',\n },\n {\n name: 'requiredTrue',\n message: 'Must be checked.',\n },\n {\n name: 'email',\n message: 'Is not a valid email.',\n },\n {\n name: 'minLength',\n message: (error: any, field: FormlyFieldConfig) => {\n return `Must be at least ${field.props?.minLength} characters long.`;\n },\n },\n {\n name: 'maxLength',\n message: (error: any, field: FormlyFieldConfig) => {\n return `Must be shorter than ${field.props?.maxLength} characters.`;\n },\n },\n {\n name: 'min',\n message: (error: any, field: FormlyFieldConfig) => {\n return `Must be a number bigger than ${field.props?.min}.`;\n },\n },\n {\n name: 'max',\n message: (error: any, field: FormlyFieldConfig) => {\n return `Must be a number smaller than ${field.props?.max}.`;\n },\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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