保誠-保戶業務員媒合平台
tomasysh
2022-05-25 43d0eed31f4b2a59e23c06ceba3616aac3f549f6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
"use strict";
 
var browserslist = require('browserslist');
 
var agents = require('caniuse-lite').agents;
 
var utils = require('./utils');
 
var Browsers = /*#__PURE__*/function () {
  /**
     * Return all prefixes for default browser data
     */
  Browsers.prefixes = function prefixes() {
    if (this.prefixesCache) {
      return this.prefixesCache;
    }
 
    this.prefixesCache = [];
 
    for (var name in agents) {
      this.prefixesCache.push("-" + agents[name].prefix + "-");
    }
 
    this.prefixesCache = utils.uniq(this.prefixesCache).sort(function (a, b) {
      return b.length - a.length;
    });
    return this.prefixesCache;
  }
  /**
     * Check is value contain any possible prefix
     */
  ;
 
  Browsers.withPrefix = function withPrefix(value) {
    if (!this.prefixesRegexp) {
      this.prefixesRegexp = new RegExp(this.prefixes().join('|'));
    }
 
    return this.prefixesRegexp.test(value);
  };
 
  function Browsers(data, requirements, options, browserslistOpts) {
    this.data = data;
    this.options = options || {};
    this.browserslistOpts = browserslistOpts || {};
    this.selected = this.parse(requirements);
  }
  /**
     * Return browsers selected by requirements
     */
 
 
  var _proto = Browsers.prototype;
 
  _proto.parse = function parse(requirements) {
    var opts = {};
 
    for (var i in this.browserslistOpts) {
      opts[i] = this.browserslistOpts[i];
    }
 
    opts.path = this.options.from;
    return browserslist(requirements, opts);
  }
  /**
     * Return prefix for selected browser
     */
  ;
 
  _proto.prefix = function prefix(browser) {
    var _browser$split = browser.split(' '),
        name = _browser$split[0],
        version = _browser$split[1];
 
    var data = this.data[name];
    var prefix = data.prefix_exceptions && data.prefix_exceptions[version];
 
    if (!prefix) {
      prefix = data.prefix;
    }
 
    return "-" + prefix + "-";
  }
  /**
     * Is browser is selected by requirements
     */
  ;
 
  _proto.isSelected = function isSelected(browser) {
    return this.selected.includes(browser);
  };
 
  return Browsers;
}();
 
module.exports = Browsers;