UNPKG

primeng

Version:

PrimeNG is an open source UI library for Angular featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeB

1 lines 34.3 kB
{"version":3,"file":"primeng-basecomponent.mjs","sources":["../../src/basecomponent/style/basecomponentstyle.ts","../../src/basecomponent/basecomponent.ts","../../src/basecomponent/primeng-basecomponent.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BaseStyle } from 'primeng/base';\n\n@Injectable({ providedIn: 'root' })\nexport class BaseComponentStyle extends BaseStyle {\n name = 'common';\n}\n","import { DOCUMENT, isPlatformServer } from '@angular/common';\nimport { ChangeDetectorRef, computed, Directive, effect, ElementRef, inject, InjectionToken, Injector, input, PLATFORM_ID, Renderer2, signal, SimpleChanges } from '@angular/core';\nimport { Theme, ThemeService } from '@primeuix/styled';\nimport { cn, getKeyValue, isArray, isFunction, isNotEmpty, isString, mergeProps, resolve, toFlatCase, uuid } from '@primeuix/utils';\nimport type { Lifecycle, PassThroughOptions } from 'primeng/api';\nimport { Base, BaseStyle } from 'primeng/base';\nimport { PrimeNG } from 'primeng/config';\nimport { BaseComponentStyle } from './style/basecomponentstyle';\n\nexport const PARENT_INSTANCE = new InjectionToken<BaseComponent>('PARENT_INSTANCE');\n\n@Directive({\n standalone: true,\n providers: [BaseComponentStyle, BaseStyle]\n})\nexport class BaseComponent<PT = any> implements Lifecycle {\n public document: Document = inject(DOCUMENT);\n\n public platformId: any = inject(PLATFORM_ID);\n\n public el: ElementRef = inject(ElementRef);\n\n public readonly injector: Injector = inject(Injector);\n\n public readonly cd: ChangeDetectorRef = inject(ChangeDetectorRef);\n\n public renderer: Renderer2 = inject(Renderer2);\n\n public config: PrimeNG = inject(PrimeNG);\n\n public $parentInstance: BaseComponent | undefined = inject(PARENT_INSTANCE, { optional: true, skipSelf: true }) ?? undefined;\n\n public baseComponentStyle: BaseComponentStyle = inject(BaseComponentStyle);\n\n public baseStyle: BaseStyle = inject(BaseStyle);\n\n public scopedStyleEl: any;\n\n public parent = this.$params.parent;\n\n protected readonly cn = cn;\n\n private _themeScopedListener: () => void;\n\n /******************** Inputs ********************/\n\n /**\n * Defines scoped design tokens of the component.\n * @defaultValue undefined\n * @group Props\n */\n dt = input<Object | undefined>();\n /**\n * Indicates whether the component should be rendered without styles.\n *\n * @experimental\n * This property is not yet implemented. It will be available in a future release.\n */\n unstyled = input<boolean | undefined>();\n /**\n * Used to pass attributes to DOM elements inside the component.\n * @defaultValue undefined\n * @group Props\n */\n pt = input<PT | undefined>();\n /**\n * Used to configure passthrough(pt) options of the component.\n * @group Props\n * @defaultValue undefined\n */\n ptOptions = input<PassThroughOptions | undefined>();\n\n /******************** Computed ********************/\n\n $attrSelector = uuid('pc');\n\n get $name() {\n return this['componentName'] || this.constructor?.name?.replace(/^_/, '') || 'UnknownComponent';\n }\n\n private get $hostName() {\n return this['hostName'];\n }\n\n $unstyled = computed(() => {\n return this.unstyled() !== undefined ? this.unstyled() : this.config?.unstyled() || false;\n });\n\n $pt = computed(() => {\n return resolve(this.pt() || this.directivePT(), this.$params);\n });\n\n directivePT = signal<any>(undefined);\n\n get $globalPT() {\n return this._getPT(this.config?.pt(), undefined, (value) => resolve(value, this.$params));\n }\n\n get $defaultPT() {\n return this._getPT(this.config?.pt(), undefined, (value) => this._getOptionValue(value, this.$hostName || this.$name, this.$params) || resolve(value, this.$params));\n }\n\n get $style() {\n return { theme: undefined, css: undefined, classes: undefined, inlineStyles: undefined, ...(this._getHostInstance(this) || {}).$style, ...this['_componentStyle'] };\n }\n\n get $styleOptions() {\n return { nonce: this.config?.csp().nonce };\n }\n\n get $params() {\n const parentInstance = this._getHostInstance(this) || this.$parentInstance;\n\n return {\n instance: this as any,\n parent: {\n instance: parentInstance\n }\n };\n }\n\n /******************** Lifecycle Hooks ********************/\n\n onInit() {\n // NOOP - to be implemented by subclasses\n }\n\n onChanges(changes: SimpleChanges) {\n // NOOP - to be implemented by subclasses\n }\n\n onDoCheck() {\n // NOOP - to be implemented by subclasses\n }\n\n onAfterContentInit() {\n // NOOP - to be implemented by subclasses\n }\n\n onAfterContentChecked() {\n // NOOP - to be implemented by subclasses\n }\n\n onAfterViewInit() {\n // NOOP - to be implemented by subclasses\n }\n\n onAfterViewChecked() {\n // NOOP - to be implemented by subclasses\n }\n\n onDestroy() {\n // NOOP - to be implemented by subclasses\n }\n\n /******************** Angular Lifecycle Hooks ********************/\n\n constructor() {\n // watch _dt_ changes\n effect((onCleanup) => {\n if (this.document && !isPlatformServer(this.platformId)) {\n ThemeService.off('theme:change', this._themeScopedListener);\n\n if (this.dt()) {\n this._loadScopedThemeStyles(this.dt());\n this._themeScopedListener = () => this._loadScopedThemeStyles(this.dt());\n this._themeChangeListener(this._themeScopedListener);\n } else {\n this._unloadScopedThemeStyles();\n }\n }\n\n onCleanup(() => {\n ThemeService.off('theme:change', this._themeScopedListener);\n });\n });\n\n // watch _unstyled_ changes\n effect((onCleanup) => {\n if (this.document && !isPlatformServer(this.platformId)) {\n ThemeService.off('theme:change', this._loadCoreStyles);\n\n if (!this.$unstyled()) {\n this._loadCoreStyles();\n this._themeChangeListener(this._loadCoreStyles); // Update styles with theme settings\n }\n }\n\n onCleanup(() => {\n ThemeService.off('theme:change', this._loadCoreStyles);\n });\n });\n\n this._hook('onBeforeInit');\n }\n\n /**\n * ⚠ Do not override ngOnInit!\n *\n * Use 'onInit()' in subclasses instead.\n */\n ngOnInit() {\n this._loadCoreStyles();\n this._loadStyles();\n\n this.onInit();\n this._hook('onInit');\n }\n\n /**\n * ⚠ Do not override ngOnChanges!\n *\n * Use 'onChanges(changes: SimpleChanges)' in subclasses instead.\n */\n ngOnChanges(changes: SimpleChanges) {\n this.onChanges(changes);\n this._hook('onChanges', changes);\n }\n\n /**\n * ⚠ Do not override ngDoCheck!\n *\n * Use 'onDoCheck()' in subclasses instead.\n */\n ngDoCheck() {\n this.onDoCheck();\n this._hook('onDoCheck');\n }\n\n /**\n * ⚠ Do not override ngAfterContentInit!\n *\n * Use 'onAfterContentInit()' in subclasses instead.\n */\n ngAfterContentInit() {\n this.onAfterContentInit();\n this._hook('onAfterContentInit');\n }\n\n /**\n * ⚠ Do not override ngAfterContentChecked!\n *\n * Use 'onAfterContentChecked()' in subclasses instead.\n */\n ngAfterContentChecked() {\n this.onAfterContentChecked();\n this._hook('onAfterContentChecked');\n }\n\n /**\n * ⚠ Do not override ngAfterViewInit!\n *\n * Use 'onAfterViewInit()' in subclasses instead.\n */\n ngAfterViewInit() {\n // @todo - remove this after implementing pt for root\n this.el?.nativeElement?.setAttribute(this.$attrSelector, '');\n\n this.onAfterViewInit();\n this._hook('onAfterViewInit');\n }\n\n /**\n * ⚠ Do not override ngAfterViewChecked!\n *\n * Use 'onAfterViewChecked()' in subclasses instead.\n */\n ngAfterViewChecked() {\n this.onAfterViewChecked();\n this._hook('onAfterViewChecked');\n }\n\n /**\n * ⚠ Do not override ngOnDestroy!\n *\n * Use 'onDestroy()' in subclasses instead.\n */\n ngOnDestroy() {\n this._removeThemeListeners();\n this._unloadScopedThemeStyles();\n\n this.onDestroy();\n this._hook('onDestroy');\n }\n\n /******************** Methods ********************/\n\n private _mergeProps(fn: any, ...args: any[]) {\n return isFunction(fn) ? fn(...args) : mergeProps(...args);\n }\n\n private _getHostInstance(instance: any) {\n return instance ? (this.$hostName ? (this.$name === this.$hostName ? instance : this._getHostInstance(instance.$parentInstance)) : instance.$parentInstance) : undefined;\n }\n\n private _getPropValue(name: string) {\n return this[name] || this._getHostInstance(this)?.[name];\n }\n\n private _getOptionValue(options: any, key = '', params = {}) {\n return getKeyValue(options, key, params);\n }\n\n private _hook(hookName: string, ...args: any[]) {\n if (!this.$hostName) {\n const selfHook = this._usePT(this._getPT(this.$pt(), this.$name), this._getOptionValue, `hooks.${hookName}`);\n const defaultHook = this._useDefaultPT(this._getOptionValue, `hooks.${hookName}`);\n\n selfHook?.(...args);\n defaultHook?.(...args);\n }\n }\n\n /********** Load Styles **********/\n\n private _load() {\n if (!Base.isStyleNameLoaded('base')) {\n this.baseStyle.loadBaseCSS(this.$styleOptions);\n this._loadGlobalStyles();\n\n Base.setLoadedStyleName('base');\n }\n\n this._loadThemeStyles();\n }\n\n private _loadStyles() {\n this._load();\n this._themeChangeListener(() => this._load());\n }\n\n private _loadGlobalStyles() {\n const globalCSS = this._useGlobalPT(this._getOptionValue, 'global.css', this.$params);\n\n isNotEmpty(globalCSS) && this.baseStyle.load(globalCSS, { name: 'global', ...this.$styleOptions });\n }\n\n private _loadCoreStyles() {\n if (!Base.isStyleNameLoaded(this.$style?.name) && this.$style?.name) {\n this.baseComponentStyle.loadCSS(this.$styleOptions);\n this.$style.loadCSS(this.$styleOptions);\n\n Base.setLoadedStyleName(this.$style.name);\n }\n }\n\n private _loadThemeStyles() {\n if (this.$unstyled() || this.config?.theme() === 'none') return;\n\n // common\n if (!Theme.isStyleNameLoaded('common')) {\n const { primitive, semantic, global, style } = this.$style?.getCommonTheme?.() || {};\n\n this.baseStyle.load(primitive?.css, { name: 'primitive-variables', ...this.$styleOptions });\n this.baseStyle.load(semantic?.css, { name: 'semantic-variables', ...this.$styleOptions });\n this.baseStyle.load(global?.css, { name: 'global-variables', ...this.$styleOptions });\n this.baseStyle.loadBaseStyle({ name: 'global-style', ...this.$styleOptions }, style);\n\n Theme.setLoadedStyleName('common');\n }\n\n // component\n if (!Theme.isStyleNameLoaded(this.$style?.name) && this.$style?.name) {\n const { css, style } = this.$style?.getComponentTheme?.() || {};\n\n this.$style?.load(css, { name: `${this.$style?.name}-variables`, ...this.$styleOptions });\n this.$style?.loadStyle({ name: `${this.$style?.name}-style`, ...this.$styleOptions }, style);\n\n Theme.setLoadedStyleName(this.$style?.name);\n }\n\n // layer order\n if (!Theme.isStyleNameLoaded('layer-order')) {\n const layerOrder = this.$style?.getLayerOrderThemeCSS?.();\n\n this.baseStyle.load(layerOrder, { name: 'layer-order', first: true, ...this.$styleOptions });\n Theme.setLoadedStyleName('layer-order');\n }\n }\n\n private _loadScopedThemeStyles(preset) {\n const { css } = this.$style?.getPresetTheme?.(preset, `[${this.$attrSelector}]`) || {};\n const scopedStyle = this.$style?.load(css, { name: `${this.$attrSelector}-${this.$style?.name}`, ...this.$styleOptions });\n\n this.scopedStyleEl = scopedStyle?.el;\n }\n\n private _unloadScopedThemeStyles() {\n this.scopedStyleEl?.remove();\n }\n\n private _themeChangeListener(callback = () => {}) {\n Base.clearLoadedStyleNames();\n ThemeService.on('theme:change', callback.bind(this));\n }\n\n private _removeThemeListeners() {\n ThemeService.off('theme:change', this._loadCoreStyles);\n ThemeService.off('theme:change', this._load);\n ThemeService.off('theme:change', this._themeScopedListener);\n }\n\n /********** Passthrough **********/\n\n private _getPTValue(obj = {}, key = '', params = {}, searchInDefaultPT = true) {\n const searchOut = /./g.test(key) && !!params[key.split('.')[0]];\n const { mergeSections = true, mergeProps: useMergeProps = false } = this._getPropValue('ptOptions')?.() || this.config?.['ptOptions']?.() || {};\n const global = searchInDefaultPT ? (searchOut ? this._useGlobalPT(this._getPTClassValue, key, params) : this._useDefaultPT(this._getPTClassValue, key, params)) : undefined;\n const self = searchOut ? undefined : this._usePT(this._getPT(obj, this.$hostName || this.$name), this._getPTClassValue, key, { ...params, global: global || {} });\n const datasets = this._getPTDatasets(key);\n\n return mergeSections || (!mergeSections && self) ? (useMergeProps ? this._mergeProps(useMergeProps, global, self, datasets) : { ...global, ...self, ...datasets }) : { ...self, ...datasets };\n }\n\n private _getPTDatasets(key = '') {\n const datasetPrefix = 'data-pc-';\n const isExtended = key === 'root' && isNotEmpty(this.$pt()?.['data-pc-section']);\n\n return (\n key !== 'transition' && {\n ...(key === 'root' && {\n [`${datasetPrefix}name`]: toFlatCase(isExtended ? this.$pt()?.['data-pc-section'] : this.$name),\n ...(isExtended && { [`${datasetPrefix}extend`]: toFlatCase(this.$name) }),\n [`${this.$attrSelector}`]: '' // @todo - use `data-pc-id: this.$attrSelector` instead.\n }),\n [`${datasetPrefix}section`]: toFlatCase(key.includes('.') ? (key.split('.').at(-1) ?? '') : key)\n }\n );\n }\n\n private _getPTClassValue(options?: any, key?: any, params?: any) {\n const value = this._getOptionValue(options, key, params);\n\n return isString(value) || isArray(value) ? { class: value } : value;\n }\n\n private _getPT(pt: any, key = '', callback?: any) {\n const getValue = (value, checkSameKey = false) => {\n const computedValue = callback ? callback(value) : value;\n const _key = toFlatCase(key);\n const _cKey = toFlatCase(this.$hostName || this.$name);\n\n return (checkSameKey ? (_key !== _cKey ? computedValue?.[_key] : undefined) : computedValue?.[_key]) ?? computedValue;\n };\n\n return pt?.hasOwnProperty('_usept')\n ? {\n _usept: pt['_usept'],\n originalValue: getValue(pt.originalValue),\n value: getValue(pt.value)\n }\n : getValue(pt, true);\n }\n\n private _usePT(pt: any, callback: any, key: any, params?: any) {\n const fn = (value) => callback?.call(this, value, key, params);\n\n if (pt?.hasOwnProperty('_usept')) {\n const { mergeSections = true, mergeProps: useMergeProps = false } = pt['_usept'] || this.config?.['ptOptions']() || {};\n const originalValue = fn(pt.originalValue);\n const value = fn(pt.value);\n\n if (originalValue === undefined && value === undefined) return undefined;\n else if (isString(value)) return value;\n else if (isString(originalValue)) return originalValue;\n\n return mergeSections || (!mergeSections && value) ? (useMergeProps ? this._mergeProps(useMergeProps, originalValue, value) : { ...originalValue, ...value }) : value;\n }\n\n return fn(pt);\n }\n\n private _useGlobalPT(callback: any, key: any, params?: any) {\n return this._usePT(this.$globalPT, callback, key, params);\n }\n\n private _useDefaultPT(callback: any, key: any, params?: any) {\n return this._usePT(this.$defaultPT, callback, key, params);\n }\n\n /******************** Exposed API ********************/\n\n public ptm(key = '', params = {}) {\n return this._getPTValue(this.$pt() as any, key, { ...this.$params, ...params });\n }\n\n public ptms(keys: string[], params = {}) {\n return keys.reduce((acc, arg) => {\n acc = mergeProps(acc, this.ptm(arg, params)) || {};\n return acc;\n }, {});\n }\n\n public ptmo(obj = {}, key = '', params = {}) {\n return this._getPTValue(obj, key, { instance: this, ...params }, false);\n }\n\n public cx(key: string, params = {}) {\n return !this.$unstyled() ? cn(this._getOptionValue(this.$style.classes, key, { ...this.$params, ...params })) : undefined;\n }\n\n public sx(key = '', when = true, params = {}) {\n if (when) {\n const self = this._getOptionValue(this.$style.inlineStyles, key, { ...this.$params, ...params }) as Record<string, any>;\n const base = this._getOptionValue(this.baseComponentStyle.inlineStyles, key, { ...this.$params, ...params }) as Record<string, any>;\n\n return { ...base, ...self };\n }\n\n return undefined;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}