initHandler()

in src/pro-src/rules.js [106:143]


  initHandler() {
    this.fetchHistory();
    const visitsOnThisPage = this.history.timePerPage[this.url];
    this.history.timePerPage[this.url] = visitsOnThisPage ? visitsOnThisPage + 1 : 1;
    this.storeHistory(this.url);
    this.rules.forEach((rules) => {
      const trigger = rules.trigger || {};

      if (trigger && (trigger.when === 'limited' || trigger.timeLimit)) {
        this.storeRuleHash(rules);
      }

      if (trigger.eventListeners) {
        if (trigger.timeOnPage) {
          this.timeoutIds.push(
            setTimeout(
              () => window[RULES_HANDLER_SINGLETON].initEventHandler(rules),
              trigger.timeOnPage * 1000
            )
          );
        } else {
          this.initEventHandler(rules);
        }
        // We don't want to continue and verify the conditions in that case
        return;
      }
      if (!trigger.timeOnPage) {
        this.verifyConditions(rules);
      } else {
        this.timeoutIds.push(
          setTimeout(
            () => window[RULES_HANDLER_SINGLETON].verifyConditions(rules),
            trigger.timeOnPage * 1000
          )
        );
      }
    });
  }