UNPKG

@synergy-design-system/angular

Version:
1 lines 27.2 kB
{"version":3,"file":"synergy-design-system-angular-components-combobox.mjs","sources":["../../components/combobox/combobox.component.ts","../../components/combobox/synergy-design-system-angular-components-combobox.ts"],"sourcesContent":["// ---------------------------------------------------------------------\n// 🔒 AUTOGENERATED @synergy-design-system/angular wrappers for @synergy-design-system/components\n// Please do not edit this file directly!\n// It will get recreated when running pnpm build.\n// ---------------------------------------------------------------------\nimport {\n Component,\n ElementRef,\n NgZone,\n Input,\n Output,\n EventEmitter,\n AfterContentInit,\n} from '@angular/core';\nimport type SynCombobox from '@synergy-design-system/components/components/combobox/combobox.component.js';\nimport type { SynChangeEvent } from '@synergy-design-system/components';\nimport type { SynClearEvent } from '@synergy-design-system/components';\nimport type { SynInputEvent } from '@synergy-design-system/components';\nimport type { SynFocusEvent } from '@synergy-design-system/components';\nimport type { SynBlurEvent } from '@synergy-design-system/components';\nimport type { SynShowEvent } from '@synergy-design-system/components';\nimport type { SynAfterShowEvent } from '@synergy-design-system/components';\nimport type { SynHideEvent } from '@synergy-design-system/components';\nimport type { SynAfterHideEvent } from '@synergy-design-system/components';\nimport type { SynInvalidEvent } from '@synergy-design-system/components';\nimport type { SynErrorEvent } from '@synergy-design-system/components';\nimport '@synergy-design-system/components/components/combobox/combobox.js';\n\n/**\n * @summary A combobox component that combines the functionality of a text input with a dropdown listbox,\n * allowing users to either select from predefined options or enter custom values (when not restricted).\n *\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-combobox--docs\n * @status stable\n * @since 2.8.0\n *\n * @dependency syn-icon\n * @dependency syn-popup\n * @dependency syn-tag\n *\n * @slot - The listbox options. Must be `<syn-option>` elements.\n * You can use `<syn-optgroup>`'s to group items visually.\n * @slot label - The combobox's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the combobox.\n * @slot suffix - Used to append a presentational icon or similar element to the combobox.\n * @slot clear-icon - An icon to use in lieu of the default clear icon.\n * @slot expand-icon - The icon to show when the control is expanded and collapsed.\n * Rotates on open and close.\n * @slot help-text - Text that describes how to use the combobox.\n * Alternatively, you can use the `help-text` attribute.\n *\n * @event syn-change - Emitted when the control's value changes.\n * @event syn-clear - Emitted when the control's value is cleared.\n * @event syn-input - Emitted when the control receives input.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-show - Emitted when the combobox's menu opens.\n * @event syn-after-show - Emitted after the combobox's menu opens and all animations are complete.\n * @event syn-hide - Emitted when the combobox's menu closes.\n * @event syn-after-hide - Emitted after the combobox's menu closes and all animations are complete.\n * @event syn-invalid - Emitted when the form control has been checked for validity\n * and its constraints aren't satisfied.\n * @event syn-error - Emitted when the combobox menu fails to open.\n *\n * @csspart form-control - The form control that wraps the label, combobox, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-input - The combobox's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart combobox - The container that wraps the prefix, combobox, clear icon, and expand button.\n * @csspart prefix - The container that wraps the prefix slot.\n * @csspart suffix - The container that wraps the suffix slot.\n * @csspart display-input - The element that displays the selected option's label,\n * an `<input>` element.\n * @csspart listbox - The listbox container where the options are slotted\n * and the filtered options list exists.\n * @csspart filtered-listbox - The container that wraps the filtered options.\n * @csspart clear-button - The clear button.\n * @csspart expand-icon - The container that wraps the expand icon.\n * @csspart popup - The popup's exported `popup` part.\n * Use this to target the tooltip's popup container.\n * @csspart no-results - The container that wraps the \"no results\" message.\n * @csspart tags - The container that houses option tags when `multiple` is used.\n * @csspart tag - The individual tags that represent each selected option in `multiple`.\n * @csspart tag__base - The tag's base part.\n * @csspart tag__content - The tag's content part.\n * @csspart tag__remove-button - The tag's remove button.\n * @csspart tag__remove-button__base - The tag's remove button base part.\n *\n * @animation combobox.show - The animation to use when showing the combobox.\n * @animation combobox.hide - The animation to use when hiding the combobox.\n */\n@Component({\n selector: 'syn-combobox',\n standalone: true,\n template: '<ng-content></ng-content>',\n})\nexport class SynComboboxComponent {\n public nativeElement: SynCombobox;\n private _ngZone: NgZone;\n private modelSignal = new AbortController();\n\n constructor(e: ElementRef, ngZone: NgZone) {\n this.nativeElement = e.nativeElement;\n this._ngZone = ngZone;\n this.nativeElement.addEventListener('syn-change', (e: SynChangeEvent) => {\n this.synChangeEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-clear', (e: SynClearEvent) => {\n this.synClearEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-input', (e: SynInputEvent) => {\n this.synInputEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-focus', (e: SynFocusEvent) => {\n this.synFocusEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-blur', (e: SynBlurEvent) => {\n this.synBlurEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-show', (e: SynShowEvent) => {\n this.synShowEvent.emit(e);\n });\n this.nativeElement.addEventListener(\n 'syn-after-show',\n (e: SynAfterShowEvent) => {\n this.synAfterShowEvent.emit(e);\n },\n );\n this.nativeElement.addEventListener('syn-hide', (e: SynHideEvent) => {\n this.synHideEvent.emit(e);\n });\n this.nativeElement.addEventListener(\n 'syn-after-hide',\n (e: SynAfterHideEvent) => {\n this.synAfterHideEvent.emit(e);\n },\n );\n this.nativeElement.addEventListener('syn-invalid', (e: SynInvalidEvent) => {\n this.synInvalidEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-error', (e: SynErrorEvent) => {\n this.synErrorEvent.emit(e);\n });\n this.ngModelUpdateOn = 'syn-input';\n }\n\n /**\n * The event that will trigger the ngModel update.\n * By default, this is set to \"syn-input\".\n */\n @Input()\n set ngModelUpdateOn(v: keyof HTMLElementEventMap) {\n this.modelSignal.abort();\n this.modelSignal = new AbortController();\n const option = v || 'syn-input';\n this.nativeElement.addEventListener(\n option,\n () => {\n this.valueChange.emit(this.value);\n },\n {\n signal: this.modelSignal.signal,\n },\n );\n }\n get ngModelUpdateOn(): keyof HTMLElementEventMap {\n return this.ngModelUpdateOn;\n }\n\n /**\n * The name of the combobox, submitted as a name/value pair with form data.\n */\n @Input()\n set name(v: SynCombobox['name']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.name = v));\n }\n get name(): SynCombobox['name'] {\n return this.nativeElement.name;\n }\n\n /**\n * The combobox's size.\n */\n @Input()\n set size(v: SynCombobox['size']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.size = v));\n }\n get size(): SynCombobox['size'] {\n return this.nativeElement.size;\n }\n\n /**\n * Placeholder text to show as a hint when the combobox is empty.\n */\n @Input()\n set placeholder(v: SynCombobox['placeholder']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.placeholder = v));\n }\n get placeholder(): SynCombobox['placeholder'] {\n return this.nativeElement.placeholder;\n }\n\n /**\n * Disables the combobox control.\n */\n @Input()\n set disabled(v: '' | SynCombobox['disabled']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.disabled = v === '' || v),\n );\n }\n get disabled(): SynCombobox['disabled'] {\n return this.nativeElement.disabled;\n }\n\n /**\n * Sets the combobox to a readonly state.\n */\n @Input()\n set readonly(v: '' | SynCombobox['readonly']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.readonly = v === '' || v),\n );\n }\n get readonly(): SynCombobox['readonly'] {\n return this.nativeElement.readonly;\n }\n\n /**\n * Adds a clear button when the combobox is not empty.\n */\n @Input()\n set clearable(v: '' | SynCombobox['clearable']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.clearable = v === '' || v),\n );\n }\n get clearable(): SynCombobox['clearable'] {\n return this.nativeElement.clearable;\n }\n\n /**\n* Indicates whether or not the combobox is open.\nYou can toggle this attribute to show and hide the listbox, or you can use the `show()`\nand `hide()` methods and this attribute will reflect the combobox's open state.\n */\n @Input()\n set open(v: '' | SynCombobox['open']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.open = v === '' || v),\n );\n }\n get open(): SynCombobox['open'] {\n return this.nativeElement.open;\n }\n\n /**\n * The combobox's label.\n * If you need to display HTML, use the `label` slot instead.\n */\n @Input()\n set label(v: SynCombobox['label']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.label = v));\n }\n get label(): SynCombobox['label'] {\n return this.nativeElement.label;\n }\n\n /**\n * The maximum length of input that will be considered valid.\n */\n @Input()\n set maxlength(v: SynCombobox['maxlength']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.maxlength = v));\n }\n get maxlength(): SynCombobox['maxlength'] {\n return this.nativeElement.maxlength;\n }\n\n /**\n* The preferred placement of the combobox's menu.\nNote that the actual placement may vary as needed to keep the listbox inside of the viewport.\n */\n @Input()\n set placement(v: SynCombobox['placement']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.placement = v));\n }\n get placement(): SynCombobox['placement'] {\n return this.nativeElement.placement;\n }\n\n /**\n * The combobox's help text.\n * If you need to display HTML, use the `help-text` slot instead.\n */\n @Input()\n set helpText(v: SynCombobox['helpText']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.helpText = v));\n }\n get helpText(): SynCombobox['helpText'] {\n return this.nativeElement.helpText;\n }\n\n /**\n* By default, form controls are associated with the nearest containing `<form>` element.\nThis attribute allows you to place the form control outside of a form and associate it\nwith the form that has this `id`.\nThe form must be in the same document or shadow root for this to work.\n */\n @Input()\n set form(v: SynCombobox['form']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.form = v));\n }\n get form(): SynCombobox['form'] {\n return this.nativeElement.form;\n }\n\n /**\n * The combobox's required attribute.\n */\n @Input()\n set required(v: '' | SynCombobox['required']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.required = v === '' || v),\n );\n }\n get required(): SynCombobox['required'] {\n return this.nativeElement.required;\n }\n\n /**\n* When set to `true`, restricts the combobox to only allow selection from the available options.\nUsers will not be able to enter custom values that are not present in the list.\nThis will always be true, if `multiple` is active.\n */\n @Input()\n set restricted(v: '' | SynCombobox['restricted']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.restricted = v === '' || v),\n );\n }\n get restricted(): SynCombobox['restricted'] {\n return this.nativeElement.restricted;\n }\n\n /**\n* Allows more than one option to be selected.\nIf `multiple` is set, the combobox will always be `restricted` to the available options\n */\n @Input()\n set multiple(v: '' | SynCombobox['multiple']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.multiple = v === '' || v),\n );\n }\n get multiple(): SynCombobox['multiple'] {\n return this.nativeElement.multiple;\n }\n\n /**\n* A function that customizes the rendered option.\n* The first argument is the option, the second\nis the query string, which is typed into the combobox.\nThe function should return either a Lit TemplateResult or a string containing trusted HTML\nto render in the shown list of filtered options.\nIf the query string should be highlighted use the `highlightOptionRenderer` function.\n */\n @Input()\n set getOption(v: SynCombobox['getOption']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.getOption = v));\n }\n get getOption(): SynCombobox['getOption'] {\n return this.nativeElement.getOption;\n }\n\n /**\n* A function used to filter options in the combobox component.\nThe default filter method is a case- and diacritic-insensitive string comparison.\n */\n @Input()\n set filter(v: SynCombobox['filter']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.filter = v));\n }\n get filter(): SynCombobox['filter'] {\n return this.nativeElement.filter;\n }\n\n /**\n* The delimiter to use when setting the value when `multiple` is enabled.\nThe default is a space ' ', but you can set it to a comma or other character(s).\n */\n @Input()\n set delimiter(v: SynCombobox['delimiter']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.delimiter = v));\n }\n get delimiter(): SynCombobox['delimiter'] {\n return this.nativeElement.delimiter;\n }\n\n /**\n* The maximum number of selected options to show when `multiple` is true.\n* After the maximum, \"+n\" will be shown to\nindicate the number of additional items that are selected.\n* Set to 0 to remove the limit.\n */\n @Input()\n set maxOptionsVisible(v: SynCombobox['maxOptionsVisible']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.maxOptionsVisible = v),\n );\n }\n get maxOptionsVisible(): SynCombobox['maxOptionsVisible'] {\n return this.nativeElement.maxOptionsVisible;\n }\n\n /**\n* A function that customizes the tags to be rendered when `multiple` is true.\n* The first argument is the option, the second\nis the current tag's index.\n* The function should return either a Lit TemplateResult or a string containing trusted HTML of the symbol to render at\nthe specified value.\n */\n @Input()\n set getTag(v: SynCombobox['getTag']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.getTag = v));\n }\n get getTag(): SynCombobox['getTag'] {\n return this.nativeElement.getTag;\n }\n\n /**\n* The current value of the combobox, submitted as a name/value pair with form data.\n* When `multiple` is enabled, the\nvalue attribute will be a list of values separated by the delimiter, based on the options selected, and the value property will\nbe an array.\n* **For this reason, values must not contain the delimiter character.**\n */\n @Input()\n set value(v: SynCombobox['value']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.value = v));\n }\n get value(): SynCombobox['value'] {\n return this.nativeElement.value;\n }\n\n /**\n * Emitted when the control's value changes.\n */\n @Output() synChangeEvent = new EventEmitter<SynChangeEvent>();\n\n /**\n * Emitted when the control's value is cleared.\n */\n @Output() synClearEvent = new EventEmitter<SynClearEvent>();\n\n /**\n * Emitted when the control receives input.\n */\n @Output() synInputEvent = new EventEmitter<SynInputEvent>();\n\n /**\n * Emitted when the control gains focus.\n */\n @Output() synFocusEvent = new EventEmitter<SynFocusEvent>();\n\n /**\n * Emitted when the control loses focus.\n */\n @Output() synBlurEvent = new EventEmitter<SynBlurEvent>();\n\n /**\n * Emitted when the combobox's menu opens.\n */\n @Output() synShowEvent = new EventEmitter<SynShowEvent>();\n\n /**\n * Emitted after the combobox's menu opens and all animations are complete.\n */\n @Output() synAfterShowEvent = new EventEmitter<SynAfterShowEvent>();\n\n /**\n * Emitted when the combobox's menu closes.\n */\n @Output() synHideEvent = new EventEmitter<SynHideEvent>();\n\n /**\n * Emitted after the combobox's menu closes and all animations are complete.\n */\n @Output() synAfterHideEvent = new EventEmitter<SynAfterHideEvent>();\n\n /**\n * Emitted when the form control has been checked for validity and its constraints aren't satisfied.\n */\n @Output() synInvalidEvent = new EventEmitter<SynInvalidEvent>();\n\n /**\n * Emitted when the combobox menu fails to open.\n */\n @Output() synErrorEvent = new EventEmitter<SynErrorEvent>();\n\n /**\n * Support for two way data binding\n */\n @Output() valueChange = new EventEmitter<SynCombobox['value']>();\n}\n\nexport type { SynChangeEvent } from '@synergy-design-system/components';\nexport type { SynClearEvent } from '@synergy-design-system/components';\nexport type { SynInputEvent } from '@synergy-design-system/components';\nexport type { SynFocusEvent } from '@synergy-design-system/components';\nexport type { SynBlurEvent } from '@synergy-design-system/components';\nexport type { SynShowEvent } from '@synergy-design-system/components';\nexport type { SynAfterShowEvent } from '@synergy-design-system/components';\nexport type { SynHideEvent } from '@synergy-design-system/components';\nexport type { SynAfterHideEvent } from '@synergy-design-system/components';\nexport type { SynInvalidEvent } from '@synergy-design-system/components';\nexport type { SynErrorEvent } from '@synergy-design-system/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './combobox.component';\n"],"names":[],"mappings":"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"}