frosty 0.0.47 → 0.0.49

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.
@@ -3926,7 +3926,8 @@ class _DOMRenderer extends renderer._Renderer {
3926
3926
  else {
3927
3927
  const styleElem = this.document.querySelector('style[data-frosty-style]') ?? this.document.createElementNS(HTML_NS, 'style');
3928
3928
  styleElem.setAttribute('data-frosty-style', '');
3929
- styleElem.textContent = this._tracked_style.css;
3929
+ if (styleElem.textContent !== this._tracked_style.css)
3930
+ styleElem.textContent = this._tracked_style.css;
3930
3931
  if (this._server) {
3931
3932
  this.__replaceChildren(head, [...this._tracked_head_children, styleElem]);
3932
3933
  }
@@ -4024,18 +4025,22 @@ class _DOMRenderer extends renderer._Renderer {
4024
4025
  state.mergeRefs(ref)(element);
4025
4026
  const builtClassName = this.__createBuiltClassName(element, className, style);
4026
4027
  if (_.isEmpty(builtClassName)) {
4027
- element.removeAttribute('class');
4028
+ if (!_.isNil(element.getAttribute('class')))
4029
+ element.removeAttribute('class');
4028
4030
  }
4029
- else {
4031
+ else if (element.className !== builtClassName) {
4030
4032
  element.className = builtClassName;
4031
4033
  }
4032
- if (!_.isEmpty(innerHTML))
4034
+ if (!_.isEmpty(innerHTML) && element.innerHTML !== innerHTML)
4033
4035
  element.innerHTML = innerHTML;
4034
4036
  if (inlineStyle) {
4035
4037
  const { css } = processCss(inlineStyle);
4036
- element.setAttribute('style', css.split('\n').join(''));
4038
+ const oldValue = element.getAttribute('style');
4039
+ const newValue = css.split('\n').join('');
4040
+ if (oldValue !== newValue)
4041
+ element.setAttribute('style', newValue);
4037
4042
  }
4038
- else {
4043
+ else if (!_.isNil(element.getAttribute('style'))) {
4039
4044
  element.removeAttribute('style');
4040
4045
  }
4041
4046
  const tracked = this._tracked_elements.get(element);
@@ -4055,17 +4060,19 @@ class _DOMRenderer extends renderer._Renderer {
4055
4060
  this.__updateEventListener(element, key, value, { capture: true });
4056
4061
  }
4057
4062
  else if (isWriteable(element, key)) {
4058
- element[key] = value;
4063
+ if (element[key] !== value)
4064
+ element[key] = value;
4059
4065
  }
4060
4066
  else if (key.startsWith('data-')) {
4067
+ const oldValue = element.getAttribute(key);
4061
4068
  if (value === false || _.isNil(value)) {
4062
- element.removeAttribute(key);
4063
- }
4064
- else if (value === true) {
4065
- element.setAttribute(key, '');
4069
+ if (!_.isNil(oldValue))
4070
+ element.removeAttribute(key);
4066
4071
  }
4067
- else if (_.isNumber(value) || _.isString(value)) {
4068
- element.setAttribute(key, `${value}`);
4072
+ else {
4073
+ const newValue = value === true ? '' : `${value}`;
4074
+ if (oldValue !== newValue)
4075
+ element.setAttribute(key, newValue);
4069
4076
  }
4070
4077
  }
4071
4078
  else {
@@ -4075,14 +4082,15 @@ class _DOMRenderer extends renderer._Renderer {
4075
4082
  ?? svgProps[type]?.[key]
4076
4083
  ?? {};
4077
4084
  if (_type && attr && _propValue[_type]) {
4085
+ const oldValue = element.getAttribute(key);
4078
4086
  if (value === false || _.isNil(value)) {
4079
- element.removeAttribute(attr);
4087
+ if (!_.isNil(oldValue))
4088
+ element.removeAttribute(key);
4080
4089
  }
4081
- else if (value === true) {
4082
- element.setAttribute(attr, '');
4083
- }
4084
- else if (_.isNumber(value) || _.isString(value)) {
4085
- element.setAttribute(attr, `${value}`);
4090
+ else {
4091
+ const newValue = value === true ? '' : `${value}`;
4092
+ if (oldValue !== newValue)
4093
+ element.setAttribute(key, newValue);
4086
4094
  }
4087
4095
  }
4088
4096
  }
@@ -4159,4 +4167,4 @@ class _DOMRenderer extends renderer._Renderer {
4159
4167
 
4160
4168
  exports.DOMNativeNode = DOMNativeNode;
4161
4169
  exports._DOMRenderer = _DOMRenderer;
4162
- //# sourceMappingURL=common-BGe6DoFG.js.map
4170
+ //# sourceMappingURL=common-wMxJm6pW.js.map