frosty 0.0.47 → 0.0.48

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.
package/dist/dom.js CHANGED
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var common = require('./internals/common-BGe6DoFG.js');
3
+ var common = require('./internals/common-MihgZvIs.js');
4
4
  require('lodash');
5
5
  require('myers.js');
6
6
  require('./internals/component-BiP3XIPe.js');
package/dist/dom.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { _ as _DOMRenderer } from './internals/common-CqRgYrAF.mjs';
1
+ import { _ as _DOMRenderer } from './internals/common-FSgbZ-Ci.mjs';
2
2
  import 'lodash';
3
3
  import 'myers.js';
4
4
  import './internals/component-BzurKp_J.mjs';
@@ -4022,18 +4022,22 @@ class _DOMRenderer extends _Renderer {
4022
4022
  mergeRefs(ref)(element);
4023
4023
  const builtClassName = this.__createBuiltClassName(element, className, style);
4024
4024
  if (_.isEmpty(builtClassName)) {
4025
- element.removeAttribute('class');
4025
+ if (!_.isNil(element.getAttribute('class')))
4026
+ element.removeAttribute('class');
4026
4027
  }
4027
- else {
4028
+ else if (element.className !== builtClassName) {
4028
4029
  element.className = builtClassName;
4029
4030
  }
4030
- if (!_.isEmpty(innerHTML))
4031
+ if (!_.isEmpty(innerHTML) && element.innerHTML !== innerHTML)
4031
4032
  element.innerHTML = innerHTML;
4032
4033
  if (inlineStyle) {
4033
4034
  const { css } = processCss(inlineStyle);
4034
- element.setAttribute('style', css.split('\n').join(''));
4035
+ const oldValue = element.getAttribute('style');
4036
+ const newValue = css.split('\n').join('');
4037
+ if (oldValue !== newValue)
4038
+ element.setAttribute('style', newValue);
4035
4039
  }
4036
- else {
4040
+ else if (!_.isNil(element.getAttribute('style'))) {
4037
4041
  element.removeAttribute('style');
4038
4042
  }
4039
4043
  const tracked = this._tracked_elements.get(element);
@@ -4053,17 +4057,19 @@ class _DOMRenderer extends _Renderer {
4053
4057
  this.__updateEventListener(element, key, value, { capture: true });
4054
4058
  }
4055
4059
  else if (isWriteable(element, key)) {
4056
- element[key] = value;
4060
+ if (element[key] !== value)
4061
+ element[key] = value;
4057
4062
  }
4058
4063
  else if (key.startsWith('data-')) {
4064
+ const oldValue = element.getAttribute(key);
4059
4065
  if (value === false || _.isNil(value)) {
4060
- element.removeAttribute(key);
4061
- }
4062
- else if (value === true) {
4063
- element.setAttribute(key, '');
4066
+ if (!_.isNil(oldValue))
4067
+ element.removeAttribute(key);
4064
4068
  }
4065
- else if (_.isNumber(value) || _.isString(value)) {
4066
- element.setAttribute(key, `${value}`);
4069
+ else {
4070
+ const newValue = value === true ? '' : `${value}`;
4071
+ if (oldValue !== newValue)
4072
+ element.setAttribute(key, newValue);
4067
4073
  }
4068
4074
  }
4069
4075
  else {
@@ -4073,14 +4079,15 @@ class _DOMRenderer extends _Renderer {
4073
4079
  ?? svgProps[type]?.[key]
4074
4080
  ?? {};
4075
4081
  if (_type && attr && _propValue[_type]) {
4082
+ const oldValue = element.getAttribute(key);
4076
4083
  if (value === false || _.isNil(value)) {
4077
- element.removeAttribute(attr);
4084
+ if (!_.isNil(oldValue))
4085
+ element.removeAttribute(key);
4078
4086
  }
4079
- else if (value === true) {
4080
- element.setAttribute(attr, '');
4081
- }
4082
- else if (_.isNumber(value) || _.isString(value)) {
4083
- element.setAttribute(attr, `${value}`);
4087
+ else {
4088
+ const newValue = value === true ? '' : `${value}`;
4089
+ if (oldValue !== newValue)
4090
+ element.setAttribute(key, newValue);
4084
4091
  }
4085
4092
  }
4086
4093
  }
@@ -4156,4 +4163,4 @@ class _DOMRenderer extends _Renderer {
4156
4163
  }
4157
4164
 
4158
4165
  export { DOMNativeNode as D, _DOMRenderer as _ };
4159
- //# sourceMappingURL=common-CqRgYrAF.mjs.map
4166
+ //# sourceMappingURL=common-FSgbZ-Ci.mjs.map