@google/earthengine 0.1.414 → 0.1.416

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1197,6 +1197,33 @@ $jscomp.polyfill("Set", function(NativeSet) {
1197
1197
  };
1198
1198
  return PolyfillSet;
1199
1199
  }, "es6", "es3");
1200
+ $jscomp.polyfill("String.prototype.codePointAt", function(orig) {
1201
+ return orig ? orig : function(position) {
1202
+ var string = $jscomp.checkStringArgs(this, null, "codePointAt"), size = string.length;
1203
+ position = Number(position) || 0;
1204
+ if (position >= 0 && position < size) {
1205
+ position |= 0;
1206
+ var first = string.charCodeAt(position);
1207
+ if (first < 55296 || first > 56319 || position + 1 === size) {
1208
+ return first;
1209
+ }
1210
+ var second = string.charCodeAt(position + 1);
1211
+ return second < 56320 || second > 57343 ? first : (first - 55296) * 1024 + second + 9216;
1212
+ }
1213
+ };
1214
+ }, "es6", "es3");
1215
+ $jscomp.polyfill("String.fromCodePoint", function(orig) {
1216
+ return orig ? orig : function(var_args) {
1217
+ for (var result = "", i = 0; i < arguments.length; i++) {
1218
+ var code = Number(arguments[i]);
1219
+ if (code < 0 || code > 1114111 || code !== Math.floor(code)) {
1220
+ throw new RangeError("invalid_code_point " + code);
1221
+ }
1222
+ code <= 65535 ? result += String.fromCharCode(code) : (code -= 65536, result += String.fromCharCode(code >>> 10 & 1023 | 55296), result += String.fromCharCode(code & 1023 | 56320));
1223
+ }
1224
+ return result;
1225
+ };
1226
+ }, "es6", "es3");
1200
1227
  $jscomp.polyfill("String.prototype.trimLeft", function(orig) {
1201
1228
  function polyfill() {
1202
1229
  return this.replace(/^[\s\xa0]+/, "");
@@ -1222,7 +1249,7 @@ $jscomp.polyfill("String.prototype.padStart", function(orig) {
1222
1249
  return $jscomp.stringPadding(opt_padString, targetLength - string.length) + string;
1223
1250
  };
1224
1251
  }, "es8", "es3");
1225
- var CLOSURE_TOGGLE_ORDINALS = {GoogFlags__async_throw_on_unicode_to_byte__enable:!1, GoogFlags__client_only_wiz_direct_reactions__disable:!1, GoogFlags__client_only_wiz_flush_queue_fix__enable:!1, GoogFlags__client_only_wiz_ordered_reaction_execution__enable:!1, GoogFlags__jspb_enable_low_index_extension_writes__disable:!1, GoogFlags__jspb_readonly_repeated_fields__disable:!1, GoogFlags__jspb_stop_using_repeated_field_sets_from_gencode__disable:!1, GoogFlags__override_disable_toggles:!1, GoogFlags__testonly_debug_flag__enable:!1,
1252
+ var CLOSURE_TOGGLE_ORDINALS = {GoogFlags__async_throw_on_unicode_to_byte__enable:!1, GoogFlags__client_only_wiz_direct_reactions__disable:!1, GoogFlags__client_only_wiz_flush_queue_fix__disable:!1, GoogFlags__client_only_wiz_ordered_reaction_execution__disable:!1, GoogFlags__jspb_enable_low_index_extension_writes__disable:!1, GoogFlags__jspb_readonly_repeated_fields__disable:!1, GoogFlags__jspb_stop_using_repeated_field_sets_from_gencode__disable:!1, GoogFlags__override_disable_toggles:!1, GoogFlags__testonly_debug_flag__enable:!1,
1226
1253
  GoogFlags__testonly_disabled_flag__enable:!1, GoogFlags__testonly_stable_flag__disable:!1, GoogFlags__testonly_staging_flag__disable:!1, GoogFlags__use_toggles:!1, GoogFlags__use_user_agent_client_hints__enable:!1, GoogFlags__wiz_enable_native_promise__enable:!1};
1227
1254
  /*
1228
1255
 
@@ -2686,7 +2713,7 @@ goog.string.internal.caseInsensitiveEquals = function(str1, str2) {
2686
2713
  goog.string.internal.isEmptyOrWhitespace = function(str) {
2687
2714
  return /^[\s\xa0]*$/.test(str);
2688
2715
  };
2689
- goog.string.internal.trim = goog.TRUSTED_SITE && String.prototype.trim ? function(str) {
2716
+ goog.string.internal.trim = goog.TRUSTED_SITE && (goog.FEATURESET_YEAR >= 2018 || String.prototype.trim) ? function(str) {
2690
2717
  return str.trim();
2691
2718
  } : function(str) {
2692
2719
  return /^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(str)[1];
@@ -3349,7 +3376,7 @@ var module$contents$goog$array_map = goog.NATIVE_ARRAY_PROTOTYPES && (module$con
3349
3376
  goog.array.map = module$contents$goog$array_map;
3350
3377
  goog.array.reduce = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduce) ? function(arr, f, val, opt_obj) {
3351
3378
  goog.asserts.assert(arr.length != null);
3352
- opt_obj && (f = goog.bind(f, opt_obj));
3379
+ opt_obj && (f = goog.TRUSTED_SITE ? f.bind(opt_obj) : goog.bind(f, opt_obj));
3353
3380
  return Array.prototype.reduce.call(arr, f, val);
3354
3381
  } : function(arr, f, val, opt_obj) {
3355
3382
  var rval = val;
@@ -3361,7 +3388,7 @@ goog.array.reduce = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_
3361
3388
  goog.array.reduceRight = goog.NATIVE_ARRAY_PROTOTYPES && (module$contents$goog$array_ASSUME_NATIVE_FUNCTIONS || Array.prototype.reduceRight) ? function(arr, f, val, opt_obj) {
3362
3389
  goog.asserts.assert(arr.length != null);
3363
3390
  goog.asserts.assert(f != null);
3364
- opt_obj && (f = goog.bind(f, opt_obj));
3391
+ opt_obj && (f = goog.TRUSTED_SITE ? f.bind(opt_obj) : goog.bind(f, opt_obj));
3365
3392
  return Array.prototype.reduceRight.call(arr, f, val);
3366
3393
  } : function(arr, f, val, opt_obj) {
3367
3394
  var rval = val;
@@ -5637,7 +5664,7 @@ goog.string.replaceAll = function(s, ss, replacement) {
5637
5664
  goog.string.regExpEscape = function(s) {
5638
5665
  return String(s).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g, "\\$1").replace(/\x08/g, "\\x08");
5639
5666
  };
5640
- goog.string.repeat = String.prototype.repeat ? function(string, length) {
5667
+ goog.string.repeat = goog.FEATURESET_YEAR >= 2018 || String.prototype.repeat ? function(string, length) {
5641
5668
  return string.repeat(length);
5642
5669
  } : function(string, length) {
5643
5670
  return Array(length + 1).join(string);
@@ -6784,7 +6811,7 @@ goog.Disposable.prototype.registerDisposable = function(disposable) {
6784
6811
  this.addOnDisposeCallback(goog.partial(module$contents$goog$dispose_dispose, disposable));
6785
6812
  };
6786
6813
  goog.Disposable.prototype.addOnDisposeCallback = function(callback, opt_scope) {
6787
- this.disposed_ ? opt_scope !== void 0 ? callback.call(opt_scope) : callback() : (this.onDisposeCallbacks_ || (this.onDisposeCallbacks_ = []), this.onDisposeCallbacks_.push(opt_scope !== void 0 ? goog.bind(callback, opt_scope) : callback));
6814
+ this.disposed_ ? opt_scope !== void 0 ? callback.call(opt_scope) : callback() : (this.onDisposeCallbacks_ || (this.onDisposeCallbacks_ = []), opt_scope && (callback = goog.TRUSTED_SITE ? callback.bind(opt_scope) : goog.bind(callback, opt_scope)), this.onDisposeCallbacks_.push(callback));
6788
6815
  };
6789
6816
  goog.Disposable.prototype.disposeInternal = function() {
6790
6817
  if (this.onDisposeCallbacks_) {
@@ -6852,9 +6879,10 @@ goog.debug.entryPointRegistry.unmonitorAllIfPossible = function(monitor) {
6852
6879
  }
6853
6880
  monitors.length--;
6854
6881
  };
6855
- goog.events.BrowserFeature = {TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global.document && document.documentElement && "ontouchstart" in document.documentElement) || !(!goog.global.navigator || !goog.global.navigator.maxTouchPoints && !goog.global.navigator.msMaxTouchPoints), POINTER_EVENTS:"PointerEvent" in goog.global, MSPOINTER_EVENTS:!1, PASSIVE_EVENTS:function(fn) {
6882
+ var module$contents$goog$events$BrowserFeature_purify = function(fn) {
6856
6883
  return {valueOf:fn}.valueOf();
6857
- }(function() {
6884
+ };
6885
+ goog.events.BrowserFeature = {TOUCH_ENABLED:"ontouchstart" in goog.global || !!(goog.global.document && document.documentElement && "ontouchstart" in document.documentElement) || !!(goog.FEATURESET_YEAR < 2018 && goog.global.navigator && (goog.global.navigator.maxTouchPoints || goog.global.navigator.msMaxTouchPoints)), POINTER_EVENTS:goog.FEATURESET_YEAR >= 2019 || "PointerEvent" in goog.global, MSPOINTER_EVENTS:!1, PASSIVE_EVENTS:goog.FEATURESET_YEAR > 2018 || module$contents$goog$events$BrowserFeature_purify(function() {
6858
6886
  if (!goog.global.addEventListener || !Object.defineProperty) {
6859
6887
  return !1;
6860
6888
  }
@@ -6881,8 +6909,8 @@ module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_user_agent_cl
6881
6909
  module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__async_throw_on_unicode_to_byte__enable = !1;
6882
6910
  module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__jspb_stop_using_repeated_field_sets_from_gencode__disable = !1;
6883
6911
  module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_direct_reactions__disable = !1;
6884
- module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_flush_queue_fix__enable = !1;
6885
- module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_ordered_reaction_execution__enable = !1;
6912
+ module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_flush_queue_fix__disable = !1;
6913
+ module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_ordered_reaction_execution__disable = !1;
6886
6914
  module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__jspb_enable_low_index_extension_writes__disable = !1;
6887
6915
  module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__wiz_enable_native_promise__enable = !1;
6888
6916
  module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__jspb_readonly_repeated_fields__disable = !1;
@@ -6896,8 +6924,9 @@ goog.flags.USE_USER_AGENT_CLIENT_HINTS = module$exports$closure$flags$flags$2eto
6896
6924
  goog.flags.ASYNC_THROW_ON_UNICODE_TO_BYTE = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__async_throw_on_unicode_to_byte__enable : goog.readFlagInternalDoNotUseOrElse(899588437, !1);
6897
6925
  goog.flags.JSPB_STOP_USING_REPEATED_FIELD_SETS_FROM_GENCODE = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles || !module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__jspb_stop_using_repeated_field_sets_from_gencode__disable : goog.readFlagInternalDoNotUseOrElse(188588736, !0);
6898
6926
  goog.flags.CLIENT_ONLY_WIZ_DIRECT_REACTIONS = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.FLAGS_STAGING_DEFAULT && (module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles || !module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_direct_reactions__disable) : goog.readFlagInternalDoNotUseOrElse(641353869, module$contents$goog$flags_STAGING);
6899
- goog.flags.CLIENT_ONLY_WIZ_FLUSH_QUEUE_FIX = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.DEBUG || module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_flush_queue_fix__enable : goog.readFlagInternalDoNotUseOrElse(644029907, goog.DEBUG);
6900
- goog.flags.CLIENT_ONLY_WIZ_ORDERED_REACTION_EXECUTION = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.DEBUG || module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_ordered_reaction_execution__enable : goog.readFlagInternalDoNotUseOrElse(1822726157, goog.DEBUG);
6927
+ goog.flags.CLIENT_ONLY_WIZ_FLUSH_QUEUE_FIX = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.FLAGS_STAGING_DEFAULT && (module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles || !module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_flush_queue_fix__disable) : goog.readFlagInternalDoNotUseOrElse(644029907, module$contents$goog$flags_STAGING);
6928
+ goog.flags.CLIENT_ONLY_WIZ_ORDERED_REACTION_EXECUTION = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.FLAGS_STAGING_DEFAULT && (module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles || !module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__client_only_wiz_ordered_reaction_execution__disable) : goog.readFlagInternalDoNotUseOrElse(1822726157,
6929
+ module$contents$goog$flags_STAGING);
6901
6930
  goog.flags.JSPB_ENABLE_LOW_INDEX_EXTENSION_WRITES = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.FLAGS_STAGING_DEFAULT && (module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__override_disable_toggles || !module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__jspb_enable_low_index_extension_writes__disable) : goog.readFlagInternalDoNotUseOrElse(645172343,
6902
6931
  module$contents$goog$flags_STAGING);
6903
6932
  goog.flags.WIZ_ENABLE_NATIVE_PROMISE = module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__use_toggles ? goog.DEBUG || module$exports$closure$flags$flags$2etoggles.TOGGLE_GoogFlags__wiz_enable_native_promise__enable : goog.readFlagInternalDoNotUseOrElse(651175828, goog.DEBUG);
@@ -7637,8 +7666,8 @@ goog.events.eventTypeHelpers = {};
7637
7666
  goog.events.eventTypeHelpers.getVendorPrefixedName = function(eventName) {
7638
7667
  return goog.userAgent.WEBKIT ? "webkit" + eventName : eventName.toLowerCase();
7639
7668
  };
7640
- goog.events.eventTypeHelpers.getPointerFallbackEventName = function(pointerEventName, msPointerEventName, fallbackEventName) {
7641
- return goog.events.BrowserFeature.POINTER_EVENTS ? pointerEventName : goog.events.BrowserFeature.MSPOINTER_EVENTS ? msPointerEventName : fallbackEventName;
7669
+ goog.events.eventTypeHelpers.getPointerFallbackEventName = function(pointerEventName, fallbackEventName) {
7670
+ return goog.events.BrowserFeature.POINTER_EVENTS ? pointerEventName : fallbackEventName;
7642
7671
  };
7643
7672
  goog.events.EventType = {CLICK:"click", RIGHTCLICK:"rightclick", DBLCLICK:"dblclick", AUXCLICK:"auxclick", MOUSEDOWN:"mousedown", MOUSEUP:"mouseup", MOUSEOVER:"mouseover", MOUSEOUT:"mouseout", MOUSEMOVE:"mousemove", MOUSEENTER:"mouseenter", MOUSELEAVE:"mouseleave", MOUSECANCEL:"mousecancel", SELECTIONCHANGE:"selectionchange", SELECTSTART:"selectstart", WHEEL:"wheel", KEYPRESS:"keypress", KEYDOWN:"keydown", KEYUP:"keyup", BLUR:"blur", FOCUS:"focus", DEACTIVATE:"deactivate", FOCUSIN:"focusin", FOCUSOUT:"focusout",
7644
7673
  CHANGE:"change", RESET:"reset", SELECT:"select", SUBMIT:"submit", INPUT:"input", PROPERTYCHANGE:"propertychange", DRAGSTART:"dragstart", DRAG:"drag", DRAGENTER:"dragenter", DRAGOVER:"dragover", DRAGLEAVE:"dragleave", DROP:"drop", DRAGEND:"dragend", TOUCHSTART:"touchstart", TOUCHMOVE:"touchmove", TOUCHEND:"touchend", TOUCHCANCEL:"touchcancel", BEFOREUNLOAD:"beforeunload", CONSOLEMESSAGE:"consolemessage", CONTEXTMENU:"contextmenu", DEVICECHANGE:"devicechange", DEVICEMOTION:"devicemotion", DEVICEORIENTATION:"deviceorientation",
@@ -7668,15 +7697,12 @@ goog.inherits(goog.events.BrowserEvent, goog.events.Event);
7668
7697
  goog.events.BrowserEvent.USE_LAYER_XY_AS_OFFSET_XY = !1;
7669
7698
  goog.events.BrowserEvent.MouseButton = {LEFT:0, MIDDLE:1, RIGHT:2, BACK:3, FORWARD:4};
7670
7699
  goog.events.BrowserEvent.PointerType = {MOUSE:"mouse", PEN:"pen", TOUCH:"touch"};
7671
- goog.events.BrowserEvent.IEButtonMap = goog.debug.freeze([1, 4, 2]);
7672
- goog.events.BrowserEvent.IE_BUTTON_MAP = goog.events.BrowserEvent.IEButtonMap;
7673
- goog.events.BrowserEvent.IE_POINTER_TYPE_MAP = goog.debug.freeze({2:goog.events.BrowserEvent.PointerType.TOUCH, 3:goog.events.BrowserEvent.PointerType.PEN, 4:goog.events.BrowserEvent.PointerType.MOUSE});
7674
7700
  goog.events.BrowserEvent.prototype.init = function(e, opt_currentTarget) {
7675
7701
  var type = this.type = e.type, relevantTouch = e.changedTouches && e.changedTouches.length ? e.changedTouches[0] : null;
7676
7702
  this.target = e.target || e.srcElement;
7677
7703
  this.currentTarget = opt_currentTarget;
7678
7704
  var relatedTarget = e.relatedTarget;
7679
- relatedTarget ? goog.userAgent.GECKO && (goog.reflect.canAccessProperty(relatedTarget, "nodeName") || (relatedTarget = null)) : type == goog.events.EventType.MOUSEOVER ? relatedTarget = e.fromElement : type == goog.events.EventType.MOUSEOUT && (relatedTarget = e.toElement);
7705
+ relatedTarget || (type == goog.events.EventType.MOUSEOVER ? relatedTarget = e.fromElement : type == goog.events.EventType.MOUSEOUT && (relatedTarget = e.toElement));
7680
7706
  this.relatedTarget = relatedTarget;
7681
7707
  relevantTouch ? (this.clientX = relevantTouch.clientX !== void 0 ? relevantTouch.clientX : relevantTouch.pageX, this.clientY = relevantTouch.clientY !== void 0 ? relevantTouch.clientY : relevantTouch.pageY, this.screenX = relevantTouch.screenX || 0, this.screenY = relevantTouch.screenY || 0) : (goog.events.BrowserEvent.USE_LAYER_XY_AS_OFFSET_XY ? (this.offsetX = e.layerX !== void 0 ? e.layerX : e.offsetX, this.offsetY = e.layerY !== void 0 ? e.layerY : e.offsetY) : (this.offsetX = goog.userAgent.WEBKIT ||
7682
7708
  e.offsetX !== void 0 ? e.offsetX : e.layerX, this.offsetY = goog.userAgent.WEBKIT || e.offsetY !== void 0 ? e.offsetY : e.layerY), this.clientX = e.clientX !== void 0 ? e.clientX : e.pageX, this.clientY = e.clientY !== void 0 ? e.clientY : e.pageY, this.screenX = e.screenX || 0, this.screenY = e.screenY || 0);
@@ -7715,7 +7741,7 @@ goog.events.BrowserEvent.prototype.getBrowserEvent = function() {
7715
7741
  return this.event_;
7716
7742
  };
7717
7743
  goog.events.BrowserEvent.getPointerType_ = function(e) {
7718
- return typeof e.pointerType === "string" ? e.pointerType : goog.events.BrowserEvent.IE_POINTER_TYPE_MAP[e.pointerType] || "";
7744
+ return e.pointerType;
7719
7745
  };
7720
7746
  goog.events.Listenable = function() {
7721
7747
  };
@@ -15283,18 +15309,6 @@ goog.asserts.dom.assertIsHtmlObjectElement = function(value) {
15283
15309
  return module$contents$goog$asserts$dom_assertIsHtmlElementOfType(value, goog.dom.TagName.OBJECT);
15284
15310
  };
15285
15311
  goog.asserts.dom.assertIsHtmlScriptElement = module$contents$goog$asserts$dom_assertIsHtmlScriptElement;
15286
- goog.dom.BrowserFeature = {};
15287
- goog.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS = !1;
15288
- goog.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS = goog.FEATURESET_YEAR >= 2024;
15289
- goog.dom.BrowserFeature.detectOffscreenCanvas_ = function(contextName) {
15290
- try {
15291
- return !!(new self.OffscreenCanvas(0, 0)).getContext(contextName);
15292
- } catch (ex) {
15293
- }
15294
- return !1;
15295
- };
15296
- goog.dom.BrowserFeature.OFFSCREEN_CANVAS_2D = !goog.dom.BrowserFeature.ASSUME_NO_OFFSCREEN_CANVAS && (goog.dom.BrowserFeature.ASSUME_OFFSCREEN_CANVAS || goog.dom.BrowserFeature.detectOffscreenCanvas_("2d"));
15297
- goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY = !0;
15298
15312
  goog.dom.asserts = {};
15299
15313
  goog.dom.asserts.assertIsLocation = function(o) {
15300
15314
  if (module$exports$enable_goog_asserts.ENABLE_GOOG_ASSERTS) {
@@ -15641,11 +15655,11 @@ function module$contents$safevalues$builders$html_sanitizer$no_clobber_isElement
15641
15655
  }
15642
15656
  module$exports$safevalues$builders$html_sanitizer$no_clobber.isElement = module$contents$safevalues$builders$html_sanitizer$no_clobber_isElement;
15643
15657
  var module$exports$safevalues$builders$html_sanitizer$resource_url_policy = {}, module$contents$safevalues$builders$html_sanitizer$resource_url_policy_module = module$contents$safevalues$builders$html_sanitizer$resource_url_policy_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/resource_url_policy.closure.js"};
15644
- module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType = {STYLE_TAG:0, STYLE_ATTRIBUTE:1, HTML_ATTRIBUTE:2};
15645
- module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType[module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.STYLE_TAG] = "STYLE_TAG";
15658
+ module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType = {STYLE_ELEMENT:0, STYLE_ATTRIBUTE:1, HTML_ATTRIBUTE:2};
15659
+ module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType[module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.STYLE_ELEMENT] = "STYLE_ELEMENT";
15646
15660
  module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType[module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.STYLE_ATTRIBUTE] = "STYLE_ATTRIBUTE";
15647
15661
  module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType[module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.HTML_ATTRIBUTE] = "HTML_ATTRIBUTE";
15648
- function module$contents$safevalues$builders$html_sanitizer$resource_url_policy_StyleTagOrAttributeResourceUrlPolicyHints() {
15662
+ function module$contents$safevalues$builders$html_sanitizer$resource_url_policy_StyleElementOrAttributeResourceUrlPolicyHints() {
15649
15663
  }
15650
15664
  function module$contents$safevalues$builders$html_sanitizer$resource_url_policy_HtmlAttributeResourceUrlPolicyHints() {
15651
15665
  }
@@ -15714,13 +15728,6 @@ module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanit
15714
15728
  })}]];
15715
15729
  module$exports$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table.DEFAULT_SANITIZER_TABLE = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(new Set(module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ALLOWED_ELEMENTS), new Map(module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ELEMENT_POLICIES),
15716
15730
  new Set(module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ALLOWED_GLOBAL_ATTRIBUTES), new Map(module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_GLOBAL_ATTRIBUTE_POLICIES));
15717
- module$exports$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table.CSS_SANITIZER_TABLE = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(new Set(module$contents$safevalues$internals$pure_pure(function() {
15718
- return module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ALLOWED_ELEMENTS.concat(["STYLE"]);
15719
- })), new Map(module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ELEMENT_POLICIES), new Set(module$contents$safevalues$internals$pure_pure(function() {
15720
- return module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ALLOWED_GLOBAL_ATTRIBUTES.concat(["id", "name", "class"]);
15721
- })), new Map(module$contents$safevalues$internals$pure_pure(function() {
15722
- return module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_GLOBAL_ATTRIBUTE_POLICIES.concat([["style", {policyAction:module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.AttributePolicyAction.KEEP_AND_SANITIZE_STYLE}]]);
15723
- })));
15724
15731
  module$exports$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table.LENIENT_SANITIZER_TABLE = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(new Set(module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ALLOWED_ELEMENTS.concat(["BUTTON", "INPUT"])), new Map(module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ELEMENT_POLICIES),
15725
15732
  new Set(module$contents$safevalues$internals$pure_pure(function() {
15726
15733
  return module$contents$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table_ALLOWED_GLOBAL_ATTRIBUTES.concat(["class", "id", "name"]);
@@ -15737,11 +15744,14 @@ module$exports$safevalues$builders$html_sanitizer$sanitizer_table$default_saniti
15737
15744
  var module$exports$safevalues$builders$html_sanitizer$html_sanitizer = {}, module$contents$safevalues$builders$html_sanitizer$html_sanitizer_module = module$contents$safevalues$builders$html_sanitizer$html_sanitizer_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/html_sanitizer.closure.js"};
15738
15745
  module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizer = function() {
15739
15746
  };
15747
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.CssSanitizer = function() {
15748
+ };
15740
15749
  module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl = function(sanitizerTable, token, styleElementSanitizer, styleAttributeSanitizer, resourceUrlPolicy) {
15741
15750
  this.sanitizerTable = sanitizerTable;
15742
15751
  this.styleElementSanitizer = styleElementSanitizer;
15743
15752
  this.styleAttributeSanitizer = styleAttributeSanitizer;
15744
15753
  this.resourceUrlPolicy = resourceUrlPolicy;
15754
+ this.SHADOW_DOM_INTERNAL_CSS = ":host{display:block;clip-path:inset(0);overflow:hidden}";
15745
15755
  this.changes = [];
15746
15756
  module$contents$safevalues$internals$secrets_ensureTokenIsValid(token);
15747
15757
  };
@@ -15759,11 +15769,21 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerIm
15759
15769
  };
15760
15770
  module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeToFragment = function(html) {
15761
15771
  var inertDocument = document.implementation.createHTMLDocument("");
15762
- return this.sanitizeToFragmentInternal(html, inertDocument);
15772
+ return this.styleElementSanitizer && this.styleAttributeSanitizer ? this.sanitizeWithCssToFragment(html, inertDocument) : this.sanitizeToFragmentInternal(html, inertDocument);
15773
+ };
15774
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeWithCssToFragment = function(htmlWithCss, inertDocument) {
15775
+ var elem = document.createElement("safevalues-with-css"), shadow = elem.attachShadow({mode:"closed"}), sanitized = this.sanitizeToFragmentInternal(htmlWithCss, inertDocument), internalStyle = document.createElement("style");
15776
+ internalStyle.textContent = this.SHADOW_DOM_INTERNAL_CSS;
15777
+ internalStyle.id = "safevalues-internal-style";
15778
+ shadow.appendChild(internalStyle);
15779
+ shadow.appendChild(sanitized);
15780
+ var fragment = inertDocument.createDocumentFragment();
15781
+ fragment.appendChild(elem);
15782
+ return fragment;
15763
15783
  };
15764
15784
  module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeToFragmentInternal = function(html, inertDocument) {
15765
- for (var $jscomp$this$m1085474118$10 = this, dirtyFragment = module$contents$safevalues$builders$html_sanitizer$inert_fragment_createInertFragment(html, inertDocument), treeWalker = document.createTreeWalker(dirtyFragment, 5, function(n) {
15766
- return $jscomp$this$m1085474118$10.nodeFilter(n);
15785
+ for (var $jscomp$this$m1085474118$13 = this, dirtyFragment = module$contents$safevalues$builders$html_sanitizer$inert_fragment_createInertFragment(html, inertDocument), treeWalker = document.createTreeWalker(dirtyFragment, 5, function(n) {
15786
+ return $jscomp$this$m1085474118$13.nodeFilter(n);
15767
15787
  }), currentNode = treeWalker.nextNode(), sanitizedFragment = inertDocument.createDocumentFragment(), sanitizedParent = sanitizedFragment; currentNode !== null;) {
15768
15788
  var sanitizedNode = void 0;
15769
15789
  if (module$contents$safevalues$builders$html_sanitizer$no_clobber_isText(currentNode)) {
@@ -15798,8 +15818,8 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerIm
15798
15818
  return this.createTextNode(textNode.data);
15799
15819
  };
15800
15820
  module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl.prototype.sanitizeElementNode = function(elementNode, inertDocument) {
15801
- for (var elementName = module$contents$safevalues$builders$html_sanitizer$no_clobber_getNodeName(elementNode), newNode = inertDocument.createElement(elementName), dirtyAttributes = elementNode.attributes, $jscomp$iter$32 = (0,$jscomp.makeIterator)(dirtyAttributes), $jscomp$key$m1085474118$31$ = $jscomp$iter$32.next(); !$jscomp$key$m1085474118$31$.done; $jscomp$key$m1085474118$31$ = $jscomp$iter$32.next()) {
15802
- var $jscomp$destructuring$var31 = $jscomp$key$m1085474118$31$.value, name = $jscomp$destructuring$var31.name, value = $jscomp$destructuring$var31.value, policy = this.sanitizerTable.getAttributePolicy(name, elementName);
15821
+ for (var elementName = module$contents$safevalues$builders$html_sanitizer$no_clobber_getNodeName(elementNode), newNode = inertDocument.createElement(elementName), dirtyAttributes = elementNode.attributes, $jscomp$iter$32 = (0,$jscomp.makeIterator)(dirtyAttributes), $jscomp$key$m1085474118$34$ = $jscomp$iter$32.next(); !$jscomp$key$m1085474118$34$.done; $jscomp$key$m1085474118$34$ = $jscomp$iter$32.next()) {
15822
+ var $jscomp$destructuring$var31 = $jscomp$key$m1085474118$34$.value, name = $jscomp$destructuring$var31.name, value = $jscomp$destructuring$var31.value, policy = this.sanitizerTable.getAttributePolicy(name, elementName);
15803
15823
  if (this.satisfiesAllConditions(policy.conditions, dirtyAttributes)) {
15804
15824
  switch(policy.policyAction) {
15805
15825
  case module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.AttributePolicyAction.KEEP:
@@ -15823,7 +15843,7 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerIm
15823
15843
  break;
15824
15844
  case module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.AttributePolicyAction.KEEP_AND_USE_RESOURCE_URL_POLICY:
15825
15845
  if (this.resourceUrlPolicy) {
15826
- var hints = {type:module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.HTML_ATTRIBUTE, attributeName:name, tagName:elementName}, url = module$contents$safevalues$builders$html_sanitizer$resource_url_policy_parseUrl(value), sanitizedUrl = this.resourceUrlPolicy(url, hints);
15846
+ var hints = {type:module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.HTML_ATTRIBUTE, attributeName:name, elementName:elementName}, url = module$contents$safevalues$builders$html_sanitizer$resource_url_policy_parseUrl(value), sanitizedUrl = this.resourceUrlPolicy(url, hints);
15827
15847
  sanitizedUrl && module$contents$safevalues$builders$html_sanitizer$html_sanitizer_setAttribute(newNode, name, sanitizedUrl.toString());
15828
15848
  } else {
15829
15849
  module$contents$safevalues$builders$html_sanitizer$html_sanitizer_setAttribute(newNode, name, value);
@@ -15831,9 +15851,9 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerIm
15831
15851
  break;
15832
15852
  case module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.AttributePolicyAction.KEEP_AND_USE_RESOURCE_URL_POLICY_FOR_SRCSET:
15833
15853
  if (this.resourceUrlPolicy) {
15834
- for (var hints$jscomp$0 = {type:module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.HTML_ATTRIBUTE, attributeName:name, tagName:elementName}, srcset = module$contents$safevalues$builders$html_sanitizer$html_sanitizer_parseSrcset(value), sanitizedSrcset = {parts:[]}, $jscomp$iter$31 = (0,$jscomp.makeIterator)(srcset.parts), $jscomp$key$m1085474118$30$part = $jscomp$iter$31.next(); !$jscomp$key$m1085474118$30$part.done; $jscomp$key$m1085474118$30$part =
15854
+ for (var hints$jscomp$0 = {type:module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.HTML_ATTRIBUTE, attributeName:name, elementName:elementName}, srcset = module$contents$safevalues$builders$html_sanitizer$html_sanitizer_parseSrcset(value), sanitizedSrcset = {parts:[]}, $jscomp$iter$31 = (0,$jscomp.makeIterator)(srcset.parts), $jscomp$key$m1085474118$33$part = $jscomp$iter$31.next(); !$jscomp$key$m1085474118$33$part.done; $jscomp$key$m1085474118$33$part =
15835
15855
  $jscomp$iter$31.next()) {
15836
- var part = $jscomp$key$m1085474118$30$part.value, url$jscomp$0 = module$contents$safevalues$builders$html_sanitizer$resource_url_policy_parseUrl(part.url), sanitizedUrl$jscomp$0 = this.resourceUrlPolicy(url$jscomp$0, hints$jscomp$0);
15856
+ var part = $jscomp$key$m1085474118$33$part.value, url$jscomp$0 = module$contents$safevalues$builders$html_sanitizer$resource_url_policy_parseUrl(part.url), sanitizedUrl$jscomp$0 = this.resourceUrlPolicy(url$jscomp$0, hints$jscomp$0);
15837
15857
  sanitizedUrl$jscomp$0 && sanitizedSrcset.parts.push({url:sanitizedUrl$jscomp$0.toString(), descriptor:part.descriptor});
15838
15858
  }
15839
15859
  module$contents$safevalues$builders$html_sanitizer$html_sanitizer_setAttribute(newNode, name, module$contents$safevalues$builders$html_sanitizer$html_sanitizer_serializeSrcset(sanitizedSrcset));
@@ -15877,8 +15897,8 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerIm
15877
15897
  if (!conditions) {
15878
15898
  return !0;
15879
15899
  }
15880
- for (var $jscomp$iter$33 = (0,$jscomp.makeIterator)(conditions), $jscomp$key$m1085474118$32$ = $jscomp$iter$33.next(); !$jscomp$key$m1085474118$32$.done; $jscomp$key$m1085474118$32$ = $jscomp$iter$33.next()) {
15881
- var $jscomp$destructuring$var33 = (0,$jscomp.makeIterator)($jscomp$key$m1085474118$32$.value), attrName__tsickle_destructured_1 = $jscomp$destructuring$var33.next().value, expectedValues = $jscomp$destructuring$var33.next().value, $jscomp$optchain$tmpm1085474118$0 = void 0, value = ($jscomp$optchain$tmpm1085474118$0 = attrs.getNamedItem(attrName__tsickle_destructured_1)) == null ? void 0 : $jscomp$optchain$tmpm1085474118$0.value;
15900
+ for (var $jscomp$iter$33 = (0,$jscomp.makeIterator)(conditions), $jscomp$key$m1085474118$35$ = $jscomp$iter$33.next(); !$jscomp$key$m1085474118$35$.done; $jscomp$key$m1085474118$35$ = $jscomp$iter$33.next()) {
15901
+ var $jscomp$destructuring$var33 = (0,$jscomp.makeIterator)($jscomp$key$m1085474118$35$.value), attrName__tsickle_destructured_1 = $jscomp$destructuring$var33.next().value, expectedValues = $jscomp$destructuring$var33.next().value, $jscomp$optchain$tmpm1085474118$0 = void 0, value = ($jscomp$optchain$tmpm1085474118$0 = attrs.getNamedItem(attrName__tsickle_destructured_1)) == null ? void 0 : $jscomp$optchain$tmpm1085474118$0.value;
15882
15902
  if (value && !expectedValues.has(value)) {
15883
15903
  return !1;
15884
15904
  }
@@ -15893,8 +15913,8 @@ function module$contents$safevalues$builders$html_sanitizer$html_sanitizer_Srcse
15893
15913
  module$exports$safevalues$builders$html_sanitizer$html_sanitizer.Srcset = function() {
15894
15914
  };
15895
15915
  function module$contents$safevalues$builders$html_sanitizer$html_sanitizer_parseSrcset(srcset) {
15896
- for (var parts = [], $jscomp$iter$34 = (0,$jscomp.makeIterator)(srcset.split(",")), $jscomp$key$m1085474118$33$part = $jscomp$iter$34.next(); !$jscomp$key$m1085474118$33$part.done; $jscomp$key$m1085474118$33$part = $jscomp$iter$34.next()) {
15897
- var $jscomp$destructuring$var34 = (0,$jscomp.makeIterator)($jscomp$key$m1085474118$33$part.value.trim().split(/\s+/, 2)), url__tsickle_destructured_3 = $jscomp$destructuring$var34.next().value, descriptor__tsickle_destructured_4 = $jscomp$destructuring$var34.next().value;
15916
+ for (var parts = [], $jscomp$iter$34 = (0,$jscomp.makeIterator)(srcset.split(",")), $jscomp$key$m1085474118$36$part = $jscomp$iter$34.next(); !$jscomp$key$m1085474118$36$part.done; $jscomp$key$m1085474118$36$part = $jscomp$iter$34.next()) {
15917
+ var $jscomp$destructuring$var34 = (0,$jscomp.makeIterator)($jscomp$key$m1085474118$36$part.value.trim().split(/\s+/, 2)), url__tsickle_destructured_3 = $jscomp$destructuring$var34.next().value, descriptor__tsickle_destructured_4 = $jscomp$destructuring$var34.next().value;
15898
15918
  parts.push({url:url__tsickle_destructured_3, descriptor:descriptor__tsickle_destructured_4});
15899
15919
  }
15900
15920
  return {parts:parts};
@@ -15945,14 +15965,600 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer.superLenientlyS
15945
15965
  function module$contents$safevalues$builders$html_sanitizer$html_sanitizer_checkExhaustive(value, msg) {
15946
15966
  throw Error(msg === void 0 ? "unexpected value " + value + "!" : msg);
15947
15967
  }
15948
- ;var module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder = {}, module$contents$safevalues$builders$html_sanitizer$html_sanitizer_builder_module = module$contents$safevalues$builders$html_sanitizer$html_sanitizer_builder_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/html_sanitizer_builder.closure.js"};
15949
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder = function() {
15968
+ ;var module$exports$safevalues$builders$html_sanitizer$css$allowlists = {}, module$contents$safevalues$builders$html_sanitizer$css$allowlists_module = module$contents$safevalues$builders$html_sanitizer$css$allowlists_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/css/allowlists.closure.js"};
15969
+ module$exports$safevalues$builders$html_sanitizer$css$allowlists.CSS_PROPERTY_ALLOWLIST = new Set("accent-color align-content align-items align-self alignment-baseline all appearance aspect-ratio backdrop-filter backface-visibility background background-attachment background-blend-mode background-clip background-color background-image background-origin background-position background-position-x background-position-y background-repeat background-size block-size border border-block border-block-color border-block-end border-block-end-color border-block-end-style border-block-end-width border-block-start border-block-start-color border-block-start-style border-block-start-width border-block-style border-block-width border-bottom border-bottom-color border-bottom-left-radius border-bottom-right-radius border-bottom-style border-bottom-width border-collapse border-color border-end-end-radius border-end-start-radius border-image border-image-outset border-image-repeat border-image-slice border-image-source border-image-width border-inline border-inline-color border-inline-end border-inline-end-color border-inline-end-style border-inline-end-width border-inline-start border-inline-start-color border-inline-start-style border-inline-start-width border-inline-style border-inline-width border-left border-left-color border-left-style border-left-width border-radius border-right border-right-color border-right-style border-right-width border-spacing border-start-end-radius border-start-start-radius border-style border-top border-top-color border-top-left-radius border-top-right-radius border-top-style border-top-width border-width bottom box-shadow box-sizing caption-side caret-color clear clip clip-path clip-rule color color-interpolation color-interpolation-filters color-scheme column-count column-fill column-gap column-rule column-rule-color column-rule-style column-rule-width column-span column-width columns contain contain-intrinsic-block-size contain-intrinsic-height contain-intrinsic-inline-size contain-intrinsic-size contain-intrinsic-width content content-visibility counter-increment counter-reset counter-set cx cy d display dominant-baseline empty-cells field-sizing fill fill-opacity fill-rule filter flex flex-basis flex-direction flex-flow flex-grow flex-shrink flex-wrap float flood-color flood-opacity font font-family font-feature-settings font-kerning font-optical-sizing font-palette font-size font-size-adjust font-stretch font-style font-synthesis font-synthesis-small-caps font-synthesis-style font-synthesis-weight font-variant font-variant-alternates font-variant-caps font-variant-east-asian font-variant-emoji font-variant-ligatures font-variant-numeric font-variant-position font-variation-settings font-weight forced-color-adjust gap grid grid-area grid-auto-columns grid-auto-flow grid-auto-rows grid-column grid-column-end grid-column-gap grid-column-start grid-gap grid-row grid-row-end grid-row-gap grid-row-start grid-template grid-template-areas grid-template-columns grid-template-rows height hyphenate-character hyphenate-limit-chars hyphens image-orientation image-rendering inline-size inset inset-area inset-block inset-block-end inset-block-start inset-inline inset-inline-end inset-inline-start isolation justify-content justify-items justify-self left letter-spacing lighting-color line-break line-clamp line-gap-override line-height list-style list-style-image list-style-position list-style-type margin margin-block margin-block-end margin-block-start margin-bottom margin-inline margin-inline-end margin-inline-start margin-left margin-right margin-top marker marker-end marker-mid marker-start mask mask-clip mask-composite mask-image mask-mode mask-origin mask-position mask-repeat mask-size mask-type max-block-size max-height max-inline-size max-width min-block-size min-height min-inline-size min-width mix-blend-mode object-fit object-position object-view-box opacity order orphans outline outline-color outline-offset outline-style outline-width overflow overflow-anchor overflow-block overflow-clip-margin overflow-inline overflow-wrap overflow-x overflow-y padding padding-block padding-block-end padding-block-start padding-bottom padding-inline padding-inline-end padding-inline-start padding-left padding-right padding-top paint-order perspective perspective-origin place-content place-items place-self position quotes r resize right rotate row-gap ruby-align ruby-position rx ry scale shape-image-threshold shape-margin shape-outside shape-rendering stop-color stop-opacity stroke stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width tab-size table-layout text-align text-align-last text-anchor text-autospace text-box-edge text-box-trim text-combine-upright text-decoration text-decoration-color text-decoration-line text-decoration-skip-ink text-decoration-style text-decoration-thickness text-emphasis text-emphasis-color text-emphasis-position text-emphasis-style text-indent text-orientation text-overflow text-rendering text-shadow text-size-adjust text-spacing text-spacing-trim text-transform text-underline-offset text-underline-position text-wrap top transform transform-box transform-origin transform-style translate unicode-bidi vector-effect vertical-align visibility white-space white-space-collapse widows width will-change word-break word-spacing word-wrap writing-mode x y z-index zoom animation animation-composition animation-delay animation-direction animation-duration animation-fill-mode animation-iteration-count animation-name animation-play-state animation-range animation-range-end animation-range-start animation-timeline animation-timing-function offset offset-anchor offset-distance offset-path offset-position offset-rotate transition transition-behavior transition-delay transition-duration transition-property transition-timing-function".split(" "));
15970
+ module$exports$safevalues$builders$html_sanitizer$css$allowlists.CSS_FUNCTION_ALLOWLIST = new Set("alpha cubic-bezier linear-gradient matrix perspective radial-gradient rect repeating-linear-gradient repeating-radial-gradient rgb rgba rotate rotate3d rotatex rotatey rotatez scale scale3d scalex scaley scalez skew skewx skewy steps translate translate3d translatex translatey translatez url".split(" "));
15971
+ var module$exports$safevalues$builders$html_sanitizer$css$tokens = {}, module$contents$safevalues$builders$html_sanitizer$css$tokens_module = module$contents$safevalues$builders$html_sanitizer$css$tokens_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/css/tokens.closure.js"};
15972
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind = {AT_KEYWORD:0, CDC:1, CDO:2, CLOSE_CURLY:3, CLOSE_PAREN:4, CLOSE_SQUARE:5, COLON:6, COMMA:7, DELIM:8, DIMENSION:9, EOF:10, FUNCTION:11, HASH:12, IDENT:13, NUMBER:14, OPEN_CURLY:15, OPEN_PAREN:16, OPEN_SQUARE:17, PERCENTAGE:18, SEMICOLON:19, STRING:20, WHITESPACE:21};
15973
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.AT_KEYWORD] = "AT_KEYWORD";
15974
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CDC] = "CDC";
15975
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CDO] = "CDO";
15976
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_CURLY] = "CLOSE_CURLY";
15977
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_PAREN] = "CLOSE_PAREN";
15978
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_SQUARE] = "CLOSE_SQUARE";
15979
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.COLON] = "COLON";
15980
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.COMMA] = "COMMA";
15981
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM] = "DELIM";
15982
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DIMENSION] = "DIMENSION";
15983
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.EOF] = "EOF";
15984
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.FUNCTION] = "FUNCTION";
15985
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.HASH] = "HASH";
15986
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.IDENT] = "IDENT";
15987
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.NUMBER] = "NUMBER";
15988
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_CURLY] = "OPEN_CURLY";
15989
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_PAREN] = "OPEN_PAREN";
15990
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_SQUARE] = "OPEN_SQUARE";
15991
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.PERCENTAGE] = "PERCENTAGE";
15992
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.SEMICOLON] = "SEMICOLON";
15993
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.STRING] = "STRING";
15994
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind[module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.WHITESPACE] = "WHITESPACE";
15995
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.AtKeywordToken = function() {
15996
+ };
15997
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CdcToken = function() {
15998
+ };
15999
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CdoToken = function() {
16000
+ };
16001
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CloseCurlyToken = function() {
16002
+ };
16003
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CloseParenToken = function() {
16004
+ };
16005
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CloseSquareToken = function() {
16006
+ };
16007
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.ColonToken = function() {
16008
+ };
16009
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.CommaToken = function() {
16010
+ };
16011
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.DelimToken = function() {
16012
+ };
16013
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.DimensionToken = function() {
16014
+ };
16015
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.EofToken = function() {
16016
+ };
16017
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.FunctionToken = function() {
16018
+ };
16019
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.HashToken = function() {
16020
+ };
16021
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.IdentToken = function() {
16022
+ };
16023
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.NumberToken = function() {
16024
+ };
16025
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.OpenCurlyToken = function() {
16026
+ };
16027
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.OpenParenToken = function() {
16028
+ };
16029
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.OpenSquareToken = function() {
16030
+ };
16031
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.PercentageToken = function() {
16032
+ };
16033
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.SemicolonToken = function() {
16034
+ };
16035
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.StringToken = function() {
16036
+ };
16037
+ module$exports$safevalues$builders$html_sanitizer$css$tokens.WhitespaceToken = function() {
16038
+ };
16039
+ var module$exports$safevalues$builders$html_sanitizer$css$serializer = {}, module$contents$safevalues$builders$html_sanitizer$css$serializer_module = module$contents$safevalues$builders$html_sanitizer$css$serializer_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/css/serializer.closure.js"};
16040
+ function module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeCodePoint(c) {
16041
+ return "\\" + c.codePointAt(0).toString(16) + " ";
16042
+ }
16043
+ function module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeString(str) {
16044
+ return '"' + str.replace(/[^A-Za-z0-9_/. :,?=%;-]/g, function(c) {
16045
+ return module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeCodePoint(c);
16046
+ }) + '"';
16047
+ }
16048
+ function module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent(ident) {
16049
+ return (/^[^A-Za-z_]/.test(ident) ? module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeCodePoint(ident[0]) : ident[0]) + ident.slice(1).replace(/[^A-Za-z0-9_-]/g, function(c) {
16050
+ return module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeCodePoint(c);
16051
+ });
16052
+ }
16053
+ module$exports$safevalues$builders$html_sanitizer$css$serializer.escapeIdent = module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent;
16054
+ function module$contents$safevalues$builders$html_sanitizer$css$serializer_serializeToken(token) {
16055
+ switch(token.tokenKind) {
16056
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.AT_KEYWORD:
16057
+ return "@" + module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent(token.name);
16058
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CDC:
16059
+ return "--\x3e";
16060
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CDO:
16061
+ return "\x3c!--";
16062
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_CURLY:
16063
+ return "}";
16064
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_PAREN:
16065
+ return ")";
16066
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_SQUARE:
16067
+ return "]";
16068
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.COLON:
16069
+ return ":";
16070
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.COMMA:
16071
+ return ",";
16072
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM:
16073
+ return token.codePoint === "\\" ? "\\\n" : token.codePoint;
16074
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DIMENSION:
16075
+ return token.repr + module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent(token.dimension);
16076
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.EOF:
16077
+ return "";
16078
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.FUNCTION:
16079
+ return module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent(token.lowercaseName) + "(";
16080
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.HASH:
16081
+ return "#" + module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent(token.value);
16082
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.IDENT:
16083
+ return module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent(token.ident);
16084
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.NUMBER:
16085
+ return token.repr;
16086
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_CURLY:
16087
+ return "{";
16088
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_PAREN:
16089
+ return "(";
16090
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_SQUARE:
16091
+ return "[";
16092
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.PERCENTAGE:
16093
+ return token.repr + "%";
16094
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.SEMICOLON:
16095
+ return ";";
16096
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.STRING:
16097
+ return module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeString(token.value);
16098
+ case module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.WHITESPACE:
16099
+ return " ";
16100
+ default:
16101
+ module$contents$safevalues$builders$html_sanitizer$css$serializer_checkExhaustive(token);
16102
+ }
16103
+ }
16104
+ module$exports$safevalues$builders$html_sanitizer$css$serializer.serializeToken = module$contents$safevalues$builders$html_sanitizer$css$serializer_serializeToken;
16105
+ function module$contents$safevalues$builders$html_sanitizer$css$serializer_serializeTokens(tokens) {
16106
+ return tokens.map(module$contents$safevalues$builders$html_sanitizer$css$serializer_serializeToken).join("");
16107
+ }
16108
+ module$exports$safevalues$builders$html_sanitizer$css$serializer.serializeTokens = module$contents$safevalues$builders$html_sanitizer$css$serializer_serializeTokens;
16109
+ function module$contents$safevalues$builders$html_sanitizer$css$serializer_checkExhaustive(value, msg) {
16110
+ throw Error(msg === void 0 ? "unexpected value " + value + "!" : msg);
16111
+ }
16112
+ ;var module$contents$safevalues$builders$html_sanitizer$css$tokenizer_module = module$contents$safevalues$builders$html_sanitizer$css$tokenizer_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/css/tokenizer.closure.js"}, module$contents$safevalues$builders$html_sanitizer$css$tokenizer_HEX_DIGIT_REGEX = /^[0-9a-fA-F]$/, module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer =
16113
+ function(css) {
16114
+ this.pos = 0;
16115
+ this.css = this.preprocess(css);
16116
+ };
16117
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.tokenize = function() {
16118
+ for (var tokens = [], lastToken = void 0;;) {
16119
+ var token = this.consumeToken();
16120
+ if (Array.isArray(token)) {
16121
+ tokens.push.apply(tokens, (0,$jscomp.arrayFromIterable)(token));
16122
+ } else {
16123
+ var $jscomp$optchain$tmpm282935782$0 = void 0;
16124
+ if (token.tokenKind !== module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.WHITESPACE || (($jscomp$optchain$tmpm282935782$0 = lastToken) == null ? void 0 : $jscomp$optchain$tmpm282935782$0.tokenKind) !== module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.WHITESPACE) {
16125
+ tokens.push(token);
16126
+ if (token.tokenKind === module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.EOF) {
16127
+ return tokens;
16128
+ }
16129
+ lastToken = token;
16130
+ }
16131
+ }
16132
+ }
16133
+ };
16134
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.nextInputCodePoint = function() {
16135
+ return this.css[this.pos];
16136
+ };
16137
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.nextTwoInputCodePoints = function() {
16138
+ return [this.css[this.pos], this.css[this.pos + 1]];
16139
+ };
16140
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.nextThreeInputCodePoints = function() {
16141
+ return [this.css[this.pos], this.css[this.pos + 1], this.css[this.pos + 2]];
16142
+ };
16143
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.currentInputCodePoint = function() {
16144
+ return this.css[this.pos - 1];
16145
+ };
16146
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.nextNInputCodePoints = function(n) {
16147
+ return this.css.slice(this.pos, this.pos + n);
16148
+ };
16149
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeTheNextInputCodePoint = function() {
16150
+ this.pos++;
16151
+ };
16152
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeNInputCodePoints = function(n) {
16153
+ this.pos += n;
16154
+ };
16155
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.reconsumeTheCurrentInputCodePoint = function() {
16156
+ this.pos--;
16157
+ };
16158
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.preprocess = function(css) {
16159
+ return css.replace(/[\x0d\x0c]|\x0d\x0a/g, "\n").replace(/\x00/g, "\ufffd");
16160
+ };
16161
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeToken = function() {
16162
+ if (this.consumeComments()) {
16163
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.WHITESPACE};
16164
+ }
16165
+ var codePoint = this.nextInputCodePoint();
16166
+ this.consumeTheNextInputCodePoint();
16167
+ if (codePoint === void 0) {
16168
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.EOF};
16169
+ }
16170
+ if (this.isWhitespace(codePoint)) {
16171
+ return this.consumeAsMuchWhitespaceAsPossible(), {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.WHITESPACE};
16172
+ }
16173
+ if (codePoint === "'" || codePoint === '"') {
16174
+ return this.consumeString(codePoint);
16175
+ }
16176
+ if (codePoint === "#") {
16177
+ return this.isIdentCodePoint(this.nextInputCodePoint()) || this.twoCodePointsAreValidEscape.apply(this, (0,$jscomp.arrayFromIterable)(this.nextTwoInputCodePoints())) ? {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.HASH, value:this.consumeIdentSequence()} : {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM, codePoint:"#"};
16178
+ }
16179
+ if (codePoint === "(") {
16180
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_PAREN};
16181
+ }
16182
+ if (codePoint === ")") {
16183
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_PAREN};
16184
+ }
16185
+ if (codePoint === "+") {
16186
+ return this.streamStartsWithANumber() ? (this.reconsumeTheCurrentInputCodePoint(), this.consumeNumericToken()) : {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM, codePoint:"+"};
16187
+ }
16188
+ if (codePoint === ",") {
16189
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.COMMA};
16190
+ }
16191
+ if (codePoint === "-") {
16192
+ return this.streamStartsWithANumber() ? (this.reconsumeTheCurrentInputCodePoint(), this.consumeNumericToken()) : this.nextNInputCodePoints(2) === "->" ? (this.consumeNInputCodePoints(2), {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CDC}) : this.streamStartsWithAnIdentSequence() ? (this.reconsumeTheCurrentInputCodePoint(), this.consumeIdentLikeToken()) : {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM,
16193
+ codePoint:"-"};
16194
+ }
16195
+ if (codePoint === ".") {
16196
+ return this.streamStartsWithANumber() ? (this.reconsumeTheCurrentInputCodePoint(), this.consumeNumericToken()) : {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM, codePoint:"."};
16197
+ }
16198
+ if (codePoint === ":") {
16199
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.COLON};
16200
+ }
16201
+ if (codePoint === ";") {
16202
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.SEMICOLON};
16203
+ }
16204
+ if (codePoint === "<") {
16205
+ return this.nextNInputCodePoints(3) === "!--" ? (this.consumeNInputCodePoints(3), {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CDO}) : {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM, codePoint:"<"};
16206
+ }
16207
+ if (codePoint === "@") {
16208
+ if (this.threeCodePointsWouldStartAnIdentSequence.apply(this, (0,$jscomp.arrayFromIterable)(this.nextThreeInputCodePoints()))) {
16209
+ var ident = this.consumeIdentSequence();
16210
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.AT_KEYWORD, name:ident};
16211
+ }
16212
+ return {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM, codePoint:"@"};
16213
+ }
16214
+ return codePoint === "\\" ? this.streamStartsWithValidEscape() ? (this.reconsumeTheCurrentInputCodePoint(), this.consumeIdentLikeToken()) : {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM, codePoint:"\\"} : codePoint === "[" ? {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_SQUARE} : codePoint === "]" ? {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_SQUARE} :
16215
+ codePoint === "{" ? {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.OPEN_CURLY} : codePoint === "}" ? {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_CURLY} : this.isDigit(codePoint) ? (this.reconsumeTheCurrentInputCodePoint(), this.consumeNumericToken()) : this.isIdentStartCodePoint(codePoint) ? (this.reconsumeTheCurrentInputCodePoint(), this.consumeIdentLikeToken()) :
16216
+ {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DELIM, codePoint:codePoint};
16217
+ };
16218
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeComments = function() {
16219
+ for (var anyComments = !1; this.nextNInputCodePoints(2) === "/*";) {
16220
+ anyComments = !0;
16221
+ this.consumeNInputCodePoints(2);
16222
+ var endIndex = this.css.indexOf("*/", this.pos);
16223
+ if (endIndex === -1) {
16224
+ this.pos = this.css.length;
16225
+ break;
16226
+ }
16227
+ this.pos = endIndex + 2;
16228
+ }
16229
+ return anyComments;
16230
+ };
16231
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeString = function(quote) {
16232
+ for (var stringToken = {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.STRING, value:""};;) {
16233
+ var codePoint = this.nextInputCodePoint();
16234
+ this.consumeTheNextInputCodePoint();
16235
+ if (codePoint === void 0 || codePoint === quote) {
16236
+ return stringToken;
16237
+ }
16238
+ if (this.isNewline(codePoint)) {
16239
+ return this.reconsumeTheCurrentInputCodePoint(), stringToken.value = "", stringToken;
16240
+ }
16241
+ if (codePoint === "\\") {
16242
+ if (this.nextInputCodePoint() !== void 0) {
16243
+ if (this.isNewline(this.nextInputCodePoint())) {
16244
+ this.consumeTheNextInputCodePoint();
16245
+ } else {
16246
+ var escapedCodePoint = this.consumeEscapedCodePoint();
16247
+ stringToken.value += escapedCodePoint;
16248
+ }
16249
+ }
16250
+ } else {
16251
+ stringToken.value += codePoint;
16252
+ }
16253
+ }
16254
+ };
16255
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeEscapedCodePoint = function() {
16256
+ var codePoint = this.nextInputCodePoint();
16257
+ this.consumeTheNextInputCodePoint();
16258
+ if (codePoint === void 0) {
16259
+ return "\ufffd";
16260
+ }
16261
+ if (this.isHexDigit(codePoint)) {
16262
+ for (var hexDigits = codePoint; this.isHexDigit(this.nextInputCodePoint()) && hexDigits.length < 6;) {
16263
+ hexDigits += this.nextInputCodePoint(), this.consumeTheNextInputCodePoint();
16264
+ }
16265
+ this.isWhitespace(this.nextInputCodePoint()) && this.consumeTheNextInputCodePoint();
16266
+ return String.fromCodePoint(parseInt(hexDigits, 16));
16267
+ }
16268
+ return codePoint;
16269
+ };
16270
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeAsMuchWhitespaceAsPossible = function() {
16271
+ for (; this.isWhitespace(this.nextInputCodePoint());) {
16272
+ this.consumeTheNextInputCodePoint();
16273
+ }
16274
+ };
16275
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeIdentSequence = function() {
16276
+ for (var result = "";;) {
16277
+ var codePoint = this.nextInputCodePoint();
16278
+ this.consumeTheNextInputCodePoint();
16279
+ var codePoint2 = this.nextInputCodePoint();
16280
+ if (this.isIdentCodePoint(codePoint)) {
16281
+ result += codePoint;
16282
+ } else if (this.twoCodePointsAreValidEscape(codePoint, codePoint2)) {
16283
+ result += this.consumeEscapedCodePoint();
16284
+ } else {
16285
+ return this.reconsumeTheCurrentInputCodePoint(), result;
16286
+ }
16287
+ }
16288
+ };
16289
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeIdentLikeToken = function() {
16290
+ var ident = this.consumeIdentSequence();
16291
+ if (/^url$/i.test(ident) && this.nextInputCodePoint() === "(") {
16292
+ for (this.consumeTheNextInputCodePoint(); this.nextTwoInputsPointsAreWhitespace();) {
16293
+ this.consumeTheNextInputCodePoint();
16294
+ }
16295
+ var nextTwo = this.nextTwoInputCodePoints();
16296
+ return this.isWhitespace(nextTwo[0]) && (nextTwo[1] === '"' || nextTwo[1] === "'") || nextTwo[0] === '"' || nextTwo[0] === "'" ? {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.FUNCTION, lowercaseName:"url"} : this.consumeUrlToken();
16297
+ }
16298
+ return this.nextInputCodePoint() === "(" ? (this.consumeTheNextInputCodePoint(), {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.FUNCTION, lowercaseName:ident.toLowerCase()}) : {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.IDENT, ident:ident};
16299
+ };
16300
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeUrlToken = function() {
16301
+ var url = "";
16302
+ for (this.consumeAsMuchWhitespaceAsPossible();;) {
16303
+ var codePoint = this.nextInputCodePoint();
16304
+ this.consumeTheNextInputCodePoint();
16305
+ if (codePoint === ")" || codePoint === void 0) {
16306
+ return this.createFunctionUrlToken(url);
16307
+ }
16308
+ if (this.isWhitespace(codePoint)) {
16309
+ this.consumeAsMuchWhitespaceAsPossible();
16310
+ if (this.nextInputCodePoint() === ")" || this.nextInputCodePoint() === void 0) {
16311
+ return this.consumeTheNextInputCodePoint(), this.createFunctionUrlToken(url);
16312
+ }
16313
+ this.consumeRemnantsOfBadUrl();
16314
+ return this.createFunctionUrlToken("");
16315
+ }
16316
+ if (codePoint === '"' || codePoint === "'" || codePoint === "(" || this.isNonPrintableCodePoint(codePoint)) {
16317
+ return this.consumeRemnantsOfBadUrl(), this.createFunctionUrlToken("");
16318
+ }
16319
+ if (codePoint === "\\") {
16320
+ if (this.streamStartsWithValidEscape()) {
16321
+ url += this.consumeEscapedCodePoint();
16322
+ } else {
16323
+ return this.consumeRemnantsOfBadUrl(), this.createFunctionUrlToken("");
16324
+ }
16325
+ } else {
16326
+ url += codePoint;
16327
+ }
16328
+ }
16329
+ };
16330
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.createFunctionUrlToken = function(url) {
16331
+ return [{tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.FUNCTION, lowercaseName:"url"}, {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.STRING, value:url}, {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.CLOSE_PAREN}];
16332
+ };
16333
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeRemnantsOfBadUrl = function() {
16334
+ for (;;) {
16335
+ var codePoint = this.nextInputCodePoint();
16336
+ this.consumeTheNextInputCodePoint();
16337
+ if (codePoint === void 0 || codePoint === ")") {
16338
+ break;
16339
+ } else {
16340
+ this.streamStartsWithValidEscape() && this.consumeEscapedCodePoint();
16341
+ }
16342
+ }
16343
+ };
16344
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeNumber = function() {
16345
+ var repr = "", next = this.nextInputCodePoint();
16346
+ if (next === "+" || next === "-") {
16347
+ this.consumeTheNextInputCodePoint(), repr += next;
16348
+ }
16349
+ repr += this.consumeDigits();
16350
+ var next2 = this.css[this.pos + 1];
16351
+ this.nextInputCodePoint() === "." && this.isDigit(next2) && (this.consumeTheNextInputCodePoint(), repr += "." + this.consumeDigits());
16352
+ var next$jscomp$0 = this.nextInputCodePoint(), next2$jscomp$0 = this.css[this.pos + 1], next3 = this.css[this.pos + 2];
16353
+ if (next$jscomp$0 === "e" || next$jscomp$0 === "E") {
16354
+ next2$jscomp$0 !== "+" && next2$jscomp$0 !== "-" || !this.isDigit(next3) ? this.isDigit(next2$jscomp$0) && (this.consumeTheNextInputCodePoint(), repr += next$jscomp$0 + this.consumeDigits()) : (this.consumeNInputCodePoints(2), repr += next$jscomp$0 + next2$jscomp$0 + this.consumeDigits());
16355
+ }
16356
+ return repr;
16357
+ };
16358
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeDigits = function() {
16359
+ for (var repr = ""; this.isDigit(this.nextInputCodePoint());) {
16360
+ repr += this.nextInputCodePoint(), this.consumeTheNextInputCodePoint();
16361
+ }
16362
+ return repr;
16363
+ };
16364
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.consumeNumericToken = function() {
16365
+ var repr = this.consumeNumber();
16366
+ return this.threeCodePointsWouldStartAnIdentSequence.apply(this, (0,$jscomp.arrayFromIterable)(this.nextThreeInputCodePoints())) ? {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.DIMENSION, repr:repr, dimension:this.consumeIdentSequence()} : this.nextInputCodePoint() === "%" ? (this.consumeTheNextInputCodePoint(), {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.PERCENTAGE,
16367
+ repr:repr}) : {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.NUMBER, repr:repr};
16368
+ };
16369
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.nextTwoInputsPointsAreWhitespace = function() {
16370
+ var $jscomp$this$m282935782$26 = this;
16371
+ return this.nextTwoInputCodePoints().every(function(c) {
16372
+ return $jscomp$this$m282935782$26.isWhitespace(c);
16373
+ });
16374
+ };
16375
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.twoCodePointsAreValidEscape = function(codePoint1, codePoint2) {
16376
+ return codePoint1 === "\\" && codePoint2 !== "\n";
16377
+ };
16378
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.streamStartsWithValidEscape = function() {
16379
+ return this.twoCodePointsAreValidEscape(this.currentInputCodePoint(), this.nextInputCodePoint());
16380
+ };
16381
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.threeCodePointsWouldStartANumber = function(codePoint1, codePoint2, codePoint3) {
16382
+ return codePoint1 === "+" || codePoint1 === "-" ? this.isDigit(codePoint2) || codePoint2 === "." && this.isDigit(codePoint3) : codePoint1 === "." ? this.isDigit(codePoint2) : this.isDigit(codePoint1);
16383
+ };
16384
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.streamStartsWithANumber = function() {
16385
+ return this.threeCodePointsWouldStartANumber.apply(this, [this.currentInputCodePoint()].concat((0,$jscomp.arrayFromIterable)(this.nextTwoInputCodePoints())));
16386
+ };
16387
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.threeCodePointsWouldStartAnIdentSequence = function(codePoint1, codePoint2, codePoint3) {
16388
+ return codePoint1 === "-" ? this.isIdentStartCodePoint(codePoint2) || codePoint2 === "-" ? !0 : this.twoCodePointsAreValidEscape(codePoint2, codePoint3) ? !0 : !1 : this.isIdentStartCodePoint(codePoint1) ? !0 : codePoint1 === "\\" ? this.twoCodePointsAreValidEscape(codePoint1, codePoint2) : !1;
16389
+ };
16390
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.streamStartsWithAnIdentSequence = function() {
16391
+ return this.threeCodePointsWouldStartAnIdentSequence.apply(this, [this.currentInputCodePoint()].concat((0,$jscomp.arrayFromIterable)(this.nextTwoInputCodePoints())));
16392
+ };
16393
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.isDigit = function(codePoint) {
16394
+ return codePoint !== void 0 && codePoint >= "0" && codePoint <= "9";
16395
+ };
16396
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.isHexDigit = function(codePoint) {
16397
+ return codePoint !== void 0 && module$contents$safevalues$builders$html_sanitizer$css$tokenizer_HEX_DIGIT_REGEX.test(codePoint);
16398
+ };
16399
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.isNewline = function(codePoint) {
16400
+ return codePoint === "\n";
16401
+ };
16402
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.isWhitespace = function(codePoint) {
16403
+ return codePoint === " " || codePoint === "\t" || this.isNewline(codePoint);
16404
+ };
16405
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.isIdentCodePoint = function(codePoint) {
16406
+ return codePoint === void 0 ? !1 : /^([A-Za-z0-9_-]|[^\u0000-\u007f])$/.test(codePoint);
16407
+ };
16408
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.isIdentStartCodePoint = function(codePoint) {
16409
+ return codePoint === void 0 ? !1 : /^([A-Za-z_]|[^\u0000-\u007f])$/.test(codePoint);
16410
+ };
16411
+ module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer.prototype.isNonPrintableCodePoint = function(codePoint) {
16412
+ return codePoint === void 0 ? !1 : /[\x00-\x08\x0b\x0e-\x1f\x7f]/.test(codePoint);
16413
+ };
16414
+ function module$contents$safevalues$builders$html_sanitizer$css$tokenizer_tokenizeCss(css) {
16415
+ return (new module$contents$safevalues$builders$html_sanitizer$css$tokenizer_Tokenizer(css)).tokenize();
16416
+ }
16417
+ ;var module$exports$safevalues$builders$html_sanitizer$css$sanitizer = {}, module$contents$safevalues$builders$html_sanitizer$css$sanitizer_module = module$contents$safevalues$builders$html_sanitizer$css$sanitizer_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/css/sanitizer.closure.js"}, module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer =
16418
+ function(propertyAllowlist, functionAllowlist, resourceUrlPolicy, allowKeyframes, propertyDiscarders) {
16419
+ this.propertyAllowlist = propertyAllowlist;
16420
+ this.functionAllowlist = functionAllowlist;
16421
+ this.resourceUrlPolicy = resourceUrlPolicy;
16422
+ this.allowKeyframes = allowKeyframes;
16423
+ this.propertyDiscarders = propertyDiscarders;
16424
+ this.inertDocument = document.implementation.createHTMLDocument();
16425
+ };
16426
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.getStyleSheet = function(cssText) {
16427
+ var style = this.inertDocument.createElement("style"), safeStyle = module$contents$safevalues$internals$style_sheet_impl_createStyleSheetInternal(cssText);
16428
+ (0,module$exports$safevalues$dom$elements$style.setTextContent)(style, safeStyle);
16429
+ this.inertDocument.head.appendChild(style);
16430
+ var sheet = style.sheet;
16431
+ style.remove();
16432
+ return sheet;
16433
+ };
16434
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.getStyleDeclaration = function(cssText) {
16435
+ var div = this.inertDocument.createElement("div");
16436
+ div.style.cssText = cssText;
16437
+ this.inertDocument.body.appendChild(div);
16438
+ var style = div.style;
16439
+ div.remove();
16440
+ return style;
16441
+ };
16442
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.hasShadowDomEscapingTokens = function(token, nextToken) {
16443
+ return token.tokenKind !== module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.COLON ? !1 : nextToken.tokenKind === module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.IDENT && nextToken.ident.toLowerCase() === "host" || nextToken.tokenKind === module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.FUNCTION && (nextToken.lowercaseName === "host" ||
16444
+ nextToken.lowercaseName === "host-context") ? !0 : !1;
16445
+ };
16446
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeSelector = function(selector) {
16447
+ for (var tokens = module$contents$safevalues$builders$html_sanitizer$css$tokenizer_tokenizeCss(selector), i = 0; i < tokens.length - 1; i++) {
16448
+ if (this.hasShadowDomEscapingTokens(tokens[i], tokens[i + 1])) {
16449
+ return null;
16450
+ }
16451
+ }
16452
+ return module$contents$safevalues$builders$html_sanitizer$css$serializer_serializeTokens(tokens);
16453
+ };
16454
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeValue = function(propertyName, value, calledFromStyleElement) {
16455
+ for (var tokens = module$contents$safevalues$builders$html_sanitizer$css$tokenizer_tokenizeCss(value), i = 0; i < tokens.length; i++) {
16456
+ var token = tokens[i];
16457
+ if (token.tokenKind === module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.FUNCTION) {
16458
+ if (!this.functionAllowlist.has(token.lowercaseName)) {
16459
+ return null;
16460
+ }
16461
+ if (token.lowercaseName === "url") {
16462
+ var nextToken = tokens[i + 1], $jscomp$optchain$tmpm1577590584$0 = void 0;
16463
+ if ((($jscomp$optchain$tmpm1577590584$0 = nextToken) == null ? void 0 : $jscomp$optchain$tmpm1577590584$0.tokenKind) !== module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.STRING) {
16464
+ return null;
16465
+ }
16466
+ var parsedUrl = module$contents$safevalues$builders$html_sanitizer$resource_url_policy_parseUrl(nextToken.value);
16467
+ this.resourceUrlPolicy && (parsedUrl = this.resourceUrlPolicy(parsedUrl, {type:calledFromStyleElement ? module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.STYLE_ELEMENT : module$exports$safevalues$builders$html_sanitizer$resource_url_policy.ResourceUrlPolicyHintsType.STYLE_ATTRIBUTE, propertyName:propertyName}));
16468
+ if (!parsedUrl) {
16469
+ return null;
16470
+ }
16471
+ tokens[i + 1] = {tokenKind:module$exports$safevalues$builders$html_sanitizer$css$tokens.CssTokenKind.STRING, value:parsedUrl.toString()};
16472
+ i++;
16473
+ }
16474
+ }
16475
+ }
16476
+ return module$contents$safevalues$builders$html_sanitizer$css$serializer_serializeTokens(tokens);
16477
+ };
16478
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeKeyframeRule = function(rule) {
16479
+ var sanitizedProperties = this.sanitizeStyleDeclaration(rule.style, !0);
16480
+ return rule.keyText + " { " + sanitizedProperties + " }";
16481
+ };
16482
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeKeyframesRule = function(keyframesRule) {
16483
+ if (!this.allowKeyframes) {
16484
+ return null;
16485
+ }
16486
+ for (var keyframeRules = [], $jscomp$iter$35 = (0,$jscomp.makeIterator)(keyframesRule.cssRules), $jscomp$key$m1577590584$1$rule = $jscomp$iter$35.next(); !$jscomp$key$m1577590584$1$rule.done; $jscomp$key$m1577590584$1$rule = $jscomp$iter$35.next()) {
16487
+ var rule = $jscomp$key$m1577590584$1$rule.value;
16488
+ if (rule instanceof CSSKeyframeRule) {
16489
+ var sanitizedRule = this.sanitizeKeyframeRule(rule);
16490
+ sanitizedRule && keyframeRules.push(sanitizedRule);
16491
+ }
16492
+ }
16493
+ return "@keyframes " + module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent(keyframesRule.name) + " { " + keyframeRules.join(" ") + " }";
16494
+ };
16495
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.isPropertyNameAllowed = function(name) {
16496
+ if (!this.propertyAllowlist.has(name)) {
16497
+ return !1;
16498
+ }
16499
+ for (var $jscomp$iter$36 = (0,$jscomp.makeIterator)(this.propertyDiscarders), $jscomp$key$m1577590584$2$discarder = $jscomp$iter$36.next(); !$jscomp$key$m1577590584$2$discarder.done; $jscomp$key$m1577590584$2$discarder = $jscomp$iter$36.next()) {
16500
+ var discarder = $jscomp$key$m1577590584$2$discarder.value;
16501
+ if (discarder(name)) {
16502
+ return !1;
16503
+ }
16504
+ }
16505
+ return !0;
16506
+ };
16507
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeProperty = function(name, value, isImportant, calledFromStyleElement) {
16508
+ if (!this.isPropertyNameAllowed(name)) {
16509
+ return null;
16510
+ }
16511
+ var sanitizedValue = this.sanitizeValue(name, value, calledFromStyleElement);
16512
+ return sanitizedValue ? module$contents$safevalues$builders$html_sanitizer$css$serializer_escapeIdent(name) + ": " + sanitizedValue + (isImportant ? " !important" : "") : null;
16513
+ };
16514
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeStyleDeclaration = function(style, calledFromStyleElement) {
16515
+ for (var sortedPropertyNames = [].concat((0,$jscomp.arrayFromIterable)(style)).sort(), sanitizedProperties = "", $jscomp$iter$37 = (0,$jscomp.makeIterator)(sortedPropertyNames), $jscomp$key$m1577590584$3$name = $jscomp$iter$37.next(); !$jscomp$key$m1577590584$3$name.done; $jscomp$key$m1577590584$3$name = $jscomp$iter$37.next()) {
16516
+ var name = $jscomp$key$m1577590584$3$name.value, value = style.getPropertyValue(name), isImportant = style.getPropertyPriority(name) === "important", sanitizedProperty = this.sanitizeProperty(name, value, isImportant, calledFromStyleElement);
16517
+ sanitizedProperty && (sanitizedProperties += sanitizedProperty + ";");
16518
+ }
16519
+ return sanitizedProperties;
16520
+ };
16521
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeStyleRule = function(rule) {
16522
+ var selector = this.sanitizeSelector(rule.selectorText);
16523
+ if (!selector) {
16524
+ return null;
16525
+ }
16526
+ var sanitizedProperties = this.sanitizeStyleDeclaration(rule.style, !0);
16527
+ return selector + " { " + sanitizedProperties + " }";
16528
+ };
16529
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeStyleElement = function(cssText) {
16530
+ for (var rules = this.getStyleSheet(cssText).cssRules, output = [], $jscomp$iter$38 = (0,$jscomp.makeIterator)(rules), $jscomp$key$m1577590584$4$rule = $jscomp$iter$38.next(); !$jscomp$key$m1577590584$4$rule.done; $jscomp$key$m1577590584$4$rule = $jscomp$iter$38.next()) {
16531
+ var rule = $jscomp$key$m1577590584$4$rule.value;
16532
+ if (rule instanceof CSSStyleRule) {
16533
+ var sanitizedRule = this.sanitizeStyleRule(rule);
16534
+ sanitizedRule && output.push(sanitizedRule);
16535
+ } else if (rule instanceof CSSKeyframesRule) {
16536
+ var sanitizedRule$jscomp$0 = this.sanitizeKeyframesRule(rule);
16537
+ sanitizedRule$jscomp$0 && output.push(sanitizedRule$jscomp$0);
16538
+ }
16539
+ }
16540
+ return output.join("\n");
16541
+ };
16542
+ module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer.prototype.sanitizeStyleAttribute = function(cssText) {
16543
+ var styleDeclaration = this.getStyleDeclaration(cssText);
16544
+ return this.sanitizeStyleDeclaration(styleDeclaration, !1);
16545
+ };
16546
+ function module$contents$safevalues$builders$html_sanitizer$css$sanitizer_sanitizeStyleElement(cssText, propertyAllowlist, functionAllowlist, resourceUrlPolicy, allowKeyframes, propertyDiscarders) {
16547
+ return (new module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer(propertyAllowlist, functionAllowlist, resourceUrlPolicy, allowKeyframes, propertyDiscarders)).sanitizeStyleElement(cssText);
16548
+ }
16549
+ module$exports$safevalues$builders$html_sanitizer$css$sanitizer.sanitizeStyleElement = module$contents$safevalues$builders$html_sanitizer$css$sanitizer_sanitizeStyleElement;
16550
+ function module$contents$safevalues$builders$html_sanitizer$css$sanitizer_sanitizeStyleAttribute(cssText, propertyAllowlist, functionAllowlist, resourceUrlPolicy, propertyDiscarders) {
16551
+ return (new module$contents$safevalues$builders$html_sanitizer$css$sanitizer_CssSanitizer(propertyAllowlist, functionAllowlist, resourceUrlPolicy, !1, propertyDiscarders)).sanitizeStyleAttribute(cssText);
16552
+ }
16553
+ module$exports$safevalues$builders$html_sanitizer$css$sanitizer.sanitizeStyleAttribute = module$contents$safevalues$builders$html_sanitizer$css$sanitizer_sanitizeStyleAttribute;
16554
+ var module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder = {}, module$contents$safevalues$builders$html_sanitizer$html_sanitizer_builder_module = module$contents$safevalues$builders$html_sanitizer$html_sanitizer_builder_module || {id:"third_party/javascript/safevalues/builders/html_sanitizer/html_sanitizer_builder.closure.js"};
16555
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder = function() {
15950
16556
  this.calledBuild = !1;
15951
16557
  this.sanitizerTable = module$exports$safevalues$builders$html_sanitizer$sanitizer_table$default_sanitizer_table.DEFAULT_SANITIZER_TABLE;
15952
16558
  };
15953
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.onlyAllowElements = function(elementSet) {
15954
- for (var allowedElements = new Set(), allowedElementPolicies = new Map(), $jscomp$iter$35 = (0,$jscomp.makeIterator)(elementSet), $jscomp$key$435282654$0$element = $jscomp$iter$35.next(); !$jscomp$key$435282654$0$element.done; $jscomp$key$435282654$0$element = $jscomp$iter$35.next()) {
15955
- var element = $jscomp$key$435282654$0$element.value;
16559
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.onlyAllowElements = function(elementSet) {
16560
+ for (var allowedElements = new Set(), allowedElementPolicies = new Map(), $jscomp$iter$39 = (0,$jscomp.makeIterator)(elementSet), $jscomp$key$435282654$21$element = $jscomp$iter$39.next(); !$jscomp$key$435282654$21$element.done; $jscomp$key$435282654$21$element = $jscomp$iter$39.next()) {
16561
+ var element = $jscomp$key$435282654$21$element.value;
15956
16562
  element = element.toUpperCase();
15957
16563
  if (!this.sanitizerTable.isAllowedElement(element)) {
15958
16564
  throw Error("Element: " + element + ", is not allowed by html5_contract.textpb");
@@ -15963,15 +16569,15 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSan
15963
16569
  this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(allowedElements, allowedElementPolicies, this.sanitizerTable.allowedGlobalAttributes, this.sanitizerTable.globalAttributePolicies);
15964
16570
  return this;
15965
16571
  };
15966
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.allowCustomElement = function(element, allowedAttributes) {
16572
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.allowCustomElement = function(element, allowedAttributes) {
15967
16573
  var allowedElements = new Set(this.sanitizerTable.allowedElements), allowedElementPolicies = new Map(this.sanitizerTable.elementPolicies);
15968
16574
  element = element.toUpperCase();
15969
16575
  if (!module$contents$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table_isCustomElement(element)) {
15970
16576
  throw Error("Element: " + element + " is not a custom element");
15971
16577
  }
15972
16578
  if (allowedAttributes) {
15973
- for (var elementPolicy = new Map(), $jscomp$iter$36 = (0,$jscomp.makeIterator)(allowedAttributes), $jscomp$key$435282654$1$attribute = $jscomp$iter$36.next(); !$jscomp$key$435282654$1$attribute.done; $jscomp$key$435282654$1$attribute = $jscomp$iter$36.next()) {
15974
- elementPolicy.set($jscomp$key$435282654$1$attribute.value.toLowerCase(), {policyAction:module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.AttributePolicyAction.KEEP});
16579
+ for (var elementPolicy = new Map(), $jscomp$iter$40 = (0,$jscomp.makeIterator)(allowedAttributes), $jscomp$key$435282654$22$attribute = $jscomp$iter$40.next(); !$jscomp$key$435282654$22$attribute.done; $jscomp$key$435282654$22$attribute = $jscomp$iter$40.next()) {
16580
+ elementPolicy.set($jscomp$key$435282654$22$attribute.value.toLowerCase(), {policyAction:module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.AttributePolicyAction.KEEP});
15975
16581
  }
15976
16582
  allowedElementPolicies.set(element, elementPolicy);
15977
16583
  } else {
@@ -15980,16 +16586,16 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSan
15980
16586
  this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(allowedElements, allowedElementPolicies, this.sanitizerTable.allowedGlobalAttributes, this.sanitizerTable.globalAttributePolicies);
15981
16587
  return this;
15982
16588
  };
15983
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.onlyAllowAttributes = function(attributeSet) {
15984
- for (var allowedGlobalAttributes = new Set(), globalAttributePolicies = new Map(), elementPolicies = new Map(), $jscomp$iter$37 = (0,$jscomp.makeIterator)(attributeSet), $jscomp$key$435282654$2$attribute = $jscomp$iter$37.next(); !$jscomp$key$435282654$2$attribute.done; $jscomp$key$435282654$2$attribute = $jscomp$iter$37.next()) {
15985
- var attribute = $jscomp$key$435282654$2$attribute.value;
16589
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.onlyAllowAttributes = function(attributeSet) {
16590
+ for (var allowedGlobalAttributes = new Set(), globalAttributePolicies = new Map(), elementPolicies = new Map(), $jscomp$iter$41 = (0,$jscomp.makeIterator)(attributeSet), $jscomp$key$435282654$23$attribute = $jscomp$iter$41.next(); !$jscomp$key$435282654$23$attribute.done; $jscomp$key$435282654$23$attribute = $jscomp$iter$41.next()) {
16591
+ var attribute = $jscomp$key$435282654$23$attribute.value;
15986
16592
  this.sanitizerTable.allowedGlobalAttributes.has(attribute) && allowedGlobalAttributes.add(attribute);
15987
16593
  this.sanitizerTable.globalAttributePolicies.has(attribute) && globalAttributePolicies.set(attribute, this.sanitizerTable.globalAttributePolicies.get(attribute));
15988
16594
  }
15989
- for (var $jscomp$iter$39 = (0,$jscomp.makeIterator)(this.sanitizerTable.elementPolicies.entries()), $jscomp$key$435282654$4$ = $jscomp$iter$39.next(); !$jscomp$key$435282654$4$.done; $jscomp$key$435282654$4$ = $jscomp$iter$39.next()) {
15990
- for (var $jscomp$destructuring$var37 = (0,$jscomp.makeIterator)($jscomp$key$435282654$4$.value), elementName__tsickle_destructured_1 = $jscomp$destructuring$var37.next().value, originalElementPolicy__tsickle_destructured_2 = $jscomp$destructuring$var37.next().value, elementName = elementName__tsickle_destructured_1, newElementPolicy = new Map(), $jscomp$iter$38 = (0,$jscomp.makeIterator)(originalElementPolicy__tsickle_destructured_2.entries()), $jscomp$key$435282654$3$ = $jscomp$iter$38.next(); !$jscomp$key$435282654$3$.done; $jscomp$key$435282654$3$ =
15991
- $jscomp$iter$38.next()) {
15992
- var $jscomp$destructuring$var39 = (0,$jscomp.makeIterator)($jscomp$key$435282654$3$.value), attribute__tsickle_destructured_3 = $jscomp$destructuring$var39.next().value, attributePolicy__tsickle_destructured_4 = $jscomp$destructuring$var39.next().value, attribute$jscomp$0 = attribute__tsickle_destructured_3, attributePolicy = attributePolicy__tsickle_destructured_4;
16595
+ for (var $jscomp$iter$43 = (0,$jscomp.makeIterator)(this.sanitizerTable.elementPolicies.entries()), $jscomp$key$435282654$25$ = $jscomp$iter$43.next(); !$jscomp$key$435282654$25$.done; $jscomp$key$435282654$25$ = $jscomp$iter$43.next()) {
16596
+ for (var $jscomp$destructuring$var37 = (0,$jscomp.makeIterator)($jscomp$key$435282654$25$.value), elementName__tsickle_destructured_1 = $jscomp$destructuring$var37.next().value, originalElementPolicy__tsickle_destructured_2 = $jscomp$destructuring$var37.next().value, elementName = elementName__tsickle_destructured_1, newElementPolicy = new Map(), $jscomp$iter$42 = (0,$jscomp.makeIterator)(originalElementPolicy__tsickle_destructured_2.entries()), $jscomp$key$435282654$24$ = $jscomp$iter$42.next(); !$jscomp$key$435282654$24$.done; $jscomp$key$435282654$24$ =
16597
+ $jscomp$iter$42.next()) {
16598
+ var $jscomp$destructuring$var39 = (0,$jscomp.makeIterator)($jscomp$key$435282654$24$.value), attribute__tsickle_destructured_3 = $jscomp$destructuring$var39.next().value, attributePolicy__tsickle_destructured_4 = $jscomp$destructuring$var39.next().value, attribute$jscomp$0 = attribute__tsickle_destructured_3, attributePolicy = attributePolicy__tsickle_destructured_4;
15993
16599
  attributeSet.has(attribute$jscomp$0) && newElementPolicy.set(attribute$jscomp$0, attributePolicy);
15994
16600
  }
15995
16601
  elementPolicies.set(elementName, newElementPolicy);
@@ -15997,9 +16603,9 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSan
15997
16603
  this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(this.sanitizerTable.allowedElements, elementPolicies, allowedGlobalAttributes, globalAttributePolicies);
15998
16604
  return this;
15999
16605
  };
16000
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.allowDataAttributes = function(attributes) {
16001
- for (var allowedGlobalAttributes = new Set(this.sanitizerTable.allowedGlobalAttributes), $jscomp$iter$40 = (0,$jscomp.makeIterator)(attributes), $jscomp$key$435282654$5$attribute = $jscomp$iter$40.next(); !$jscomp$key$435282654$5$attribute.done; $jscomp$key$435282654$5$attribute = $jscomp$iter$40.next()) {
16002
- var attribute = $jscomp$key$435282654$5$attribute.value;
16606
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.allowDataAttributes = function(attributes) {
16607
+ for (var allowedGlobalAttributes = new Set(this.sanitizerTable.allowedGlobalAttributes), $jscomp$iter$44 = (0,$jscomp.makeIterator)(attributes), $jscomp$key$435282654$26$attribute = $jscomp$iter$44.next(); !$jscomp$key$435282654$26$attribute.done; $jscomp$key$435282654$26$attribute = $jscomp$iter$44.next()) {
16608
+ var attribute = $jscomp$key$435282654$26$attribute.value;
16003
16609
  if (attribute.indexOf("data-") !== 0) {
16004
16610
  throw Error("data attribute: " + attribute + ' does not begin with the prefix "data-"');
16005
16611
  }
@@ -16008,34 +16614,38 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSan
16008
16614
  this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(this.sanitizerTable.allowedElements, this.sanitizerTable.elementPolicies, allowedGlobalAttributes, this.sanitizerTable.globalAttributePolicies);
16009
16615
  return this;
16010
16616
  };
16011
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.allowStyleAttributes = function() {
16617
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.allowStyleAttributes = function() {
16012
16618
  var globalAttributePolicies = new Map(this.sanitizerTable.globalAttributePolicies);
16013
16619
  globalAttributePolicies.set("style", {policyAction:module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.AttributePolicyAction.KEEP_AND_SANITIZE_STYLE});
16014
16620
  this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(this.sanitizerTable.allowedElements, this.sanitizerTable.elementPolicies, this.sanitizerTable.allowedGlobalAttributes, globalAttributePolicies);
16015
16621
  return this;
16016
16622
  };
16017
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.allowClassAttributes = function() {
16623
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.allowClassAttributes = function() {
16018
16624
  var allowedGlobalAttributes = new Set(this.sanitizerTable.allowedGlobalAttributes);
16019
16625
  allowedGlobalAttributes.add("class");
16020
16626
  this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(this.sanitizerTable.allowedElements, this.sanitizerTable.elementPolicies, allowedGlobalAttributes, this.sanitizerTable.globalAttributePolicies);
16021
16627
  return this;
16022
16628
  };
16023
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.allowIdAttributes = function() {
16629
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.allowIdAttributes = function() {
16024
16630
  var allowedGlobalAttributes = new Set(this.sanitizerTable.allowedGlobalAttributes);
16025
16631
  allowedGlobalAttributes.add("id");
16026
16632
  this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(this.sanitizerTable.allowedElements, this.sanitizerTable.elementPolicies, allowedGlobalAttributes, this.sanitizerTable.globalAttributePolicies);
16027
16633
  return this;
16028
16634
  };
16029
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.allowIdReferenceAttributes = function() {
16635
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.allowIdReferenceAttributes = function() {
16030
16636
  var allowedGlobalAttributes = new Set(this.sanitizerTable.allowedGlobalAttributes);
16031
16637
  allowedGlobalAttributes.add("aria-activedescendant").add("aria-controls").add("aria-labelledby").add("aria-owns").add("for").add("list");
16032
16638
  this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(this.sanitizerTable.allowedElements, this.sanitizerTable.elementPolicies, allowedGlobalAttributes, this.sanitizerTable.globalAttributePolicies);
16033
16639
  return this;
16034
16640
  };
16035
- module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.withResourceUrlPolicy = function(resourceUrlPolicy) {
16641
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.prototype.withResourceUrlPolicy = function(resourceUrlPolicy) {
16036
16642
  this.resourceUrlPolicy = resourceUrlPolicy;
16037
16643
  return this;
16038
16644
  };
16645
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder = function() {
16646
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.apply(this, arguments);
16647
+ };
16648
+ $jscomp.inherits(module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder, module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder);
16039
16649
  module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSanitizerBuilder.prototype.build = function() {
16040
16650
  if (this.calledBuild) {
16041
16651
  throw Error("this sanitizer has already called build");
@@ -16043,6 +16653,44 @@ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.HtmlSan
16043
16653
  this.calledBuild = !0;
16044
16654
  return new module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl(this.sanitizerTable, module$exports$safevalues$internals$secrets.secretToken, void 0, void 0, this.resourceUrlPolicy);
16045
16655
  };
16656
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.CssSanitizerBuilder = function() {
16657
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder.apply(this, arguments);
16658
+ this.transitionsAllowed = this.animationsAllowed = !1;
16659
+ };
16660
+ $jscomp.inherits(module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.CssSanitizerBuilder, module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.BaseSanitizerBuilder);
16661
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.CssSanitizerBuilder.prototype.allowAnimations = function() {
16662
+ this.animationsAllowed = !0;
16663
+ return this;
16664
+ };
16665
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.CssSanitizerBuilder.prototype.allowTransitions = function() {
16666
+ this.transitionsAllowed = !0;
16667
+ return this;
16668
+ };
16669
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.CssSanitizerBuilder.prototype.build = function() {
16670
+ var $jscomp$this$435282654$17 = this;
16671
+ this.extendSanitizerTableForCss();
16672
+ var propertyDiscarders = [];
16673
+ this.animationsAllowed || propertyDiscarders.push(function(property) {
16674
+ return /^(animation|offset)(-|$)/.test(property);
16675
+ });
16676
+ this.transitionsAllowed || propertyDiscarders.push(function(property) {
16677
+ return /^transition(-|$)/.test(property);
16678
+ });
16679
+ return new module$exports$safevalues$builders$html_sanitizer$html_sanitizer.HtmlSanitizerImpl(this.sanitizerTable, module$exports$safevalues$internals$secrets.secretToken, function(cssText) {
16680
+ return module$contents$safevalues$builders$html_sanitizer$css$sanitizer_sanitizeStyleElement(cssText, module$exports$safevalues$builders$html_sanitizer$css$allowlists.CSS_PROPERTY_ALLOWLIST, module$exports$safevalues$builders$html_sanitizer$css$allowlists.CSS_FUNCTION_ALLOWLIST, $jscomp$this$435282654$17.resourceUrlPolicy, $jscomp$this$435282654$17.animationsAllowed, propertyDiscarders);
16681
+ }, function(cssText) {
16682
+ return module$contents$safevalues$builders$html_sanitizer$css$sanitizer_sanitizeStyleAttribute(cssText, module$exports$safevalues$builders$html_sanitizer$css$allowlists.CSS_PROPERTY_ALLOWLIST, module$exports$safevalues$builders$html_sanitizer$css$allowlists.CSS_FUNCTION_ALLOWLIST, $jscomp$this$435282654$17.resourceUrlPolicy, propertyDiscarders);
16683
+ }, this.resourceUrlPolicy);
16684
+ };
16685
+ module$exports$safevalues$builders$html_sanitizer$html_sanitizer_builder.CssSanitizerBuilder.prototype.extendSanitizerTableForCss = function() {
16686
+ var allowedElements = new Set(this.sanitizerTable.allowedElements), allowedGlobalAttributes = new Set(this.sanitizerTable.allowedGlobalAttributes), globalAttributePolicies = new Map(this.sanitizerTable.globalAttributePolicies);
16687
+ allowedElements.add("STYLE");
16688
+ globalAttributePolicies.set("style", {policyAction:module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.AttributePolicyAction.KEEP_AND_SANITIZE_STYLE});
16689
+ allowedGlobalAttributes.add("id");
16690
+ allowedGlobalAttributes.add("name");
16691
+ allowedGlobalAttributes.add("class");
16692
+ this.sanitizerTable = new module$exports$safevalues$builders$html_sanitizer$sanitizer_table$sanitizer_table.SanitizerTable(allowedElements, this.sanitizerTable.elementPolicies, allowedGlobalAttributes, globalAttributePolicies);
16693
+ };
16046
16694
  var module$exports$safevalues$builders$resource_url_builders = {}, module$contents$safevalues$builders$resource_url_builders_module = module$contents$safevalues$builders$resource_url_builders_module || {id:"third_party/javascript/safevalues/builders/resource_url_builders.closure.js"}, module$contents$safevalues$builders$resource_url_builders_Primitive;
16047
16695
  function module$contents$safevalues$builders$resource_url_builders_hasValidOrigin(base) {
16048
16696
  if (!/^https:\/\//.test(base) && !/^\/\//.test(base)) {
@@ -16948,7 +17596,7 @@ goog.dom.flattenElement = function(element) {
16948
17596
  }
16949
17597
  };
16950
17598
  goog.dom.getChildren = function(element) {
16951
- return element.children != void 0 ? element.children : Array.prototype.filter.call(element.childNodes, function(node) {
17599
+ return goog.FEATURESET_YEAR > 2018 || element.children != void 0 ? element.children : Array.prototype.filter.call(element.childNodes, function(node) {
16952
17600
  return node.nodeType == goog.dom.NodeType.ELEMENT;
16953
17601
  });
16954
17602
  };
@@ -16959,7 +17607,7 @@ goog.dom.getLastElementChild = function(node) {
16959
17607
  return node.lastElementChild !== void 0 ? node.lastElementChild : goog.dom.getNextElementNode_(node.lastChild, !1);
16960
17608
  };
16961
17609
  goog.dom.getNextElementSibling = function(node) {
16962
- return node.nextElementSibling !== void 0 ? node.nextElementSibling : goog.dom.getNextElementNode_(node.nextSibling, !0);
17610
+ return goog.FEATURESET_YEAR > 2018 || node.nextElementSibling !== void 0 ? node.nextElementSibling : goog.dom.getNextElementNode_(node.nextSibling, !0);
16963
17611
  };
16964
17612
  goog.dom.getPreviousElementSibling = function(node) {
16965
17613
  return node.previousElementSibling !== void 0 ? node.previousElementSibling : goog.dom.getNextElementNode_(node.previousSibling, !1);
@@ -17004,18 +17652,13 @@ goog.dom.isWindow = function(obj) {
17004
17652
  return goog.isObject(obj) && obj.window == obj;
17005
17653
  };
17006
17654
  goog.dom.getParentElement = function(element) {
17007
- var parent;
17008
- if (goog.dom.BrowserFeature.CAN_USE_PARENT_ELEMENT_PROPERTY && (parent = element.parentElement)) {
17009
- return parent;
17010
- }
17011
- parent = element.parentNode;
17012
- return goog.dom.isElement(parent) ? parent : null;
17655
+ return element.parentElement || null;
17013
17656
  };
17014
17657
  goog.dom.contains = function(parent, descendant) {
17015
17658
  if (!parent || !descendant) {
17016
17659
  return !1;
17017
17660
  }
17018
- if (parent.contains && descendant.nodeType == goog.dom.NodeType.ELEMENT) {
17661
+ if (goog.FEATURESET_YEAR > 2018 || parent.contains && descendant.nodeType == goog.dom.NodeType.ELEMENT) {
17019
17662
  return parent == descendant || parent.contains(descendant);
17020
17663
  }
17021
17664
  if (typeof parent.compareDocumentPosition != "undefined") {
@@ -17273,6 +17916,9 @@ goog.dom.getNodeAtOffset = function(parent, offset, opt_result) {
17273
17916
  return cur;
17274
17917
  };
17275
17918
  goog.dom.isNodeList = function(val) {
17919
+ if (goog.FEATURESET_YEAR >= 2018) {
17920
+ return !!val && typeof val.length == "number" && typeof val.item == "function";
17921
+ }
17276
17922
  if (val && typeof val.length == "number") {
17277
17923
  if (goog.isObject(val)) {
17278
17924
  return typeof val.item == "function" || typeof val.item == "string";
@@ -18815,7 +19461,7 @@ goog.net.XhrIo.prototype.send = function(url, opt_method, opt_content, opt_heade
18815
19461
  headers.set(key, opt_headers[key]);
18816
19462
  }
18817
19463
  } else if (typeof opt_headers.keys === "function" && typeof opt_headers.get === "function") {
18818
- for (var $jscomp$iter$41 = (0,$jscomp.makeIterator)(opt_headers.keys()), $jscomp$key$m71669834$54$key = $jscomp$iter$41.next(); !$jscomp$key$m71669834$54$key.done; $jscomp$key$m71669834$54$key = $jscomp$iter$41.next()) {
19464
+ for (var $jscomp$iter$45 = (0,$jscomp.makeIterator)(opt_headers.keys()), $jscomp$key$m71669834$54$key = $jscomp$iter$45.next(); !$jscomp$key$m71669834$54$key.done; $jscomp$key$m71669834$54$key = $jscomp$iter$45.next()) {
18819
19465
  var key$jscomp$0 = $jscomp$key$m71669834$54$key.value;
18820
19466
  headers.set(key$jscomp$0, opt_headers.get(key$jscomp$0));
18821
19467
  }
@@ -18827,7 +19473,7 @@ goog.net.XhrIo.prototype.send = function(url, opt_method, opt_content, opt_heade
18827
19473
  return goog.string.caseInsensitiveEquals(goog.net.XhrIo.CONTENT_TYPE_HEADER, header);
18828
19474
  }), contentIsFormData = goog.global.FormData && content instanceof goog.global.FormData;
18829
19475
  !module$contents$goog$array_contains(goog.net.XhrIo.METHODS_WITH_FORM_DATA, method) || contentTypeKey || contentIsFormData || headers.set(goog.net.XhrIo.CONTENT_TYPE_HEADER, goog.net.XhrIo.FORM_CONTENT_TYPE);
18830
- for (var $jscomp$iter$42 = (0,$jscomp.makeIterator)(headers), $jscomp$key$m71669834$55$ = $jscomp$iter$42.next(); !$jscomp$key$m71669834$55$.done; $jscomp$key$m71669834$55$ = $jscomp$iter$42.next()) {
19476
+ for (var $jscomp$iter$46 = (0,$jscomp.makeIterator)(headers), $jscomp$key$m71669834$55$ = $jscomp$iter$46.next(); !$jscomp$key$m71669834$55$.done; $jscomp$key$m71669834$55$ = $jscomp$iter$46.next()) {
18831
19477
  var $jscomp$destructuring$var41 = (0,$jscomp.makeIterator)($jscomp$key$m71669834$55$.value), key$jscomp$1 = $jscomp$destructuring$var41.next().value, value = $jscomp$destructuring$var41.next().value;
18832
19478
  this.xhr_.setRequestHeader(key$jscomp$1, value);
18833
19479
  }
@@ -19143,7 +19789,7 @@ var $jscomp$templatelit$m1153655765$99 = $jscomp.createTemplateTagFirstArg(["htt
19143
19789
  ee.apiclient = {};
19144
19790
  var module$contents$ee$apiclient_apiclient = {};
19145
19791
  ee.apiclient.VERSION = module$exports$ee$apiVersion.V1;
19146
- ee.apiclient.API_CLIENT_VERSION = "0.1.414";
19792
+ ee.apiclient.API_CLIENT_VERSION = "0.1.416";
19147
19793
  ee.apiclient.NULL_VALUE = module$exports$eeapiclient$domain_object.NULL_VALUE;
19148
19794
  ee.apiclient.PromiseRequestService = module$exports$eeapiclient$promise_request_service.PromiseRequestService;
19149
19795
  ee.apiclient.MakeRequestParams = module$contents$eeapiclient$request_params_MakeRequestParams;
@@ -19312,7 +19958,7 @@ module$contents$ee$apiclient_BatchRequestService.prototype.send = function(param
19312
19958
  module$contents$ee$apiclient_BatchRequestService.prototype.makeRequest = function(params) {
19313
19959
  };
19314
19960
  module$contents$ee$apiclient_apiclient.parseBatchReply = function(contentType, responseText, handle) {
19315
- for (var boundary = contentType.split("; boundary=")[1], $jscomp$iter$43 = (0,$jscomp.makeIterator)(responseText.split("--" + boundary)), $jscomp$key$m1153655765$100$part = $jscomp$iter$43.next(); !$jscomp$key$m1153655765$100$part.done; $jscomp$key$m1153655765$100$part = $jscomp$iter$43.next()) {
19961
+ for (var boundary = contentType.split("; boundary=")[1], $jscomp$iter$47 = (0,$jscomp.makeIterator)(responseText.split("--" + boundary)), $jscomp$key$m1153655765$100$part = $jscomp$iter$47.next(); !$jscomp$key$m1153655765$100$part.done; $jscomp$key$m1153655765$100$part = $jscomp$iter$47.next()) {
19316
19962
  var groups = $jscomp$key$m1153655765$100$part.value.split("\r\n\r\n");
19317
19963
  if (!(groups.length < 3)) {
19318
19964
  var id = groups[0].match(/\r\nContent-ID: <response-([^>]*)>/)[1], status = Number(groups[1].match(/^HTTP\S*\s(\d+)\s/)[1]), text = groups.slice(2).join("\r\n\r\n");
@@ -19441,8 +20087,8 @@ module$contents$ee$apiclient_apiclient.send = function(path, params, callback, m
19441
20087
  var profileHookAtCallTime = module$contents$ee$apiclient_apiclient.profileHook_, contentType = "application/x-www-form-urlencoded";
19442
20088
  body && (contentType = "application/json", method && method.startsWith("multipart") && (contentType = method, method = "POST"));
19443
20089
  method = method || "POST";
19444
- var headers = {"Content-Type":contentType}, version = "0.1.414";
19445
- version === "0.1.414" && (version = "latest");
20090
+ var headers = {"Content-Type":contentType}, version = "0.1.416";
20091
+ version === "0.1.416" && (version = "latest");
19446
20092
  headers[module$contents$ee$apiclient_apiclient.API_CLIENT_VERSION_HEADER] = "ee-js/" + version;
19447
20093
  var authToken = module$contents$ee$apiclient_apiclient.getAuthToken();
19448
20094
  if (authToken != null) {
@@ -19575,7 +20221,7 @@ module$contents$ee$apiclient_apiclient.handleAuthResult_ = function(success, err
19575
20221
  }
19576
20222
  };
19577
20223
  module$contents$ee$apiclient_apiclient.makeRequest_ = function(params) {
19578
- for (var request = new goog.Uri.QueryData(), $jscomp$iter$44 = (0,$jscomp.makeIterator)(Object.entries(params)), $jscomp$key$m1153655765$101$ = $jscomp$iter$44.next(); !$jscomp$key$m1153655765$101$.done; $jscomp$key$m1153655765$101$ = $jscomp$iter$44.next()) {
20224
+ for (var request = new goog.Uri.QueryData(), $jscomp$iter$48 = (0,$jscomp.makeIterator)(Object.entries(params)), $jscomp$key$m1153655765$101$ = $jscomp$iter$48.next(); !$jscomp$key$m1153655765$101$.done; $jscomp$key$m1153655765$101$ = $jscomp$iter$48.next()) {
19579
20225
  var $jscomp$destructuring$var49 = (0,$jscomp.makeIterator)($jscomp$key$m1153655765$101$.value), name = $jscomp$destructuring$var49.next().value, item = $jscomp$destructuring$var49.next().value;
19580
20226
  request.set(name, item);
19581
20227
  }
@@ -19930,7 +20576,7 @@ ee.rpc_convert.algorithms = function(result) {
19930
20576
  algorithm.deprecated && (internalAlgorithm.deprecated = algorithm.deprecationReason);
19931
20577
  algorithm.sourceCodeUri && (internalAlgorithm.sourceCodeUri = algorithm.sourceCodeUri);
19932
20578
  return internalAlgorithm;
19933
- }, internalAlgorithms = {}, $jscomp$iter$45 = (0,$jscomp.makeIterator)(result.algorithms || []), $jscomp$key$m29782521$48$algorithm = $jscomp$iter$45.next(); !$jscomp$key$m29782521$48$algorithm.done; $jscomp$key$m29782521$48$algorithm = $jscomp$iter$45.next()) {
20579
+ }, internalAlgorithms = {}, $jscomp$iter$49 = (0,$jscomp.makeIterator)(result.algorithms || []), $jscomp$key$m29782521$48$algorithm = $jscomp$iter$49.next(); !$jscomp$key$m29782521$48$algorithm.done; $jscomp$key$m29782521$48$algorithm = $jscomp$iter$49.next()) {
19934
20580
  var algorithm = $jscomp$key$m29782521$48$algorithm.value, name = algorithm.name.replace(/^algorithms\//, "");
19935
20581
  internalAlgorithms[name] = convertAlgorithm(algorithm);
19936
20582
  }
@@ -20080,9 +20726,9 @@ ee.rpc_convert.getListToListAssets = function(param) {
20080
20726
  param.bbox && (assetsRequest.region = ee.rpc_convert.boundingBoxToGeoJson(param.bbox));
20081
20727
  param.region && (assetsRequest.region = param.region);
20082
20728
  param.bbox && param.region && console.warn("Multiple request parameters converted to region");
20083
- for (var allKeys = "id num starttime endtime bbox region".split(" "), $jscomp$iter$46 = (0,$jscomp.makeIterator)(Object.keys(param).filter(function(k) {
20729
+ for (var allKeys = "id num starttime endtime bbox region".split(" "), $jscomp$iter$50 = (0,$jscomp.makeIterator)(Object.keys(param).filter(function(k) {
20084
20730
  return !allKeys.includes(k);
20085
- })), $jscomp$key$m29782521$49$key = $jscomp$iter$46.next(); !$jscomp$key$m29782521$49$key.done; $jscomp$key$m29782521$49$key = $jscomp$iter$46.next()) {
20731
+ })), $jscomp$key$m29782521$49$key = $jscomp$iter$50.next(); !$jscomp$key$m29782521$49$key.done; $jscomp$key$m29782521$49$key = $jscomp$iter$50.next()) {
20086
20732
  console.warn("Unrecognized key " + $jscomp$key$m29782521$49$key.value + " ignored");
20087
20733
  }
20088
20734
  return ee.rpc_convert.processListImagesParams(assetsRequest);
@@ -20306,7 +20952,7 @@ ee.rpc_convert.parseFilterParamsFromListImages_ = function(params) {
20306
20952
  })) {
20307
20953
  throw Error('Filter parameter "properties" must be an array of strings');
20308
20954
  }
20309
- for (var $jscomp$iter$47 = (0,$jscomp.makeIterator)(params.properties), $jscomp$key$m29782521$50$propertyQuery = $jscomp$iter$47.next(); !$jscomp$key$m29782521$50$propertyQuery.done; $jscomp$key$m29782521$50$propertyQuery = $jscomp$iter$47.next()) {
20955
+ for (var $jscomp$iter$51 = (0,$jscomp.makeIterator)(params.properties), $jscomp$key$m29782521$50$propertyQuery = $jscomp$iter$51.next(); !$jscomp$key$m29782521$50$propertyQuery.done; $jscomp$key$m29782521$50$propertyQuery = $jscomp$iter$51.next()) {
20310
20956
  queryStrings.push($jscomp$key$m29782521$50$propertyQuery.value.trim().replace(/^(properties\.)?/, "properties."));
20311
20957
  }
20312
20958
  delete params.properties;
@@ -20643,7 +21289,7 @@ ee.Serializer.encodeCloudApiPretty = function(obj) {
20643
21289
  if (!goog.isObject(object)) {
20644
21290
  return object;
20645
21291
  }
20646
- for (var ret = Array.isArray(object) ? [] : {}, isNode = object instanceof Object.getPrototypeOf(module$exports$eeapiclient$ee_api_client.ValueNode), $jscomp$iter$48 = (0,$jscomp.makeIterator)(Object.entries(isNode ? object.Serializable$values : object)), $jscomp$key$m759255156$28$ = $jscomp$iter$48.next(); !$jscomp$key$m759255156$28$.done; $jscomp$key$m759255156$28$ = $jscomp$iter$48.next()) {
21292
+ for (var ret = Array.isArray(object) ? [] : {}, isNode = object instanceof Object.getPrototypeOf(module$exports$eeapiclient$ee_api_client.ValueNode), $jscomp$iter$52 = (0,$jscomp.makeIterator)(Object.entries(isNode ? object.Serializable$values : object)), $jscomp$key$m759255156$28$ = $jscomp$iter$52.next(); !$jscomp$key$m759255156$28$.done; $jscomp$key$m759255156$28$ = $jscomp$iter$52.next()) {
20647
21293
  var $jscomp$destructuring$var53 = (0,$jscomp.makeIterator)($jscomp$key$m759255156$28$.value), key = $jscomp$destructuring$var53.next().value, val = $jscomp$destructuring$var53.next().value;
20648
21294
  isNode ? val !== null && (ret[key] = key === "functionDefinitionValue" && val.body != null ? {argumentNames:val.argumentNames, body:walkObject(values[val.body])} : key === "functionInvocationValue" && val.functionReference != null ? {arguments:module$contents$goog$object_map(val.arguments, walkObject), functionReference:walkObject(values[val.functionReference])} : key === "constantValue" ? val === module$exports$eeapiclient$domain_object.NULL_VALUE ?
20649
21295
  null : val : walkObject(val)) : ret[key] = walkObject(val);
@@ -20767,7 +21413,7 @@ ExpressionOptimizer.prototype.optimizeValue = function(value, depth) {
20767
21413
  return storeInSourceMap(value, optimized$jscomp$1);
20768
21414
  }
20769
21415
  if (value.dictionaryValue != null) {
20770
- for (var values = {}, constantValues = {}, $jscomp$iter$49 = (0,$jscomp.makeIterator)(Object.entries(value.dictionaryValue.values || {})), $jscomp$key$m759255156$29$ = $jscomp$iter$49.next(); !$jscomp$key$m759255156$29$.done; $jscomp$key$m759255156$29$ = $jscomp$iter$49.next()) {
21416
+ for (var values = {}, constantValues = {}, $jscomp$iter$53 = (0,$jscomp.makeIterator)(Object.entries(value.dictionaryValue.values || {})), $jscomp$key$m759255156$29$ = $jscomp$iter$53.next(); !$jscomp$key$m759255156$29$.done; $jscomp$key$m759255156$29$ = $jscomp$iter$53.next()) {
20771
21417
  var $jscomp$destructuring$var55 = (0,$jscomp.makeIterator)($jscomp$key$m759255156$29$.value), k = $jscomp$destructuring$var55.next().value, v = $jscomp$destructuring$var55.next().value;
20772
21418
  values[k] = this.optimizeValue(v, depth + 3);
20773
21419
  constantValues !== null && isConst(values[k]) ? constantValues[k] = serializeConst(values[k].constantValue) : constantValues = null;
@@ -20779,7 +21425,7 @@ ExpressionOptimizer.prototype.optimizeValue = function(value, depth) {
20779
21425
  return storeInSourceMap(value, optimized$jscomp$2);
20780
21426
  }
20781
21427
  if (value.functionInvocationValue != null) {
20782
- for (var inv = value.functionInvocationValue, args = {}, $jscomp$iter$50 = (0,$jscomp.makeIterator)(Object.keys(inv.arguments || {})), $jscomp$key$m759255156$30$k = $jscomp$iter$50.next(); !$jscomp$key$m759255156$30$k.done; $jscomp$key$m759255156$30$k = $jscomp$iter$50.next()) {
21428
+ for (var inv = value.functionInvocationValue, args = {}, $jscomp$iter$54 = (0,$jscomp.makeIterator)(Object.keys(inv.arguments || {})), $jscomp$key$m759255156$30$k = $jscomp$iter$54.next(); !$jscomp$key$m759255156$30$k.done; $jscomp$key$m759255156$30$k = $jscomp$iter$54.next()) {
20783
21429
  var k$jscomp$0 = $jscomp$key$m759255156$30$k.value;
20784
21430
  args[k$jscomp$0] = this.optimizeValue(inv.arguments[k$jscomp$0], depth + 3);
20785
21431
  }
@@ -21677,7 +22323,7 @@ ee.data.createAsset = function(value, opt_path, opt_force, opt_properties, opt_c
21677
22323
  value.gcsLocation && !value.cloudStorageLocation && (value.cloudStorageLocation = value.gcsLocation, delete value.gcsLocation);
21678
22324
  value.cloudStorageLocation && (value.cloudStorageLocation = new module$exports$eeapiclient$ee_api_client.CloudStorageLocation(value.cloudStorageLocation));
21679
22325
  opt_properties && !value.properties && (value.properties = Object.assign({}, opt_properties));
21680
- for (var $jscomp$iter$51 = (0,$jscomp.makeIterator)(["title", "description"]), $jscomp$key$m1075644492$123$prop = $jscomp$iter$51.next(); !$jscomp$key$m1075644492$123$prop.done; $jscomp$key$m1075644492$123$prop = $jscomp$iter$51.next()) {
22326
+ for (var $jscomp$iter$55 = (0,$jscomp.makeIterator)(["title", "description"]), $jscomp$key$m1075644492$123$prop = $jscomp$iter$55.next(); !$jscomp$key$m1075644492$123$prop.done; $jscomp$key$m1075644492$123$prop = $jscomp$iter$55.next()) {
21681
22327
  var prop = $jscomp$key$m1075644492$123$prop.value;
21682
22328
  if (value[prop]) {
21683
22329
  var $jscomp$compprop17 = {};
@@ -23950,7 +24596,7 @@ module$contents$ee$batch_Export.prefixImageFormatOptions_ = function(taskConfig,
23950
24596
  })) {
23951
24597
  throw Error("Parameter specified at least twice: once in config, and once in config format options.");
23952
24598
  }
23953
- for (var prefix = module$contents$ee$batch_FORMAT_PREFIX_MAP[imageFormat], validOptionKeys = module$contents$ee$batch_FORMAT_OPTIONS_MAP[imageFormat], prefixedOptions = {}, $jscomp$iter$52 = (0,$jscomp.makeIterator)(Object.entries(formatOptions)), $jscomp$key$1827622838$35$ = $jscomp$iter$52.next(); !$jscomp$key$1827622838$35$.done; $jscomp$key$1827622838$35$ = $jscomp$iter$52.next()) {
24599
+ for (var prefix = module$contents$ee$batch_FORMAT_PREFIX_MAP[imageFormat], validOptionKeys = module$contents$ee$batch_FORMAT_OPTIONS_MAP[imageFormat], prefixedOptions = {}, $jscomp$iter$56 = (0,$jscomp.makeIterator)(Object.entries(formatOptions)), $jscomp$key$1827622838$35$ = $jscomp$iter$56.next(); !$jscomp$key$1827622838$35$.done; $jscomp$key$1827622838$35$ = $jscomp$iter$56.next()) {
23954
24600
  var $jscomp$destructuring$var60 = (0,$jscomp.makeIterator)($jscomp$key$1827622838$35$.value), key = $jscomp$destructuring$var60.next().value, value = $jscomp$destructuring$var60.next().value;
23955
24601
  if (!module$contents$goog$array_contains(validOptionKeys, key)) {
23956
24602
  var validKeysMsg = validOptionKeys.join(", ");