add new angular lib
This commit is contained in:
63
admin/projects/rschneider/ng-daisyui/README.md
Normal file
63
admin/projects/rschneider/ng-daisyui/README.md
Normal file
@@ -0,0 +1,63 @@
|
||||
# NgDaisyui
|
||||
|
||||
This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.3.0.
|
||||
|
||||
## Code scaffolding
|
||||
|
||||
Angular CLI includes powerful code scaffolding tools. To generate a new component, run:
|
||||
|
||||
```bash
|
||||
ng generate component component-name
|
||||
```
|
||||
|
||||
For a complete list of available schematics (such as `components`, `directives`, or `pipes`), run:
|
||||
|
||||
```bash
|
||||
ng generate --help
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
To build the library, run:
|
||||
|
||||
```bash
|
||||
ng build ng-daisyui
|
||||
```
|
||||
|
||||
This command will compile your project, and the build artifacts will be placed in the `dist/` directory.
|
||||
|
||||
### Publishing the Library
|
||||
|
||||
Once the project is built, you can publish your library by following these steps:
|
||||
|
||||
1. Navigate to the `dist` directory:
|
||||
```bash
|
||||
cd dist/ng-daisyui
|
||||
```
|
||||
|
||||
2. Run the `npm publish` command to publish your library to the npm registry:
|
||||
```bash
|
||||
npm publish
|
||||
```
|
||||
|
||||
## Running unit tests
|
||||
|
||||
To execute unit tests with the [Karma](https://karma-runner.github.io) test runner, use the following command:
|
||||
|
||||
```bash
|
||||
ng test
|
||||
```
|
||||
|
||||
## Running end-to-end tests
|
||||
|
||||
For end-to-end (e2e) testing, run:
|
||||
|
||||
```bash
|
||||
ng e2e
|
||||
```
|
||||
|
||||
Angular CLI does not come with an end-to-end testing framework by default. You can choose one that suits your needs.
|
||||
|
||||
## Additional Resources
|
||||
|
||||
For more information on using the Angular CLI, including detailed command references, visit the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
|
||||
7
admin/projects/rschneider/ng-daisyui/ng-package.json
Normal file
7
admin/projects/rschneider/ng-daisyui/ng-package.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"$schema": "../../../node_modules/ng-packagr/ng-package.schema.json",
|
||||
"dest": "../../../dist/rschneider/ng-daisyui",
|
||||
"lib": {
|
||||
"entryFile": "src/public-api.ts"
|
||||
}
|
||||
}
|
||||
12
admin/projects/rschneider/ng-daisyui/package.json
Normal file
12
admin/projects/rschneider/ng-daisyui/package.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"name": "@rschneider/ng-daisyui",
|
||||
"version": "0.0.1",
|
||||
"peerDependencies": {
|
||||
"@angular/common": "^20.3.0",
|
||||
"@angular/core": "^20.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": "^2.3.0"
|
||||
},
|
||||
"sideEffects": false
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
<button
|
||||
[disabled]="disabled()"
|
||||
|
||||
[ngClass]="{
|
||||
'btn': true,
|
||||
'btn-primary': variant() === 'primary',
|
||||
'btn-secondary': variant() === 'secondary',
|
||||
'btn-accent': variant() === 'accent',
|
||||
'btn-info': variant() === 'info',
|
||||
'btn-success': variant() === 'success',
|
||||
'btn-warning': variant() === 'warning',
|
||||
'btn-error': variant() === 'error',
|
||||
'btn-ghost': variant() === 'ghost',
|
||||
'btn-link': variant() === 'link',
|
||||
|
||||
'btn-lg': size() === 'lg',
|
||||
'btn-md': size() === 'md',
|
||||
'btn-sm': size() === 'sm',
|
||||
'btn-xs': size() === 'xs',
|
||||
|
||||
'btn-outline': outline(),
|
||||
'btn-active': active(),
|
||||
'btn-glass': glass(),
|
||||
'btn-square': square(),
|
||||
'btn-circle': circle(),
|
||||
'btn-wide': wide(),
|
||||
'btn-block': block(),
|
||||
'no-animation': noAnimation(),
|
||||
'loading': loading(),
|
||||
'btn-responsive': responsive()
|
||||
}"
|
||||
[class]="customClass()"
|
||||
(click)="onClick($event)"
|
||||
>
|
||||
<ng-content />
|
||||
</button>
|
||||
@@ -0,0 +1,23 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { Button } from './button';
|
||||
|
||||
describe('Button', () => {
|
||||
let component: Button;
|
||||
let fixture: ComponentFixture<Button>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [Button]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(Button);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@@ -0,0 +1,60 @@
|
||||
// rs-daisy-button.component.ts
|
||||
import { Component, input, HostBinding, output } from '@angular/core';
|
||||
import { NgClass } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'rs-daisy-button',
|
||||
standalone: true,
|
||||
templateUrl: 'button.html',
|
||||
imports: [NgClass]
|
||||
})
|
||||
export class Button {
|
||||
// Daisy UI Button Props as Angular Inputs
|
||||
// Sizes: lg, md, sm, xs
|
||||
size = input<'lg' | 'md' | 'sm' | 'xs' | null>(null);
|
||||
// States: primary, secondary, accent, info, success, warning, error, ghost, link
|
||||
variant = input<'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error' | 'ghost' | 'link' | null>(null);
|
||||
// Outlined
|
||||
outline = input<boolean>(false);
|
||||
// Active
|
||||
active = input<boolean>(false);
|
||||
// Disabled
|
||||
disabled = input<boolean>(false);
|
||||
// Glass
|
||||
glass = input<boolean>(false);
|
||||
// Square
|
||||
square = input<boolean>(false);
|
||||
// Circle
|
||||
circle = input<boolean>(false);
|
||||
// Wide
|
||||
wide = input<boolean>(false);
|
||||
// Block
|
||||
block = input<boolean>(false);
|
||||
// No animation
|
||||
noAnimation = input<boolean>(false);
|
||||
// Loading
|
||||
loading = input<boolean>(false);
|
||||
// Responsive
|
||||
responsive = input<boolean>(false);
|
||||
|
||||
// You can also add a custom class input if needed
|
||||
customClass = input<string | null>(null);
|
||||
|
||||
@HostBinding('attr.disabled') get isDisabled() {
|
||||
return this.disabled() ? true : null;
|
||||
}
|
||||
|
||||
// New Output for the click event
|
||||
// By default, it emits 'void' (no specific data), but you could specify a type if needed.
|
||||
readonly clickEvent = output<MouseEvent>();
|
||||
|
||||
// Event handler method
|
||||
onClick(event: MouseEvent): void {
|
||||
// Prevent default browser behavior for buttons if needed (e.g., form submission)
|
||||
// event.preventDefault();
|
||||
|
||||
// Emit the click event
|
||||
this.clickEvent.emit(event);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
import { ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { NgDaisyui } from './ng-daisyui';
|
||||
|
||||
describe('NgDaisyui', () => {
|
||||
let component: NgDaisyui;
|
||||
let fixture: ComponentFixture<NgDaisyui>;
|
||||
|
||||
beforeEach(async () => {
|
||||
await TestBed.configureTestingModule({
|
||||
imports: [NgDaisyui]
|
||||
})
|
||||
.compileComponents();
|
||||
|
||||
fixture = TestBed.createComponent(NgDaisyui);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
15
admin/projects/rschneider/ng-daisyui/src/lib/ng-daisyui.ts
Normal file
15
admin/projects/rschneider/ng-daisyui/src/lib/ng-daisyui.ts
Normal file
@@ -0,0 +1,15 @@
|
||||
import { Component } from '@angular/core';
|
||||
|
||||
@Component({
|
||||
selector: 'rs-daisy-ng-daisyui',
|
||||
imports: [],
|
||||
template: `
|
||||
<p>
|
||||
ng-daisyui works!
|
||||
</p>
|
||||
`,
|
||||
styles: ``,
|
||||
})
|
||||
export class NgDaisyui {
|
||||
|
||||
}
|
||||
6
admin/projects/rschneider/ng-daisyui/src/public-api.ts
Normal file
6
admin/projects/rschneider/ng-daisyui/src/public-api.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
/*
|
||||
* Public API Surface of ng-daisyui
|
||||
*/
|
||||
|
||||
export * from './lib/ng-daisyui';
|
||||
export * from './lib/components/button/button';
|
||||
18
admin/projects/rschneider/ng-daisyui/tsconfig.lib.json
Normal file
18
admin/projects/rschneider/ng-daisyui/tsconfig.lib.json
Normal file
@@ -0,0 +1,18 @@
|
||||
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
||||
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
||||
{
|
||||
"extends": "../../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../../out-tsc/lib",
|
||||
"declaration": true,
|
||||
"declarationMap": true,
|
||||
"inlineSources": true,
|
||||
"types": []
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"**/*.spec.ts"
|
||||
]
|
||||
}
|
||||
11
admin/projects/rschneider/ng-daisyui/tsconfig.lib.prod.json
Normal file
11
admin/projects/rschneider/ng-daisyui/tsconfig.lib.prod.json
Normal file
@@ -0,0 +1,11 @@
|
||||
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
||||
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
||||
{
|
||||
"extends": "./tsconfig.lib.json",
|
||||
"compilerOptions": {
|
||||
"declarationMap": false
|
||||
},
|
||||
"angularCompilerOptions": {
|
||||
"compilationMode": "partial"
|
||||
}
|
||||
}
|
||||
14
admin/projects/rschneider/ng-daisyui/tsconfig.spec.json
Normal file
14
admin/projects/rschneider/ng-daisyui/tsconfig.spec.json
Normal file
@@ -0,0 +1,14 @@
|
||||
/* To learn more about Typescript configuration file: https://www.typescriptlang.org/docs/handbook/tsconfig-json.html. */
|
||||
/* To learn more about Angular compiler options: https://angular.dev/reference/configs/angular-compiler-options. */
|
||||
{
|
||||
"extends": "../../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"outDir": "../../../out-tsc/spec",
|
||||
"types": [
|
||||
"jasmine"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user