@alyle/ui
Version:
Minimal Design, a set of components for Angular
1 lines • 19.4 kB
Source Map (JSON)
{"version":3,"file":"alyle-ui-badge.mjs","sources":["../../../lib/badge/badge.ts","../../../lib/badge/badge.module.ts","../../../lib/badge/alyle-ui-badge.ts"],"sourcesContent":["import {\n Directive,\n ElementRef,\n Input,\n OnChanges,\n OnInit,\n Renderer2,\n OnDestroy,\n InjectionToken\n} from '@angular/core';\nimport {\n LyTheme2,\n mixinBg,\n mixinColor,\n mixinDisabled,\n mixinElevation,\n mixinOutlined,\n mixinRaised,\n mixinShadowColor,\n mixinStyleUpdater,\n ThemeVariables,\n st2c,\n LyClasses,\n StyleTemplate,\n ThemeRef,\n StyleCollection,\n StyleRenderer } from '@alyle/ui';\n\n\nexport interface LyBadgeVariables {\n badge?: LyBadgeTheme;\n}\n\nexport interface LyBadgeTheme {\n root?: StyleCollection<((classes: LyClasses<typeof STYLES>) => StyleTemplate)>\n | ((classes: LyClasses<typeof STYLES>) => StyleTemplate);\n appearance?: {\n default?: (classes: LyClasses<typeof STYLES>) => StyleTemplate\n dot?: (classes: LyClasses<typeof STYLES>) => StyleTemplate\n [name: string]: ((classes: LyClasses<typeof STYLES>) => StyleTemplate) | undefined\n };\n}\n\nexport const LY_BADGE_DEFAULT_OPTIONS = new InjectionToken<LyBadgeTheme>('BADGE_DEFAULT_OPTIONS');\n\nconst STYLE_PRIORITY = -2;\nconst DEFAULT_H_POSITION = 'after';\nconst DEFAULT_V_POSITION = 'above';\nconst DEFAULT_BG = 'primary';\nconst DEFAULT_APPEARANCE = 'default';\nconst DEFAULT_OVERLAP = 'rectangle';\n\nexport const STYLES = (theme: ThemeVariables & LyBadgeVariables, ref: ThemeRef) => {\n const badge = ref.selectorsOf(STYLES);\n return {\n $name: LyBadge.и,\n $priority: STYLE_PRIORITY,\n root: ( ) => (_className: string) => `${_className}{position:absolute;display:flex;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:${theme.pxToRem(12)};font-family:${theme.typography.fontFamily};justify-content:center;align-items:center;box-sizing:border-box;z-index:1;}${st2c((\n (theme.badge\n && theme.badge.root\n && (theme.badge.root instanceof StyleCollection\n ? theme.badge.root.setTransformer(fn => fn(badge))\n : theme.badge.root(badge))\n )), `${_className}`)}`,\n relative: (_className: string) => `${_className}{position:relative;}`\n };\n};\n\n/** @docs-private */\nexport class LyBadgeBase {\n constructor(\n public _theme: LyTheme2\n ) { }\n}\n\n/** @docs-private */\nexport const LyBadgeMixinBase = mixinStyleUpdater(\nmixinBg(\n mixinColor(\n mixinRaised(\n mixinDisabled(\n mixinOutlined(\n mixinElevation(\n mixinShadowColor(LyBadgeBase))))))));\n\n@Directive({\n selector: 'ly-badge, [lyBadge]',\n inputs: [\n 'bg',\n 'color',\n 'raised',\n 'disabled',\n 'outlined',\n 'elevation',\n 'shadowColor'\n ],\n standalone: false\n})\nexport class LyBadge extends LyBadgeMixinBase implements OnChanges, OnInit, OnDestroy {\n static readonly и = 'LyBadge';\n /**\n * Styles\n * @docs-private\n */\n readonly classes = this._theme.renderStyleSheet(STYLES);\n private _content: string | number;\n // private _position: string;\n private _positionClass: string;\n private _badgeEl: any;\n private _badgeElementRef: any;\n private _sRenderer?: StyleRenderer;\n\n /** The content for the badge */\n @Input('lyBadge')\n set content(val: string | number) {\n if (val !== this.content) {\n this._content = val;\n this._createBadge();\n }\n }\n get content(): string | number {\n return this._content;\n }\n\n @Input()\n set container(container: HTMLElement) {\n if (container == null) {\n throw new Error(`${LyBadge.и}: [container] is undefined.`);\n }\n if (this.content != null) {\n throw new Error(`${LyBadge.и}: [container] with [content] don't work together.`);\n }\n if (!container.tagName) {\n throw new Error(`${LyBadge.и}: the value given to container is not an HTMLElement`);\n }\n this._container = container;\n this._renderer.appendChild(container, this._el.nativeElement);\n\n }\n get container() {\n return this._container;\n }\n private _container: HTMLElement;\n\n @Input() hPosition: 'before' | 'after';\n @Input() vPosition: 'above' | 'below';\n\n @Input()\n get overlap() {\n return this._overlap;\n }\n set overlap(val: 'circle' | 'rectangle') {\n if (val !== this.overlap) {\n this._overlap = val;\n\n Promise.resolve(null!).then(() => {\n const overlap = val;\n const hp = this.hPosition;\n const vp = this.vPosition;\n\n const newClass = this._theme.renderStyle(`${LyBadge.и}-overlap-${val}&${hp}&${vp}`, (theme: ThemeVariables) => {\n const p = overlap === 'circle'\n ? 14 : 0;\n return (_className: string) => `${_className}{${theme.getDirection(vp)}:${p}%;${theme.getDirection(hp)}:${p}%;}`;\n }, STYLE_PRIORITY);\n this._overlapClass = this._sRenderer!.updateClass(newClass, this._overlapClass);\n });\n }\n }\n private _overlap: 'circle' | 'rectangle';\n private _overlapClass: string;\n\n /** The color of the badge */\n @Input()\n get bg() {\n return this._lyBadgeBg;\n }\n set bg(val: string) {\n if (this.content == null) {\n this.lyBadgeBg = val;\n }\n }\n\n /** The color of the badge */\n @Input()\n get lyBadgeBg() {\n return this._lyBadgeBg;\n }\n set lyBadgeBg(val: string) {\n if (val !== this.lyBadgeBg) {\n this._lyBadgeBg = val;\n\n const newClass = this._theme.renderStyle(`${LyBadge.и}--bg-${val}`,\n (theme: ThemeVariables) => (_className: string) => `${_className}{background-color:${theme.colorOf(val)};color:${theme.colorOf(`${val}:contrast`)};`, STYLE_PRIORITY);\n\n Promise.resolve(null!).then(() => {\n this[0x1] = this._sRenderer!.updateClass(newClass, this[0x1]);\n });\n\n\n }\n }\n private _lyBadgeBg: string;\n\n @Input()\n get appearance() {\n return this._appearance;\n }\n set appearance(val: string) {\n if (this.content == null) {\n this.lyBadgeAppearance = val;\n }\n }\n\n @Input()\n get lyBadgeAppearance() {\n return this._appearance;\n }\n set lyBadgeAppearance(val: string) {\n if (val !== this.appearance) {\n this._appearance = val;\n const styleID = `${LyBadge.и}--appearance-${val}`;\n const newClass = this._theme.renderStyle(\n styleID,\n (theme: LyBadgeVariables) => {\n const appearance = theme.badge\n && theme.badge.appearance\n && theme.badge.appearance[val]\n && theme.badge.appearance[val]!(this.classes);\n if (appearance) {\n return appearance;\n }\n throw new Error(`${styleID} is not defined in the theme.`);\n },\n STYLE_PRIORITY\n );\n Promise.resolve(null!).then(() => {\n this._appearanceClass = this._sRenderer!.updateClass(newClass, this._appearanceClass);\n });\n }\n }\n\n private _appearance: string;\n private _appearanceClass: string;\n\n constructor(\n private _el: ElementRef<HTMLElement>,\n _theme: LyTheme2,\n private _renderer: Renderer2\n ) {\n super(_theme);\n this.setAutoContrast();\n this._badgeElementRef = this._el.nativeElement;\n }\n\n ngOnChanges() {\n if (this.content == null) {\n this.updateStyle(this._el);\n }\n this._updatePosition();\n if (!this._sRenderer) {\n this._sRenderer = new StyleRenderer(this._theme, this._el, this._renderer);\n }\n }\n\n ngOnInit() {\n\n /** Add root styles */\n this._renderer.addClass(this._badgeElementRef, this.classes.root);\n\n /** Set default bg */\n if (!this.bg) {\n this.lyBadgeBg = DEFAULT_BG;\n }\n\n /** Set default position */\n let requireUpdate = false;\n if (!this.hPosition) {\n requireUpdate = true;\n this.hPosition = DEFAULT_H_POSITION;\n }\n if (!this.vPosition) {\n requireUpdate = true;\n this.vPosition = DEFAULT_V_POSITION;\n }\n if (requireUpdate) {\n this._updatePosition();\n }\n\n /** Set default appearance */\n if (!this.appearance) {\n this.lyBadgeAppearance = DEFAULT_APPEARANCE;\n }\n\n /** Set default overlap */\n if (!this.overlap) {\n this.overlap = DEFAULT_OVERLAP;\n }\n }\n\n ngOnDestroy() {\n if (this._badgeEl) {\n this._renderer.removeChild(this._el.nativeElement, this._badgeEl);\n }\n }\n\n private _updatePosition() {\n const hp = this.hPosition;\n const vp = this.vPosition;\n\n if (hp && vp) {\n let y: number;\n let x: number;\n if (hp && vp) {\n if (hp === 'after') {\n x = 50;\n } else {\n x = -50;\n }\n if (vp === 'above') {\n y = -50;\n } else {\n y = 50;\n }\n }\n\n const newClass = this._theme.renderStyle(`${LyBadge.и}--position-${hp}-${vp}`,\n (theme: ThemeVariables) => (_className: string) => `${_className}{transform:translate(${theme.after === 'right'\n ? x : -x}%,${y}%);}`, STYLE_PRIORITY);\n\n Promise.resolve(null!).then(() => {\n this._positionClass = this._sRenderer!.updateClass(newClass, this._positionClass);\n });\n\n }\n }\n\n private _createBadge() {\n if (!this._badgeEl) {\n const badge = this._badgeEl = this._renderer.createElement('div');\n this._renderer.appendChild((this.container) || this._el.nativeElement, badge);\n this._badgeElementRef = badge;\n this._sRenderer = new StyleRenderer(this._theme, new ElementRef(badge), this._renderer);\n\n /** Add position relative */\n this._renderer.addClass(this._el.nativeElement, this.classes.relative);\n }\n this._badgeEl.textContent = `${this.content}`;\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { LyCommonModule } from '@alyle/ui';\nimport { LyBadge } from './badge';\n\n@NgModule({\n exports: [LyBadge, LyCommonModule],\n declarations: [LyBadge]\n})\nexport class LyBadgeModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}