UNPKG

@synergy-design-system/angular

Version:
1 lines 17.7 kB
{"version":3,"file":"synergy-design-system-angular-components-range.mjs","sources":["../../components/range/range.component.ts","../../components/range/synergy-design-system-angular-components-range.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 { SynRange } from '@synergy-design-system/components';\nimport type { SynBlurEvent } from '@synergy-design-system/components';\nimport type { SynChangeEvent } from '@synergy-design-system/components';\nimport type { SynFocusEvent } from '@synergy-design-system/components';\nimport type { SynInputEvent } from '@synergy-design-system/components';\nimport type { SynInvalidEvent } from '@synergy-design-system/components';\nimport type { SynMoveEvent } from '@synergy-design-system/components';\nimport '@synergy-design-system/components/components/range/range.js';\n\n/**\n * @summary Ranges allow the user to select values within a given range using one or two thumbs.\n * @documentation https://synergy-design-system.github.io/?path=/docs/components-syn-range--docs\n * @status stable\n *\n * @dependency syn-tooltip\n *\n * @slot label - The range's label. Alternatively, you can use the `label` attribute.\n * @slot prefix - Used to prepend a presentational icon or similar element to the range.\n * @slot suffix - Used to append a presentational icon or similar element to the range.\n * @slot help-text - Text that describes how to use the range.\n * Alternatively, you can use the `help-text` attribute.\n * @slot ticks - Used to display tick marks at specific intervals along the range.\n *\n * @event syn-blur - Emitted when the control loses focus.\n * @event syn-change - Emitted when an alteration to the control's value is committed by the user.\n * @event syn-focus - Emitted when the control gains focus.\n * @event syn-input - Emitted when the control receives input.\n * @event syn-invalid - Emitted when the form control has been checked for validity\n * and its constraints aren't satisfied.\n * @event syn-move - Emitted when the user moves a thumb, either via touch or keyboard.\n * Use `Event.preventDefault()` to prevent movement.\n *\n * @csspart form-control - The form control that wraps the label, input, and help text.\n * @csspart form-control-label - The label's wrapper.\n * @csspart form-control-help-text - The help text's wrapper.\n * @csspart base - The component's base wrapper.\n * @csspart input-wrapper - The container that wraps the input track and ticks.\n * @csspart track-wrapper - The wrapper for the track.\n * @csspart track - The inactive track.\n * @csspart active-track - The active track.\n * @csspart prefix - The container that wraps the prefix.\n * @csspart suffix - The container that wraps the suffix.\n * @csspart ticks - The container that wraps the tick marks.\n * @csspart thumb - The thumb(s) that the user can drag to change the range.\n *\n * @csspart tooltip__base - The base of the tooltip\n * @csspart tooltip__arrow - The arrow of the tooltip\n * @csspart tooltip__popup - The popup of the tooltip\n * @csspart tooltip__body - The body of the tooltip\n *\n * @cssproperty --thumb-size - The size of a thumb.\n * @cssproperty --thumb-hit-area-size - The clickable area around the thumb.\n * Per default this is set to 140% of the thumb size. Must be a scale css value (defaults to 1.4).\n * @cssproperty --track-hit-area-size - The clickable area around the track (top and left).\n * @cssproperty --track-color-active - Color of the track representing the current value.\n * @cssproperty --track-color-inactive - Color of the track that represents the remaining value.\n * @cssproperty --track-height - The height of the track.\n * @cssproperty --track-active-offset - The point of origin of the active track,\n * starting at the left side of the range.\n */\n@Component({\n selector: 'syn-range',\n standalone: true,\n template: '<ng-content></ng-content>',\n})\nexport class SynRangeComponent {\n public nativeElement: SynRange;\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-blur', (e: SynBlurEvent) => {\n this.synBlurEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-change', (e: SynChangeEvent) => {\n this.synChangeEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-focus', (e: SynFocusEvent) => {\n this.synFocusEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-input', (e: SynInputEvent) => {\n this.synInputEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-invalid', (e: SynInvalidEvent) => {\n this.synInvalidEvent.emit(e);\n });\n this.nativeElement.addEventListener('syn-move', (e: SynMoveEvent) => {\n this.synMoveEvent.emit(e);\n });\n this.ngModelUpdateOn = 'syn-change';\n }\n\n /**\n * The event that will trigger the ngModel update.\n * By default, this is set to \"syn-change\".\n */\n @Input()\n set ngModelUpdateOn(v: keyof HTMLElementEventMap) {\n this.modelSignal.abort();\n this.modelSignal = new AbortController();\n const option = v || 'syn-change';\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 range, submitted as a name/value pair with form data.\n */\n @Input()\n set name(v: SynRange['name']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.name = v));\n }\n get name(): SynRange['name'] {\n return this.nativeElement.name;\n }\n\n /**\n * The range's label.\n * If you need to display HTML, use the `label` slot instead.\n */\n @Input()\n set label(v: SynRange['label']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.label = v));\n }\n get label(): SynRange['label'] {\n return this.nativeElement.label;\n }\n\n /**\n * The range's help text.\n * If you need to display HTML, use the help-text slot instead.\n */\n @Input()\n set helpText(v: SynRange['helpText']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.helpText = v));\n }\n get helpText(): SynRange['helpText'] {\n return this.nativeElement.helpText;\n }\n\n /**\n * Disables the range.\n */\n @Input()\n set disabled(v: '' | SynRange['disabled']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.disabled = v === '' || v),\n );\n }\n get disabled(): SynRange['disabled'] {\n return this.nativeElement.disabled;\n }\n\n /**\n * The minimum acceptable value of the range.\n */\n @Input()\n set min(v: SynRange['min']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.min = v));\n }\n get min(): SynRange['min'] {\n return this.nativeElement.min;\n }\n\n /**\n * The maximum acceptable value of the range.\n */\n @Input()\n set max(v: SynRange['max']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.max = v));\n }\n get max(): SynRange['max'] {\n return this.nativeElement.max;\n }\n\n /**\n * The interval at which the range will increase and decrease.\n */\n @Input()\n set step(v: SynRange['step']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.step = v));\n }\n get step(): SynRange['step'] {\n return this.nativeElement.step;\n }\n\n /**\n * The range's size.\n */\n @Input()\n set size(v: SynRange['size']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.size = v));\n }\n get size(): SynRange['size'] {\n return this.nativeElement.size;\n }\n\n /**\n * The preferred placement of the range's tooltip.\n * Use \"none\" to disable the tooltip\n */\n @Input()\n set tooltipPlacement(v: SynRange['tooltipPlacement']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.tooltipPlacement = v),\n );\n }\n get tooltipPlacement(): SynRange['tooltipPlacement'] {\n return this.nativeElement.tooltipPlacement;\n }\n\n /**\n * The current values of the input (in ascending order) as a string of space separated values\n */\n @Input()\n set value(v: SynRange['value']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.value = v));\n }\n get value(): SynRange['value'] {\n return this.nativeElement.value;\n }\n\n /**\n* Set to true to restrict the movement of a thumb to its next and previous thumb.\nThis only affects multi range components\n */\n @Input()\n set restrictMovement(v: '' | SynRange['restrictMovement']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.restrictMovement = v === '' || v),\n );\n }\n get restrictMovement(): SynRange['restrictMovement'] {\n return this.nativeElement.restrictMovement;\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\nand associate it with 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: SynRange['form']) {\n this._ngZone.runOutsideAngular(() => (this.nativeElement.form = v));\n }\n get form(): SynRange['form'] {\n return this.nativeElement.form;\n }\n\n /**\n* A function used to format the tooltip's value.\nThe value of the thumb is passed as the only argument.\nThe function should return a string to display in the tooltip.\n */\n @Input()\n set tooltipFormatter(v: SynRange['tooltipFormatter']) {\n this._ngZone.runOutsideAngular(\n () => (this.nativeElement.tooltipFormatter = v),\n );\n }\n get tooltipFormatter(): SynRange['tooltipFormatter'] {\n return this.nativeElement.tooltipFormatter;\n }\n\n /**\n * Emitted when the control loses focus.\n */\n @Output() synBlurEvent = new EventEmitter<SynBlurEvent>();\n\n /**\n * Emitted when an alteration to the control's value is committed by the user.\n */\n @Output() synChangeEvent = new EventEmitter<SynChangeEvent>();\n\n /**\n * Emitted when the control gains focus.\n */\n @Output() synFocusEvent = new EventEmitter<SynFocusEvent>();\n\n /**\n * Emitted when the control receives input.\n */\n @Output() synInputEvent = new EventEmitter<SynInputEvent>();\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 user moves a thumb, either via touch or keyboard.\n * Use `Event.preventDefault()` to prevent movement.\n */\n @Output() synMoveEvent = new EventEmitter<SynMoveEvent>();\n\n /**\n * Support for two way data binding\n */\n @Output() valueChange = new EventEmitter<SynRange['value']>();\n}\n\nexport type { SynBlurEvent } from '@synergy-design-system/components';\nexport type { SynChangeEvent } from '@synergy-design-system/components';\nexport type { SynFocusEvent } from '@synergy-design-system/components';\nexport type { SynInputEvent } from '@synergy-design-system/components';\nexport type { SynInvalidEvent } from '@synergy-design-system/components';\nexport type { SynMoveEvent } from '@synergy-design-system/components';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './range.component';\n"],"names":[],"mappings":"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"}