# @dac-software/base-ui

> Main purpose of this library is to aggregate main UI parts of qarson multipage system. Library contains css styles written in SASS preprocessor and few smaller javascript functions of user interface basing on simple selecting DOM element mostly with jquer

Latest version **2.0.10** (published 2020-10-19) · UNLICENSED license · 0 weekly downloads

## Install

```sh
npm install @dac-software/base-ui
pnpm add @dac-software/base-ui
yarn add @dac-software/base-ui
bun add @dac-software/base-ui
```

## Health

**Score 20/100 (F)** — status: abandoned.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; large bundle.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 2.0.10 |
| Published | 2020-10-19 |
| First published | 2019-05-17 |
| Weekly downloads | 0 |
| License | UNLICENSED |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=8.0.0 |
| Dependencies | 8 |
| Unpacked size | 31 MB |
| Known vulnerabilities | 0 (+2 in 2 direct dependencies) |
| Install scripts | no |
| Maintainers | dac-software |

## Links

- npm: https://www.npmjs.com/package/@dac-software/base-ui
- npm.io page: https://npm.io/package/@dac-software/base-ui

## Dependencies (8)

- [aos](https://npm.io/package/aos.md) ^2.3.4
- [jquery](https://npm.io/package/jquery.md) ^3.3.1
- [swiper](https://npm.io/package/swiper.md) 5.3.0
- [bootstrap](https://npm.io/package/bootstrap.md) 4.1.3
- [popper.js](https://npm.io/package/popper.js.md) ^1.16.0
- [simple-parallax-js](https://npm.io/package/simple-parallax-js.md) ^5.1.0
- [@dac-software/offers-perspective](https://npm.io/package/@dac-software/offers-perspective.md) ~1.0.0
- [@dac-software/analytics-extensions](https://npm.io/package/@dac-software/analytics-extensions.md) ~1.0.0

## Recent versions

- 2.0.10 (latest) — 2020-10-19
- 2.0.9 — 2020-09-28
- 2.0.9-QFR-46-enhance-top-menu-on-touchscreen-u.0 — 2020-09-25
- 2.0.9-QFR-242-fhd-gallery-and-panorama-does-no.0 — 2020-09-21
- 2.0.8 — 2020-09-16
- 2.0.8-QFR-692-change-color-from-a52a2a-to-c39a.0 — 2020-09-14
- 2.0.7 — 2020-08-11
- 2.0.6-QFR-311-improve-frontend-changes-package.1 — 2020-08-10
- 2.0.6 — 2020-08-04
- 2.0.6-QFR-311-improve-frontend-changes-package.0 — 2020-08-03
- 2.0.5 — 2020-07-23
- 2.0.4 — 2020-07-23
- 2.0.3-QFR-173-change-home-page-top-graphics-release.3 — 2020-07-22
- 2.0.3-QFR-173-change-home-page-top-graphics-release.2 — 2020-07-22
- 2.0.3-QFR-173-change-home-page-top-graphics-release.1 — 2020-07-22
- … 218 more at https://npm.io/package/@dac-software/base-ui/versions

## README

# Qarson BASE UI 

Main purpose of this library is to aggregate main UI parts of qarson multipage system.
Library contains css styles written in SASS preprocessor and few smaller javascript functions of user interface
basing on simple selecting DOM element mostly with jquery and manipulate DOM tree. Library use customized bootstrap.

## Requirements
- nodejs with npm v10 +

## Installation:

Installing depedencies
```
npm install
```
Build production library files
```
npm run build
```

## Development:

Library is third party lib for main project.


To work with code in configured development process you need to do few steps:

1) Link current library (be aware of used the same node version in all)
    ```
    npm link
    ```

2) Run build process in development mode with watching changes
    ```
    npm run build:dev
    ```

3) Move to "including" lib directory and link local resources
    ```
    npm link @dac-software/base-ui
    ```

Then, run webpack-dev-server instance in order to instructions in "including" project.

\* Build task build two types of library entrypoints:
* "web" - destined to web include, currently not useful - but left to keep publishing consistency
* "ecma script module" - destined for further bundler processing, it is resolved through simply copyfiles statement
    ```bash
    copyfiles "./lib/**/*.!(tsx|ts|d.ts|html)" "dist/esm" -u 1
    ```

To run deploy on preview host :

```bash
npm run shipit preview deploy
```

Preview will be available at http://base-ui-preview.rc7.e-d-p.net/

####Codestyle

We are in consonance with **standardjs**.

Validation codestyle:

```bash
npm run codestyle-check
```

Automatic fix:

```bash
npm run codestyle-fix
```

#### Development guides
1. In Bootstrap: we modify only variables from bootstrap _variables.scss file
2. In variables/variables.scss file in styles directory we define variables used in our styles, classes and for overwrite bootstrap
   default variables (name convention $brand-XXXX)
   Bootstrap variables are overwriting in styles/vendor/bootstrap/variables/X file, using variables from main variables/variables.scss file
3. Bootstrap extensions:
   - defined in /app directory
   - oocss convention for properties defined by bootstrap e.g.: 
        - missing background: .brand-bg-blue { background-color: #0000FF; }
        - missing margin: .brand-margin-big { margin: 100px; }
4. Defining components in BEM - when:
    - We need to defined CSS properties which aren't defined in bootstrap classes
    - We are using our custom variables
5. Icons in svg are in lib/assets/icons. You can use icons with 'ico-' prefix.
6. To use icons, first generate icons with 
    ```bash
    npm run generate-icons
    ```
    icons are generating automatically when you run app

## Development test deploy

For manual tests purposes library should be published on npm with dev tag with task/story identifier

## NPM publishing

### NPM publishing manually:

1) Increase version in package.json 
2) Npm login with proper username and password
    ```bash
    npm login
    ```
3) Npm publish (command will trigger prepare npm method which should build files to dist directory)
    ```bash
    npm publish --access=public
    ```

### NPM publishing through bitbucket  pipelines:

1) dev tag publish using pipeline named:
    ``custom: dev-npm-publish``

    This pipeline automatically defines branch related tag name, for example :
        ``1.0.0-some-branch-name.0``

2) production tag publish using pipeline named: 
    ``custom: prod-npm-publish``

    This pipeline requires what kind of semver tag should be defined for publish. You need to fill additional field in pipeline form and type one of version type :
        - patch
        - minor
        - major

---
_Source: https://npm.io/package/@dac-software/base-ui · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
