{"version":3,"file":"realsoft-reusable-components-checkbox.mjs","sources":["../../../src/reusable-components/checkbox/src/checkbox-configuration.ts","../../../src/reusable-components/checkbox/src/internal-form-field.ts","../../../src/reusable-components/checkbox/src/id-generator.ts","../../../src/reusable-components/checkbox/src/checkbox.ts","../../../src/reusable-components/checkbox/src/checkbox.html","../../../src/reusable-components/checkbox/realsoft-reusable-components-checkbox.ts"],"sourcesContent":["import { InjectionToken } from \"@angular/core\";\r\nimport { RealsoftCheckbox } from \"./checkbox\";\r\n\r\n//Checkbox Click Action when the user clicks on the input element \r\n/**\r\n * noop => Do not toggle checked nor indeterminate\r\n * check => only toggle checked status, and ignore indeterminate \r\n * check-indeterminate => Toggle checked status, ans set indeterminate to false => This is the default behavior\r\n * undefined => Same and `check-indeterminate`\r\n */\r\nexport type RealsoftCheckboxClickAction = 'noop' | 'check' | 'check-indeterminate' | undefined;\r\n\r\n//Default Options for the checkbox which can be overriden\r\nexport interface RealsoftCheckboxDefaultOptions {\r\n    //The Default Checkbox Click Action\r\n    clickAction?: RealsoftCheckboxClickAction;\r\n\r\n    //Whether disabled checkboxes should be interactive\r\n    disabledInteractive?: boolean;\r\n}\r\n\r\n//Injection Token that can be used to override the default options for the checkbox\r\nexport const REALSOFT_CHECKBOX_DEFAULT_OPTIONS = new InjectionToken<RealsoftCheckboxDefaultOptions>(\r\n    'realsoft-checkbox-default-options', {\r\n        providedIn: 'root',\r\n        factory: REALSOFT_CHECKBOX_DEFAULT_OPTIONS_FACTORY\r\n    }\r\n)\r\n\r\nexport function REALSOFT_CHECKBOX_DEFAULT_OPTIONS_FACTORY(): RealsoftCheckboxDefaultOptions {\r\n    return {\r\n        clickAction: 'check-indeterminate',\r\n        disabledInteractive: false\r\n    }\r\n}\r\n\r\n//Change Event Object that will be emitted by the checkbox\r\nexport class RealsoftCheckboxChange { \r\n    //The source checkbox of the event\r\n    source: RealsoftCheckbox;\r\n\r\n    //The new value of the checkbox representing whether the checkbox is checked or not\r\n    checked: boolean;\r\n}\r\n\r\n//Default Checkbox Configuration\r\nexport const defaultConfig = REALSOFT_CHECKBOX_DEFAULT_OPTIONS_FACTORY();\r\n\r\nexport enum RealsoftCheckboxTransitionState {\r\n    //Before any user interaction\r\n    Initial,\r\n    //When the checkbox is becoming checked\r\n    Checked,\r\n    //When the checkbox is becoming unchecked\r\n    Unchecked,\r\n    //When the component is becoming indeterminate\r\n    indeterminate\r\n}\r\n\r\n\r\n\r\n  \r\n","import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from \"@angular/core\";\r\n\r\n@Component({\r\n    selector: '[realsoft-internal-form-field]',\r\n    template: `<ng-content></ng-content>`,\r\n    styleUrl: './internal-form-field.scss',\r\n    encapsulation: ViewEncapsulation.None,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    standalone: true,\r\n    host: {\r\n        'class': 'realsoft-internal-form-field', \r\n        '[class.realsoft-form-field-align-end]' : 'labelPosition === \"before\"'\r\n    }\r\n})\r\nexport class RealsoftInternalFormField {\r\n    @Input({required: true}) labelPosition : 'before' | 'after' = 'after';\r\n}","import { APP_ID, inject, Injectable } from \"@angular/core\";\r\n//Use APP_ID \"Built-in Angular token\" to represent the Application ID. Since each application gets a unique APP_ID when running in the same environment.\r\n\r\n//The service is provided at root level which means it's available throughout the application\r\n@Injectable({\r\n    providedIn: 'root'\r\n})\r\nexport class UniqueIdGeneratorService {\r\n    //Retrieve the APP_ID using the inject function. This value is used to differentiate IDs across different Angular Applications running on the same page. \r\n    private readonly _appId = inject(APP_ID);\r\n\r\n    //counters map to keep track of the count of IDs generated for each prefix. It ensures that IDs generated with the same prefix remain unique.\r\n    private readonly _counters = new Map<string, number>();\r\n\r\n    //Generate a Unique ID with a prefix\r\n    generateID(prefix: string): string {\r\n        //If the appId is not the default `ng` then adjust the prefix to include the appId otherwise just return the prefix. \r\n        const effectivePrefix = this._appId !== 'ng' ? `${prefix}${this._appId}` : prefix;\r\n\r\n        //Get the current count for this prefix or initialize it.\r\n        const currentCount = this._counters.get(effectivePrefix) || 0;\r\n\r\n        //Increment the counter and update the map to ensure future calls generate unique IDs\r\n        this._counters.set(effectivePrefix, currentCount + 1);\r\n\r\n        //Return the generated Unique ID by concatenating the counter's value to the prefix\r\n        return `${effectivePrefix}${currentCount}`;\r\n    }\r\n}","import { AfterViewInit, ANIMATION_MODULE_TYPE, booleanAttribute, ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, forwardRef, HostAttributeToken, inject, Input, NgZone, OnChanges, Output, SimpleChanges, ViewChild, ViewEncapsulation } from \"@angular/core\";\r\nimport { defaultConfig, REALSOFT_CHECKBOX_DEFAULT_OPTIONS, RealsoftCheckboxChange, RealsoftCheckboxDefaultOptions, RealsoftCheckboxTransitionState } from \"./checkbox-configuration\";\r\nimport { AbstractControl, ControlValueAccessor, NG_VALIDATORS, NG_VALUE_ACCESSOR, ValidationErrors, Validator } from \"@angular/forms\";\r\nimport { FocusableOption } from \"@angular/cdk/a11y\";\r\nimport { RealsoftInternalFormField } from \"./internal-form-field\";\r\nimport { UniqueIdGeneratorService } from \"./id-generator\";\r\n\r\n\r\n//Define a custom ControlValue Accessor for the Angular Component \"Realsoft Checkbox Component\".\r\nexport const REALSOFT_CHECKBOX_CONTROL_VALUE_ACCESSOR: any = {\r\n    provide: NG_VALUE_ACCESSOR, //For providing a control value accessor for form controls\r\n    useExisting: forwardRef(() => RealsoftCheckbox), //Refere to a reference of RealsoftCheckbox which has not yet been defined\r\n    multi: true\r\n}\r\n  \r\nexport const  REALSOFT_CHECKBOX_VALIDATOR_ACCESSOR: any = {\r\n    provide: NG_VALIDATORS, //For providing a control value accessor for form controls\r\n    useExisting: forwardRef(() => RealsoftCheckbox), //Refere to a reference of RealsoftCheckbox which has not yet been defined\r\n    multi: true\r\n}\r\n\r\n@Component({\r\n    selector: 'realsoft-checkbox',\r\n    exportAs: 'realsoftCheckbox',\r\n    templateUrl: './checkbox.html',\r\n    styleUrl: './checkbox.scss',\r\n    standalone: true,\r\n    host: {\r\n        'class': 'realsoft-checkbox',\r\n        '[attr.aria-label]': 'null',\r\n        '[attr.aria-labelledby]' : 'null',\r\n        '[class.realsoft-checkbox-no-animation]': `_animation === 'NoopAnimations'`,\r\n        '[class.realsoft-checkbox-disabled]': 'disabled',\r\n        '[class.realsoft-checkbox-checked]': 'checked',\r\n        '[class.realsoft-checkbox-disabled-interactive]' : 'disabledInteractive',\r\n        '[class.realsoft-checkbox-indeterminate]': 'indeterminate',\r\n        '[attr.tabindex]': 'null',\r\n        '[id]': 'id', \r\n        '[class.realsoft-secondary-checkbox]': 'color === \"secondary\"'\r\n    },\r\n    encapsulation: ViewEncapsulation.None,\r\n    changeDetection: ChangeDetectionStrategy.OnPush,\r\n    providers: [\r\n        REALSOFT_CHECKBOX_VALIDATOR_ACCESSOR, REALSOFT_CHECKBOX_CONTROL_VALUE_ACCESSOR\r\n    ],\r\n    imports : [RealsoftInternalFormField]\r\n})\r\nexport class RealsoftCheckbox implements ControlValueAccessor, Validator, OnChanges, FocusableOption, AfterViewInit {\r\n    //For Dependency Injection\r\n private _changeDetectorRef = inject(ChangeDetectorRef); //For Triggering Change Detection\r\n element = inject<ElementRef<HTMLElement>>(ElementRef); //Reference to the checkbox element\r\n _animation? = inject(ANIMATION_MODULE_TYPE, {optional: true}); //For Transition and Animation\r\n private _options = inject<RealsoftCheckboxDefaultOptions>(REALSOFT_CHECKBOX_DEFAULT_OPTIONS, {optional: true});\r\n _tabIndex = inject(new HostAttributeToken('tabindex'), {optional: true});\r\n private _ngZone = inject(NgZone);\r\n\r\n //References to template elments\r\n @ViewChild('input') _input : ElementRef<HTMLInputElement>; //The native `<input type=\"checkbox\">` element\r\n @ViewChild('label') _label : ElementRef<HTMLInputElement>; //The native `<label>` element\r\n\r\n //Class Properties \r\n private _checked: boolean = false; //For the checked state of the checkbox\r\n private _disabled: boolean = false; //For the disabled state of the checkbox\r\n private _idUnique: string; // The unique id in case no id was specified\r\n private _indeterminate: boolean = false;// For the indeterminate state of the checkbox => Known as Mixed Mode\r\n\r\n //Animation Class Properties\r\n private _animationClass: string = ''; //The Animation Class to be Applied\r\n private _transitionState: RealsoftCheckboxTransitionState = RealsoftCheckboxTransitionState.Initial; //The Triggered Transition to move between the states of the checkbox\r\n\r\n /*Input Bindings and Properties*/\r\n\r\n //The `aria-describedby` is read after the element's label and field type\r\n @Input('aria-describedby') ariaDescribedby: string; \r\n\r\n @Input() color: 'primary' | 'secondary' = 'primary';\r\n\r\n //The `aria-label` attribute is attached to the the aria-label attribute of the host element. In most cases, `aria-labelledby` will take precedence so this may be omitted.\r\n @Input('aria-label') ariaLabel: string;\r\n\r\n //The `aria-labelledby` is for users to specify and it'll be forwarded to the input element.\r\n @Input('aria-labelledby') ariaLabelledby: string | null = null;\r\n\r\n //Whether the checkbox has a Ripple\r\n @Input({transform: booleanAttribute}) disableRipple: boolean;\r\n\r\n //Whether the checkbox should remain interactive when it is disabled \r\n @Input({transform: booleanAttribute}) disabledInteractive: boolean;\r\n\r\n //A unique id for the checkbox input. If none is supplied, it will be auto generated via the Unique ID Generator Service.\r\n @Input() id: string;\r\n\r\n //Whether the label should appear after or before the checkbox. Defaults to `after`\r\n @Input() labelPosition: 'after' | 'before' = 'after';\r\n\r\n //Name value will be applied to the input element if present.\r\n @Input() name: string | null = null;\r\n\r\n //Whether the checkbox is required \r\n @Input({transform: booleanAttribute}) required: boolean;\r\n\r\n //The value attribute of the native input element \r\n @Input() value: string;\r\n\r\n //Whether the checkbox is checked\r\n @Input({transform: booleanAttribute})\r\n get checked(): boolean {\r\n     return this._checked;\r\n }\r\n set checked(value: boolean) {\r\n     //Check first if the value is equal to the checked value to prevent unnecessary change detection\r\n     if(value != this.checked){\r\n         this._checked = value;\r\n         this._changeDetectorRef.markForCheck();\r\n     }\r\n }\r\n \r\n //Whether the checkbox is disabled\r\n @Input({transform: booleanAttribute}) \r\n get disabled(): boolean {\r\n     return this._disabled;\r\n }\r\n set disabled(value: boolean) {\r\n     //Check first if the value is equal to the disabled value to prevent unnecessry change detection\r\n     if (value !== this.disabled) {\r\n         this._disabled = value;\r\n         this._changeDetectorRef.markForCheck();\r\n     }\r\n }\r\n\r\n //Whether the checkbox is in indeterminate mode: Known as Mixed Mode:\r\n @Input({transform: booleanAttribute})\r\n get indeterminate(): boolean {\r\n     return this._indeterminate;\r\n }\r\n set indeterminate(value: boolean) {\r\n    //Check first if the value being set is already the same as the indeterminate value \r\n    const valueHasChanged = this._indeterminate != value;\r\n    this._indeterminate =  value//For synchronization purposes => Also set the indeterminate state of the native input element\r\n\r\n    //To avoid having cannot read properties of undefined error\r\n    const nativeCheckbox = this._input;\r\n\r\n    if (nativeCheckbox) {\r\n      nativeCheckbox.nativeElement.indeterminate = value;\r\n    }\r\n\r\n    //Decide what happens when the value changes to reflect the needed animation class and transition state\r\n    if(valueHasChanged) {\r\n        //Value Has Changed => Reflect the needed changes based on whether indeterminate is true or not \r\n        if(this._indeterminate){\r\n            this._checkboxTransitionState(RealsoftCheckboxTransitionState.indeterminate);\r\n        } else {\r\n            //Indeterminate is false, check whether the checkbox is in checked mode or not\r\n            if(this._checked){\r\n                this._checkboxTransitionState(RealsoftCheckboxTransitionState.Checked)\r\n            } else{\r\n                //Checkbox is in the unchecked state \r\n                this._checkboxTransitionState(RealsoftCheckboxTransitionState.Unchecked)\r\n            }\r\n            //Since Value Has Changed, emit the event \r\n            this.indeterminateChange.emit(this._indeterminate);\r\n        }\r\n\r\n    }; \r\n\r\n}\r\n\r\n //Tab Index for the checkbox\r\n @Input() tabIndex: number;\r\n\r\n /*Output Emitters*/\r\n //Event emitted when the checkbox's checked value changes\r\n @Output() change: EventEmitter<RealsoftCheckboxChange> = new EventEmitter<RealsoftCheckboxChange>();\r\n\r\n //Event emitted when the checkbox's indeterminate value changes\r\n @Output() indeterminateChange: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n\r\n constructor() {\r\n     this.id = this._idUnique = inject(UniqueIdGeneratorService).generateID('realsoft-checkbox-');\r\n     this._options = this._options || defaultConfig; //Default Configuration of the checkbox\r\n     this.tabIndex = this._tabIndex == null ? 0 : parseInt(this._tabIndex) || 0;\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n     if(changes['required']){\r\n         this._validatorChangeFn();\r\n     }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n     if(this._input){\r\n         this._input.nativeElement.indeterminate = this._indeterminate;\r\n     }\r\n }\r\n\r\n //A method that returns the unique id for the visual hidden input element\r\n get inputId(): string {\r\n     return `${this.id || this._idUnique}-input`;\r\n }\r\n\r\n get _disabledInteractive (): boolean {\r\n     return this._options.disabledInteractive ?? false;\r\n }\r\n\r\n //Setting focus to the native `<input type=\"checkbox\"> element\r\n focus(): void {\r\n     this._input?.nativeElement.focus();\r\n }\r\n\r\n //The Object to be emitted by the checkbox whenever an emitted event is needed\r\n private _changeEvent(checked: boolean) {\r\n     const event = new RealsoftCheckboxChange();\r\n     event.source = this;\r\n     event.checked = checked;\r\n     return event;\r\n }\r\n\r\n //Checkbox Animation Logic\r\n /**\r\n  * The following map resembles the transition state of the checkbox and the corresponding animation class to be applied when triggered\r\n */\r\n private _animationClasses = new Map<string, string>([\r\n     ['uncheckedToChecked', 'realsoft-checkbox-unchecked-checked-animation'],\r\n     ['uncheckedToIndeterminate', 'realsoft-checkbox-unchecked-indeterminate-animation'],\r\n     ['checkedToUnchecked', 'realsoft-checkbox-checked-unchecked-animation'],\r\n     ['checkedToIndeterminate', 'realsoft-checkbox-checked-indeterminate-animation'],\r\n     ['indeterminateToChecked', 'realsoft-checkbox-indeterminate-checked-animation'],\r\n     ['indeterminateToUnchecked', 'realsoft-checkbox-indeterminate-unchecked-animation']\r\n ]);\r\n\r\n //Animation Classes Getter Method \r\n private _getAnimationClasses(previousState: RealsoftCheckboxTransitionState, nextState: RealsoftCheckboxTransitionState): string {\r\n     if(this._animation === 'NoopAnimations') return ''; //Animations are Disabled. No Need to apply them, in this case the Animation Class is an empty string\r\n\r\n     switch(previousState) {\r\n         case RealsoftCheckboxTransitionState.Initial : \r\n             if(nextState === RealsoftCheckboxTransitionState.Checked){\r\n                 return this._animationClasses.get('uncheckedToChecked');\r\n             } \r\n             else if (nextState === RealsoftCheckboxTransitionState.indeterminate){\r\n                 return this._checked ? this._animationClasses.get('checkedToIndeterminate') : this._animationClasses.get('uncheckedToIndeterminate');\r\n             }\r\n         break;\r\n\r\n         case RealsoftCheckboxTransitionState.Checked :\r\n             return nextState === RealsoftCheckboxTransitionState.Unchecked ? this._animationClasses.get('checkedToUnchecked') : this._animationClasses.get('checkedToIndeterminate');\r\n\r\n         case RealsoftCheckboxTransitionState.indeterminate :\r\n             return nextState === RealsoftCheckboxTransitionState.Checked ? this._animationClasses.get('indeterminateToChecked') : this._animationClasses.get('indeterminateToUnchecked');\r\n\r\n         case RealsoftCheckboxTransitionState.Unchecked :\r\n             return nextState === RealsoftCheckboxTransitionState.Checked ? this._animationClasses.get('uncheckedToChecked') : this._animationClasses.get('uncheckedToIndeterminate');\r\n     }\r\n     return ''; //Fallback\r\n }\r\n\r\n //Method to be invoked whenever the state of the checkbox has been changing\r\n private _checkboxTransitionState(nextState: RealsoftCheckboxTransitionState) {\r\n     let previousState = this._transitionState; //Store the previous state\r\n     let element = this._input?.nativeElement; //Get The Native Input Element\r\n\r\n     //Fallback When the next State is the same as the previous state or the element for some reason is undefined.\r\n     if (previousState === nextState || !element) return;\r\n\r\n     if(this._animationClass) element.classList.remove(this._animationClass); //Remove the previously applied animation class if there's any to make sure that multiple animation classes don't coexist\r\n     \r\n     //Now that the next and previous states are ready for usage, get the new Animation Class: \r\n     this._animationClass = this._getAnimationClasses(previousState, nextState);\r\n\r\n     //Update the transition state with the new state so that they're in sync\r\n     this._transitionState = nextState;\r\n\r\n     //Add the new animation class to the checkbox element\r\n     if(this._animationClass.length > 0) {\r\n        element.classList.add(this._animationClass);\r\n       }\r\n  \r\n    //Animation Should be added for a second then removed, also change detection should not be triggered \r\n    this._ngZone.runOutsideAngular(() => {\r\n        if(this._animationClass) {\r\n          setTimeout(() => {\r\n            element.classList.remove(this._animationClass);\r\n          }, 1000)\r\n        }\r\n    });\r\n }\r\n\r\n /*Implementing the ControlValueAccessor Interface Logic*/\r\n\r\n \r\n _onTouched: () => any = () => {};//For the Blur of the Checkbox\r\n private _controlValueAccessorChangeFn: (value: any) => void = () => {};//To Notify Angular of Value Changes\r\n private _validatorChangeFn = () => {}; //To Notify Angular of Validator State Changes\r\n\r\n writeValue(value: any): void {\r\n    this.checked = !!value; //Make sure that value is boolean by using the double negation \r\n }\r\n\r\n registerOnChange(fn: (value: any) => void) {\r\n     this._controlValueAccessorChangeFn = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n     this._onTouched = fn;\r\n }\r\n\r\n setDisabledState(isDisabled: boolean): void {\r\n     this.disabled = isDisabled;\r\n }\r\n\r\n\r\n /*Implementing the Validator Inteface Logic*/\r\n\r\n //The validate Function returns validation error for the required case\r\n validate(control: AbstractControl<boolean>): ValidationErrors | null {\r\n     if(this.required && control.value != true) {\r\n         return {'required': true} //In case the validation failed\r\n     }\r\n     else \r\n     return null;\r\n }\r\n\r\n registerOnValidatorChange(fn: () => void): void {\r\n     this._validatorChangeFn = fn;\r\n }\r\n\r\n private _emiteChangeEvent() {\r\n     const element = this._input?.nativeElement; //Get the input element.\r\n     this._controlValueAccessorChangeFn(this.checked);\r\n     this.change.emit(this._changeEvent(this.checked)); //Emit the new change event object\r\n\r\n     if(element) {\r\n         element.checked = this.checked; //For synchronization purposes\r\n     }\r\n }\r\n\r\n //Input Events Logic\r\n _onBlur() {\r\n     this._onTouched();\r\n     this._changeDetectorRef.markForCheck();\r\n }\r\n\r\n protected _inputClick() {\r\n     //Get the click Action from the Default Checkbox Configuration\r\n     const action = this._options?.clickAction;\r\n\r\n     //Make sure the Input is not disabled and the Click Action is not noop since the `noop` action indicates not to trigger neither checked nor indeterminate\r\n     if(!this.disabled && action !== 'noop') {\r\n         //The action is now either `check` or `check-indeterminate`\r\n         //Make Sure that indeterminate is set to false, since this mode is not set by the user, instead it is set internally by another logic\r\n\r\n         //If the Action is `check` then you need to trigger the check state and ignore indeterminate. Hence, make sure to check the value of indeterminate\r\n         if(this.indeterminate && action !== 'check'){\r\n             this._indeterminate = false; \r\n             this.indeterminateChange.emit(this._indeterminate);\r\n         }\r\n\r\n         //Trigger the checked state. Note that there's no need to set indeterminate to false here as it will be false either way\r\n         this._checked = !this._checked; //Revert the checked state\r\n\r\n         //Animation Classed Need to be triggered based on the new transition state \r\n         this._checkboxTransitionState(this._checked ? RealsoftCheckboxTransitionState.Checked : RealsoftCheckboxTransitionState.Unchecked);\r\n         this._emiteChangeEvent(); //Emit the change event\r\n     } \r\n\r\n     //Handle the case where the checkbox is not disabled and the action is `noop` Aka No triggering for either the check nor the indeterminate\r\n     else if (!this.disabled && action === 'noop') {\r\n         //No Triggering Needs to happen. Simply sync the input with the checked and indeterminate states\r\n         //No need to emit an event in this case\r\n         this._inputSync();\r\n     }\r\n\r\n     else if(this.disabled || this.disabledInteractive) {\r\n         //No Triggering Needs to happen. Simply sync the input with the checked and indeterminate states\r\n         //No need to emit an event in this case\r\n         this._inputSync();\r\n     }\r\n\r\n }\r\n\r\n //Sync the native input element with the checked and indeterminate states\r\n private _inputSync(): void {\r\n     this._input.nativeElement.checked = this.checked; \r\n     this._input.nativeElement.indeterminate = this.indeterminate;\r\n }\r\n\r\n _touchTargetClick(): void {\r\n     //Make sure that the native input element is not disabled. so that nothing will be triggered from the touch target if it's disabled already\r\n     if(!this.disabled) {\r\n         this._inputClick(); //Trigger the input click if it was from the touch target\r\n         this._input?.nativeElement.focus();\r\n     }\r\n }\r\n}","<div realsoft-internal-form-field [labelPosition]=\"labelPosition\">\r\n    <div #checkbox class=\"checkbox-container\">\r\n        <div class=\"checkbox-container-touch-target\" (click)=\"_touchTargetClick()\"></div>\r\n        <input\r\n        #input\r\n        type=\"checkbox\"\r\n        class=\"checkbox-container__native-control\"\r\n        [class.realsoft-checkbox-selected]=\"checked\"\r\n        [attr.aria-label]=\"ariaLabel || null\"\r\n        [attr.aria-labelledby]=\"ariaLabelledby || null\"\r\n        [attr.aria-describedby]=\"ariaDescribedby || null\"\r\n        [attr.aria-checked]=\"indeterminate ? 'mixed' : null\"\r\n        [attr.aria-disabled]=\"disabled && !disabledInteractive ? true : null\"\r\n        [checked]=\"checked\"\r\n        [attr.name]=\"name\"\r\n        [attr.value]=\"value\"\r\n        [id]=\"inputId\"\r\n        [required]=\"required\"\r\n        [tabIndex]=\"disabled && !disabledInteractive ? -1 : tabIndex\"\r\n        [indeterminate]=\"indeterminate\"\r\n        [disabled]=\"disabled && !disabledInteractive\"\r\n        (blur)=\"_onBlur()\"\r\n        (click)=\"_inputClick()\"\r\n        (change)=\"$event.stopPropagation()\" \r\n        >\r\n        <div class=\"checkbox-container__ripple\"></div>\r\n        <div class=\"checkbox-container__background\">\r\n            <svg class=\"checkbox-container__checkmark\"\r\n                focusable=\"false\"\r\n                viewBox=\"0 0 24 24\"\r\n                aria-hidden=\"true\">\r\n                <path class=\"checkbox-container__checkmark-path\" fill=\"none\" d=\"M1.73,12.91 8.1,19.28 22.79,4.59\"/>\r\n            </svg>\r\n            <!--For Indeterminate Mode-->\r\n            <div class=\"checkbox-container__mixedmark\"></div>\r\n        </div>\r\n        <!--Ripple Comes Here-->\r\n        <!--Need to Disable Ripples-->\r\n        <div\r\n        class=\"realsoft-checkbox-ripple realsoft-focus-indicator\"\r\n        ></div>     \r\n    </div>\r\n\r\n    <label [for]=\"inputId\" #label class=\"realsoft-label\">\r\n        <ng-content></ng-content>\r\n    </label>\r\n</div>","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}