From 7e59a69b1ca6f491c2e69e7f127b20c4c1f7aefd Mon Sep 17 00:00:00 2001 From: Arthur Ming Date: Mon, 20 Nov 2023 15:28:04 +0800 Subject: [PATCH] feat: add standalone directive support --- .github/workflows/main.yml | 4 +++- package.json | 4 ++-- .../src/favicon.ico | Bin 948 -> 15086 bytes .../lib/mat-basic-spinner.directive.spec.ts | 5 ++++- .../src/lib/mat-basic-spinner.directive.ts | 3 ++- .../lib/mat-glow/mat-glow.directive.spec.ts | 7 +++++-- .../src/lib/mat-glow/mat-glow.directive.ts | 5 +++-- .../src/lib/ngx-loading-buttons.module.ts | 6 +++--- 8 files changed, 22 insertions(+), 12 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 21f9af2..a3edd7e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,9 +36,11 @@ jobs: # that will run `ngcc` compiler accordingly. if: steps.npm-cache.outputs.cache-hit != 'true' run: npm ci - + - name: Test library run: npm run test:ngx-loading-buttons - name: Build library run: npm run build:ngx-loading-buttons + - name: Build playground + run: npm run build diff --git a/package.json b/package.json index b4ceae5..2d351ab 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "scripts": { "ng": "ng", "start": "ng serve", - "build": "ng build", + "build": "ng build ngx-loading-buttons-playground", "build:ngx-loading-buttons": "ng-packagr -p projects/ngx-loading-buttons/ng-package.json && cd projects/ngx-loading-buttons && npm run build", "test:ngx-loading-buttons": "ng test ngx-loading-buttons", "watch": "ng build --watch --configuration development" @@ -41,4 +41,4 @@ "ng-packagr": "^17.0.0", "typescript": "~5.2.2" } -} \ No newline at end of file +} diff --git a/projects/ngx-loading-buttons-playground/src/favicon.ico b/projects/ngx-loading-buttons-playground/src/favicon.ico index 997406ad22c29aae95893fb3d666c30258a09537..57614f9c967596fad0a3989bec2b1deff33034f6 100644 GIT binary patch literal 15086 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 Nr__JTFzvMr^FKp4S3v*( literal 948 zcmV;l155mgP)CBYU7IjCFmI-B}4sMJt3^s9NVg!P0 z6hDQy(L`XWMkB@zOLgN$4KYz;j0zZxq9KKdpZE#5@k0crP^5f9KO};h)ZDQ%ybhht z%t9#h|nu0K(bJ ztIkhEr!*UyrZWQ1k2+YkGqDi8Z<|mIN&$kzpKl{cNP=OQzXHz>vn+c)F)zO|Bou>E z2|-d_=qY#Y+yOu1a}XI?cU}%04)zz%anD(XZC{#~WreV!a$7k2Ug`?&CUEc0EtrkZ zL49MB)h!_K{H(*l_93D5tO0;BUnvYlo+;yss%n^&qjt6fZOa+}+FDO(~2>G z2dx@=JZ?DHP^;b7*Y1as5^uphBsh*s*z&MBd?e@I>-9kU>63PjP&^#5YTOb&x^6Cf z?674rmSHB5Fk!{Gv7rv!?qX#ei_L(XtwVqLX3L}$MI|kJ*w(rhx~tc&L&xP#?cQow zX_|gx$wMr3pRZIIr_;;O|8fAjd;1`nOeu5K(pCu7>^3E&D2OBBq?sYa(%S?GwG&_0-s%_v$L@R!5H_fc)lOb9ZoOO#p`Nn`KU z3LTTBtjwo`7(HA6 z7gmO$yTR!5L>Bsg!X8616{JUngg_@&85%>W=mChTR;x4`P=?PJ~oPuy5 zU-L`C@_!34D21{fD~Y8NVnR3t;aqZI3fIhmgmx}$oc-dKDC6Ap$Gy>a!`A*x2L1v0 WcZ@i?LyX}70000 { beforeEach(() => { fixture = TestBed.configureTestingModule({ - declarations: [AppComponent, MatBasicSpinnerDirective] + imports: [ + MatBasicSpinnerDirective + ], + declarations: [AppComponent] }) .createComponent(AppComponent); diff --git a/projects/ngx-loading-buttons/src/lib/mat-basic-spinner.directive.ts b/projects/ngx-loading-buttons/src/lib/mat-basic-spinner.directive.ts index 42355c8..3410cf4 100644 --- a/projects/ngx-loading-buttons/src/lib/mat-basic-spinner.directive.ts +++ b/projects/ngx-loading-buttons/src/lib/mat-basic-spinner.directive.ts @@ -1,7 +1,8 @@ import { Directive, HostBinding, Input } from '@angular/core'; @Directive({ - selector: '[mtBasicSpinner]' + selector: '[mtBasicSpinner]', + standalone: true, }) export class MatBasicSpinnerDirective { @Input() hideText = false diff --git a/projects/ngx-loading-buttons/src/lib/mat-glow/mat-glow.directive.spec.ts b/projects/ngx-loading-buttons/src/lib/mat-glow/mat-glow.directive.spec.ts index 5bd9efb..a2cea45 100644 --- a/projects/ngx-loading-buttons/src/lib/mat-glow/mat-glow.directive.spec.ts +++ b/projects/ngx-loading-buttons/src/lib/mat-glow/mat-glow.directive.spec.ts @@ -3,12 +3,15 @@ import { AppComponent } from 'projects/ngx-loading-buttons-playground/src/app/ap import { MatGlowDirective } from './mat-glow.directive'; describe('MatGlowDirective', () => { - + let fixture: ComponentFixture; beforeEach(() => { fixture = TestBed.configureTestingModule({ - declarations: [AppComponent, MatGlowDirective] + imports: [ + MatGlowDirective + ], + declarations: [AppComponent] }) .createComponent(AppComponent); diff --git a/projects/ngx-loading-buttons/src/lib/mat-glow/mat-glow.directive.ts b/projects/ngx-loading-buttons/src/lib/mat-glow/mat-glow.directive.ts index 75cf08c..b587d12 100644 --- a/projects/ngx-loading-buttons/src/lib/mat-glow/mat-glow.directive.ts +++ b/projects/ngx-loading-buttons/src/lib/mat-glow/mat-glow.directive.ts @@ -1,7 +1,8 @@ import { Directive, HostBinding, Input } from '@angular/core'; @Directive({ - selector: '[mtGlow]' + selector: '[mtGlow]', + standalone: true, }) export class MatGlowDirective { @@ -9,7 +10,7 @@ export class MatGlowDirective { @Input() mtGlow = false; @Input() hideText = false; - @Input("class") + @Input("class") @HostBinding('class') get elementClass(): string { document.documentElement.style.setProperty('--glow-color', this.glowColor); diff --git a/projects/ngx-loading-buttons/src/lib/ngx-loading-buttons.module.ts b/projects/ngx-loading-buttons/src/lib/ngx-loading-buttons.module.ts index 92416b1..9c16338 100644 --- a/projects/ngx-loading-buttons/src/lib/ngx-loading-buttons.module.ts +++ b/projects/ngx-loading-buttons/src/lib/ngx-loading-buttons.module.ts @@ -3,9 +3,9 @@ import { MatBasicSpinnerDirective } from './mat-basic-spinner.directive'; import { MatGlowDirective } from './mat-glow/mat-glow.directive'; @NgModule({ - declarations: [ - MatBasicSpinnerDirective, - MatGlowDirective + imports: [ + MatGlowDirective, + MatBasicSpinnerDirective ], exports: [ MatBasicSpinnerDirective,