UNPKG

primeng

Version:

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

1 lines 24.7 kB
{"version":3,"file":"primeng-togglebutton.mjs","sources":["../../src/togglebutton/style/togglebuttonstyle.ts","../../src/togglebutton/togglebutton.ts","../../src/togglebutton/primeng-togglebutton.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\nconst theme = ({ dt }) => `\n.p-togglebutton {\n display: inline-flex;\n cursor: pointer;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n position: relative;\n color: ${dt('togglebutton.color')};\n background: ${dt('togglebutton.background')};\n border: 1px solid ${dt('togglebutton.border.color')};\n padding: ${dt('togglebutton.padding')};\n font-size: 1rem;\n font-family: inherit;\n font-feature-settings: inherit;\n transition: background ${dt('togglebutton.transition.duration')}, color ${dt('togglebutton.transition.duration')}, border-color ${dt('togglebutton.transition.duration')},\n outline-color ${dt('togglebutton.transition.duration')}, box-shadow ${dt('togglebutton.transition.duration')};\n border-radius: ${dt('togglebutton.border.radius')};\n outline-color: transparent;\n font-weight: ${dt('togglebutton.font.weight')};\n}\n\n.p-togglebutton-content {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: ${dt('togglebutton.gap')};\n}\n\n.p-togglebutton-label,\n.p-togglebutton-icon {\n position: relative;\n transition: none;\n}\n\n.p-togglebutton::before {\n content: \"\";\n background: transparent;\n transition: background ${dt('togglebutton.transition.duration')}, color ${dt('togglebutton.transition.duration')}, border-color ${dt('togglebutton.transition.duration')},\n outline-color ${dt('togglebutton.transition.duration')}, box-shadow ${dt('togglebutton.transition.duration')};\n position: absolute;\n inset-inline-start: ${dt('togglebutton.content.left')};\n top: ${dt('togglebutton.content.top')};\n width: calc(100% - calc(2 * ${dt('togglebutton.content.left')}));\n height: calc(100% - calc(2 * ${dt('togglebutton.content.top')}));\n border-radius: ${dt('togglebutton.border.radius')};\n}\n\n.p-togglebutton.p-togglebutton-checked::before {\n background: ${dt('togglebutton.content.checked.background')};\n box-shadow: ${dt('togglebutton.content.checked.shadow')};\n}\n\n.p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover {\n background: ${dt('togglebutton.hover.background')};\n color: ${dt('togglebutton.hover.color')};\n}\n\n.p-togglebutton.p-togglebutton-checked {\n background: ${dt('togglebutton.checked.background')};\n border-color: ${dt('togglebutton.checked.border.color')};\n color: ${dt('togglebutton.checked.color')};\n}\n\n.p-togglebutton:focus-visible {\n box-shadow: ${dt('togglebutton.focus.ring.shadow')};\n outline: ${dt('togglebutton.focus.ring.width')} ${dt('togglebutton.focus.ring.style')} ${dt('togglebutton.focus.ring.color')};\n outline-offset: ${dt('togglebutton.focus.ring.offset')};\n}\n\n.p-togglebutton.p-invalid {\n border-color: ${dt('togglebutton.invalid.border.color')};\n}\n\n.p-togglebutton:disabled {\n opacity: 1;\n cursor: default;\n background: ${dt('togglebutton.disabled.background')};\n border-color: ${dt('togglebutton.disabled.border.color')};\n color: ${dt('togglebutton.disabled.color')};\n}\n\n.p-togglebutton-icon {\n color: ${dt('togglebutton.icon.color')};\n}\n\n.p-togglebutton:not(:disabled):not(.p-togglebutton-checked):hover .p-togglebutton-icon {\n color: ${dt('togglebutton.icon.hover.color')};\n}\n\n.p-togglebutton.p-togglebutton-checked .p-togglebutton-icon {\n color: ${dt('togglebutton.icon.checked.color')};\n}\n\n.p-togglebutton:disabled .p-togglebutton-icon {\n color: ${dt('togglebutton.icon.disabled.color')};\n}\n\n.p-togglebutton-sm {\n padding: ${dt('togglebutton.sm.padding')};\n font-size: ${dt('togglebutton.sm.font.size')};\n}\n\n.p-togglebutton-lg {\n padding: ${dt('togglebutton.lg.padding')};\n font-size: ${dt('togglebutton.lg.font.size')};\n}\n\n/* For PrimeNG (iconPos) */\n\n.p-togglebutton-icon-right {\n order: 1;\n}\n\np-togglebutton.ng-invalid.ng-dirty > .p-togglebutton {\n border-color: ${dt('togglebutton.invalid.border.color')};\n}\n`;\n\nconst classes = {\n root: ({ instance }) => ({\n 'p-togglebutton p-component': true,\n 'p-togglebutton-checked': instance.checked,\n 'p-disabled': instance.disabled,\n 'p-togglebutton-sm p-inputfield-sm': instance.size === 'small',\n 'p-togglebutton-lg p-inputfield-lg': instance.size === 'large'\n }),\n content: 'p-togglebutton-content',\n icon: 'p-togglebutton-icon',\n label: 'p-togglebutton-label'\n};\n\n@Injectable()\nexport class ToggleButtonStyle extends BaseStyle {\n name = 'togglebutton';\n\n theme = theme;\n\n classes = classes;\n}\n\n/**\n *\n * ToggleButton is used to select a boolean value using a button.\n *\n * [Live Demo](https://www.primeng.org/togglebutton/)\n *\n * @module togglebuttonstyle\n *\n */\nexport enum ToggleButtonClasses {\n /**\n * Class name of the root element\n */\n root = 'p-togglebutton',\n /**\n * Class name of the icon element\n */\n icon = 'p-togglebutton-icon',\n /**\n * Class name of the label element\n */\n label = 'p-togglebutton-label'\n}\n\nexport interface ToggleButtonStyle extends BaseStyle {}\n","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, booleanAttribute, ChangeDetectionStrategy, Component, ContentChild, ContentChildren, EventEmitter, forwardRef, HostBinding, inject, Input, NgModule, numberAttribute, Output, QueryList, TemplateRef } from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { PrimeTemplate, SharedModule } from 'primeng/api';\nimport { BaseComponent } from 'primeng/basecomponent';\nimport { Ripple } from 'primeng/ripple';\nimport { Nullable } from 'primeng/ts-helpers';\nimport { ToggleButtonStyle } from './style/togglebuttonstyle';\nimport { ToggleButtonChangeEvent } from './togglebutton.interface';\n\nexport const TOGGLEBUTTON_VALUE_ACCESSOR: any = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ToggleButton),\n multi: true\n};\n/**\n * ToggleButton is used to select a boolean value using a button.\n * @group Components\n */\n@Component({\n selector: 'p-toggleButton, p-togglebutton, p-toggle-button',\n standalone: true,\n imports: [Ripple, CommonModule, SharedModule],\n template: `\n <button\n pRipple\n type=\"button\"\n [ngClass]=\"cx('root')\"\n [class]=\"styleClass\"\n [tabindex]=\"tabindex\"\n [disabled]=\"disabled\"\n (click)=\"toggle($event)\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-pressed]=\"checked\"\n [attr.data-p-checked]=\"active\"\n [attr.data-p-disabled]=\"disabled\"\n >\n <span [ngClass]=\"cx('content')\">\n <ng-container *ngTemplateOutlet=\"contentTemplate || _contentTemplate; context: { $implicit: checked }\"></ng-container>\n @if (!contentTemplate) {\n @if (!iconTemplate) {\n @if (onIcon || offIcon) {\n <span\n [class]=\"checked ? this.onIcon : this.offIcon\"\n [ngClass]=\"{\n 'p-togglebutton-icon': true,\n 'p-togglebutton-icon-left': iconPos === 'left',\n 'p-togglebutton-icon-right': iconPos === 'right'\n }\"\n [attr.data-pc-section]=\"'icon'\"\n ></span>\n }\n } @else {\n <ng-container *ngTemplateOutlet=\"iconTemplate || _iconTemplate; context: { $implicit: checked }\"></ng-container>\n }\n <span [ngClass]=\"cx('label')\" [attr.data-pc-section]=\"'label'\">{{ checked ? (hasOnLabel ? onLabel : ' ') : hasOffLabel ? offLabel : ' ' }}</span>\n }\n </span>\n </button>\n `,\n providers: [TOGGLEBUTTON_VALUE_ACCESSOR, ToggleButtonStyle],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ToggleButton extends BaseComponent implements AfterContentInit, ControlValueAccessor {\n /**\n * Label for the on state.\n * @group Props\n */\n @Input() onLabel: string = 'Yes';\n /**\n * Label for the off state.\n * @group Props\n */\n @Input() offLabel: string = 'No';\n /**\n * Icon for the on state.\n * @group Props\n */\n @Input() onIcon: string | undefined;\n /**\n * Icon for the off state.\n * @group Props\n */\n @Input() offIcon: string | undefined;\n /**\n * Defines a string that labels the input for accessibility.\n * @group Props\n */\n @Input() ariaLabel: string | undefined;\n /**\n * Establishes relationships between the component and label(s) where its value should be one or more element IDs.\n * @group Props\n */\n @Input() ariaLabelledBy: string | undefined;\n /**\n * When present, it specifies that the element should be disabled.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) disabled: boolean | undefined;\n /**\n * Inline style of the element.\n * @group Props\n */\n @Input() style: any;\n /**\n * Style class of the element.\n * @group Props\n */\n @Input() styleClass: string | undefined;\n\n @HostBinding('class') get hostClass() {\n return this.styleClass || '';\n }\n /**\n * Identifier of the focus input to match a label defined for the component.\n * @group Props\n */\n @Input() inputId: string | undefined;\n /**\n * Index of the element in tabbing order.\n * @group Props\n */\n @Input({ transform: numberAttribute }) tabindex: number | undefined = 0;\n /**\n * Defines the size of the component.\n * @group Props\n */\n @Input() size: 'large' | 'small';\n /**\n * Position of the icon.\n * @group Props\n */\n @Input() iconPos: 'left' | 'right' = 'left';\n /**\n * When present, it specifies that the component should automatically get focus on load.\n * @group Props\n */\n @Input({ transform: booleanAttribute }) autofocus: boolean | undefined;\n /**\n * Whether selection can not be cleared.\n * @group Props\n */\n @Input() allowEmpty: boolean | undefined;\n /**\n * Callback to invoke on value change.\n * @param {ToggleButtonChangeEvent} event - Custom change event.\n * @group Emits\n */\n @Output() onChange: EventEmitter<ToggleButtonChangeEvent> = new EventEmitter<ToggleButtonChangeEvent>();\n /**\n * Custom icon template.\n * @group Templates\n */\n @ContentChild('icon', { descendants: false }) iconTemplate: Nullable<TemplateRef<any>>;\n /**\n * Custom content template.\n * @group Templates\n */\n @ContentChild('content', { descendants: false }) contentTemplate: Nullable<TemplateRef<any>>;\n\n @ContentChildren(PrimeTemplate) templates!: QueryList<PrimeTemplate>;\n\n checked: boolean = false;\n\n onModelChange: Function = () => {};\n\n onModelTouched: Function = () => {};\n\n _componentStyle = inject(ToggleButtonStyle);\n\n toggle(event: Event) {\n if (!this.disabled && !(this.allowEmpty === false && this.checked)) {\n this.checked = !this.checked;\n this.onModelChange(this.checked);\n this.onModelTouched();\n this.onChange.emit({\n originalEvent: event,\n checked: this.checked\n });\n\n this.cd.markForCheck();\n }\n }\n\n onKeyDown(event: KeyboardEvent) {\n switch (event.code) {\n case 'Enter':\n this.toggle(event);\n event.preventDefault();\n break;\n case 'Space':\n this.toggle(event);\n event.preventDefault();\n break;\n }\n }\n\n onBlur() {\n this.onModelTouched();\n }\n\n writeValue(value: any): void {\n this.checked = value;\n this.cd.markForCheck();\n }\n\n registerOnChange(fn: Function): void {\n this.onModelChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onModelTouched = fn;\n }\n\n setDisabledState(val: boolean): void {\n this.disabled = val;\n this.cd.markForCheck();\n }\n\n get hasOnLabel(): boolean {\n return (this.onLabel && this.onLabel.length > 0) as boolean;\n }\n\n get hasOffLabel(): boolean {\n return (this.onLabel && this.onLabel.length > 0) as boolean;\n }\n\n get active() {\n return this.checked === true;\n }\n\n _iconTemplate: TemplateRef<any> | undefined;\n\n _contentTemplate: TemplateRef<any> | undefined;\n\n ngAfterContentInit() {\n this.templates.forEach((item) => {\n switch (item.getType()) {\n case 'icon':\n this._iconTemplate = item.template;\n break;\n case 'content':\n this._contentTemplate = item.template;\n break;\n default:\n this._contentTemplate = item.template;\n break;\n }\n });\n }\n}\n\n@NgModule({\n imports: [ToggleButton, SharedModule],\n exports: [ToggleButton, SharedModule]\n})\nexport class ToggleButtonModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}