@plasma-platform/promotions
Version:
Scripts for monster promotions
754 lines (496 loc) • 18.1 kB
Markdown





* * *
[Full documentation](https://templatemonster.gitlab.io/PlasmaPlatform/Frontend/plasma-platform/?path=/story/plasma-platform-promotions)
install:
`npm i @plasma-platform/promotions -S`
# Short documentation
<!-- Generated by documentation.js. Update this documentation by updating the source code. -->
### Table of Contents
- [Main](#main)
- [Initiators](#initiators)
- [Promotion](#promotion)
- [Parameters](#parameters)
- [Examples](#examples)
- [getAll](#getall)
- [Parameters](#parameters-1)
- [Promotion#run](#promotionrun)
- [Examples](#examples-1)
- [Promotion#setup](#promotionsetup)
- [Examples](#examples-2)
- [Promotion#fetchPromocodeInfo](#promotionfetchpromocodeinfo)
- [Examples](#examples-3)
- [Promotion#createBanner](#promotioncreatebanner)
- [Examples](#examples-4)
- [Promotion#createBanner](#promotioncreatebanner-1)
- [Examples](#examples-5)
- [Initiators/DomService](#initiatorsdomservice)
- [DomService](#domservice)
- [get](#get)
- [Parameters](#parameters-2)
- [data](#data)
- [Parameters](#parameters-3)
- [addClass](#addclass)
- [Parameters](#parameters-4)
- [attr](#attr)
- [Parameters](#parameters-5)
- [prepend](#prepend)
- [Parameters](#parameters-6)
- [removeClass](#removeclass)
- [Parameters](#parameters-7)
- [hasClass](#hasclass)
- [Parameters](#parameters-8)
- [removeAttribute](#removeattribute)
- [Parameters](#parameters-9)
- [Initiators/FlipClock](#initiatorsflipclock)
- [Initiators/UI](#initiatorsui)
- [UiBanner](#uibanner)
- [Parameters](#parameters-10)
- [Examples](#examples-6)
- [UiBanner#run](#uibannerrun)
- [Parameters](#parameters-11)
- [Examples](#examples-7)
- [UiBanner#showBanner](#uibannershowbanner)
- [Examples](#examples-8)
- [UiBanner#getBannerId](#uibannergetbannerid)
- [Examples](#examples-9)
- [UiBanner#showBannerAnimation](#uibannershowbanneranimation)
- [Examples](#examples-10)
- [UiBanner#closeBanner](#uibannerclosebanner)
- [Examples](#examples-11)
- [UiBanner#hideBanner](#uibannerhidebanner)
- [Examples](#examples-12)
- [UiBanner#hideBannerAnimation](#uibannerhidebanneranimation)
- [Examples](#examples-13)
- [UiBanner#setBannerCookie](#uibannersetbannercookie)
- [Examples](#examples-14)
- [UiBanner#killBanner](#uibannerkillbanner)
- [Examples](#examples-15)
- [UiPopup](#uipopup)
- [Parameters](#parameters-12)
- [Examples](#examples-16)
- [UiPopup#run](#uipopuprun)
- [Parameters](#parameters-13)
- [Examples](#examples-17)
- [UiPopup#showBanner](#uipopupshowbanner)
- [Examples](#examples-18)
- [UiPopup#hidePopup](#uipopuphidepopup)
- [Parameters](#parameters-14)
- [Examples](#examples-19)
- [UiPopup#hidePopup](#uipopuphidepopup-1)
- [Examples](#examples-20)
- [UiPopup#outTarget](#uipopupouttarget)
- [Parameters](#parameters-15)
- [Examples](#examples-21)
- [Initiators/Analytics](#initiatorsanalytics)
- [TagManager](#tagmanager)
- [Parameters](#parameters-16)
- [Examples](#examples-22)
- [TagManager#onClickBanner](#tagmanageronclickbanner)
- [Examples](#examples-23)
- [TagManager#onShowBanner](#tagmanageronshowbanner)
- [Examples](#examples-24)
- [TagManager#onClickPopup](#tagmanageronclickpopup)
- [Examples](#examples-25)
- [TagManager#onShowPopup](#tagmanageronshowpopup)
- [Examples](#examples-26)
- [Initiators/EventManager](#initiatorseventmanager)
- [runTimer](#runtimer)
- [runTimer](#runtimer-1)
- [destroyTimer](#destroytimer)
- [destroyTimer](#destroytimer-1)
- [createClockTimerInstance](#createclocktimerinstance)
- [Parameters](#parameters-17)
- [createClockTimerInstance](#createclocktimerinstance-1)
- [Parameters](#parameters-18)
- [createClockTimerProps](#createclocktimerprops)
- [Parameters](#parameters-19)
- [createClockTimerProps](#createclocktimerprops-1)
- [Parameters](#parameters-20)
- [Utils](#utils)
- [Parameters](#parameters-21)
- [Parameters](#parameters-22)
- [Examples](#examples-27)
- [Parameters#parse](#parametersparse)
- [Parameters](#parameters-23)
- [Examples](#examples-28)
- [Parameters#update](#parametersupdate)
- [Parameters](#parameters-24)
- [Examples](#examples-29)
- [Parameters#prepareData](#parameterspreparedata)
- [Parameters](#parameters-25)
- [Parameters#validate](#parametersvalidate)
- [Parameters](#parameters-26)
- [Parameters#other](#parametersother)
- [Parameters](#parameters-27)
- [Parameters#lang](#parameterslang)
- [Parameters](#parameters-28)
- [Parameters#validFormatDate](#parametersvalidformatdate)
- [Parameters](#parameters-29)
- [Parameters#time](#parameterstime)
- [Parameters](#parameters-30)
- [Parameters#flipClock](#parametersflipclock)
- [Parameters](#parameters-31)
- [Parameters#banner](#parametersbanner)
- [Parameters](#parameters-32)
## Main
start project npm i && npm start
## Initiators
### Promotion
#### Parameters
- `args` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** arg only for FlipClock
#### Examples
```javascript
const promotion = new Promotion();
```
### getAll
Get all elements by selector
#### Parameters
- `selector` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)**
Returns **any**
## Promotion#run
Initialise banner
### Examples
```javascript
const promotion = new Promotion();
promotion.run();
```
## Promotion#setup
### Examples
```javascript
const promotion = new Promotion();
promotion.setup();
```
## Promotion#fetchPromocodeInfo
Fetches promocode info with start and end dates.
### Examples
```javascript
const promotion = new Promotion();
promotion.setup();
```
## Promotion#createBanner
Creates Banner instance and initiate it
### Examples
```javascript
const promotion = new Promotion();
const banner = promotion.createBanner(tagManager);
```
## Promotion#createBanner
Creates Popup instance and initiate it
### Examples
```javascript
const promotion = new Promotion();
const popup = promotion.createPopup(banner, tagManager);
```
## Initiators/DomService
### DomService
### get
Get element by selector
#### Parameters
- `selector`
Returns **any**
### data
Get data attributes
#### Parameters
- `element`
Returns **{}**
### addClass
Add class
#### Parameters
- `element`
- `classList` (optional, default `[]`)
Returns **any**
### attr
Attributes
#### Parameters
- `element`
- `key`
- `value`
Returns **any**
### prepend
Prepend
#### Parameters
- `parent`
- `element`
Returns **any**
### removeClass
Remove class
#### Parameters
- `element`
- `classList`
Returns **any**
### hasClass
Has class
#### Parameters
- `element`
- `className`
Returns **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)**
### removeAttribute
Remove Attribute
#### Parameters
- `element`
- `name`
Returns **any**
## Initiators/FlipClock
## Initiators/UI
### UiBanner
#### Parameters
- `args` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** all arguments
#### Examples
```javascript
const uiBanner = new UiBanner({});
```
### UiBanner#run
run banner function
#### Parameters
- `tagManager` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** manager for dataLayer variable
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.run();
```
### UiBanner#showBanner
show banner function
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.showBanner();
```
### UiBanner#getBannerId
get banner id function
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.getId();
```
### UiBanner#showBannerAnimation
Triggers animation, that show banner
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.showBannerAnimation();
```
### UiBanner#closeBanner
Close banner upon user click
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.closeBanner();
```
### UiBanner#hideBanner
hides banner and destroying timer
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.hideBanner ();
```
### UiBanner#hideBannerAnimation
Trigger for hide banner animation
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.hideBannerAnimation();
```
### UiBanner#setBannerCookie
Set expiration cookie on banner closing
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.setBannerCookie();
```
### UiBanner#killBanner
Utility method to handle banner destruction
#### Examples
```javascript
const uiBanner = new UiBanner({});
uiBanner.killBanner();
```
### UiPopup
#### Parameters
- `args` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** all arguments
#### Examples
```javascript
const uiPopup = new UiPopup({});
```
### UiPopup#run
run popup function
#### Parameters
- `banner` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** object
- `tagManager` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** object
#### Examples
```javascript
const uiPopup = new UiPopup({});
uiPopup.run();
```
### UiPopup#showBanner
show popup function
#### Examples
```javascript
const uiPopup = new UiPopup({});
uiPopup.showPopup();
```
### UiPopup#hidePopup
hide popup function
#### Parameters
- `outTarget` **[boolean](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean)** object
#### Examples
```javascript
const uiPopup = new UiPopup({});
uiPopup.hidePopup();
```
### UiPopup#hidePopup
hide popup function with set cookie about not open again
#### Examples
```javascript
const uiPopup = new UiPopup({});
uiPopup.hidePopupWithSetCookie ();
```
### UiPopup#outTarget
outTarget popup click function
#### Parameters
- `event` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** jQuery Event
#### Examples
```javascript
const uiPopup = new UiPopup({});
$(document).on('click', uiPopup.outTarget);
```
## Initiators/Analytics
### TagManager
#### Parameters
- `args` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** all arguments
#### Examples
```javascript
const tagManager = new TagManager({});
```
### TagManager#onClickBanner
Tag manager event click banner
#### Examples
```javascript
const tagManager = new TagManager({});
tagManager.onClickBanner();
```
### TagManager#onShowBanner
Tag manager event show banner
#### Examples
```javascript
const tagManager = new TagManager({});
tagManager.onShowBanner();
```
### TagManager#onClickPopup
Tag manager event on popupp click
#### Examples
```javascript
const tagManager = new TagManager({});
tagManager.onClickPopup();
```
### TagManager#onShowPopup
Tag manager event on popups show
#### Examples
```javascript
const tagManager = new TagManager({});
tagManager.onShowPopup();
```
## Initiators/EventManager
## runTimer
## runTimer
## destroyTimer
## destroyTimer
## createClockTimerInstance
### Parameters
- `timerFace`
- `timerFace` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** One of: daily, hourly, counter
## createClockTimerInstance
### Parameters
- `timerFace`
- `timerFace` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** One of: daily, hourly, counter
## createClockTimerProps
### Parameters
- `args`
- `args.direction` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** timer direction (decrement | increment)
- `args.startDateMs` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** timer start date
- `args.endDateMs` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** timer end date
- `args.language` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** timer localization
- `args.id` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** timer name
- `args.timerFace` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** timer type
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<any>**
## createClockTimerProps
### Parameters
- `args`
- `args.direction` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** timer direction (decrement | increment)
- `args.startDateMs` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)?** timer start date
- `args.endDateMs` **[number](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number)** timer end date
- `args.language` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)?** timer localization
- `args.id` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** timer name
- `args.timerFace` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** timer type
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)<any>**
## Utils
Other instruments for normal working project
### Parameters
#### Parameters
- `selector` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** selector to main wrapper for promotion block
#### Examples
```javascript
const params = parameters.parse('.Promotion');
```
### Parameters#parse
Parse and return all params
#### Parameters
- `selector` **[string](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** jQuery selector
#### Examples
```javascript
const params = new Parameters();
params.parse('.Promotion');
```
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
### Parameters#update
Parse and return all params
#### Parameters
- `data` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** new data
#### Examples
```javascript
const params = new Parameters();
params.update({});
```
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)**
### Parameters#prepareData
prepare data for all initiators
#### Parameters
- `data` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** row parameters
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** data
### Parameters#validate
prepare data for time
#### Parameters
- `data` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** row parameters
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** validate data
### Parameters#other
prepare data for other
#### Parameters
- `data` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** row parameters
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** data
### Parameters#lang
prepare data for lang
#### Parameters
- `data` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** row parameters
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** data
### Parameters#validFormatDate
validation date format
#### Parameters
- `date` **[String](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String)** date
### Parameters#time
prepare data for time
#### Parameters
- `data` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** row parameters
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** data
### Parameters#flipClock
prepare data for flipClock
#### Parameters
- `data` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** row parameters
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** final Data
### Parameters#banner
prepare data for banner and popup
#### Parameters
- `data` **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** row parameters
Returns **[Object](https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object)** final Data