UNPKG

2.12 kBTypeScriptView Raw
1import { EventRunner, PageItem } from "../../event/core/event-runner";
2/**
3 * Specific runner used by Hipervarejo.
4 *
5 * @class HipervarejoRunner
6 * @implements {Runner}
7 */
8export declare class HipervarejoRunner extends EventRunner {
9 /**
10 * Process DataLayer item.
11 *
12 * @protected
13 * @param {*} item Current item.
14 * @memberof HipervarejoRunner
15 */
16 protected processItem(item: PageItem): void;
17 /**
18 * Get current page info based on DataLayer.
19 *
20 * @private
21 * @param {PageItem} item Current item.
22 * @return {PageInfo} Current page info.
23 * @memberof HipervarejoRunner
24 */
25 private getPageInfo;
26 /**
27 * Send order event, based on a order item.
28 *
29 * @private
30 * @param {*} orderItem Order item from the DataLayer.
31 * @memberof HipervarejoRunner
32 */
33 private sendOrderEvent;
34 /**
35 * Send cart event, based on a cart item.
36 *
37 * @private
38 * @param {*} cartItem Cart item from the DataLayer.
39 * @memberof HipervarejoRunner
40 */
41 private sendCartEvent;
42 /**
43 * Get layer products from specific event key.
44 *
45 * Hipervarejo has 2 specific keys when working with cart items on
46 * the dataLayer.
47 *
48 * When products are added, they send the `ADDTOCART` event and
49 * when they are removed, `REMOVEFROMCART` is sent.
50 *
51 * Whenever this events are sent, they come with an `ecommerce`
52 * object, inside it, there is a key with the products array,
53 * the key name follows the following rule:
54 *
55 * - When event is `ADDTOCART`, the key is `add`.
56 * - When event is `REMOVEFROMCART`, the key is `remove`.
57 *
58 * @private
59 * @param {string} event Current event name.
60 * @return {string} Event related key.
61 * @memberof HipervarejoRunner
62 */
63 private getCartProductsKeyFromEvent;
64 /**
65 * Create a generic cart event.
66 *
67 * @private
68 * @param {string} event Current event name.
69 * @return {CartEvent} Relevant cart event.
70 * @memberof HipervarejoRunner
71 */
72 private createCartEvent;
73}