{"ast":null,"code":"\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nexports.unescapeValue = unescapeValue;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nvar _CSSESC_QUOTE_OPTIONS;\nfunction _interopRequireDefault(obj) {\n  return obj && obj.__esModule ? obj : {\n    \"default\": obj\n  };\n}\nfunction _defineProperties(target, props) {\n  for (var i = 0; i < props.length; i++) {\n    var descriptor = props[i];\n    descriptor.enumerable = descriptor.enumerable || false;\n    descriptor.configurable = true;\n    if (\"value\" in descriptor) descriptor.writable = true;\n    Object.defineProperty(target, descriptor.key, descriptor);\n  }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n  if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n  if (staticProps) _defineProperties(Constructor, staticProps);\n  Object.defineProperty(Constructor, \"prototype\", {\n    writable: false\n  });\n  return Constructor;\n}\nfunction _inheritsLoose(subClass, superClass) {\n  subClass.prototype = Object.create(superClass.prototype);\n  subClass.prototype.constructor = subClass;\n  _setPrototypeOf(subClass, superClass);\n}\nfunction _setPrototypeOf(o, p) {\n  _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n    o.__proto__ = p;\n    return o;\n  };\n  return _setPrototypeOf(o, p);\n}\nvar deprecate = require(\"util-deprecate\");\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\nfunction unescapeValue(value) {\n  var deprecatedUsage = false;\n  var quoteMark = null;\n  var unescaped = value;\n  var m = unescaped.match(WRAPPED_IN_QUOTES);\n  if (m) {\n    quoteMark = m[1];\n    unescaped = m[2];\n  }\n  unescaped = (0, _unesc[\"default\"])(unescaped);\n  if (unescaped !== value) {\n    deprecatedUsage = true;\n  }\n  return {\n    deprecatedUsage: deprecatedUsage,\n    unescaped: unescaped,\n    quoteMark: quoteMark\n  };\n}\nfunction handleDeprecatedContructorOpts(opts) {\n  if (opts.quoteMark !== undefined) {\n    return opts;\n  }\n  if (opts.value === undefined) {\n    return opts;\n  }\n  warnOfDeprecatedConstructor();\n  var _unescapeValue = unescapeValue(opts.value),\n    quoteMark = _unescapeValue.quoteMark,\n    unescaped = _unescapeValue.unescaped;\n  if (!opts.raws) {\n    opts.raws = {};\n  }\n  if (opts.raws.value === undefined) {\n    opts.raws.value = opts.value;\n  }\n  opts.value = unescaped;\n  opts.quoteMark = quoteMark;\n  return opts;\n}\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n  _inheritsLoose(Attribute, _Namespace);\n  function Attribute(opts) {\n    var _this;\n    if (opts === void 0) {\n      opts = {};\n    }\n    _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n    _this.type = _types.ATTRIBUTE;\n    _this.raws = _this.raws || {};\n    Object.defineProperty(_this.raws, 'unquoted', {\n      get: deprecate(function () {\n        return _this.value;\n      }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n      set: deprecate(function () {\n        return _this.value;\n      }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n    });\n    _this._constructed = true;\n    return _this;\n  }\n\n  /**\n   * Returns the Attribute's value quoted such that it would be legal to use\n   * in the value of a css file. The original value's quotation setting\n   * used for stringification is left unchanged. See `setValue(value, options)`\n   * if you want to control the quote settings of a new value for the attribute.\n   *\n   * You can also change the quotation used for the current value by setting quoteMark.\n   *\n   * Options:\n   *   * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n   *     option is not set, the original value for quoteMark will be used. If\n   *     indeterminate, a double quote is used. The legal values are:\n   *     * `null` - the value will be unquoted and characters will be escaped as necessary.\n   *     * `'` - the value will be quoted with a single quote and single quotes are escaped.\n   *     * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n   *   * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n   *     over the quoteMark option value.\n   *   * smart {boolean} - if true, will select a quote mark based on the value\n   *     and the other options specified here. See the `smartQuoteMark()`\n   *     method.\n   **/\n  var _proto = Attribute.prototype;\n  _proto.getQuotedValue = function getQuotedValue(options) {\n    if (options === void 0) {\n      options = {};\n    }\n    var quoteMark = this._determineQuoteMark(options);\n    var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n    var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n    return escaped;\n  };\n  _proto._determineQuoteMark = function _determineQuoteMark(options) {\n    return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n  }\n\n  /**\n   * Set the unescaped value with the specified quotation options. The value\n   * provided must not include any wrapping quote marks -- those quotes will\n   * be interpreted as part of the value and escaped accordingly.\n   */;\n  _proto.setValue = function setValue(value, options) {\n    if (options === void 0) {\n      options = {};\n    }\n    this._value = value;\n    this._quoteMark = this._determineQuoteMark(options);\n    this._syncRawValue();\n  }\n\n  /**\n   * Intelligently select a quoteMark value based on the value's contents. If\n   * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n   * mark will be picked that minimizes the number of escapes.\n   *\n   * If there's no clear winner, the quote mark from these options is used,\n   * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n   * true). If the quoteMark is unspecified, a double quote is used.\n   *\n   * @param options This takes the quoteMark and preferCurrentQuoteMark options\n   * from the quoteValue method.\n   */;\n  _proto.smartQuoteMark = function smartQuoteMark(options) {\n    var v = this.value;\n    var numSingleQuotes = v.replace(/[^']/g, '').length;\n    var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n    if (numSingleQuotes + numDoubleQuotes === 0) {\n      var escaped = (0, _cssesc[\"default\"])(v, {\n        isIdentifier: true\n      });\n      if (escaped === v) {\n        return Attribute.NO_QUOTE;\n      } else {\n        var pref = this.preferredQuoteMark(options);\n        if (pref === Attribute.NO_QUOTE) {\n          // pick a quote mark that isn't none and see if it's smaller\n          var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n          var opts = CSSESC_QUOTE_OPTIONS[quote];\n          var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n          if (quoteValue.length < escaped.length) {\n            return quote;\n          }\n        }\n        return pref;\n      }\n    } else if (numDoubleQuotes === numSingleQuotes) {\n      return this.preferredQuoteMark(options);\n    } else if (numDoubleQuotes < numSingleQuotes) {\n      return Attribute.DOUBLE_QUOTE;\n    } else {\n      return Attribute.SINGLE_QUOTE;\n    }\n  }\n\n  /**\n   * Selects the preferred quote mark based on the options and the current quote mark value.\n   * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n   * instead.\n   */;\n  _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n    var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n    if (quoteMark === undefined) {\n      quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n    }\n    if (quoteMark === undefined) {\n      quoteMark = Attribute.DOUBLE_QUOTE;\n    }\n    return quoteMark;\n  };\n  _proto._syncRawValue = function _syncRawValue() {\n    var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n    if (rawValue === this._value) {\n      if (this.raws) {\n        delete this.raws.value;\n      }\n    } else {\n      this.raws.value = rawValue;\n    }\n  };\n  _proto._handleEscapes = function _handleEscapes(prop, value) {\n    if (this._constructed) {\n      var escaped = (0, _cssesc[\"default\"])(value, {\n        isIdentifier: true\n      });\n      if (escaped !== value) {\n        this.raws[prop] = escaped;\n      } else {\n        delete this.raws[prop];\n      }\n    }\n  };\n  _proto._spacesFor = function _spacesFor(name) {\n    var attrSpaces = {\n      before: '',\n      after: ''\n    };\n    var spaces = this.spaces[name] || {};\n    var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n    return Object.assign(attrSpaces, spaces, rawSpaces);\n  };\n  _proto._stringFor = function _stringFor(name, spaceName, concat) {\n    if (spaceName === void 0) {\n      spaceName = name;\n    }\n    if (concat === void 0) {\n      concat = defaultAttrConcat;\n    }\n    var attrSpaces = this._spacesFor(spaceName);\n    return concat(this.stringifyProperty(name), attrSpaces);\n  }\n\n  /**\n   * returns the offset of the attribute part specified relative to the\n   * start of the node of the output string.\n   *\n   * * \"ns\" - alias for \"namespace\"\n   * * \"namespace\" - the namespace if it exists.\n   * * \"attribute\" - the attribute name\n   * * \"attributeNS\" - the start of the attribute or its namespace\n   * * \"operator\" - the match operator of the attribute\n   * * \"value\" - The value (string or identifier)\n   * * \"insensitive\" - the case insensitivity flag;\n   * @param part One of the possible values inside an attribute.\n   * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n   */;\n  _proto.offsetOf = function offsetOf(name) {\n    var count = 1;\n    var attributeSpaces = this._spacesFor(\"attribute\");\n    count += attributeSpaces.before.length;\n    if (name === \"namespace\" || name === \"ns\") {\n      return this.namespace ? count : -1;\n    }\n    if (name === \"attributeNS\") {\n      return count;\n    }\n    count += this.namespaceString.length;\n    if (this.namespace) {\n      count += 1;\n    }\n    if (name === \"attribute\") {\n      return count;\n    }\n    count += this.stringifyProperty(\"attribute\").length;\n    count += attributeSpaces.after.length;\n    var operatorSpaces = this._spacesFor(\"operator\");\n    count += operatorSpaces.before.length;\n    var operator = this.stringifyProperty(\"operator\");\n    if (name === \"operator\") {\n      return operator ? count : -1;\n    }\n    count += operator.length;\n    count += operatorSpaces.after.length;\n    var valueSpaces = this._spacesFor(\"value\");\n    count += valueSpaces.before.length;\n    var value = this.stringifyProperty(\"value\");\n    if (name === \"value\") {\n      return value ? count : -1;\n    }\n    count += value.length;\n    count += valueSpaces.after.length;\n    var insensitiveSpaces = this._spacesFor(\"insensitive\");\n    count += insensitiveSpaces.before.length;\n    if (name === \"insensitive\") {\n      return this.insensitive ? count : -1;\n    }\n    return -1;\n  };\n  _proto.toString = function toString() {\n    var _this2 = this;\n    var selector = [this.rawSpaceBefore, '['];\n    selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n    if (this.operator && (this.value || this.value === '')) {\n      selector.push(this._stringFor('operator'));\n      selector.push(this._stringFor('value'));\n      selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n        if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n          attrSpaces.before = \" \";\n        }\n        return defaultAttrConcat(attrValue, attrSpaces);\n      }));\n    }\n    selector.push(']');\n    selector.push(this.rawSpaceAfter);\n    return selector.join('');\n  };\n  _createClass(Attribute, [{\n    key: \"quoted\",\n    get: function get() {\n      var qm = this.quoteMark;\n      return qm === \"'\" || qm === '\"';\n    },\n    set: function set(value) {\n      warnOfDeprecatedQuotedAssignment();\n    }\n\n    /**\n     * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n     * returns `null` if the value is not quoted.\n     * returns `undefined` if the quotation state is unknown (this can happen when\n     * the attribute is constructed without specifying a quote mark.)\n     */\n  }, {\n    key: \"quoteMark\",\n    get: function get() {\n      return this._quoteMark;\n    }\n\n    /**\n     * Set the quote mark to be used by this attribute's value.\n     * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n     * value is updated accordingly.\n     *\n     * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n     */,\n    set: function set(quoteMark) {\n      if (!this._constructed) {\n        this._quoteMark = quoteMark;\n        return;\n      }\n      if (this._quoteMark !== quoteMark) {\n        this._quoteMark = quoteMark;\n        this._syncRawValue();\n      }\n    }\n  }, {\n    key: \"qualifiedAttribute\",\n    get: function get() {\n      return this.qualifiedName(this.raws.attribute || this.attribute);\n    }\n  }, {\n    key: \"insensitiveFlag\",\n    get: function get() {\n      return this.insensitive ? 'i' : '';\n    }\n  }, {\n    key: \"value\",\n    get: function get() {\n      return this._value;\n    },\n    set:\n    /**\n     * Before 3.0, the value had to be set to an escaped value including any wrapped\n     * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n     * is unescaped during parsing and any quote marks are removed.\n     *\n     * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n     * a deprecation warning is raised when the new value contains any characters that would\n     * require escaping (including if it contains wrapped quotes).\n     *\n     * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n     * how the new value is quoted.\n     */\n    function set(v) {\n      if (this._constructed) {\n        var _unescapeValue2 = unescapeValue(v),\n          deprecatedUsage = _unescapeValue2.deprecatedUsage,\n          unescaped = _unescapeValue2.unescaped,\n          quoteMark = _unescapeValue2.quoteMark;\n        if (deprecatedUsage) {\n          warnOfDeprecatedValueAssignment();\n        }\n        if (unescaped === this._value && quoteMark === this._quoteMark) {\n          return;\n        }\n        this._value = unescaped;\n        this._quoteMark = quoteMark;\n        this._syncRawValue();\n      } else {\n        this._value = v;\n      }\n    }\n  }, {\n    key: \"insensitive\",\n    get: function get() {\n      return this._insensitive;\n    }\n\n    /**\n     * Set the case insensitive flag.\n     * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag`\n     * of the attribute is updated accordingly.\n     *\n     * @param {true | false} insensitive true if the attribute should match case-insensitively.\n     */,\n    set: function set(insensitive) {\n      if (!insensitive) {\n        this._insensitive = false;\n\n        // \"i\" and \"I\" can be used in \"this.raws.insensitiveFlag\" to store the original notation.\n        // When setting `attr.insensitive = false` both should be erased to ensure correct serialization.\n        if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) {\n          this.raws.insensitiveFlag = undefined;\n        }\n      }\n      this._insensitive = insensitive;\n    }\n  }, {\n    key: \"attribute\",\n    get: function get() {\n      return this._attribute;\n    },\n    set: function set(name) {\n      this._handleEscapes(\"attribute\", name);\n      this._attribute = name;\n    }\n  }]);\n  return Attribute;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n  \"'\": {\n    quotes: 'single',\n    wrap: true\n  },\n  '\"': {\n    quotes: 'double',\n    wrap: true\n  }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n  isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n  return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}","map":{"version":3,"names":["exports","__esModule","unescapeValue","_cssesc","_interopRequireDefault","require","_unesc","_namespace","_types","_CSSESC_QUOTE_OPTIONS","obj","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_inheritsLoose","subClass","superClass","create","constructor","_setPrototypeOf","o","p","setPrototypeOf","bind","__proto__","deprecate","WRAPPED_IN_QUOTES","warnOfDeprecatedValueAssignment","warnOfDeprecatedQuotedAssignment","warnOfDeprecatedConstructor","value","deprecatedUsage","quoteMark","unescaped","m","match","handleDeprecatedContructorOpts","opts","undefined","_unescapeValue","raws","Attribute","_Namespace","_this","call","type","ATTRIBUTE","get","set","_constructed","_proto","getQuotedValue","options","_determineQuoteMark","cssescopts","CSSESC_QUOTE_OPTIONS","escaped","_value","smart","smartQuoteMark","preferredQuoteMark","setValue","_quoteMark","_syncRawValue","v","numSingleQuotes","replace","numDoubleQuotes","isIdentifier","NO_QUOTE","pref","quote","DOUBLE_QUOTE","quoteValue","SINGLE_QUOTE","preferCurrentQuoteMark","rawValue","_handleEscapes","prop","_spacesFor","name","attrSpaces","before","after","spaces","rawSpaces","assign","_stringFor","spaceName","concat","defaultAttrConcat","stringifyProperty","offsetOf","count","attributeSpaces","namespace","namespaceString","operatorSpaces","operator","valueSpaces","insensitiveSpaces","insensitive","toString","_this2","selector","rawSpaceBefore","push","attrValue","quoted","rawSpaceAfter","join","qm","qualifiedName","attribute","_unescapeValue2","_insensitive","insensitiveFlag","_attribute","quotes","wrap"],"sources":["C:/Users/user/Desktop/000newport/node_modules/postcss-selector-parser/dist/selectors/attribute.js"],"sourcesContent":["\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\nexports.unescapeValue = unescapeValue;\nvar _cssesc = _interopRequireDefault(require(\"cssesc\"));\nvar _unesc = _interopRequireDefault(require(\"../util/unesc\"));\nvar _namespace = _interopRequireDefault(require(\"./namespace\"));\nvar _types = require(\"./types\");\nvar _CSSESC_QUOTE_OPTIONS;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nvar deprecate = require(\"util-deprecate\");\nvar WRAPPED_IN_QUOTES = /^('|\")([^]*)\\1$/;\nvar warnOfDeprecatedValueAssignment = deprecate(function () {}, \"Assigning an attribute a value containing characters that might need to be escaped is deprecated. \" + \"Call attribute.setValue() instead.\");\nvar warnOfDeprecatedQuotedAssignment = deprecate(function () {}, \"Assigning attr.quoted is deprecated and has no effect. Assign to attr.quoteMark instead.\");\nvar warnOfDeprecatedConstructor = deprecate(function () {}, \"Constructing an Attribute selector with a value without specifying quoteMark is deprecated. Note: The value should be unescaped now.\");\nfunction unescapeValue(value) {\n  var deprecatedUsage = false;\n  var quoteMark = null;\n  var unescaped = value;\n  var m = unescaped.match(WRAPPED_IN_QUOTES);\n  if (m) {\n    quoteMark = m[1];\n    unescaped = m[2];\n  }\n  unescaped = (0, _unesc[\"default\"])(unescaped);\n  if (unescaped !== value) {\n    deprecatedUsage = true;\n  }\n  return {\n    deprecatedUsage: deprecatedUsage,\n    unescaped: unescaped,\n    quoteMark: quoteMark\n  };\n}\nfunction handleDeprecatedContructorOpts(opts) {\n  if (opts.quoteMark !== undefined) {\n    return opts;\n  }\n  if (opts.value === undefined) {\n    return opts;\n  }\n  warnOfDeprecatedConstructor();\n  var _unescapeValue = unescapeValue(opts.value),\n    quoteMark = _unescapeValue.quoteMark,\n    unescaped = _unescapeValue.unescaped;\n  if (!opts.raws) {\n    opts.raws = {};\n  }\n  if (opts.raws.value === undefined) {\n    opts.raws.value = opts.value;\n  }\n  opts.value = unescaped;\n  opts.quoteMark = quoteMark;\n  return opts;\n}\nvar Attribute = /*#__PURE__*/function (_Namespace) {\n  _inheritsLoose(Attribute, _Namespace);\n  function Attribute(opts) {\n    var _this;\n    if (opts === void 0) {\n      opts = {};\n    }\n    _this = _Namespace.call(this, handleDeprecatedContructorOpts(opts)) || this;\n    _this.type = _types.ATTRIBUTE;\n    _this.raws = _this.raws || {};\n    Object.defineProperty(_this.raws, 'unquoted', {\n      get: deprecate(function () {\n        return _this.value;\n      }, \"attr.raws.unquoted is deprecated. Call attr.value instead.\"),\n      set: deprecate(function () {\n        return _this.value;\n      }, \"Setting attr.raws.unquoted is deprecated and has no effect. attr.value is unescaped by default now.\")\n    });\n    _this._constructed = true;\n    return _this;\n  }\n\n  /**\n   * Returns the Attribute's value quoted such that it would be legal to use\n   * in the value of a css file. The original value's quotation setting\n   * used for stringification is left unchanged. See `setValue(value, options)`\n   * if you want to control the quote settings of a new value for the attribute.\n   *\n   * You can also change the quotation used for the current value by setting quoteMark.\n   *\n   * Options:\n   *   * quoteMark {'\"' | \"'\" | null} - Use this value to quote the value. If this\n   *     option is not set, the original value for quoteMark will be used. If\n   *     indeterminate, a double quote is used. The legal values are:\n   *     * `null` - the value will be unquoted and characters will be escaped as necessary.\n   *     * `'` - the value will be quoted with a single quote and single quotes are escaped.\n   *     * `\"` - the value will be quoted with a double quote and double quotes are escaped.\n   *   * preferCurrentQuoteMark {boolean} - if true, prefer the source quote mark\n   *     over the quoteMark option value.\n   *   * smart {boolean} - if true, will select a quote mark based on the value\n   *     and the other options specified here. See the `smartQuoteMark()`\n   *     method.\n   **/\n  var _proto = Attribute.prototype;\n  _proto.getQuotedValue = function getQuotedValue(options) {\n    if (options === void 0) {\n      options = {};\n    }\n    var quoteMark = this._determineQuoteMark(options);\n    var cssescopts = CSSESC_QUOTE_OPTIONS[quoteMark];\n    var escaped = (0, _cssesc[\"default\"])(this._value, cssescopts);\n    return escaped;\n  };\n  _proto._determineQuoteMark = function _determineQuoteMark(options) {\n    return options.smart ? this.smartQuoteMark(options) : this.preferredQuoteMark(options);\n  }\n\n  /**\n   * Set the unescaped value with the specified quotation options. The value\n   * provided must not include any wrapping quote marks -- those quotes will\n   * be interpreted as part of the value and escaped accordingly.\n   */;\n  _proto.setValue = function setValue(value, options) {\n    if (options === void 0) {\n      options = {};\n    }\n    this._value = value;\n    this._quoteMark = this._determineQuoteMark(options);\n    this._syncRawValue();\n  }\n\n  /**\n   * Intelligently select a quoteMark value based on the value's contents. If\n   * the value is a legal CSS ident, it will not be quoted. Otherwise a quote\n   * mark will be picked that minimizes the number of escapes.\n   *\n   * If there's no clear winner, the quote mark from these options is used,\n   * then the source quote mark (this is inverted if `preferCurrentQuoteMark` is\n   * true). If the quoteMark is unspecified, a double quote is used.\n   *\n   * @param options This takes the quoteMark and preferCurrentQuoteMark options\n   * from the quoteValue method.\n   */;\n  _proto.smartQuoteMark = function smartQuoteMark(options) {\n    var v = this.value;\n    var numSingleQuotes = v.replace(/[^']/g, '').length;\n    var numDoubleQuotes = v.replace(/[^\"]/g, '').length;\n    if (numSingleQuotes + numDoubleQuotes === 0) {\n      var escaped = (0, _cssesc[\"default\"])(v, {\n        isIdentifier: true\n      });\n      if (escaped === v) {\n        return Attribute.NO_QUOTE;\n      } else {\n        var pref = this.preferredQuoteMark(options);\n        if (pref === Attribute.NO_QUOTE) {\n          // pick a quote mark that isn't none and see if it's smaller\n          var quote = this.quoteMark || options.quoteMark || Attribute.DOUBLE_QUOTE;\n          var opts = CSSESC_QUOTE_OPTIONS[quote];\n          var quoteValue = (0, _cssesc[\"default\"])(v, opts);\n          if (quoteValue.length < escaped.length) {\n            return quote;\n          }\n        }\n        return pref;\n      }\n    } else if (numDoubleQuotes === numSingleQuotes) {\n      return this.preferredQuoteMark(options);\n    } else if (numDoubleQuotes < numSingleQuotes) {\n      return Attribute.DOUBLE_QUOTE;\n    } else {\n      return Attribute.SINGLE_QUOTE;\n    }\n  }\n\n  /**\n   * Selects the preferred quote mark based on the options and the current quote mark value.\n   * If you want the quote mark to depend on the attribute value, call `smartQuoteMark(opts)`\n   * instead.\n   */;\n  _proto.preferredQuoteMark = function preferredQuoteMark(options) {\n    var quoteMark = options.preferCurrentQuoteMark ? this.quoteMark : options.quoteMark;\n    if (quoteMark === undefined) {\n      quoteMark = options.preferCurrentQuoteMark ? options.quoteMark : this.quoteMark;\n    }\n    if (quoteMark === undefined) {\n      quoteMark = Attribute.DOUBLE_QUOTE;\n    }\n    return quoteMark;\n  };\n  _proto._syncRawValue = function _syncRawValue() {\n    var rawValue = (0, _cssesc[\"default\"])(this._value, CSSESC_QUOTE_OPTIONS[this.quoteMark]);\n    if (rawValue === this._value) {\n      if (this.raws) {\n        delete this.raws.value;\n      }\n    } else {\n      this.raws.value = rawValue;\n    }\n  };\n  _proto._handleEscapes = function _handleEscapes(prop, value) {\n    if (this._constructed) {\n      var escaped = (0, _cssesc[\"default\"])(value, {\n        isIdentifier: true\n      });\n      if (escaped !== value) {\n        this.raws[prop] = escaped;\n      } else {\n        delete this.raws[prop];\n      }\n    }\n  };\n  _proto._spacesFor = function _spacesFor(name) {\n    var attrSpaces = {\n      before: '',\n      after: ''\n    };\n    var spaces = this.spaces[name] || {};\n    var rawSpaces = this.raws.spaces && this.raws.spaces[name] || {};\n    return Object.assign(attrSpaces, spaces, rawSpaces);\n  };\n  _proto._stringFor = function _stringFor(name, spaceName, concat) {\n    if (spaceName === void 0) {\n      spaceName = name;\n    }\n    if (concat === void 0) {\n      concat = defaultAttrConcat;\n    }\n    var attrSpaces = this._spacesFor(spaceName);\n    return concat(this.stringifyProperty(name), attrSpaces);\n  }\n\n  /**\n   * returns the offset of the attribute part specified relative to the\n   * start of the node of the output string.\n   *\n   * * \"ns\" - alias for \"namespace\"\n   * * \"namespace\" - the namespace if it exists.\n   * * \"attribute\" - the attribute name\n   * * \"attributeNS\" - the start of the attribute or its namespace\n   * * \"operator\" - the match operator of the attribute\n   * * \"value\" - The value (string or identifier)\n   * * \"insensitive\" - the case insensitivity flag;\n   * @param part One of the possible values inside an attribute.\n   * @returns -1 if the name is invalid or the value doesn't exist in this attribute.\n   */;\n  _proto.offsetOf = function offsetOf(name) {\n    var count = 1;\n    var attributeSpaces = this._spacesFor(\"attribute\");\n    count += attributeSpaces.before.length;\n    if (name === \"namespace\" || name === \"ns\") {\n      return this.namespace ? count : -1;\n    }\n    if (name === \"attributeNS\") {\n      return count;\n    }\n    count += this.namespaceString.length;\n    if (this.namespace) {\n      count += 1;\n    }\n    if (name === \"attribute\") {\n      return count;\n    }\n    count += this.stringifyProperty(\"attribute\").length;\n    count += attributeSpaces.after.length;\n    var operatorSpaces = this._spacesFor(\"operator\");\n    count += operatorSpaces.before.length;\n    var operator = this.stringifyProperty(\"operator\");\n    if (name === \"operator\") {\n      return operator ? count : -1;\n    }\n    count += operator.length;\n    count += operatorSpaces.after.length;\n    var valueSpaces = this._spacesFor(\"value\");\n    count += valueSpaces.before.length;\n    var value = this.stringifyProperty(\"value\");\n    if (name === \"value\") {\n      return value ? count : -1;\n    }\n    count += value.length;\n    count += valueSpaces.after.length;\n    var insensitiveSpaces = this._spacesFor(\"insensitive\");\n    count += insensitiveSpaces.before.length;\n    if (name === \"insensitive\") {\n      return this.insensitive ? count : -1;\n    }\n    return -1;\n  };\n  _proto.toString = function toString() {\n    var _this2 = this;\n    var selector = [this.rawSpaceBefore, '['];\n    selector.push(this._stringFor('qualifiedAttribute', 'attribute'));\n    if (this.operator && (this.value || this.value === '')) {\n      selector.push(this._stringFor('operator'));\n      selector.push(this._stringFor('value'));\n      selector.push(this._stringFor('insensitiveFlag', 'insensitive', function (attrValue, attrSpaces) {\n        if (attrValue.length > 0 && !_this2.quoted && attrSpaces.before.length === 0 && !(_this2.spaces.value && _this2.spaces.value.after)) {\n          attrSpaces.before = \" \";\n        }\n        return defaultAttrConcat(attrValue, attrSpaces);\n      }));\n    }\n    selector.push(']');\n    selector.push(this.rawSpaceAfter);\n    return selector.join('');\n  };\n  _createClass(Attribute, [{\n    key: \"quoted\",\n    get: function get() {\n      var qm = this.quoteMark;\n      return qm === \"'\" || qm === '\"';\n    },\n    set: function set(value) {\n      warnOfDeprecatedQuotedAssignment();\n    }\n\n    /**\n     * returns a single (`'`) or double (`\"`) quote character if the value is quoted.\n     * returns `null` if the value is not quoted.\n     * returns `undefined` if the quotation state is unknown (this can happen when\n     * the attribute is constructed without specifying a quote mark.)\n     */\n  }, {\n    key: \"quoteMark\",\n    get: function get() {\n      return this._quoteMark;\n    }\n\n    /**\n     * Set the quote mark to be used by this attribute's value.\n     * If the quote mark changes, the raw (escaped) value at `attr.raws.value` of the attribute\n     * value is updated accordingly.\n     *\n     * @param {\"'\" | '\"' | null} quoteMark The quote mark or `null` if the value should be unquoted.\n     */,\n    set: function set(quoteMark) {\n      if (!this._constructed) {\n        this._quoteMark = quoteMark;\n        return;\n      }\n      if (this._quoteMark !== quoteMark) {\n        this._quoteMark = quoteMark;\n        this._syncRawValue();\n      }\n    }\n  }, {\n    key: \"qualifiedAttribute\",\n    get: function get() {\n      return this.qualifiedName(this.raws.attribute || this.attribute);\n    }\n  }, {\n    key: \"insensitiveFlag\",\n    get: function get() {\n      return this.insensitive ? 'i' : '';\n    }\n  }, {\n    key: \"value\",\n    get: function get() {\n      return this._value;\n    },\n    set:\n    /**\n     * Before 3.0, the value had to be set to an escaped value including any wrapped\n     * quote marks. In 3.0, the semantics of `Attribute.value` changed so that the value\n     * is unescaped during parsing and any quote marks are removed.\n     *\n     * Because the ambiguity of this semantic change, if you set `attr.value = newValue`,\n     * a deprecation warning is raised when the new value contains any characters that would\n     * require escaping (including if it contains wrapped quotes).\n     *\n     * Instead, you should call `attr.setValue(newValue, opts)` and pass options that describe\n     * how the new value is quoted.\n     */\n    function set(v) {\n      if (this._constructed) {\n        var _unescapeValue2 = unescapeValue(v),\n          deprecatedUsage = _unescapeValue2.deprecatedUsage,\n          unescaped = _unescapeValue2.unescaped,\n          quoteMark = _unescapeValue2.quoteMark;\n        if (deprecatedUsage) {\n          warnOfDeprecatedValueAssignment();\n        }\n        if (unescaped === this._value && quoteMark === this._quoteMark) {\n          return;\n        }\n        this._value = unescaped;\n        this._quoteMark = quoteMark;\n        this._syncRawValue();\n      } else {\n        this._value = v;\n      }\n    }\n  }, {\n    key: \"insensitive\",\n    get: function get() {\n      return this._insensitive;\n    }\n\n    /**\n     * Set the case insensitive flag.\n     * If the case insensitive flag changes, the raw (escaped) value at `attr.raws.insensitiveFlag`\n     * of the attribute is updated accordingly.\n     *\n     * @param {true | false} insensitive true if the attribute should match case-insensitively.\n     */,\n    set: function set(insensitive) {\n      if (!insensitive) {\n        this._insensitive = false;\n\n        // \"i\" and \"I\" can be used in \"this.raws.insensitiveFlag\" to store the original notation.\n        // When setting `attr.insensitive = false` both should be erased to ensure correct serialization.\n        if (this.raws && (this.raws.insensitiveFlag === 'I' || this.raws.insensitiveFlag === 'i')) {\n          this.raws.insensitiveFlag = undefined;\n        }\n      }\n      this._insensitive = insensitive;\n    }\n  }, {\n    key: \"attribute\",\n    get: function get() {\n      return this._attribute;\n    },\n    set: function set(name) {\n      this._handleEscapes(\"attribute\", name);\n      this._attribute = name;\n    }\n  }]);\n  return Attribute;\n}(_namespace[\"default\"]);\nexports[\"default\"] = Attribute;\nAttribute.NO_QUOTE = null;\nAttribute.SINGLE_QUOTE = \"'\";\nAttribute.DOUBLE_QUOTE = '\"';\nvar CSSESC_QUOTE_OPTIONS = (_CSSESC_QUOTE_OPTIONS = {\n  \"'\": {\n    quotes: 'single',\n    wrap: true\n  },\n  '\"': {\n    quotes: 'double',\n    wrap: true\n  }\n}, _CSSESC_QUOTE_OPTIONS[null] = {\n  isIdentifier: true\n}, _CSSESC_QUOTE_OPTIONS);\nfunction defaultAttrConcat(attrValue, attrSpaces) {\n  return \"\" + attrSpaces.before + attrValue + attrSpaces.after;\n}"],"mappings":"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"},"metadata":{},"sourceType":"script","externalDependencies":[]}