UNPKG

primeng

Version:

PrimeNG is a premium UI library for Angular featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock,

1 lines 45.8 kB
{"version":3,"file":"primeng-inputtags.mjs","sources":["../../src/inputtags/style/inputtagsstyle.ts","../../src/inputtags/inputtags.ts","../../src/inputtags/primeng-inputtags.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { style } from '@primeuix/styles/inputtags';\nimport { BaseStyle } from 'primeng/base';\n\nconst inlineStyles = {\n root: { position: 'relative' }\n};\n\nconst classes = {\n root: ({ instance }: any) => [\n 'p-inputtags p-component p-inputwrapper',\n {\n 'p-invalid': instance.invalid(),\n 'p-focus': instance.focused(),\n 'p-inputwrapper-filled': instance.$filled(),\n 'p-inputwrapper-focus': instance.focused() && !instance.$disabled(),\n 'p-inputtags-fluid': instance.hasFluid,\n 'p-disabled': instance.$disabled(),\n 'p-variant-filled': instance.$variant() === 'filled'\n }\n ],\n item: ({ instance, i }: any) => [\n 'p-inputtags-item',\n {\n 'p-focus': instance.focusedItemIndex() === i\n }\n ],\n pcChip: 'p-inputtags-item',\n pcInputText: 'p-inputtags-input'\n};\n\n@Injectable()\nexport class InputTagsStyle extends BaseStyle {\n name = 'inputtags';\n\n style = style;\n\n classes = classes;\n\n override inlineStyles = inlineStyles;\n}\n\n/**\n *\n * InputTags is used to enter multiple tags.\n *\n * [Live Demo](https://www.primeng.org/inputtags)\n *\n * @module inputtagsstyle\n *\n */\nexport enum InputTagsClasses {\n root = 'p-inputtags',\n item = 'p-inputtags-item',\n pcInputText = 'p-inputtags-input'\n}\n\nexport interface InputTagsStyle extends BaseStyle {}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, forwardRef, inject, InjectionToken, input, NgModule, numberAttribute, output, signal, TemplateRef, viewChild, ViewEncapsulation } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { MotionOptions } from '@primeuix/motion';\nimport { TimesCircle as TimesCircleIcon } from '@primeicons/angular/times-circle';\nimport { cn, focus, resolveFieldData, uuid } from '@primeuix/utils';\nimport { OverlayOptions, SharedModule } from 'primeng/api';\nimport { AutoComplete } from 'primeng/autocomplete';\nimport { PARENT_INSTANCE } from 'primeng/basecomponent';\nimport { BaseInput } from 'primeng/baseinput';\nimport { Bind } from 'primeng/bind';\nimport { Chip } from 'primeng/chip';\nimport type { AppendTo } from 'primeng/types/shared';\nimport type { InputTagsAddEvent, InputTagsCompleteEvent, InputTagsGroupTemplateContext, InputTagsItemTemplateContext, InputTagsOptionTemplateContext, InputTagsPassThrough, InputTagsRemoveEvent, InputTagsSelectEvent } from 'primeng/types/inputtags';\nimport { InputTagsStyle } from './style/inputtagsstyle';\n\nconst INPUTTAGS_INSTANCE = new InjectionToken<InputTags>('INPUTTAGS_INSTANCE');\n\nexport const INPUTTAGS_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputTags),\n multi: true\n};\n\n/**\n * InputTags is used to enter multiple tags with optional typeahead suggestions.\n * @group Components\n */\n@Component({\n selector: 'p-inputtags, p-input-tags',\n standalone: true,\n imports: [NgTemplateOutlet, SharedModule, Bind, Chip, TimesCircleIcon, AutoComplete],\n template: `\n @for (item of modelValue(); track i + '_' + item; let i = $index) {\n @if (!itemTemplate()) {\n <p-chip [class]=\"cx('item', { i })\" [pt]=\"ptm('pcChip')\" [label]=\"getItemLabel(item)\" [removable]=\"true\" (onRemove)=\"removeItem($event, i)\" [unstyled]=\"unstyled()\">\n <ng-template #removeicon>\n @if (!removeIconTemplate()) {\n <span [pBind]=\"ptm('chipIcon')\" [class]=\"cx('chipIcon')\">\n <svg data-p-icon=\"times-circle\" [class]=\"cx('chipIcon')\" [attr.aria-hidden]=\"true\" />\n </span>\n } @else {\n <span [pBind]=\"ptm('chipIcon')\" [attr.aria-hidden]=\"true\">\n <ng-container [ngTemplateOutlet]=\"removeIconTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: item, index: i }\"></ng-container>\n </span>\n }\n </ng-template>\n </p-chip>\n } @else {\n <ng-container [ngTemplateOutlet]=\"itemTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: item, index: i, onRemove: _removeItemBound }\"></ng-container>\n }\n }\n <p-autocomplete\n #ac\n [typeahead]=\"typeahead()\"\n [suggestions]=\"suggestions()\"\n [optionLabel]=\"optionLabel()\"\n [optionValue]=\"optionValue()\"\n [optionDisabled]=\"optionDisabled()\"\n [optionGroupLabel]=\"optionGroupLabel()\"\n [optionGroupChildren]=\"optionGroupChildren()\"\n [group]=\"group()\"\n [delay]=\"delay()\"\n [minQueryLength]=\"minQueryLength()\"\n [completeOnFocus]=\"completeOnFocus()\"\n [scrollHeight]=\"scrollHeight()\"\n [appendTo]=\"$appendTo()\"\n [overlayOptions]=\"overlayOptions()\"\n [motionOptions]=\"motionOptions()\"\n [panelStyle]=\"panelStyle()\"\n [panelStyleClass]=\"panelStyleClass()\"\n [autoOptionFocus]=\"autoOptionFocus()\"\n [focusOnHover]=\"focusOnHover()\"\n [placeholder]=\"_placeholder()\"\n [tabindex]=\"tabindex()\"\n [disabled]=\"$disabled()\"\n [name]=\"name()\"\n [inputStyle]=\"inputStyle()\"\n [inputStyleClass]=\"$inputStyleClass()\"\n [pt]=\"ptm('pcAutoComplete')\"\n (completeMethod)=\"onAcSearch($event)\"\n (onSelect)=\"onAcSelect($event)\"\n (onFocus)=\"onInputFocus($event)\"\n (onBlur)=\"onInputBlur($event)\"\n (onShow)=\"onShow.emit()\"\n (onHide)=\"onHide.emit()\"\n (onInputKeydown)=\"onAcKeyDown($event)\"\n >\n @if (optionTemplate()) {\n <ng-template #item let-item let-index=\"index\">\n <ng-container [ngTemplateOutlet]=\"optionTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: item, index: index }\"></ng-container>\n </ng-template>\n }\n @if (groupTemplate()) {\n <ng-template #group let-group>\n <ng-container [ngTemplateOutlet]=\"groupTemplate()!\" [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-container>\n </ng-template>\n }\n @if (headerTemplate()) {\n <ng-template #header>\n <ng-container [ngTemplateOutlet]=\"headerTemplate()!\"></ng-container>\n </ng-template>\n }\n @if (footerTemplate()) {\n <ng-template #footer>\n <ng-container [ngTemplateOutlet]=\"footerTemplate()!\"></ng-container>\n </ng-template>\n }\n </p-autocomplete>\n `,\n providers: [INPUTTAGS_VALUE_ACCESSOR, InputTagsStyle, { provide: INPUTTAGS_INSTANCE, useExisting: InputTags }, { provide: PARENT_INSTANCE, useExisting: InputTags }],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: {\n '[class]': \"cx('root')\",\n '[style]': \"sx('root')\",\n '[attr.role]': \"'listbox'\",\n '[attr.aria-orientation]': \"'horizontal'\",\n '[attr.aria-activedescendant]': 'focusedItemId()',\n '(click)': 'onContainerClick($event)',\n '(keydown)': 'onContainerKeyDown($event)'\n },\n hostDirectives: [Bind]\n})\nexport class InputTags extends BaseInput<InputTagsPassThrough> {\n componentName = 'InputTags';\n\n $pcInputTags: InputTags | undefined = inject(INPUTTAGS_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n bindDirectiveInstance = inject(Bind, { self: true });\n\n /**\n * Advisory information to display on input.\n * @group Props\n */\n placeholder = input<string>();\n\n /**\n * Maximum number of tags allowed.\n * @group Props\n */\n max = input<number | undefined>();\n\n /**\n * Delimiter character or regex to split input into tags.\n * @group Props\n */\n delimiter = input<string | RegExp>();\n\n /**\n * Whether to allow duplicate tags.\n * @defaultValue false\n * @group Props\n */\n allowDuplicate = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to add a tag when the input loses focus.\n * @defaultValue false\n * @group Props\n */\n addOnBlur = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to add a tag on tab key press.\n * @defaultValue false\n * @group Props\n */\n addOnTab = input(false, { transform: booleanAttribute });\n\n /**\n * Whether to add tags on paste event.\n * @defaultValue false\n * @group Props\n */\n addOnPaste = input(false, { transform: booleanAttribute });\n\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n tabindex = input<number>();\n\n /**\n * Whether typeahead mode is active.\n * @defaultValue false\n * @group Props\n */\n typeahead = input(false, { transform: booleanAttribute });\n\n /**\n * An array of suggestions to display in the dropdown.\n * @group Props\n */\n suggestions = input<any[]>([]);\n\n /**\n * Property name or getter function for option label.\n * @group Props\n */\n optionLabel = input<string | ((item: any) => string)>();\n\n /**\n * Property name or getter function for option value.\n * @group Props\n */\n optionValue = input<string | ((item: any) => any)>();\n\n /**\n * Property name or getter function for disabled state.\n * @group Props\n */\n optionDisabled = input<string | ((item: any) => boolean)>();\n\n /**\n * Field name for option group label.\n * @defaultValue 'label'\n * @group Props\n */\n optionGroupLabel = input<string>('label');\n\n /**\n * Field name for option group children.\n * @defaultValue 'items'\n * @group Props\n */\n optionGroupChildren = input<string>('items');\n\n /**\n * Whether to display options as grouped.\n * @defaultValue false\n * @group Props\n */\n group = input(false, { transform: booleanAttribute });\n\n /**\n * Delay in ms between keystrokes before triggering search.\n * @defaultValue 300\n * @group Props\n */\n delay = input(300, { transform: numberAttribute });\n\n /**\n * Minimum number of characters to initiate a search.\n * @defaultValue 1\n * @group Props\n */\n minQueryLength = input(1, { transform: numberAttribute });\n\n /**\n * Whether to trigger search when input receives focus.\n * @defaultValue false\n * @group Props\n */\n completeOnFocus = input(false, { transform: booleanAttribute });\n\n /**\n * Maximum height of the suggestions panel.\n * @defaultValue '200px'\n * @group Props\n */\n scrollHeight = input('200px');\n\n /**\n * Target element to attach the overlay.\n * @defaultValue 'body'\n * @group Props\n */\n appendTo = input<AppendTo>('body');\n\n /**\n * Configuration for the overlay element.\n * @group Props\n */\n overlayOptions = input<OverlayOptions>();\n\n /**\n * Animation options for the overlay.\n * @group Props\n */\n motionOptions = input<MotionOptions | undefined>();\n\n /**\n * Inline style of the overlay panel.\n * @group Props\n */\n panelStyle = input<{ [klass: string]: any }>();\n\n /**\n * CSS class of the overlay panel.\n * @group Props\n */\n panelStyleClass = input<string>();\n\n /**\n * Inline style of the input field.\n * @group Props\n */\n inputStyle = input<{ [klass: string]: any }>();\n\n /**\n * CSS class of the input field.\n * @group Props\n */\n inputStyleClass = input<string>();\n\n /**\n * Whether to auto-focus first option when overlay shows.\n * @defaultValue false\n * @group Props\n */\n autoOptionFocus = input(false, { transform: booleanAttribute });\n\n /**\n * Whether hover focuses an option.\n * @defaultValue true\n * @group Props\n */\n focusOnHover = input(true, { transform: booleanAttribute });\n\n onAdd = output<InputTagsAddEvent>();\n\n onRemove = output<InputTagsRemoveEvent>();\n\n onFocus = output<FocusEvent>();\n\n onBlur = output<FocusEvent>();\n\n /**\n * Callback to invoke to search for suggestions.\n * @param {InputTagsCompleteEvent} event - Custom complete event.\n * @group Emits\n */\n completeMethod = output<InputTagsCompleteEvent>();\n\n /**\n * Callback to invoke when a suggestion is selected.\n * @param {InputTagsSelectEvent} event - Custom select event.\n * @group Emits\n */\n onSelect = output<InputTagsSelectEvent>();\n\n /**\n * Callback to invoke when the overlay is shown.\n * @group Emits\n */\n onShow = output<void>();\n\n /**\n * Callback to invoke when the overlay is hidden.\n * @group Emits\n */\n onHide = output<void>();\n\n itemTemplate = contentChild<TemplateRef<InputTagsItemTemplateContext>>('item', { descendants: false });\n\n removeIconTemplate = contentChild<TemplateRef<void>>('removeicon', { descendants: false });\n\n optionTemplate = contentChild<TemplateRef<InputTagsOptionTemplateContext>>('option', { descendants: false });\n\n groupTemplate = contentChild<TemplateRef<InputTagsGroupTemplateContext>>('group', { descendants: false });\n\n headerTemplate = contentChild<TemplateRef<void>>('header', { descendants: false });\n\n footerTemplate = contentChild<TemplateRef<void>>('footer', { descendants: false });\n\n autoCompleteRef = viewChild<AutoComplete>('ac');\n\n focused = signal(false);\n\n focusedItemIndex = signal(-1);\n\n _componentStyle = inject(InputTagsStyle);\n\n private _internalId = uuid('pn_id_');\n\n $id = computed(() => this._internalId);\n\n _placeholder = computed(() => this.placeholder());\n\n focusedItemId = computed(() => (this.focusedItemIndex() !== -1 ? `${this.$id()}_item_${this.focusedItemIndex()}` : null));\n\n $appendTo = computed(() => this.appendTo() ?? this.config?.overlayAppendTo());\n\n $inputStyleClass = computed(() => cn(this.cx('pcInputText'), this.inputStyleClass()) as string);\n\n _removeItemBound = this.removeItem.bind(this);\n\n private _pasteListener: ((e: ClipboardEvent) => void) | null = null;\n\n onAfterViewInit() {\n this.bindPasteListener();\n }\n\n onAfterViewChecked() {\n this.bindDirectiveInstance.setAttrs(this.ptms(['host', 'root']));\n }\n\n onDestroy() {\n this.unbindPasteListener();\n }\n\n writeControlValue(value: any, setModelValue?: (value: any) => void) {\n setModelValue?.(value || []);\n }\n\n getItemLabel(item: any): string {\n const optLabel = this.optionLabel();\n if (optLabel && typeof item === 'object') {\n return typeof optLabel === 'function' ? optLabel(item) : resolveFieldData(item, optLabel);\n }\n return typeof item === 'object' ? JSON.stringify(item) : String(item);\n }\n\n addItem(event: Event, value: string) {\n const trimmed = value.trim();\n if (!trimmed) return;\n if (this.max() != null && (this.modelValue()?.length ?? 0) >= this.max()!) return;\n if (!this.allowDuplicate() && this.modelValue()?.includes(trimmed)) return;\n\n const newValue = [...(this.modelValue() || []), trimmed];\n this._updateModel(newValue);\n this.onAdd.emit({ originalEvent: event, value: trimmed });\n this.clearAcInput();\n }\n\n removeItem(event: Event, index: number) {\n if (this.$disabled()) return;\n const current = this.modelValue() || [];\n const removed = current[index];\n const newValue = current.filter((_: any, i: number) => i !== index);\n this._updateModel(newValue);\n this.onRemove.emit({ originalEvent: event, value: removed, index });\n setTimeout(() => this.autoCompleteRef()?.overlayViewChild()?.alignOverlay());\n }\n\n onContainerClick(event: MouseEvent) {\n if (this.$disabled()) return;\n const target = event.target as HTMLElement;\n if (target.closest?.('[data-p-focused]')) return;\n this.focusAcInput();\n }\n\n onContainerKeyDown(event: KeyboardEvent) {\n if (this.$disabled()) return;\n\n switch (event.code) {\n case 'ArrowLeft':\n this.onArrowLeftInContainer(event);\n break;\n case 'ArrowRight':\n this.onArrowRightInContainer(event);\n break;\n case 'Backspace':\n this.onBackspaceInContainer(event);\n break;\n }\n }\n\n onAcSearch(event: any) {\n this.completeMethod.emit({ originalEvent: event.originalEvent, query: event.query });\n }\n\n onAcSelect(event: any) {\n const option = event.value;\n const optValue = this.optionValue();\n const value = optValue ? (typeof optValue === 'function' ? optValue(option) : resolveFieldData(option, optValue)) : option;\n\n if (this.max() != null && (this.modelValue()?.length ?? 0) >= this.max()!) {\n this.clearAcInput();\n return;\n }\n\n const newModelValue = [...(this.modelValue() || []), value];\n this._updateModel(newModelValue);\n this.onAdd.emit({ originalEvent: event.originalEvent, value });\n this.onSelect.emit({ originalEvent: event.originalEvent, value: option });\n\n // Clear the AC's internal value and input after selection\n setTimeout(() => {\n const ac = this.autoCompleteRef();\n if (ac) {\n ac.writeValue(null);\n if (ac.inputEL()?.nativeElement) {\n ac.inputEL()!.nativeElement.value = '';\n }\n }\n });\n }\n\n onAcKeyDown(event: KeyboardEvent) {\n const ac = this.autoCompleteRef();\n const inputValue = ac?.inputEL()?.nativeElement?.value || '';\n\n switch (event.code) {\n case 'Enter':\n case 'NumpadEnter':\n // If AC overlay is open and an option is focused, AC handles it via onSelect\n if (ac?.overlayVisible() && ac?.focusedOptionIndex() !== -1) {\n return;\n }\n // Otherwise add free text tag\n if (inputValue) {\n this.addItem(event, inputValue);\n event.preventDefault();\n event.stopPropagation();\n }\n break;\n case 'Backspace':\n if (!inputValue && this.modelValue()?.length > 0) {\n this.removeItem(event, this.modelValue().length - 1);\n event.stopPropagation();\n }\n break;\n case 'Tab':\n if (this.addOnTab() && inputValue) {\n this.addItem(event, inputValue);\n }\n break;\n default:\n this.handleDelimiter(event);\n break;\n }\n }\n\n onInputFocus(event: any) {\n if (this.$disabled()) return;\n this.focused.set(true);\n this.focusedItemIndex.set(-1);\n this.onFocus.emit(event);\n }\n\n onInputBlur(event: any) {\n if (this.addOnBlur()) {\n const inputValue = this.autoCompleteRef()?.inputEL()?.nativeElement?.value || '';\n if (inputValue) {\n this.addItem(event, inputValue);\n }\n }\n this.focused.set(false);\n this.onModelTouched();\n this.onBlur.emit(event);\n }\n\n private handleDelimiter(event: KeyboardEvent) {\n const delimiter = this.delimiter();\n if (!delimiter) return;\n\n const isMatch = typeof delimiter === 'string' ? event.key === delimiter : event.key.match(delimiter);\n if (!isMatch) return;\n\n event.preventDefault();\n const inputValue = this.autoCompleteRef()?.inputEL()?.nativeElement?.value || '';\n if (inputValue) {\n this.addItem(event, inputValue);\n }\n }\n\n private onArrowLeftInContainer(_event: KeyboardEvent) {\n const current = this.focusedItemIndex();\n const length = this.modelValue()?.length ?? 0;\n if (length === 0) return;\n\n if (current <= 0) {\n this.focusedItemIndex.set(length - 1);\n } else {\n this.focusedItemIndex.set(current - 1);\n }\n }\n\n private onArrowRightInContainer(_event: KeyboardEvent) {\n const current = this.focusedItemIndex();\n const length = this.modelValue()?.length ?? 0;\n if (length === 0) return;\n\n if (current >= length - 1) {\n this.focusedItemIndex.set(-1);\n this.focusAcInput();\n } else {\n this.focusedItemIndex.set(current + 1);\n }\n }\n\n private onBackspaceInContainer(event: KeyboardEvent) {\n const current = this.focusedItemIndex();\n if (current !== -1) {\n this.removeItem(event, current);\n const length = this.modelValue()?.length ?? 0;\n if (length === 0) {\n this.focusedItemIndex.set(-1);\n this.focusAcInput();\n } else if (current >= length) {\n this.focusedItemIndex.set(length - 1);\n }\n }\n }\n\n private clearAcInput() {\n const ac = this.autoCompleteRef();\n if (ac?.inputEL()?.nativeElement) {\n ac.inputEL()!.nativeElement.value = '';\n }\n }\n\n private focusAcInput() {\n focus(this.autoCompleteRef()?.inputEL()?.nativeElement);\n }\n\n private bindPasteListener() {\n const inputEl = this.autoCompleteRef()?.inputEL()?.nativeElement;\n if (inputEl) {\n this._pasteListener = (event: ClipboardEvent) => this.onInputPaste(event);\n inputEl.addEventListener('paste', this._pasteListener);\n }\n }\n\n private unbindPasteListener() {\n const inputEl = this.autoCompleteRef()?.inputEL()?.nativeElement;\n if (inputEl && this._pasteListener) {\n inputEl.removeEventListener('paste', this._pasteListener);\n this._pasteListener = null;\n }\n }\n\n private onInputPaste(event: ClipboardEvent) {\n if (!this.addOnPaste()) return;\n\n const pastedData = event.clipboardData?.getData('Text');\n if (!pastedData) return;\n\n const delimiter = this.delimiter();\n if (delimiter) {\n pastedData.split(delimiter).forEach((v: string) => this.addItem(event, v));\n } else {\n this.addItem(event, pastedData);\n }\n\n this.clearAcInput();\n event.preventDefault();\n }\n\n private _updateModel(value: any[]) {\n this.writeModelValue(value);\n this.onModelChange(value);\n }\n}\n\n@NgModule({\n imports: [InputTags, SharedModule],\n exports: [InputTags, SharedModule]\n})\nexport class InputTagsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["TimesCircleIcon"],"mappings":"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"}