UNPKG

ng-prime-tools

Version:

An advanced PrimeNG table for Angular

87 lines 14.6 kB
import { Component, Input, } from '@angular/core'; import * as i0 from "@angular/core"; import * as i1 from "primeng/button"; export class PTButtonComponent { constructor(renderer, el) { this.renderer = renderer; this.el = el; } ngOnInit() { // Fallback to default config if undefined if (!this.buttonConfig) { this.buttonConfig = { label: 'Click Me', icon: '', iconPos: 'left', disabled: false, styleClass: '', loading: false, type: 'button', width: '100%', height: 'auto', fontColor: '#000', backgroundColor: '#fff', borderColor: '#000', }; } } ngOnChanges(changes) { const configChange = changes['buttonConfig']; if (configChange) { const prev = configChange.previousValue; const curr = configChange.currentValue; if (prev && curr) { const onlyDisabledChanged = prev.disabled !== curr.disabled && JSON.stringify({ ...prev, disabled: undefined }) === JSON.stringify({ ...curr, disabled: undefined }); if (onlyDisabledChanged) { this.updateDisabledStyles(curr.disabled); } else { this.applyButtonStyles(); } } else { // If no previous value (first load), apply full styles this.applyButtonStyles(); } } } updateDisabledStyles(isDisabled) { const buttonElement = this.el.nativeElement.querySelector('button.p-element'); if (buttonElement) { this.renderer.setStyle(buttonElement, 'color', isDisabled ? '#999' : this.buttonConfig.fontColor); this.renderer.setStyle(buttonElement, 'background-color', isDisabled ? '#e0e0e0' : this.buttonConfig.backgroundColor); this.renderer.setStyle(buttonElement, 'border-color', isDisabled ? '#bdbdbd' : this.buttonConfig.borderColor); } } ngAfterViewInit() { this.applyButtonStyles(); } getIconPos() { return this.buttonConfig.iconPos === 'right' ? 'right' : 'left'; } getType() { return this.buttonConfig.type || 'button'; } applyButtonStyles() { const buttonElement = this.el.nativeElement.querySelector('button.p-element'); if (buttonElement && this.buttonConfig) { const isDisabled = this.buttonConfig.disabled; this.renderer.setStyle(buttonElement, 'color', isDisabled ? '#999' : this.buttonConfig.fontColor); this.renderer.setStyle(buttonElement, 'background-color', isDisabled ? '#e0e0e0' : this.buttonConfig.backgroundColor); this.renderer.setStyle(buttonElement, 'border-color', isDisabled ? '#bdbdbd' : this.buttonConfig.borderColor); this.renderer.setStyle(buttonElement, 'width', this.buttonConfig.width || 'auto'); this.renderer.setStyle(buttonElement, 'height', this.buttonConfig.height || 'auto'); } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTButtonComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.11", type: PTButtonComponent, selector: "pt-button", inputs: { buttonConfig: "buttonConfig" }, usesOnChanges: true, ngImport: i0, template: "<p-button\n [label]=\"buttonConfig.label\"\n [icon]=\"buttonConfig.icon || ''\"\n [iconPos]=\"getIconPos()\"\n [disabled]=\"buttonConfig.disabled\"\n [loading]=\"buttonConfig.loading\"\n [class]=\"buttonConfig.styleClass || ''\"\n [type]=\"getType()\"\n></p-button>\n", styles: ["::ng-deep p-button{display:block}\n"], dependencies: [{ kind: "component", type: i1.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: PTButtonComponent, decorators: [{ type: Component, args: [{ selector: 'pt-button', template: "<p-button\n [label]=\"buttonConfig.label\"\n [icon]=\"buttonConfig.icon || ''\"\n [iconPos]=\"getIconPos()\"\n [disabled]=\"buttonConfig.disabled\"\n [loading]=\"buttonConfig.loading\"\n [class]=\"buttonConfig.styleClass || ''\"\n [type]=\"getType()\"\n></p-button>\n", styles: ["::ng-deep p-button{display:block}\n"] }] }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { buttonConfig: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHQtYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXByaW1lLXRvb2xzL3NyYy9saWIvcHQtYnV0dG9uL3B0LWJ1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1wcmltZS10b29scy9zcmMvbGliL3B0LWJ1dHRvbi9wdC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEdBT04sTUFBTSxlQUFlLENBQUM7OztBQVF2QixNQUFNLE9BQU8saUJBQWlCO0lBRzVCLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUFHLENBQUM7SUFFbkUsUUFBUTtRQUNOLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUc7Z0JBQ2xCLEtBQUssRUFBRSxVQUFVO2dCQUNqQixJQUFJLEVBQUUsRUFBRTtnQkFDUixPQUFPLEVBQUUsTUFBTTtnQkFDZixRQUFRLEVBQUUsS0FBSztnQkFDZixVQUFVLEVBQUUsRUFBRTtnQkFDZCxPQUFPLEVBQUUsS0FBSztnQkFDZCxJQUFJLEVBQUUsUUFBUTtnQkFDZCxLQUFLLEVBQUUsTUFBTTtnQkFDYixNQUFNLEVBQUUsTUFBTTtnQkFDZCxTQUFTLEVBQUUsTUFBTTtnQkFDakIsZUFBZSxFQUFFLE1BQU07Z0JBQ3ZCLFdBQVcsRUFBRSxNQUFNO2FBQ3BCLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFN0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNq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Q0FDM0QsQ0FBQztZQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixhQUFhLEVBQ2IsY0FBYyxFQUNkLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FDdkQsQ0FBQztZQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixhQUFhLEVBQ2IsT0FBTyxFQUNQLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FDbEMsQ0FBQztZQUVGLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUNwQixhQUFhLEVBQ2IsUUFBUSxFQUNSLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FDbkMsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDOytHQXpIVSxpQkFBaUI7bUdBQWpCLGlCQUFpQixnSENqQjlCLG9SQVNBOzs0RkRRYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsV0FBVzt1R0FLWixZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBSZW5kZXJlcjIsXG4gIEVsZW1lbnRSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIE9uQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Nb2RlbCB9IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3B0LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9wdC1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wdC1idXR0b24uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBQVEJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgYnV0dG9uQ29uZmlnITogQnV0dG9uTW9kZWw7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIEZhbGxiYWNrIHRvIGRlZmF1bHQgY29uZmlnIGlmIHVuZGVmaW5lZFxuICAgIGlmICghdGhpcy5idXR0b25Db25maWcpIHtcbiAgICAgIHRoaXMuYnV0dG9uQ29uZmlnID0ge1xuICAgICAgICBsYWJlbDogJ0NsaWNrIE1lJyxcbiAgICAgICAgaWNvbjogJycsXG4gICAgICAgIGljb25Qb3M6ICdsZWZ0JyxcbiAgICAgICAgZGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBzdHlsZUNsYXNzOiAnJyxcbiAgICAgICAgbG9hZGluZzogZmFsc2UsXG4gICAgICAgIHR5cGU6ICdidXR0b24nLFxuICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICBoZWlnaHQ6ICdhdXRvJyxcbiAgICAgICAgZm9udENvbG9yOiAnIzAwMCcsXG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJyNmZmYnLFxuICAgICAgICBib3JkZXJDb2xvcjogJyMwMDAnLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgY29uc3QgY29uZmlnQ2hhbmdlID0gY2hhbmdlc1snYnV0dG9uQ29uZmlnJ107XG5cbiAgICBpZiAoY29uZmlnQ2hhbmdlKSB7XG4gICAgICBjb25zdCBwcmV2ID0gY29uZmlnQ2hhbmdlLnByZXZpb3VzVmFsdWU7XG4gICAgICBjb25zdCBjdXJyID0gY29uZmlnQ2hhbmdlLmN1cnJlbnRWYWx1ZTtcblxuICAgICAgaWYgKHByZXYgJiYgY3Vycikge1xuICAgICAgICBjb25zdCBvbmx5RGlzYWJsZWRDaGFuZ2VkID1cbiAgICAgICAgICBwcmV2LmRpc2FibGVkICE9PSBjdXJyLmRpc2FibGVkICYmXG4gICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyAuLi5wcmV2LCBkaXNhYmxlZDogdW5kZWZpbmVkIH0pID09PVxuICAgICAgICAgICAgSlNPTi5zdHJpbmdpZnkoeyAuLi5jdXJyLCBkaXNhYmxlZDogdW5kZWZpbmVkIH0pO1xuXG4gICAgICAgIGlmIChvbmx5RGlzYWJsZWRDaGFuZ2VkKSB7XG4gICAgICAgICAgdGhpcy51cGRhdGVEaXNhYmxlZFN0eWxlcyhjdXJyLmRpc2FibGVkKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmFwcGx5QnV0dG9uU3R5bGVzKCk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIElmIG5vIHByZXZpb3VzIHZhbHVlIChmaXJzdCBsb2FkKSwgYXBwbHkgZnVsbCBzdHlsZXNcbiAgICAgICAgdGhpcy5hcHBseUJ1dHRvblN0eWxlcygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICB1cGRhdGVEaXNhYmxlZFN0eWxlcyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgYnV0dG9uRWxlbWVudCA9XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignYnV0dG9uLnAtZWxlbWVudCcpO1xuXG4gICAgaWYgKGJ1dHRvbkVsZW1lbnQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIGJ1dHRvbkVsZW1lbnQsXG4gICAgICAgICdjb2xvcicsXG4gICAgICAgIGlzRGlzYWJsZWQgPyAnIzk5OScgOiB0aGlzLmJ1dHRvbkNvbmZpZy5mb250Q29sb3JcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICBidXR0b25FbGVtZW50LFxuICAgICAgICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICAgICAgIGlzRGlzYWJsZWQgPyAnI2UwZTBlMCcgOiB0aGlzLmJ1dHRvbkNvbmZpZy5iYWNrZ3JvdW5kQ29sb3JcbiAgICAgICk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICBidXR0b25FbGVtZW50LFxuICAgICAgICAnYm9yZGVyLWNvbG9yJyxcbiAgICAgICAgaXNEaXNhYmxlZCA/ICcjYmRiZGJkJyA6IHRoaXMuYnV0dG9uQ29uZmlnLmJvcmRlckNvbG9yXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5QnV0dG9uU3R5bGVzKCk7XG4gIH1cblxuICBnZXRJY29uUG9zKCk6ICdsZWZ0JyB8ICdyaWdodCcge1xuICAgIHJldHVybiB0aGlzLmJ1dHRvbkNvbmZpZy5pY29uUG9zID09PSAncmlnaHQnID8gJ3JpZ2h0JyA6ICdsZWZ0JztcbiAgfVxuXG4gIGdldFR5cGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idXR0b25Db25maWcudHlwZSB8fCAnYnV0dG9uJztcbiAgfVxuXG4gIGFwcGx5QnV0dG9uU3R5bGVzKCk6IHZvaWQge1xuICAgIGNvbnN0IGJ1dHRvbkVsZW1lbnQgPVxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbi5wLWVsZW1lbnQnKTtcblxuICAgIGlmIChidXR0b25FbGVtZW50ICYmIHRoaXMuYnV0dG9uQ29uZmlnKSB7XG4gICAgICBjb25zdCBpc0Rpc2FibGVkID0gdGhpcy5idXR0b25Db25maWcuZGlzYWJsZWQ7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIGJ1dHRvbkVsZW1lbnQsXG4gICAgICAgICdjb2xvcicsXG4gICAgICAgIGlzRGlzYWJsZWQgPyAnIzk5OScgOiB0aGlzLmJ1dHRvbkNvbmZpZy5mb250Q29sb3JcbiAgICAgICk7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoXG4gICAgICAgIGJ1dHRvbkVsZW1lbnQsXG4gICAgICAgICdiYWNrZ3JvdW5kLWNvbG9yJyxcbiAgICAgICAgaXNEaXNhYmxlZCA/ICcjZTBlMGUwJyA6IHRoaXMuYnV0dG9uQ29uZmlnLmJhY2tncm91bmRDb2xvclxuICAgICAgKTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgYnV0dG9uRWxlbWVudCxcbiAgICAgICAgJ2JvcmRlci1jb2xvcicsXG4gICAgICAgIGlzRGlzYWJsZWQgPyAnI2JkYmRiZCcgOiB0aGlzLmJ1dHRvbkNvbmZpZy5ib3JkZXJDb2xvclxuICAgICAgKTtcblxuICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShcbiAgICAgICAgYnV0dG9uRWxlbWVudCxcbiAgICAgICAgJ3dpZHRoJyxcbiAgICAgICAgdGhpcy5idXR0b25Db25maWcud2lkdGggfHwgJ2F1dG8nXG4gICAgICApO1xuXG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKFxuICAgICAgICBidXR0b25FbGVtZW50LFxuICAgICAgICAnaGVpZ2h0JyxcbiAgICAgICAgdGhpcy5idXR0b25Db25maWcuaGVpZ2h0IHx8ICdhdXRvJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxwLWJ1dHRvblxuICBbbGFiZWxdPVwiYnV0dG9uQ29uZmlnLmxhYmVsXCJcbiAgW2ljb25dPVwiYnV0dG9uQ29uZmlnLmljb24gfHwgJydcIlxuICBbaWNvblBvc109XCJnZXRJY29uUG9zKClcIlxuICBbZGlzYWJsZWRdPVwiYnV0dG9uQ29uZmlnLmRpc2FibGVkXCJcbiAgW2xvYWRpbmddPVwiYnV0dG9uQ29uZmlnLmxvYWRpbmdcIlxuICBbY2xhc3NdPVwiYnV0dG9uQ29uZmlnLnN0eWxlQ2xhc3MgfHwgJydcIlxuICBbdHlwZV09XCJnZXRUeXBlKClcIlxuPjwvcC1idXR0b24+XG4iXX0=