{"version":3,"file":"index.mjs","sources":["../../../../../projects/components/widgets/basic/spinner/src/spinner.props.ts","../../../../../projects/components/widgets/basic/spinner/src/spinner.component.ts","../../../../../projects/components/widgets/basic/spinner/src/spinner.component.html","../../../../../projects/components/widgets/basic/spinner/src/index.ts"],"sourcesContent":["import {PROP_BOOLEAN, PROP_STRING, register} from '@wm/components/base';\n\nexport const registerProps = () => {\n    register(\n        'wm-spinner',\n        new Map(\n            [\n                ['animation', {value: 'spin', PROP_STRING}],\n                ['caption', {value: 'Loading...', ...PROP_STRING}],\n                ['class', PROP_STRING],\n                ['iconclass', {value: 'fa fa-circle-o-notch fa-spin', ...PROP_STRING}],\n                ['iconsize', PROP_STRING],\n                ['image', PROP_STRING],\n                ['imageheight', PROP_STRING],\n                ['imagewidth', {value: '20px', ...PROP_STRING}],\n                ['name', PROP_STRING],\n                ['show', {value: true, ...PROP_BOOLEAN}],\n                ['type', {value: 'icon', ...PROP_STRING}],\n                ['servicevariabletotrack', PROP_STRING],\n                ['hint', PROP_STRING],\n                ['arialabel', PROP_STRING]\n            ]\n        )\n    );\n};\n","import { CommonModule } from '@angular/common';\nimport { TextContentDirective } from \"@wm/components/base\";\nimport {Component, Inject, Injector, OnInit, OnDestroy, Optional} from '@angular/core';\n\nimport {DataSource, validateDataSourceCtx} from '@wm/core';\nimport { IWidgetConfig, provideAsWidgetRef, StylableComponent, styler, ImagePipe } from '@wm/components/base';\n\nimport { registerProps } from './spinner.props';\nimport {includes, isEmpty, split} from \"lodash-es\";\n\nconst DEFAULT_CLS = 'app-spinner';\nconst WIDGET_CONFIG: IWidgetConfig = {widgetType: 'wm-spinner', hostClass: DEFAULT_CLS};\n\n@Component({\n  standalone: true,\n  imports: [CommonModule, TextContentDirective],\n    selector: '[wmSpinner]',\n    templateUrl: './spinner.component.html',\n    providers: [\n        provideAsWidgetRef(SpinnerComponent)\n    ],\n    exportAs: 'wmSpinner'\n})\nexport class SpinnerComponent extends StylableComponent implements OnInit, OnDestroy {\n    static initializeProps = registerProps();\n\n    public iconclass = '';\n    public animation = '';\n    public imagewidth;\n    public imageheight;\n    public servicevariabletotrack: string;\n    public show: boolean;\n    private picture: string;\n    private _spinnerMessages;\n    public showCaption = true;\n    public type: any;\n\n    public get spinnerMessages() {\n        return this._spinnerMessages;\n    }\n\n    public set spinnerMessages(newVal) {\n        this.showCaption = isEmpty(newVal);\n        this._spinnerMessages = newVal;\n    }\n\n    private toggleVariableStateSubscription: any;\n\n    private listenOnDataSource() {\n        const variables = split(this.servicevariabletotrack, ',');\n        this.toggleVariableStateSubscription = this.getAppInstance().subscribe('toggle-variable-state', data => {\n            const name = data.variable.execute(DataSource.Operation.GET_NAME);\n            if (includes(variables, name) && validateDataSourceCtx(data.variable, this.getViewParent())) {\n                this.widget.show = data.active;\n            }\n        });\n    }\n\n    constructor(inj: Injector, private imagePipe: ImagePipe, @Inject('EXPLICIT_CONTEXT') @Optional() explicitContext: any) {\n        super(inj, WIDGET_CONFIG, explicitContext);\n        styler(this.nativeElement, this);\n    }\n\n    onPropertyChange(key: string, nv: any, ov?: any) {\n        if (key === 'image') {\n            this.picture = this.imagePipe.transform(nv);\n        } else if (key === 'animation') {\n            if (nv === 'spin') {\n                this.animation = 'fa-spin';\n            } else {\n                this.animation = nv || '';\n            }\n        } else {\n            super.onPropertyChange(key, nv, ov);\n        }\n    }\n\n    ngOnInit() {\n        super.ngOnInit();\n        // if variables are to be listened to, hide the widget and set the listener\n        if (this.servicevariabletotrack) {\n            this.widget.show = false;\n            this.listenOnDataSource();\n        }\n    }\n\n    ngOnDestroy() {\n        // MEMORY LEAK FIX: Unsubscribe from toggle-variable-state event\n        if (this.toggleVariableStateSubscription) {\n            this.toggleVariableStateSubscription();\n            this.toggleVariableStateSubscription = null;\n        }\n\n        super.ngOnDestroy();\n    }\n}\n","<div class=\"spinner-message\">\n  @if (type === 'image') {\n    <span class=\"spinner-image animated infinite\" [ngClass]=\"animation\" aria-hidden=\"true\"\n      [ngStyle]=\"{width: imagewidth, height: imageheight, backgroundImage: 'url(' + picture + ')', backgroundSize: imagewidth}\"\n    ></span>\n  }\n  @if (type === 'icon') {\n    <i class=\"spinner-image animated infinite\" aria-hidden=\"true\" [ngClass]=\"[iconclass, animation]\" [style.fonSize]=\"iconsize\"></i>\n  }\n  @if (showCaption) {\n    <span class=\"spinner-text\" [innerHTML]=\"caption\"></span>\n  }\n  @if (!showCaption && spinnerMessages) {\n    <div class=\"spinner-messages\">\n      @for (value of spinnerMessages; track value) {\n        <p [textContent]=\"value\"></p>\n      }\n    </div>\n  }\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}