UNPKG

@omnedia/ngx-shine-border

Version:

A simple component library to create a container with an animated border.

1 lines 5.87 kB
{"version":3,"file":"omnedia-ngx-shine-border.mjs","sources":["../../../projects/ngx-shine-border/src/lib/ngx-shine-border.component.ts","../../../projects/ngx-shine-border/src/lib/ngx-shine-border.component.html","../../../projects/ngx-shine-border/src/public-api.ts","../../../projects/ngx-shine-border/src/omnedia-ngx-shine-border.ts"],"sourcesContent":["import {CommonModule, isPlatformBrowser} from \"@angular/common\";\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ElementRef,\r\n Inject,\r\n Input,\r\n OnDestroy,\r\n PLATFORM_ID,\r\n signal,\r\n ViewChild\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"om-shine-border\",\r\n standalone: true,\r\n imports: [CommonModule],\r\n templateUrl: \"./ngx-shine-border.component.html\",\r\n styleUrl: \"./ngx-shine-border.component.scss\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class NgxShineBorderComponent implements AfterViewInit, OnDestroy {\r\n @ViewChild(\"OmShineBorderWrapper\") shineBorderRef!: ElementRef<HTMLElement>;\r\n\r\n @Input(\"styleClass\")\r\n styleClass?: string;\r\n\r\n @Input(\"gradientColorStart\")\r\n set colorFrom(color: string) {\r\n this.style[\"--color-from\"] = color;\r\n }\r\n\r\n @Input(\"gradientColorMiddle\")\r\n set colorMiddle(color: string) {\r\n this.style[\"--color-middle\"] = color;\r\n }\r\n\r\n @Input(\"gradientColorEnd\")\r\n set colorTo(color: string) {\r\n this.style[\"--color-to\"] = color;\r\n }\r\n\r\n @Input(\"borderRadius\")\r\n set borderRadius(radius: string) {\r\n this.style[\"--border-radius\"] = radius;\r\n }\r\n\r\n @Input(\"borderColor\")\r\n set borderColor(color: string) {\r\n this.style[\"--border-color\"] = color;\r\n }\r\n\r\n @Input(\"animationDuration\")\r\n set animationDuration(duration: string) {\r\n this.style[\"--animation-duration\"] = duration;\r\n }\r\n\r\n style: any = {};\r\n\r\n isInView = signal(false);\r\n private intersectionObserver?: IntersectionObserver;\r\n\r\n constructor(\r\n @Inject(PLATFORM_ID) private platformId: object\r\n ) {\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n if (isPlatformBrowser(this.platformId)) {\r\n this.intersectionObserver = new IntersectionObserver(([entry]) => {\r\n this.isInView.set(entry.isIntersecting);\r\n });\r\n this.intersectionObserver.observe(this.shineBorderRef.nativeElement);\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (this.intersectionObserver) {\r\n this.intersectionObserver.disconnect();\r\n }\r\n }\r\n}\r\n","<div class=\"om-shine-border-wrapper\" #OmShineBorderWrapper>\r\n <div class=\"om-shine-border\" [ngStyle]=\"style\" [ngClass]=\"styleClass\">\r\n <div class=\"om-shine-border-border\" [class.paused]=\"!isInView()\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n</div>\r\n","/*\r\n * Public API Surface of ngx-shine-border\r\n */\r\n\r\nexport * from \"./lib/ngx-shine-border.component\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;MAsBa,uBAAuB,CAAA;AA0CH,IAAA,UAAA;AAzCI,IAAA,cAAc;AAGjD,IAAA,UAAU;IAEV,IACI,SAAS,CAAC,KAAa,EAAA;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,GAAG,KAAK;;IAGpC,IACI,WAAW,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,KAAK;;IAGtC,IACI,OAAO,CAAC,KAAa,EAAA;AACvB,QAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,GAAG,KAAK;;IAGlC,IACI,YAAY,CAAC,MAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,MAAM;;IAGxC,IACI,WAAW,CAAC,KAAa,EAAA;AAC3B,QAAA,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,KAAK;;IAGtC,IACI,iBAAiB,CAAC,QAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,GAAG,QAAQ;;IAG/C,KAAK,GAAQ,EAAE;AAEf,IAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AAChB,IAAA,oBAAoB;AAE5B,IAAA,WAAA,CAC+B,UAAkB,EAAA;QAAlB,IAAU,CAAA,UAAA,GAAV,UAAU;;IAIzC,eAAe,GAAA;AACb,QAAA,IAAI,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;YACtC,IAAI,CAAC,oBAAoB,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI;gBAC/D,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC;AACzC,aAAC,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;;;IAIxE,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,oBAAoB,EAAE;AAC7B,YAAA,IAAI,CAAC,oBAAoB,CAAC,UAAU,EAAE;;;AAzD/B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBA0CxB,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FA1CV,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,CAAA,oBAAA,EAAA,WAAA,CAAA,EAAA,WAAA,EAAA,CAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,kBAAA,EAAA,SAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,sBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBpC,+RAMA,EAAA,MAAA,EAAA,CAAA,m0CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDWY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;2FAKX,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBARnC,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,eAAA,EAGN,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,+RAAA,EAAA,MAAA,EAAA,CAAA,m0CAAA,CAAA,EAAA;;0BA4C5C,MAAM;2BAAC,WAAW;yCAzCc,cAAc,EAAA,CAAA;sBAAhD,SAAS;uBAAC,sBAAsB;gBAGjC,UAAU,EAAA,CAAA;sBADT,KAAK;uBAAC,YAAY;gBAIf,SAAS,EAAA,CAAA;sBADZ,KAAK;uBAAC,oBAAoB;gBAMvB,WAAW,EAAA,CAAA;sBADd,KAAK;uBAAC,qBAAqB;gBAMxB,OAAO,EAAA,CAAA;sBADV,KAAK;uBAAC,kBAAkB;gBAMrB,YAAY,EAAA,CAAA;sBADf,KAAK;uBAAC,cAAc;gBAMjB,WAAW,EAAA,CAAA;sBADd,KAAK;uBAAC,aAAa;gBAMhB,iBAAiB,EAAA,CAAA;sBADpB,KAAK;uBAAC,mBAAmB;;;AErD5B;;AAEG;;ACFH;;AAEG;;;;"}