Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • 1.31
  • master
  • 1.10.0
  • 1.30.1
  • 1.31.0
  • 1.8.0
  • 1.9.0
  • 3.100.0
  • 3.100.1
  • 3.100.10
  • 3.100.11
  • 3.100.12
  • 3.100.13
  • 3.100.14
  • 3.100.15
  • 3.100.16
  • 3.100.17
  • 3.100.18
  • 3.100.19
  • 3.100.2
  • 3.100.20
  • 3.100.3
  • 3.100.4
  • 3.100.5
  • 3.100.6
  • 3.100.7
  • 3.100.8
  • 3.100.9
  • 3.101.0
  • 3.101.1
  • 3.101.2
  • 3.101.3
  • 3.102.0
  • 3.102.1
  • 3.102.2
  • 3.102.3
  • 3.102.4
  • 3.102.5
  • 3.102.6
  • 3.103.0
  • 3.103.1
  • 3.104.0
  • 3.104.1
  • 3.105.0
  • 3.105.1
  • 3.105.2
  • 3.106.0
  • 3.106.1
  • 3.107.0
  • 3.108.0
  • 3.108.1
  • 3.108.2
  • 3.108.3
  • 3.108.4
  • 3.108.5
  • 3.109.0
  • 3.110.0
  • 3.110.1
  • 3.110.2
  • 3.110.3
  • 3.110.4
  • 3.111.0
  • 3.112.0
  • 3.112.1
  • 3.112.2
  • 3.112.3
  • 3.112.4
  • 3.113.0
  • 3.114.0
  • 3.114.1
  • 3.114.2
  • 3.114.3
  • 3.114.4
  • 3.114.5
  • 3.114.6
  • 3.114.7
  • 3.115.0
  • 3.115.1
  • 3.115.2
  • 3.115.3
  • 3.115.4
  • 3.116.0
  • 3.116.1
  • 3.117.0
  • 3.117.1
  • 3.117.2
  • 3.117.3
  • 3.118.0
  • 3.118.1
  • 3.119.0
  • 3.120.0
  • 3.121.0
  • 3.51.5
  • 3.52.0
  • 3.52.1
  • 3.53.0
  • 3.54.0
  • 3.55.0
  • 3.55.1
  • 3.55.2
  • 3.55.3
  • 3.55.4
102 results

Target

Select target project
  • oss/libraries/javascript/monster
1 result
Select Git revision
  • 1.31
  • master
  • 1.10.0
  • 1.30.1
  • 1.31.0
  • 1.8.0
  • 1.9.0
  • 3.100.0
  • 3.100.1
  • 3.100.10
  • 3.100.11
  • 3.100.12
  • 3.100.13
  • 3.100.14
  • 3.100.15
  • 3.100.16
  • 3.100.17
  • 3.100.18
  • 3.100.19
  • 3.100.2
  • 3.100.20
  • 3.100.3
  • 3.100.4
  • 3.100.5
  • 3.100.6
  • 3.100.7
  • 3.100.8
  • 3.100.9
  • 3.101.0
  • 3.101.1
  • 3.101.2
  • 3.101.3
  • 3.102.0
  • 3.102.1
  • 3.102.2
  • 3.102.3
  • 3.102.4
  • 3.102.5
  • 3.102.6
  • 3.103.0
  • 3.103.1
  • 3.104.0
  • 3.104.1
  • 3.105.0
  • 3.105.1
  • 3.105.2
  • 3.106.0
  • 3.106.1
  • 3.107.0
  • 3.108.0
  • 3.108.1
  • 3.108.2
  • 3.108.3
  • 3.108.4
  • 3.108.5
  • 3.109.0
  • 3.110.0
  • 3.110.1
  • 3.110.2
  • 3.110.3
  • 3.110.4
  • 3.111.0
  • 3.112.0
  • 3.112.1
  • 3.112.2
  • 3.112.3
  • 3.112.4
  • 3.113.0
  • 3.114.0
  • 3.114.1
  • 3.114.2
  • 3.114.3
  • 3.114.4
  • 3.114.5
  • 3.114.6
  • 3.114.7
  • 3.115.0
  • 3.115.1
  • 3.115.2
  • 3.115.3
  • 3.115.4
  • 3.116.0
  • 3.116.1
  • 3.117.0
  • 3.117.1
  • 3.117.2
  • 3.117.3
  • 3.118.0
  • 3.118.1
  • 3.119.0
  • 3.120.0
  • 3.121.0
  • 3.51.5
  • 3.52.0
  • 3.52.1
  • 3.53.0
  • 3.54.0
  • 3.55.0
  • 3.55.1
  • 3.55.2
  • 3.55.3
  • 3.55.4
