open-index/open-npm huggingface dataset:
npm package: @se-ng/dummy-demo
Description: This library was generated with [Nx](https://nx.dev).
Latest version: 0.0.23

# @se-ng-dummy-demo

This library was generated with [Nx](https://nx.dev).

## Running unit tests

Run `nx test @se-ng-dummy-demo` to execute the unit tests via [Jest](https://jestjs.io).
npm package: @se-ng/dummy-login
Description: This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.
Latest version: 0.1.0

# DummyLogin

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 18.2.0.

## Code scaffolding

Run `ng generate component component-name --project dummy-login` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project dummy-login`.
> Note: Don't forget to add `--project dummy-login` or else it will be added to the default project in your `angular.json` file. 

## Build

Run `ng build dummy-login` to build the project. The build artifacts will be stored in the `dist/` directory.

## Publishing

After building your library with `ng build dummy-login`, go to the dist folder `cd dist/dummy-login` and run `npm publish`.

## Running unit tests

Run `ng test dummy-login` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.dev/tools/cli) page.
npm package: @se-ng/headless-ui
Description: This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.1.0.
Latest version: 20.0.1

# HeadlessUi

This project was generated using [Angular CLI](https://github.com/angular/angular-cli) version 20.1.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 headless-ui
```

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/headless-ui
   ```

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.
npm package: @se-ng/ivy-life-cycle-decorators
Description: Beta notice: This lib is considered beta, until Ivy is the primary renderer in Angular A typescript decorator to be able to use Angular life-cycle hooks in an observable way. Works with Ivy only.
Latest version: 0.0.7

# Ivy Life Cycle Decorators

Beta notice: This lib is considered beta, until Ivy is the primary renderer in Angular
A typescript decorator to be able to use Angular life-cycle hooks in an observable way. Works with Ivy only.

Those life-cycle observables will make the reactive way of programming a lot easier. There is no more need to manually create an subject. For a quick before/after comparison, I added the sample in a 'before' state at the end of the document.



to use the library do:

```bash
yarn add @se-ng/ivy-life-cycle-decorators
```


## Sample:

### Result

![sample](https://github.com/SanderElias/ngObservableForm/raw/master/projects/se-ng/ivy-life-cycle-decorators/img/sample.png)

### Code
```typescript
import {Component} from '@angular/core';
import {LifeCycleHook} from '@se-ng/ivy-life-cycle-decorators';
import {combineLatest, Observable} from 'rxjs';
import {map, takeUntil, tap} from 'rxjs/operators';

@Component({
  selector: 'app-life-hook-demo',
  template: `
    <ul>
      <li *ngFor="let item of showHooks$ | async">{{ item }}</li>
    </ul>
  `,
  styleUrls: ['./life-hook-demo.component.css']
})
export class LifeHookDemoComponent {
  @LifeCycleHook('onInit') init$: Observable<void>;
  @LifeCycleHook('afterViewInit') av$: Observable<void>;
  @LifeCycleHook('onDestroy') destroy$: Observable<void>;

  showHooks$ = combineLatest([this.init$, this.av$]).pipe(
    map(() => ['Init hook fired', 'After view hook fired']),
    takeUntil(this.destroy$),
    tap({
      next: r => console.log(r),
      complete: () => console.log('Completed')
    })
  );
}
```

This libray has support for the following hooks:
```typescript
interface AvailableHooks {
  afterContentChecked: Observable<void>;
  afterContentInit: Observable<void>;
  AfterViewChecked: Observable<void>;
  afterViewInit: Observable<void>;
  doCheck: Observable<void>;
  onChanges: Observable<SimpleChanges>;
  onDestroy: Observable<void>;
  onInit: Observable<void>;
}
```

The hooks that fire once, will complete directly after invocation. The other hooks will complete when the components gets destroyed. 

### The same sample without `@LifeCycleHook` decorator

```typescript
export class Before implements OnInit, AfterViewInit, OnDestroy {
  private init$ = new Subject<void>();
  private av$ = new Subject<void>();
  private destroy$ = new Subject<void>();

  showHooks$ = combineLatest([this.init$, this.av$]).pipe(
    map(() => ['Init hook fired', 'After view hook fired']),
    takeUntil(this.destroy$),
    tap({
      next: r => console.log(r),
      complete: () => console.log('Completed')
    })
  );

  ngOnInit() {
    this.init$.next();
  }
  ngAfterViewInit() {
    this.av$.next();
  }
  ngOnDestroy() {
    this.destroy$.next();
  }
}
```

Also note, that the  `@LifeCycleHook` decorator will expose observables, not subjects.
npm package: @se-ng/let
Description: Helper structural directive to make it easier to use observables in your view when you don't have a condition.
Latest version: 20.0.2

# @se-ng/let

Helper structural directive to make it easier to use observables in your view when you don't have a condition.

```html
<!-- Before -->
<ng-container *ngIf="someObservable$ | async as some">...</ng-container>

<!-- After -->
<ng-container *seLet="someObservable$ as some">...</ng-container>
<!-- Or: -->
<ng-container *seLet="someObservable$ let some">...</ng-container>
<!-- Or: -->
<ng-container *seLet="let some observe someObservable$">...</ng-container>
<!-- Or: -->
<ng-container *seLet="let some on someObservable$">...</ng-container>
```

Accepts everything. If it gets a observable it will subscribe to it. (and unsubscribe
on destroy!), otherwise it will just assign.

## Installation

```bash
npm i @se-ng/let
```

then import in the module where you want to use it:

```typescript
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { SomeComponent } from './some.component';
import { Routes, RouterModule } from '@angular/router';
import { SeLetModule } from '@se-ng/let';

const routes: Routes = [
  { path: '', component: SomeComponent },
  { path: '**', redirectTo: '' }
];

@NgModule({
  declarations: [SomeComponent],
  imports: [CommonModule, RouterModule.forChild(routes), SeLetModule]
})
export class SampleModule {}
```

Then use it in your template as indicated above. Feel free to contact me on questions.