open-index/open-npm huggingface dataset:
npm package: @railgun-community/curve25519-scalarmult-neon
Description: Node.js addon for Curve25519 scalar multiplication written in Rust
Author: RAILGUN Contributors
Latest version: 0.1.11

# Node.js addon for Curve25519 Scalarmult, written in Rust

Uses the Rust `Dalek` library to implement a performant scalarmult function.

## Installing curve25519-scalarmult-neon

Installing curve25519-scalarmult-neon requires a [supported version of Node and Rust](https://github.com/neon-bindings/neon#platform-support).

You can install the project with npm. In the project directory, run:

```sh
$ npm install
```

This fully installs the project, including installing any dependencies and running the build.

## Building curve25519-scalarmult-neon

If you have already installed the project and only want to run the build, run:

```sh
$ npm run build
```

This command uses the [cargo-cp-artifact](https://github.com/neon-bindings/cargo-cp-artifact) utility to run the Rust build and copy the built library into `./index.node`.

## Available Scripts

In the project directory, you can run:

### `npm install`

Installs the project, including running `npm run build`.

### `npm build`

Builds the Node addon (`index.node`) from source.

Additional [`cargo build`](https://doc.rust-lang.org/cargo/commands/cargo-build.html) arguments may be passed to `npm build` and `npm build-*` commands. For example, to enable a [cargo feature](https://doc.rust-lang.org/cargo/reference/features.html):

```
npm run build -- --feature=beetle
```

#### `npm build-debug`

Alias for `npm build`.

#### `npm build-release`

Same as [`npm build`](#npm-build) but, builds the module with the [`release`](https://doc.rust-lang.org/cargo/reference/profiles.html#release) profile. Release builds will compile slower, but run faster.

### `npm test`

Runs the unit tests by calling `cargo test`. You can learn more about [adding tests to your Rust code](https://doc.rust-lang.org/book/ch11-01-writing-tests.html) from the [Rust book](https://doc.rust-lang.org/book/).

## Making prebuilds

### For Android

Make sure you have the cross-compilation targets supported:

```
rustup target add arm-linux-android
```

```
rustup target add aarch64-linux-android
```

```
rustup target add x86_64-linux-android
```

Use Android NDK version 24 or higher by ensuring you have the env var `ANDROID_NDK_HOME` pointed at the NDK 24 directory. If you get a compilation error about `-lgcc`, you might have to apply [this hack deep in your NDK](https://stackoverflow.com/a/74041320/315752).

```
npx prebuild-for-nodejs-mobile android-arm --sdk31 --verbose
```

```
npx prebuild-for-nodejs-mobile android-arm64 --sdk31 --verbose
```

```
npx prebuild-for-nodejs-mobile android-x64 --sdk31 --verbose
```

### For iOS


Make sure you have the cross-compilation targets supported:

```
rustup target add x86_64-apple-ios
```

```
rustup target add aarch64-apple-ios
```

Then compile the prebuilds:

```
npx prebuild-for-nodejs-mobile ios-arm64 --verbose
```

```
npx prebuild-for-nodejs-mobile ios-x64 --verbose
```
npm package: @railgun-community/curve25519-scalarmult-rsjs
Description: Node.js addon for Curve25519 scalar multiplication written in Rust
Author: RAILGUN Contributors
Latest version: 0.2.4

# Node.js addon for Curve25519 Scalarmult, written in Rust

Uses the Rust `Dalek` library to implement a performant scalarmult function.

## Installing curve25519-scalarmult-rsjs

Installing curve25519-scalarmult-rsjs requires a supported version of Node and Rust such as Node.js 16.0.0 or higher and Rust 1.64 or higher.

You can install the project with npm. In the project directory, run:

```sh
$ npm install
```

This fully installs the project, including installing any dependencies and running the build.

## Compiling curve25519-scalarmult-rsjs

This project is automatically compiled using Rust and [`node-bindgen`](https://github.com/infinyon/node-bindgen/) (a.k.a `nj-cli`) when you run `npm install`. If you have cloned this project and want to compile it manually, you can run `npm run build-debug` or `npm run build-release`.

**If you want to disable** the automatic compilation during npm install, then set the environment variable `DONT_COMPILE_NODE_ADDON=@railgun-community/curve25519-scalarmult-rsjs` (this can be a comma-separated list of packages to skip compiling).

## Developing curve25519-scalarmult-rsjs

In the project directory, you can run:

### `npm install`

Installs the project, including running `npm run build-release`.

#### `npm build-debug`

#### `npm build-release`

Same as `npm run build-debug` but, builds the module with the [`release`](https://doc.rust-lang.org/cargo/reference/profiles.html#release) profile. Release builds will compile slower, but run faster.

### `npm test`

Runs the unit tests.

## Making prebuilds

### For Android

Make sure you have the cross-compilation targets supported:

```
rustup target add arm-linux-android
```

```
rustup target add aarch64-linux-android
```

```
rustup target add x86_64-linux-android
```

Use Android NDK version 24 or higher by ensuring you have the env var `ANDROID_NDK_HOME` pointed at the NDK 24 directory. If you get a compilation error about `-lgcc`, you might have to apply [this hack deep in your NDK](https://stackoverflow.com/a/74041320/315752).

```
npx prebuild-for-nodejs-mobile android-arm --sdk33 --verbose
```

```
npx prebuild-for-nodejs-mobile android-arm64 --sdk33 --verbose
```

```
npx prebuild-for-nodejs-mobile android-x64 --sdk33 --verbose
```

### For iOS


Make sure you have the cross-compilation targets supported:

```
rustup target add x86_64-apple-ios
```

```
rustup target add aarch64-apple-ios
```

Then compile the prebuilds:

```
npx prebuild-for-nodejs-mobile ios-arm64 --verbose
```

```
npx prebuild-for-nodejs-mobile ios-arm64-simulator --verbose
```

```
npx prebuild-for-nodejs-mobile ios-x64-simulator --verbose
```
npm package: @railgun-community/curve25519-scalarmult-wasm
Description: Curve25519 scalar multiplication in WASM
Author: RAILGUN Contributors
Latest version: 0.1.5

# Curve25519 Scalarmult in WASM

Uses the Rust `Dalek` library to implement a performant scalarmult function, available
as WASM.

## Contributing

Requires installing Rust, Cargo, and wasm-pack.

### Test

```
npm test
```

### Build

```
npm run build
```
npm package: @railgun-community/poseidon-hash-rsjs
Description: Node.js addon for Poseidon hash written in Rust
Author: RAILGUN Contributors
Latest version: 1.0.1

# Node.js addon for Poseidon hash written in Rust

Uses the Rust `rs-poseidon` crate to implement a performant Poseidon hash
function, available as a Node.js native addon.

## Installing poseidon-hash-rsjs

Installing poseidon-hash-rsjs requires a supported version of Node and Rust such as Node.js 18 or higher and Rust 1.64 or higher.

You can install the project with npm. In the project directory, run:

```sh
$ npm install
```

This fully installs the project, including installing any dependencies and running the build.

## Compiling poseidon-hash-rsjs

This project is automatically compiled using Rust and [`node-bindgen`](https://github.com/infinyon/node-bindgen/) (a.k.a `nj-cli`) when you run `npm install`. If you have cloned this project and want to compile it manually, you can run `npm run build-debug` or `npm run build-release`.

**If you want to disable** the automatic compilation during npm install, then set the environment variable `DONT_COMPILE_NODE_ADDON=@railgun-community/poseidon-hash-rsjs` (this can be a comma-separated list of packages to skip compiling).

## Developing poseidon-hash-rsjs

In the project directory, you can run:

### `npm install`

Installs the project, including running `npm run build-release`.

#### `npm build-debug`

#### `npm build-release`

Same as `npm run build-debug` but, builds the module with the [`release`](https://doc.rust-lang.org/cargo/reference/profiles.html#release) profile. Release builds will compile slower, but run faster.

### `npm test`

Runs the unit tests.

## Making prebuilds

### For Android

Make sure you have the cross-compilation targets supported:

```
rustup target add arm-linux-android
```

```
rustup target add aarch64-linux-android
```

```
rustup target add x86_64-linux-android
```

Use Android NDK version 24 or higher by ensuring you have the env var `ANDROID_NDK_HOME` pointed at the NDK 24 directory. If you get a compilation error about `-lgcc`, you might have to apply [this hack deep in your NDK](https://stackoverflow.com/a/74041320/315752).

```
npx prebuild-for-nodejs-mobile android-arm --sdk33 --verbose
```

```
npx prebuild-for-nodejs-mobile android-arm64 --sdk33 --verbose
```

```
npx prebuild-for-nodejs-mobile android-x64 --sdk33 --verbose
```

### For iOS


Make sure you have the cross-compilation targets supported:

```
rustup target add x86_64-apple-ios
```

```
rustup target add aarch64-apple-ios
```

Then compile the prebuilds:

```
npx prebuild-for-nodejs-mobile ios-arm64 --verbose
```

```
npx prebuild-for-nodejs-mobile ios-arm64-simulator --verbose
```

```
npx prebuild-for-nodejs-mobile ios-x64-simulator --verbose
```
npm package: @railgun-community/poseidon-hash-wasm
Description: Poseidon hash compiled from Rust to WASM
Author: RAILGUN Contributors
Latest version: 1.0.2

# Poseidon-hash in WASM

Uses the Rust `rs-poseidon` crate to implement a performant Poseidon hash
function, available as WASM.

## Contributing

Requires installing Rust, Cargo, and wasm-pack.

### Test

```
npm test
```

### Build

```
npm run build
```
npm package: @railgun-community/proof-of-innocence
Description: Compatible with NodeJS environments.
Latest version: 1.0.0

[![Unit Tests](https://github.com/Railgun-Community/proof-of-innocence/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/Railgun-Community/proof-of-innocence/actions)

# RAILGUN Proof Of Innocence

Compatible with NodeJS environments.

`yarn add @railgun-community/proof-of-innocence`
npm package: @railgun-community/quickstart
Description: RAILGUN Quickstart SDK, compatible with mobile, browser and nodejs environments.
Latest version: 5.1.0

[![Node.js CI Actions Status](https://github.com/Railgun-Community/quickstart/actions/workflows/node.js.yml/badge.svg?branch=main)](https://github.com/Railgun-Community/quickstart/actions)

# RAILGUN Quickstart SDK

The RAILGUN Quickstart SDK is an open-source project developed by [RAILGUN](https://www.railgun.org) contributors.

RAILGUN Quickstart enables dApp and DeFi developers to provide privacy to users safely and conveniently on Ethereum, Polygon and BNB Chain.

The repo is written in TypeScript, and compatible with node.js and modern web browsers.

## Use cases

RAILGUN Quickstart SDK enables dApp and DeFi developers to:

* [Shield ERC-20 tokens](https://railgun-privacy.gitbook.io/developer-guide/quickstart/transactions/shielding/) and NFTs
* Manage [shielded balances](https://railgun-privacy.gitbook.io/developer-guide/quickstart/shielded-balances/)
* [Transfer tokens](https://railgun-privacy.gitbook.io/developer-guide/quickstart/transactions/private-transfers) privately
* [Interact with smart contracts](https://railgun-privacy.gitbook.io/developer-guide/quickstart/transactions/cross-contract-calls) privately

# Developer Guide

Please see our [full developer guide](https://railgun-privacy.gitbook.io/developer-guide/quickstart) for details on implementation.
npm package: @railgun-community/shared-models
Description: [![Unit Tests](https://github.com/Railgun-Community/shared-models/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/Railgun-Community/shared-models/actions)
Latest version: 8.0.1

[![Unit Tests](https://github.com/Railgun-Community/shared-models/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/Railgun-Community/shared-models/actions)

# Shared TypeScript models, types and various utils for RAILGUN SDKs

Compatible with browser, node and React environments.

`yarn add @railgun-community/shared-models`

## Run tests

`yarn test`

## Releases

When ready to create a new version, run `./release` or `./release patch` or `./release minor` or `./release major`.
npm package: @railgun-community/waku-relayer-client
Description: Compatible with Browser and NodeJS environments.
Latest version: 4.8.3

[![Unit Tests](https://github.com/Railgun-Community/waku-relayer-client/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/Railgun-Community/waku-relayer-client/actions)

# RAILGUN Relayer Client with Waku networking layer

Compatible with Browser and NodeJS environments.

`yarn add @railgun-community/waku-relayer-client`

## The Basics

```
// Initialize the Relayer Client
await WakuRelayerClient.start(...)

// Wait for Relayers to connect (5-10 sec) and client to collect fees.
// Relayers broadcast fees through the privacy-safe Waku network.

// Get relayer with lowest fee for a given ERC20 token.
const selectedRelayer = await WakuRelayerClient.findBestRelayer(...)

// Create Relayed transaction and send through selected Relayer.
const relayerTransaction = await RelayerTransaction.create(...)
await RelayerTransaction.send(...)
```
npm package: @railgun-community/waku-relayer-client-node
Description: This package is meant specifically for Node.js.
Latest version: 6.2.13

# RAILGUN Relayer Client with Waku networking layer

This package is meant specifically for Node.js.

`yarn add @railgun-community/waku-relayer-client-node`

## The Basics

```js
// Initialize the Relayer Client
await WakuRelayerClient.start(...)

// Wait for Relayers to connect (5-10 sec) and client to collect fees.
// Relayers broadcast fees through the privacy-safe Waku network.

// Get relayer with lowest fee for a given ERC20 token.
const selectedRelayer = await WakuRelayerClient.findBestRelayer(...)

// Create Relayed transaction and send through selected Relayer.
const relayerTransaction = await RelayerTransaction.create(...)
await RelayerTransaction.send(...)
```
npm package: @railgun-community/waku-relayer-client-web
Description: This package is meant specifically for browsers.
Latest version: 6.2.13

# RAILGUN Relayer Client with Waku networking layer

This package is meant specifically for browsers.

`yarn add @railgun-community/waku-relayer-client-web`

## The Basics

```js
// Initialize the Relayer Client
await WakuRelayerClient.start(...)

// Wait for Relayers to connect (5-10 sec) and client to collect fees.
// Relayers broadcast fees through the privacy-safe Waku network.

// Get relayer with lowest fee for a given ERC20 token.
const selectedRelayer = await WakuRelayerClient.findBestRelayer(...)

// Create Relayed transaction and send through selected Relayer.
const relayerTransaction = await RelayerTransaction.create(...)
await RelayerTransaction.send(...)
```

## Webpack configuration

Some dependencies of this package, such as Waku and libp2p, make an assumption that they are running in a Node.js environment. This is not the case in a browser environment, so we need to configure Webpack to ignore some sub-dependencies that are not relevant in the browser.

**webpack.config.js**

```js
module.exports = {
  //...
  resolve: {
    alias: {
      // Waku uses these Node.js-specific sub-dependencies, which we ignore:
      'default-gateway': false,
      '@achingbrain/nat-port-mapper': false,
    }
  },
};
```

If you are using *Next.js*:

```js
/** @type {import('next').NextConfig} */
module.exports = {
  webpack: (config, options) => {
    if (options.isServer) {
      // If your Next.js component is running in the server, we need to avoid
      // loading a WASM module.
      config.resolve.alias['@railgun-community/curve25519-scalarmult-wasm'] =
        '@railgun-community/curve25519-scalarmult-rsjs';
    } else {
      // If your Next.js component is running in the browser, we need to avoid
      // loading some modules which call Node.js APIs such as `child_process`.
      config.resolve.alias['default-gateway'] = false;
      config.resolve.alias['@achingbrain/nat-port-mapper'] = false;
    }
    return config;
  },
};
```
npm package: @railgun-community/wallet
Description: RAILGUN Wallet SDK, compatible with mobile, browser and nodejs environments.
Latest version: 10.8.4

[![Unit Tests](https://github.com/Railgun-Community/wallet/actions/workflows/unit-tests.yml/badge.svg?branch=main)](https://github.com/Railgun-Community/wallet/actions)

# RAILGUN Wallet SDK

The RAILGUN Wallet SDK is an open-source project developed by [RAILGUN](https://www.railgun.org) contributors.

The Wallet SDK enables dApp and DeFi developers to provide privacy to users safely and conveniently on Ethereum, Polygon and BNB Chain.

The repo is written in TypeScript, and compatible with node.js and modern web browsers.

## Use cases

RAILGUN Wallet SDK enables dApp and DeFi developers to:

- [Shield ERC-20 tokens](https://railgun-privacy.gitbook.io/developer-guide/wallet/transactions/shielding/) and NFTs
- Manage [shielded balances](https://railgun-privacy.gitbook.io/developer-guide/wallet/shielded-balances/)
- [Transfer tokens](https://railgun-privacy.gitbook.io/developer-guide/wallet/transactions/private-transfers) privately
- [Interact with any smart contract](https://railgun-privacy.gitbook.io/developer-guide/wallet/transactions/cross-contract-calls) privately

# Developer Guide

Please see our [full developer guide](https://railgun-privacy.gitbook.io/developer-guide/wallet) for details on implementation.
npm package: @railgun-reloaded/eslint-config
Description: Shared eslint-config config for railgun-reloaded projects
Author: RAILGUN Project Contributors
Latest version: 1.1.0

# `@railgun-reloaded/eslint-config`

> Shared eslint config for railgun-reloaded projects

## Usage

Add the following to your `eslint.config.js`:

```js
module.exports = [
  ...require('@railgun-reloaded/eslint-config')(),
  // Any additional rules
]
```

## API

### `const configs = eslintConfig([opts])`

Returns a flat array of predefined config for `eslint` based on [`neostandard`](https://github.com/neostandard/neostandard)
and the [`jsdoc` plugin](https://github.com/gajus/eslint-plugin-jsdoc).
`opts` is passed to `neostandard` and allows overriding any of their options. This config 
enables TypeScript checking and does not lint any files ignored by `.gitignore`.

## Install

```bash
npm install --save-dev @railgun-reloaded/eslint-config
```

## License

[MIT](LICENSE)
npm package: @railgun-reloaded/tsconfig
Description: Shared tsconfig for railgun-reloaded projects
Author: RAILGUN Project Contributors
Latest version: 1.2.0

# `@railgun-reloaded/tsconfig`

> Shared tsconfig for railgun-reloaded projects

## Example Usage

```json
{
  "extends": [
    "@railgun-reloaded/tsconfig/tsconfig"
  ]
}
```

## Install

```sh
npm install --save-dev @railgun-reloaded/tsconfig
```

## License

[MIT](LICENSE)
npm package: @railinc/rl-block-ui
Description: ## Installation
Author: Derek Carter
Latest version: 0.3.12

# rl-block-ui

## Installation

To install this library, run:

```bash
$ npm install @railinc/rl-block-ui --save
```

## Changes ##
**Breaking Change starting at version 0.3.0**
1. Migrated from ng-http-interceptor to HttpClient interceptors provided by Angular, starting with version 4.3.2
   * If your project has a version of Angular older than 4.3.2, use rl-block-ui version 0.2.5 or before
2. Added RlBlockUiRequestInterceptor service to handle the request interception.  This service injects RlBlockUiService to perform the previously supplied functionality

## Consuming your library

Once you have published your library to npm, you can import your library in any Angular application by running:

```bash
$ npm install rl-block-ui
```

and then from your Angular `AppModule`:

```typescript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { RlBlockUiModule } from '@railinc/rl-block-ui';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    RlBlockUiModule.forRoot()
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }
```

Once your library is imported, you can use its components, directives and pipes in your Angular application:

```xml
<!-- You can now use your library component in app.component.html -->
<rl-block-ui></rl-block-ui>
```

## RlBlockUiService API

**setIgnorePatterns** - takes an array of type RegExp of URL Patterns to ignore

**setBlockLeaveTimeout** - takes an number of miliseconds to wait before the block ui leave the screen after the last request has returned

**start** - Manually starts the RlBlockUI loading overlay

**stop** - Manually stops the RlBlockUI loading overlay

```typescript
import { RlBlockUiService } from '@railinc/rl-block-ui';
...

export class AppComponent implements OnInit {

  consturctor(private rlBlockUiService : RlBlockUiService){

  }

  ngOnInit(){
    this.rlBlockUiService.setIgnorePatterns([
      /api\/endpoint\/toIgnore1/,
      /.*\/toIngore2/
    ]);

    this.rlBlockUiService.setBlockLeaveTimeout(500);

    // Manually start it
    this.rlBlockUiService.start(1234);

    setTimeout( () => {
      // Stop it after 5 seconds 
      this.rlBlockUiService.stop(1234)
    }, 5000)
  }

}

```

## Development

To generate all `*.js`, `*.js.map` and `*.d.ts` files:

```bash
$ npm run tsc
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Derek Carter](mailto:derek.carter@railinc.com)
npm package: @railinc/rl-ng-table
Description: Simple table extension with sorting, filtering, paging, drag&drog, editing...
Author: Bruce Gong
Latest version: 0.0.13

# rl-ng-table
Simple table extension with sorting, filtering, paging, drag&drog, editing...

## Installation

To install this library, run:

```bash
$ npm install @railinc/rl-ng-table --save
```

## Usage

You can import rl-datepicker-popup in any Angular application:

and then from your Angular `AppModule` or `SharedModule`:

```typescript

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
 
import { AppComponent } from './app.component';
import { RlNgTableModule } from '@railinc/rl-ng-table';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    RlNgTableModule
  ],
  declarations: [],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

```

Once your library is imported, you can use it in your Angular application:

```html
<rl-ng-table 
    [config]="myTable.config"
    [isDnd]="false"
    [rows]="myTable.rows"
    [columns]="myTable.columns"
    (tableChanged)="onTableChanged(myTable.config)"
    (cellClicked)="onTableCellClick($event)">
</rl-ng-table>
```

### [config]
configuration of `rl-ng-table`. It is the place to set paging, sorting, filtering and className.

### [isDnd]
Enable/Disable drag and drog sorting for `rl-ng-table`

### [rows]
rows of data that will be displayed on `rl-ng-table`

### [columns]
columns definition for `rl-ng-table`. There are three properties need to be set for each column.
`title`: the title that will be display on the header of each column.
`name`: name should match the property name of the row object in rows. The value of the property will be displayed.
`editable`(optional): Allow user to edit the content of the cell by double clicking it.

### (tableChanged)
`tableChanged` will invoke the callback function when table changed.

### (cellClicked)
`cellClicked` will invoke the callback function when any of the table cells is clicked.

### (cellEdited)
`cellEdited` will invoke the callback function when cell editing is completed.

## Development

To generate all `*.js`, `*.js.map` and `*.d.ts` files:

```bash
$ npm run tsc
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Bruce Gong](mailto:bruce.gong@railinc.com)
npm package: @railinc/rl-selection-list
Description: rl-selection-list is a class that wires up two rl-ng-tables. It allows user to select multiple rows in one table and add them to the other table. Usually, rl-selection-list should be used with rl-ng-table.
Author: Bruce Gong
Latest version: 0.0.4

# rl-selection-list
rl-selection-list is a class that wires up two rl-ng-tables. It allows user to select multiple rows in one table and add them to the other table.
Usually, rl-selection-list should be used with rl-ng-table.

## Installation

To install this library, run:

```bash
$ npm install @railinc/rl-selection-list --save
```

## Usage

you can import your library in any Angular application:

and then from your Angular Component:

```typescript

import { RlSelectionList } from '@railinc/rl-selection-list';

```

Once your library is imported, you can use it in your Angular application:

### Initialization
You can initialize a selectionList by providing the common object property name, the rows of from table and the rows of toTable
```typescript
    this.selectionList = new RlSelectionList(
        ['token'],
        { sourceArray: this.fromTable.rows },
        { sourceArray: this.toTable.rows } 
    );
```

### select(row, type)
You should bind your table cell click event with `select(row, type)`:
```typescript
    onFromTableCellClick(data) {
        this.selectionList.select(data.row, 'from');
    }

    onToTableCellClick(data) {
        this.selectionList.select(data.row, 'to');
    }
```

### transferObject(from, to, removeAll)
You can transfer multiple rows from one table to the other table with `transferObject(from, to, removeAll)`
```typescript
    transferRows(from, to, removeAll) {
        this.selectionList.transferObject(from, to, removeAll);
    }
```

```html
<div>
  <button (click)="transferAttributes('from', 'to')" [disabled]="! getPendingList('from').length">
    Add
  </button>
  <button (click)="transferAttributes('from', 'to', true)" [disabled]="! this.fromTable.rows.length">
    Add All
  </button>
  <button (click)="transferAttributes('to', 'from')" [disabled]="! getPendingList('to').length">
    Remove
  </button>
  <button (click)="transferAttributes('to', 'from', true)" [disabled]="! this.toTable.rows.length">
    Remove All
  </button>
</div>
```

### getPendingList(type)
`getPendingList(type)` is to check if from table or to table has selected rows. The parameter `type` can be either `'from'` or `'to'`;

## Development

To generate all `*.js`, `*.js.map` and `*.d.ts` files:

```bash
$ npm run tsc
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Bruce Gong](mailto:bruce.gong@railinc.com)
npm package: @railinc/rl-toasty
Description: rl-toasty shows alerts and messages for your Angular application. It is a service that sets the default configuration for ng2-toasty and simplifies the API of ng2-toasty.
Author: Bruce Gong
Latest version: 0.0.4

# rl-toasty
rl-toasty shows alerts and messages for your Angular application. It is a service that sets the default configuration for ng2-toasty and simplifies the API of ng2-toasty.

## Installation

To install this library, run:

```bash
$ npm install @railinc/rl-toasty --save
```

## Usage

You can import rl-toasty in any Angular application:

and then from your component:

```typescript

import { RlToastyService } from '@railinc/rl-toasty';

@Component({
    selector: 'your-component',
    templateUrl: './your-component.html'
})

export class YourComponent {
    constructor(private rlToastyService: RlToastyService) {}

    addToast() {
        // Add all possible types in one shot
        this.rlToastyService.addToast('info', 'Your info message');
        this.rlToastyService.addToast('success', 'Your success message');
        this.rlToastyService.addToast('error', 'Your error message');
        this.rlToastyService.addToast('warning', 'Your warning message');
    }
}

```

Once your library is imported, you can use it in your Angular application:


## Development

To generate all `*.js`, `*.js.map` and `*.d.ts` files:

```bash
$ npm run tsc
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Bruce Gong](mailto:bruce.gong@railinc.com)
npm package: @railinc/rl-wizard
Description: rl-wizard is a multi-setp form component.
Author: Bruce Gong
Latest version: 0.0.6

# rl-wizard
rl-wizard is a multi-setp form component.

## Installation

To install this library, run:

```bash
$ npm install @railinc/rl-wizard --save
```

## Usage

You can import rl-wizard in any Angular application:

and then from your Angular `AppModule` or `SharedModule`:

```typescript

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { AppComponent } from './app.component';
import { RlWizardModule } from '@railinc/rl-wizard';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    RlWizardModule
  ],
  declarations: [],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }


```

Once your library is imported, you can use it in your Angular application:

```html
  <rl-wizard (onCancel)="cancel()" (onStepChanged)="stepChanged($event)">
    <rl-wizard-step body [title]="'Your Wizard Step Title'" [isValid]="isWizardStepValid">
      <your-component></your-component>
    </rl-wizard-step>
    <button footer type="button" (click)="click()">
      Custom Button
    </button>
  </rl-wizard>
```

### \<rl-wizard>

The `<rl-wizard></rl-wizard>` environment is the environment, in which you define your wizard. This environment must contain all steps, that make up your wizard. It's possible to pass the following parameters to a wizard environment:

#### body and footer
`body` and `footer` are attributes that tell rl-wizard where to project the element. If an element has `body`, it will be placed at the body of rl-wizard. If an element has `footer`, it will be placed at the footer of rl-wizard.

#### (onCancel)
`onCancel` will invoke the callback function when Cancel button is clicked.

#### (onStepChanged)
`onStepChanged` will invoke the callback function when the wizard step gets changed by clicking Back Button, Next Button or navigation bar.


### \<rl-wizard-step>

The `<rl-wizard-step></rl-wizard-step>` it is the wizard step environment. Every step that belongs to your wizard must be defined inside its own `<rl-wizard-step></rl-wizard-step>` environment.

#### [title]
A wizard step must contain a title, which is shown in the navigation bar of the wizard. The title of a step can be set by adding a `title` attribute to the step definition.

#### [isValid]
isValid will take a boolean value to enable/disable the next button.

#### [forceEnabled]
forceEnabled will force the tab to be enabled.

#### (onComplete)
`onComplete` will invoke the callback function when the Finish button is clicked. It should be placed at the last `<rl-wizard-step>`

## Development

To generate all `*.js`, `*.js.map` and `*.d.ts` files:

```bash
$ npm run tsc
```

To lint all `*.ts` files:

```bash
$ npm run lint
```

## License

MIT © [Bruce Gong](mailto:bruce.gong@railinc.com)
npm package: @railing/core
Description: ```typescript import { Railing } from '@railing/core' import { ReactRenderer, RailingReactRendererPlugin } from '@railing/react-renderer' import { IRailingConfigAPI } from '@railing/types'
Latest version: 1.0.0-dev.2

```typescript
import { Railing } from '@railing/core'
import { ReactRenderer, RailingReactRendererPlugin } from '@railing/react-renderer'
import { IRailingConfigAPI } from '@railing/types'

/**
 * only client side render
 */
const renderer = new ReactRenderer({
  ssr: false,
  App: null,
  routes: [],
  config: {}
})

renderer.render()

// only server side renderer
const railing = new Railing({ 
  renderer,
  dev
})

railing.hooks.htmlTemplate.tap('updateHTMLTemplate', (a: { html: string, req: Request, res: Response }) => {

})

railing.hooks.htmlRendered.tap('updateHTML', (a: { html: string, req: Request, res: Response }) => {

})

railing.middlewares // return connect middlewares

railing.start({
  port
}) // create server and start

// use express or others
const app = express()

app.use(railing.middlewares)

app.listen()
/**
 * config
 */
const railingConfig = {
  entry: '',
  outDir: '',
  runtimeConfig: {

  },
  plugins: [
    new RailingReactRendererPlugin({
      template: 'index.html'
    }),
    (api: IRailingConfigAPI) => {
      api.hooks.webpack.tap('XxPlugin', webpackConfig => {

      })

      api.hooks.railingConfig.tap('XxPlugin', railingConfig => {

      })
    }
  ]
}
```
npm package: @railken/quartz-core
Description: A Vue.js 2.0 library project
Author: railken
Latest version: 2.0.2

# @railken/quartz-core

![Rollup badge](https://img.shields.io/badge/Rollup-^0.53.3-ff69b4.svg)
![Jest](https://img.shields.io/badge/Jest-^22.0.4-blue.svg)
![Vue](https://img.shields.io/badge/Vue-^2.5.13-brightgreen.svg)
![Storybook](https://img.shields.io/badge/Storybook-^3.3.3-ff70a3.svg)
![Commitizen](https://img.shields.io/badge/Commitizen-enabled-brightgreen.svg)
[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)
![Npm badge](https://img.shields.io/npm/v/@railken/quartz-core.svg)
[![Build Status](https://travis-ci.org/railken/quartz-core.svg?branch=master)](https://travis-ci.org/railken/quartz-core)

> A Vue.js 2.0 library project

> Generated using [vue-cli-template-library](https://github.com/julon/vue-cli-template-library).

## Installation
```
npm install @railken/quartz-core
```
@railken/quartz-core can be used as a module in both CommonJS and ES modular environments.

When in non-modular environment, @railken/quartz-core will register all the components to vue by itself.</p>

### ES6
```js
//
// You can register a component manually
//
import { HelloWorld } from '@railken/quartz-core';

export default {
  ...
  components: {
    HelloWorld
  },
  ...
};

//
// or register the whole module with vue
//
import ModuleLibrary from '@railken/quartz-core';

// Install this library
Vue.use(ModuleLibrary);
```

### CommonJS
```js
//
// You can register a component manually
//
var Vue = require('vue');
var ModuleLibrary = require('@railken/quartz-core');

var YourComponent = Vue.extend({
  ...
  components: {
    'hello-world': ModuleLibrary.HelloWorld
  },
  ...
});

//
// or register the whole module with vue
//
var Vue = require('vue');
var ModuleLibrary = require('@railken/quartz-core');

// Install this library
Vue.use(ModuleLibrary);
```

### Browser

```html
<script src="path/to/vue/vue.min.js"></script>
<script src="path/to/@railken/quartz-core/dist/@railken/quartz-core.min.js"></script>
<!-- Components are registered globally -->
```

### After that, you can use it in your templates:

```html
<hello-world></hello-world>
```

## Changelog

See the GitHub [release history](https://github.com/railken/quartz-core/releases).

## Contributing

See [CONTRIBUTING.md](.github/CONTRIBUTING.md).