102 results
Show changes
Commits on Source (4)
<a name="v3.40.0"></a>
## [v3.40.0] - 2023-04-03
### Add Features
- attribure observer
<a name="v3.39.1"></a> <a name="v3.39.1"></a>
## [v3.39.1] - 2023-04-03 ## [v3.39.1] - 2023-04-03
### Bug Fixes ### Bug Fixes
...@@ -557,6 +563,7 @@ ...@@ -557,6 +563,7 @@
<a name="1.8.0"></a> <a name="1.8.0"></a>
## 1.8.0 - 2021-08-15 ## 1.8.0 - 2021-08-15
[v3.40.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v3.39.1...v3.40.0
[v3.39.1]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v3.39.0...v3.39.1 [v3.39.1]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v3.39.0...v3.39.1
[v3.39.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v3.38.1...v3.39.0 [v3.39.0]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v3.38.1...v3.39.0
[v3.38.1]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v3.38.0...v3.38.1 [v3.38.1]: https://gitlab.schukai.com/oss/libraries/javascript/monster/compare/v3.38.0...v3.38.1
......
{ {
"name": "@schukai/monster", "name": "@schukai/monster",
"version": "3.39.0", "version": "3.39.1",
"description": "Monster is a simple library for creating fast, robust and lightweight websites.", "description": "Monster is a simple library for creating fast, robust and lightweight websites.",
"keywords": [ "keywords": [
"framework", "framework",
......
...@@ -203,6 +203,7 @@ class CustomElement extends HTMLElement { ...@@ -203,6 +203,7 @@ class CustomElement extends HTMLElement {
this[internalSymbol] = new ProxyObserver({ this[internalSymbol] = new ProxyObserver({
options: initOptionsFromAttributes(this, extend({}, this.defaults)), options: initOptionsFromAttributes(this, extend({}, this.defaults)),
}); });
initAttributeChangeMutationObserver.call(this);
initOptionObserver.call(this); initOptionObserver.call(this);
this[initMethodSymbol](); this[initMethodSymbol]();
} }
...@@ -217,7 +218,9 @@ class CustomElement extends HTMLElement { ...@@ -217,7 +218,9 @@ class CustomElement extends HTMLElement {
} }
/** /**
* This method determines which attributes are to be monitored by `attributeChangedCallback()`. * This method determines which attributes are to be
* monitored by `attributeChangedCallback()`. Unfortunately, this method is static.
* Therefore, the `observedAttributes` property cannot be changed during runtime.
* *
* @return {string[]} * @return {string[]}
* @since 1.15.0 * @since 1.15.0
...@@ -421,7 +424,8 @@ class CustomElement extends HTMLElement { ...@@ -421,7 +424,8 @@ class CustomElement extends HTMLElement {
try { try {
value = new Pathfinder(this[internalSymbol].getRealSubject()["options"]).getVia(path); value = new Pathfinder(this[internalSymbol].getRealSubject()["options"]).getVia(path);
} catch (e) {} } catch (e) {
}
if (value === undefined) return defaultValue; if (value === undefined) return defaultValue;
return value; return value;
...@@ -491,7 +495,8 @@ class CustomElement extends HTMLElement { ...@@ -491,7 +495,8 @@ class CustomElement extends HTMLElement {
try { try {
initShadowRoot.call(self); initShadowRoot.call(self);
elements = self.shadowRoot.childNodes; elements = self.shadowRoot.childNodes;
} catch (e) {} } catch (e) {
}
try { try {
initCSSStylesheet.call(this); initCSSStylesheet.call(this);
...@@ -542,7 +547,8 @@ class CustomElement extends HTMLElement { ...@@ -542,7 +547,8 @@ class CustomElement extends HTMLElement {
* @return {void} * @return {void}
* @since 1.7.0 * @since 1.7.0
*/ */
disconnectedCallback() {} disconnectedCallback() {
}
/** /**
* The custom element has been moved into a new document (e.g. someone called document.adoptNode(el)). * The custom element has been moved into a new document (e.g. someone called document.adoptNode(el)).
...@@ -550,7 +556,8 @@ class CustomElement extends HTMLElement { ...@@ -550,7 +556,8 @@ class CustomElement extends HTMLElement {
* @return {void} * @return {void}
* @since 1.7.0 * @since 1.7.0
*/ */
adoptedCallback() {} adoptedCallback() {
}
/** /**
* Called when an observed attribute has been added, removed, updated, or replaced. Also called for initial * Called when an observed attribute has been added, removed, updated, or replaced. Also called for initial
...@@ -595,6 +602,32 @@ class CustomElement extends HTMLElement { ...@@ -595,6 +602,32 @@ class CustomElement extends HTMLElement {
} }
} }
/**
* This method is called when the element is first created.
*
* @private
* @this CustomElement
*/
function initAttributeChangeMutationObserver() {
const self = this;
if (self[attributeObserverSymbol] === undefined) {
self[attributeObserverSymbol] = {};
}
new MutationObserver(function (mutations) {
for (const mutation of mutations) {
if (mutation.type === "attributes") {
self.attributeChangedCallback(mutation.attributeName, mutation.oldValue, mutation.target.getAttribute(mutation.attributeName));
}
}
}).observe(self, {
attributes: true,
attributeOldValue: true,
attributeFilter: Object.keys(self[attributeObserverSymbol]),
});
}
/** /**
* @this CustomElement * @this CustomElement
* @private * @private
...@@ -787,7 +820,8 @@ function parseOptionsJSON(data) { ...@@ -787,7 +820,8 @@ function parseOptionsJSON(data) {
try { try {
let dataUrl = parseDataURL(data); let dataUrl = parseDataURL(data);
data = dataUrl.content; data = dataUrl.content;
} catch (e) {} } catch (e) {
}
try { try {
obj = JSON.parse(data); obj = JSON.parse(data);
......
...@@ -142,7 +142,7 @@ function getMonsterVersion() { ...@@ -142,7 +142,7 @@ function getMonsterVersion() {
} }
/** don't touch, replaced by make with package.json version */ /** don't touch, replaced by make with package.json version */
monsterVersion = new Version("3.39.0"); monsterVersion = new Version("3.39.1");
return monsterVersion; return monsterVersion;
} }
{ {
"name": "monster", "name": "monster",
"version": "3.39.0", "version": "3.39.1",
"description": "monster", "description": "monster",
"repository": { "repository": {
"type": "git", "type": "git",
......
...@@ -7,7 +7,7 @@ describe('Monster', function () { ...@@ -7,7 +7,7 @@ describe('Monster', function () {
let monsterVersion let monsterVersion
/** don´t touch, replaced by make with package.json version */ /** don´t touch, replaced by make with package.json version */
monsterVersion = new Version("3.39.0") monsterVersion = new Version("3.39.1")
let m = getMonsterVersion(); let m = getMonsterVersion();
......
{"version":"3.39.1"} {"version":"3.40.0"}