@alyle/ui
Version:
Minimal Design, a set of components for Angular
1 lines • 17.7 kB
Source Map (JSON)
{"version":3,"file":"alyle-ui-button.mjs","sources":["../../../lib/button/button.ts","../../../lib/button/button.html","../../../lib/button/button.module.ts","../../../lib/button/alyle-ui-button.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n Renderer2,\n NgZone,\n OnDestroy,\n OnInit,\n ViewChild,\n AfterViewInit,\n OnChanges,\n InjectionToken,\n Inject,\n Optional\n} from '@angular/core';\nimport {\n LyTheme2,\n ThemeVariables,\n mixinDisabled,\n mixinColor,\n mixinBg,\n mixinShadowColor,\n mixinOutlined,\n mixinElevation,\n mixinRaised,\n mixinDisableRipple,\n mixinStyleUpdater,\n LyRippleService,\n getLyThemeVariableUndefinedError,\n StyleTemplate,\n LyClasses,\n st2c,\n LY_COMMON_STYLES,\n ThemeRef,\n StyleCollection,\n StyleRenderer,\n SelectorsFn } from '@alyle/ui';\nimport { Color } from '@alyle/ui/color';\nimport { Platform } from '@angular/cdk/platform';\nimport { FocusMonitor, FocusOrigin } from '@angular/cdk/a11y';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\n\nexport interface LyButtonTheme {\n /** Styles for Button Component */\n root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);\n appearance?: {\n icon?: (classes: LyClasses<typeof STYLES>) => StyleTemplate\n fab?: (classes: LyClasses<typeof STYLES>) => StyleTemplate\n miniFab?: (classes: LyClasses<typeof STYLES>) => StyleTemplate\n [name: string]: ((classes: LyClasses<typeof STYLES>) => StyleTemplate) | undefined\n };\n size?: {\n small?: (classes: LyClasses<typeof STYLES>) => StyleTemplate\n medium?: (classes: LyClasses<typeof STYLES>) => StyleTemplate\n large?: (classes: LyClasses<typeof STYLES>) => StyleTemplate\n [name: string]: ((classes: LyClasses<typeof STYLES>) => StyleTemplate) | undefined\n };\n}\n\nexport interface LyButtonDefaultOptions {\n size?: string;\n appearance?: string;\n}\n\nexport interface LyButtonVariables {\n button?: LyButtonTheme;\n}\n\nconst DEFAULT_DISABLE_RIPPLE = false;\nconst DEFAULT_SIZE = 'medium';\nconst STYLE_PRIORITY = -2;\nexport const LY_BUTTON_DEFAULT_OPTIONS =\n new InjectionToken<LyButtonDefaultOptions>('LY_BUTTON_DEFAULT_OPTIONS');\n\nexport const STYLES = (theme: ThemeVariables & LyButtonVariables, selectors: SelectorsFn) => {\n const typography = theme.typography;\n const button = selectors(STYLES);\n return {\n $priority: STYLE_PRIORITY,\n $name: LyButton.name,\n root: () => [(_className: string) => `${_className}{font-family:${typography.fontFamily};color:${theme.text.default};-webkit-tap-highlight-color:transparent;background-color:${new Color(0, 0, 0, 0)};border:0;padding:0 1em;-moz-appearance:none;margin:0;border-radius:3px;outline:none;font-weight:500;box-sizing:border-box;position:relative;justify-content:center;align-items:center;align-content:center;display:inline-flex;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;text-decoration-line:none;-webkit-text-decoration-line:none;font-size:${theme.pxToRem(14)};}${_className}::-moz-focus-inner{border:0;}${_className}::before{content:'';}${st2c((LY_COMMON_STYLES.fill), `${_className}::before`)}${_className}::before{width:100%;height:100%;background:transparent;opacity:0;pointer-events:none;}${_className}.cdk-keyboard-focused::before,${_className}.cdk-program-focused::before,${_className}:hover::before{background:currentColor;opacity:.13;border-radius:inherit;}`, (theme.button?.root instanceof StyleCollection\n ? theme.button.root.setTransformer(fn => fn(button)).css\n : theme.button?.root?.(button))],\n content: [(_className: string) => `${_className}{padding:0;display:flex;justify-content:inherit;align-items:inherit;align-content:inherit;width:100%;height:100%;box-sizing:border-box;}`],\n animations: (_className: string) => `${_className}:hover,${_className}:hover::before,${_className}:focus,${_className}:focus::before{transition:background 375ms cubic-bezier(0.23,1,0.32,1) 0ms,box-shadow 280ms cubic-bezier(.4,0,.2,1) 0ms;}`\n };\n};\n\n/** @docs-private */\nexport class LyButtonBase {\n constructor(\n public _theme: LyTheme2,\n public _ngZone: NgZone,\n public _platform: Platform\n ) { }\n}\n\n/** @docs-private */\nexport const LyButtonMixinBase = mixinStyleUpdater(\nmixinBg(\n mixinColor(\n mixinRaised(\n mixinDisabled(\n mixinOutlined(\n mixinElevation(\n mixinShadowColor(\n mixinDisableRipple(LyButtonBase)))))))));\n\n\n@Component({\n selector: 'button[ly-button], a[ly-button]',\n changeDetection: ChangeDetectionStrategy.OnPush,\n templateUrl: 'button.html',\n inputs: [\n 'bg',\n 'color',\n 'raised',\n 'disabled',\n 'outlined',\n 'elevation',\n 'shadowColor',\n 'disableRipple'\n ],\n providers: [\n StyleRenderer\n ],\n exportAs: 'lyButton',\n standalone: false\n})\nexport class LyButton extends LyButtonMixinBase implements OnChanges, OnInit, AfterViewInit, OnDestroy {\n static readonly и = 'LyButton';\n /**\n * Style\n * @docs-private\n */\n readonly classes = this.sRenderer.renderSheet(STYLES);\n private _rippleSensitive = false;\n private _size: string;\n private _sizeClass: string | null;\n private _appearance: string;\n private _appearanceClass: string;\n\n @ViewChild('rippleContainer') _rippleContainer: ElementRef;\n\n /** @docs-private */\n @Input('sensitive')\n get rippleSensitive(): boolean {\n return this._rippleSensitive;\n }\n set rippleSensitive(value: BooleanInput) {\n const newVal = this._rippleSensitive = coerceBooleanProperty(value);\n this._rippleConfig.sensitive = newVal;\n }\n\n /** Button size */\n @Input()\n get size(): string {\n return this._size;\n }\n set size(val: string) {\n if (val !== this.size) {\n this._size = val;\n const newClass = this._theme.renderStyle(\n `${LyButton.и}--${val}-size`,\n (theme: LyButtonVariables, ref: ThemeRef) => {\n if (theme.button && theme.button.size && theme.button.size[val]) {\n return theme.button.size[val]!(ref.selectorsOf(STYLES));\n }\n throw new Error(`Value button.size['${val}'] not found in ThemeVariables`);\n },\n STYLE_PRIORITY\n );\n this._sizeClass = this.sRenderer.updateClass(newClass, this._sizeClass);\n }\n }\n\n /** Button appearance */\n @Input()\n get appearance(): string { return this._appearance; }\n set appearance(val: string) {\n if (val !== this.appearance) {\n if (val === 'icon' && !this._rippleConfig.centered) {\n this._rippleConfig.centered = true;\n }\n this._appearance = val;\n const newClass = this._theme.renderStyle(\n `${LyButton.и}--${val}-appearance`,\n (theme: LyButtonVariables, ref: ThemeRef) => {\n if (!(theme.button!.appearance && theme.button!.appearance![val])) {\n throw new Error(`Value button.appearance['${val}'] not found in ThemeVariables`);\n }\n return theme.button!.appearance![val]!(ref.selectorsOf(STYLES));\n },\n STYLE_PRIORITY + 1);\n this._appearanceClass = this.sRenderer.updateClass(newClass, this._appearanceClass);\n }\n }\n\n /** @docs-private */\n get hostElement() {\n return this._el.nativeElement;\n }\n\n constructor(\n protected _el: ElementRef<HTMLButtonElement | HTMLAnchorElement>,\n protected _renderer: Renderer2,\n _theme: LyTheme2,\n _ngZone: NgZone,\n public _rippleService: LyRippleService,\n private _focusMonitor: FocusMonitor,\n readonly sRenderer: StyleRenderer,\n platform: Platform,\n @Optional() @Inject(LY_BUTTON_DEFAULT_OPTIONS) private _defaultConfig: LyButtonDefaultOptions\n ) {\n super(_theme, _ngZone, platform);\n this.setAutoContrast();\n this._triggerElement = _el;\n this._renderer.addClass(this._el.nativeElement, this.classes.animations);\n if (!(_theme.variables as LyButtonVariables).button) {\n throw getLyThemeVariableUndefinedError('button');\n }\n }\n ngOnChanges() {\n this.updateStyle(this._el);\n const isDisabled = this.disabled;\n this._renderer.setProperty(this._el.nativeElement, 'disabled', isDisabled);\n }\n\n ngOnInit() {\n const { button } = (this._theme.variables as LyButtonVariables);\n if (button) {\n this._renderer.addClass(this._el.nativeElement, this.classes.root);\n\n if (this.size == null && this.appearance == null) {\n // Apply default config\n this.size = (this._defaultConfig && this._defaultConfig.size!)\n || DEFAULT_SIZE;\n } else {\n if (this._defaultConfig && this._defaultConfig.appearance) {\n if (this.appearance == null) {\n this.appearance = this._defaultConfig.appearance;\n }\n }\n\n }\n }\n // set default disable ripple\n if (this.disableRipple == null) {\n this.disableRipple = DEFAULT_DISABLE_RIPPLE;\n }\n }\n\n ngAfterViewInit() {\n this._focusMonitor.monitor(this._el, true);\n }\n\n ngOnDestroy() {\n this._focusMonitor.stopMonitoring(this._el);\n this._removeRippleEvents();\n }\n\n /** Focuses the button. */\n focus(origin?: FocusOrigin, options?: FocusOptions): void {\n if (origin) {\n this._focusMonitor.focusVia(this._getHostElement(), origin, options);\n } else {\n this._getHostElement().focus(options);\n }\n }\n _getHostElement() {\n return this._el.nativeElement;\n }\n\n}\n","<span [className]=\"classes.content\">\n <ng-content></ng-content>\n</span>\n<div #rippleContainer [className]=\"_rippleService.classes.container\"></div>","import { NgModule } from '@angular/core';\nimport { LyCommonModule } from '@alyle/ui';\nimport { LyButton } from './button';\n\n@NgModule({\n exports: [LyCommonModule, LyButton],\n declarations: [LyButton]\n})\nexport class LyButtonModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}