UNPKG

@obliczeniowo/elementary

Version:
1 lines 21.7 kB
{"version":3,"file":"obliczeniowo-elementary-buttons.mjs","sources":["../../../../projects/components/buttons/components/expand-button/expand-button.component.ts","../../../../projects/components/buttons/components/expand-button/expand-button.component.html","../../../../projects/components/buttons/directives/button.directive.ts","../../../../projects/components/buttons/directives/action.directive.ts","../../../../projects/components/buttons/buttons.module.ts","../../../../projects/components/buttons/components/progress-button/progress-button.component.ts","../../../../projects/components/buttons/components/progress-button/progress-button.component.html","../../../../projects/components/buttons/obliczeniowo-elementary-buttons.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\nimport { Animations } from '@obliczeniowo/elementary/animations';\n\n@Component({\n selector: 'obl-expand-button',\n templateUrl: './expand-button.component.html',\n styleUrls: ['./expand-button.component.scss'],\n animations: [\n Animations.rotate180deg\n ],\n standalone: false\n})\nexport class ExpandButtonComponent {\n @Input()\n isOpen = false;\n}\n","<obl-icon\n [width]=\"16\"\n name=\"expand\"\n [@openClose]=\"isOpen ? 'open' : 'closed'\"\n></obl-icon>\n","import {\n ComponentRef,\n Directive,\n ElementRef,\n HostBinding,\n HostListener,\n input,\n Input,\n Renderer2,\n ViewContainerRef,\n} from '@angular/core';\nimport { IconComponent } from '@obliczeniowo/elementary/icons';\nimport { SpinnerComponent } from '@obliczeniowo/elementary/loading';\n\n/**\n * Set class for the button element\n *\n * Default class name is: 'obl-button' you cen extend it by using input oblButton\n * in such case the name of class will change to 'obl-button-'+this.oblButton\n *\n * You can use scss mixin to generate new set of styles:\n *\n * @example\n *\n * // in HTML\n *\n * <button oblButton=\"red\">Some button</button>\n *\n * // in global scss file style.scss\n *\n * @use \"node_modules/@obliczeniowo/elementary/styles/global.scss\" as *;\n *\n * @include button-styles(\"red\", #080808, black, red, white, #cc5d5d, white, gray);\n */\n@Directive({\n selector: 'oblButton, [oblButton]',\n exportAs: 'oblButton',\n standalone: false\n})\nexport class ButtonDirective {\n private _oblButton!: string;\n private _spinner?: ComponentRef<SpinnerComponent>;\n private _icon?: ComponentRef<IconComponent>;\n private _name?: string;\n\n get oblButton(): string {\n return this._oblButton;\n }\n\n /**\n * Let you set default class if no extended class is set\n *\n * if extended is set then you can generate your own styles class using mixin\n *\n * @example\n * @use \"node_modules/@obliczeniowo/elementary/styles/buttons-styles.scss\" as *;\n *\n * @include button-styles(\"red\", #080808, black, red, white, #cc5d5d, white, gray);\n */\n @Input() set oblButton(value: string) {\n this.renderer.removeClass(this.elementRef.nativeElement, this.class());\n this._oblButton = value;\n this.renderer.addClass(this.elementRef.nativeElement, this.class());\n }\n\n /**\n * Name of icon to display inside of button, when no icon set then no icon to display\n *\n * When loading = true icon is removed and spinner is displayed\n */\n @Input() set icon(icon: string | undefined) {\n const host = this.elementRef.nativeElement;\n this._name = icon;\n if (icon) {\n if (!this._icon) {\n this._icon = this.viewContainerRef.createComponent(IconComponent);\n }\n this._icon.setInput('name', icon);\n this._icon.setInput('width', 'var(--obl-icon-width, 14px)');\n if (host.firstChild) {\n host.insertBefore(this._icon.location.nativeElement, host.firstChild);\n } else {\n host.appendChild(this._icon.location.nativeElement);\n }\n } else if (this._icon) {\n host.removeChild(this._icon.location.nativeElement);\n }\n }\n\n @Input() blockWhenLoading = true;\n\n protected _loading?: boolean;\n\n /**\n * If loading is set to true then button is disabled and spinner is added as first child of button\n *\n * on loading = false spinner is removed and if icon is set then icon displayed on his place\n */\n @Input() set loading(loading: boolean) {\n this._loading = loading;\n const host = this.elementRef.nativeElement;\n if (loading) {\n if (!this._spinner) {\n this._spinner = this.viewContainerRef.createComponent(SpinnerComponent);\n if (host.innerText !== '') {\n this._spinner.location.nativeElement.style.marginRight = '5px';\n }\n }\n host.insertBefore(this._spinner.location.nativeElement, host.firstChild);\n if (this._icon) {\n host.removeChild(this._icon.location.nativeElement);\n }\n this.elementRef.nativeElement.disabled = true;\n } else if (this._spinner) {\n host.removeChild(this._spinner.location.nativeElement);\n if (this._icon && this._name) {\n host.insertBefore(this._icon.location.nativeElement, host.firstChild);\n }\n this.elementRef.nativeElement.disabled = undefined as any;\n }\n }\n\n /** */\n toggle = input<boolean>(false);\n /** */\n @HostBinding('class.selected')\n @Input()\n selected = false;\n\n /**\n * link to open when clicked\n */\n link = input<string>();\n\n /**\n * target option for link option only\n */\n target = input<string | '_self' | '_blank' | '_parent' | '_top'>('_self');\n\n /**\n * To handle disable state of button\n */\n @HostBinding('class.loading') get load() {\n // !!this._loading to prevent change after update stuff\n return !!this._loading && this.blockWhenLoading;\n }\n\n @HostListener('click', ['event']) clicked(event: MouseEvent) {\n if (this._loading && this.blockWhenLoading) {\n return;\n }\n if (this.link()) {\n window.open(this.link(), this.target());\n }\n if (this.toggle()) {\n this.selected = !this.selected;\n }\n }\n\n constructor(\n protected renderer: Renderer2,\n protected elementRef: ElementRef<HTMLButtonElement>,\n private readonly viewContainerRef: ViewContainerRef\n ) {\n renderer.addClass(elementRef.nativeElement, 'obl-button');\n }\n\n ngAfterViewInit() {\n this.icon = this._name;\n this.loading = !!this._loading;\n }\n\n protected class(prefix: string = 'obl-button'): string {\n if (this.oblButton) {\n return `${prefix}-${this.oblButton}`;\n }\n return prefix;\n }\n}\n","import { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\nimport { keys } from '@obliczeniowo/elementary/objects';\n\n@Directive({\n selector: '[oblAction]',\n standalone: false\n})\nexport class ActionDirective {\n protected time: any;\n protected dt: number = 0;\n protected interval: number = 100;\n\n protected element!: HTMLDivElement;\n protected rect!: DOMRect;\n protected offset!: { left: number; top: number };\n\n @Input() set message(message: string) {\n this.element.innerText = message;\n };\n\n @Input() animEnd?: () => void;\n\n @Input() duration: number = 1000;\n\n @HostListener('click', ['event']) clicked() {\n const parent = this.ref.nativeElement;\n if (!this.time && !parent.classList.contains('loading')) {\n document.body.appendChild(this.element);\n this.rect = parent.getBoundingClientRect();\n this.offset = { left: parent.offsetLeft, top: parent.offsetTop };\n\n this.element.style.top = `${this.offset.top - 30}px`;\n let left = this.offset.left - (this.element.clientWidth - this.rect.width) / 2;\n const dx = window.innerWidth - document.body.clientWidth;\n\n if (left + this.element.clientWidth >= document.body.clientWidth - dx) {\n left = document.body.clientWidth - 5 - this.element.clientWidth;\n } else if (left < 0) {\n left = 0;\n }\n this.element.style.left = `${left}px`;\n this.time = setInterval(() => {\n this.dt += this.interval;\n\n this.element.style.opacity = `${1 - this.dt / this.duration}`;\n this.element.style.top = `${this.offset.top - 30 - 50 * this.dt / this.duration}px`;\n if (this.dt >= this.duration) {\n // eslint-disable-next-line @typescript-eslint/prefer-optional-chain\n this.animEnd && this.animEnd();\n this.ngOnDestroy();\n }\n }, this.interval);\n }\n }\n\n constructor(protected ref: ElementRef<HTMLElement>) {\n this.element = document.createElement('div');\n this.element.classList.add('animated-action');\n const styles = {\n padding: '5px 10px',\n fontSize: '14px',\n background: 'var(--default-background-color, white)',\n color: 'var(--default-text-color, black)',\n border: '1px solid gray',\n borderRadius: '50px',\n opacity: '1',\n position: 'absolute',\n width: 'fit-content'\n };\n keys(styles).forEach((key: any) => this.element.style[key] = (styles as any)[key]);\n }\n\n ngOnDestroy() {\n if (this.time) {\n clearInterval(this.time);\n this.time = undefined;\n this.dt = 0;\n document.body.removeChild(this.element);\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { LoadingModule } from '@obliczeniowo/elementary/loading';\nimport { IconsModule } from '@obliczeniowo/elementary/icons';\n\nimport { ExpandButtonComponent } from './components/expand-button/expand-button.component';\nimport { ButtonDirective } from './directives/button.directive';\nimport { ActionDirective } from './directives/action.directive';\n\n@NgModule({\n declarations: [\n ExpandButtonComponent,\n ButtonDirective,\n ActionDirective\n ],\n imports: [\n CommonModule,\n IconsModule,\n LoadingModule\n ],\n exports: [\n ExpandButtonComponent,\n ButtonDirective,\n ActionDirective\n ]\n})\nexport class ButtonsModule { }\n","import { Component, computed, HostBinding, input } from '@angular/core';\n\n@Component({\n selector: 'button[obl-progress]',\n imports: [],\n templateUrl: './progress-button.component.html',\n styleUrl: './progress-button.component.scss'\n})\nexport class ProgressButtonComponent {\n /** if not undefined then display progress bar with % value */\n progress = input<number>();\n\n /** disable light effect */\n light = input<boolean>(true);\n\n real = computed(() => {\n return Math.min(Math.max(0, this.progress() || 0), 100);\n })\n\n @HostBinding('attr.disabled') get disabled() {\n return this.progress();\n }\n\n @HostBinding('class.obl-button') button = true;\n}\n","@if (progress() === undefined) {\n <ng-content></ng-content>\n} @else {\n <div class=\"progress\">\n <div class=\"value\" [style.width.%]=\"real()\">\n @if (light()) {\n <div class=\"light\"></div>\n }\n </div>\n <div class=\"value-text\">{{ real() }} %</div>\n </div>\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}