@luftborn/custom-elements 2.11.3 → 2.12.0

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.
@@ -14,6 +14,7 @@ export declare class CustomForm {
14
14
  submit(): Promise<any>;
15
15
  private extractData;
16
16
  private binGroupsToDependency;
17
+ private groupShouldBeVisible;
17
18
  private hideGroupAndItsDependencies;
18
19
  private showGroupAndItsDependencies;
19
20
  private isDescendant;
@@ -87,10 +87,26 @@ var CustomForm = /** @class */ (function () {
87
87
  groupContainers.forEach(function (element) {
88
88
  var dependentField = element.getAttribute('data-depends-on');
89
89
  var dependentValue = element.getAttribute('data-dependent-value');
90
+ var dependentValues;
91
+ try {
92
+ dependentValues = JSON.parse(dependentValue);
93
+ }
94
+ catch (e) {
95
+ dependentValues = [dependentValue];
96
+ }
90
97
  var customElement = document.forms[0].querySelector("[name=\"" + dependentField + "\"]");
91
98
  element.setAttribute("hidden", "");
92
99
  customElement.onChange.on(function (event) {
93
- if (event.value === dependentValue || (Array.isArray(event.value) && event.value.indexOf(dependentValue) >= 0)) {
100
+ if (_this.groupShouldBeVisible(event.value, dependentValues)) {
101
+ _this.showGroupAndItsDependencies(element);
102
+ }
103
+ else {
104
+ _this.hideGroupAndItsDependencies(element);
105
+ }
106
+ });
107
+ customElement.onVisibilityChanged.on(function (event) {
108
+ var elmentIsHidden = customElement.hasAttribute('hidden');
109
+ if (_this.groupShouldBeVisible(customElement.value, dependentValues) && !elmentIsHidden) {
94
110
  _this.showGroupAndItsDependencies(element);
95
111
  }
96
112
  else {
@@ -99,6 +115,9 @@ var CustomForm = /** @class */ (function () {
99
115
  });
100
116
  });
101
117
  };
118
+ CustomForm.prototype.groupShouldBeVisible = function (eventValue, dependentValue) {
119
+ return dependentValue.some(function (value) { return eventValue === value || (Array.isArray(eventValue) && eventValue.indexOf(value) >= 0); });
120
+ };
102
121
  CustomForm.prototype.hideGroupAndItsDependencies = function (group) {
103
122
  var _this = this;
104
123
  var inputElementsInsideGroup = this.inputs.filter(function (input) { return _this.isDescendant(group, input); });
@@ -1 +1 @@
1
- {"version":3,"file":"custom-form.js","sourceRoot":"","sources":["../src/custom-form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"custom-form.js","sourceRoot":"","sources":["../src/custom-form.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luftborn/custom-elements",
3
- "version": "2.11.3",
3
+ "version": "2.12.0",
4
4
  "description": "custom HTML elements for the form builder application (node version: 18)",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1",
@@ -83,18 +83,40 @@ export class CustomForm {
83
83
  groupContainers.forEach((element: HTMLElement) => {
84
84
  let dependentField = element.getAttribute('data-depends-on');
85
85
  let dependentValue = element.getAttribute('data-dependent-value');
86
+ let dependentValues;
87
+ try {
88
+ dependentValues = JSON.parse(dependentValue);
89
+ } catch (e) {
90
+ dependentValues = [dependentValue];
91
+ }
92
+
86
93
  let customElement: CustomInputElement = document.forms[0].querySelector(`[name="${dependentField}"]`) as CustomInputElement;
87
94
  element.setAttribute("hidden", "");
88
95
  customElement.onChange.on(event => {
89
- if (event.value === dependentValue || (Array.isArray(event.value) && event.value.indexOf(dependentValue) >= 0)) {
96
+ if (this.groupShouldBeVisible(event.value, dependentValues)) {
90
97
  this.showGroupAndItsDependencies(element);
91
98
  } else {
92
99
  this.hideGroupAndItsDependencies(element);
93
100
  }
94
101
  });
102
+
103
+ customElement.onVisibilityChanged.on(event => {
104
+ const elmentIsHidden = customElement.hasAttribute('hidden');
105
+ if (this.groupShouldBeVisible(customElement.value, dependentValues) && !elmentIsHidden) {
106
+ this.showGroupAndItsDependencies(element);
107
+ } else {
108
+ this.hideGroupAndItsDependencies(element);
109
+ }
110
+ });
95
111
  });
96
112
  }
97
113
 
114
+ private groupShouldBeVisible(eventValue, dependentValue) {
115
+ return dependentValue.some(
116
+ value => eventValue === value || (Array.isArray(eventValue) && eventValue.indexOf(value) >= 0)
117
+ );
118
+ }
119
+
98
120
  private hideGroupAndItsDependencies(group: Element) {
99
121
  const inputElementsInsideGroup = this.inputs.filter(input => this.isDescendant(group, input));
100
122
  group.setAttribute("hidden", "");
@@ -110,6 +132,7 @@ export class CustomForm {
110
132
  }
111
133
  });
112
134
  }
135
+
113
136
  private showGroupAndItsDependencies(group: Element) {
114
137
  group.removeAttribute("hidden");
115
138
  const inputElementsInsideGroup = this.inputs.filter(input => this.isDescendant(group, input));
@@ -129,6 +152,7 @@ export class CustomForm {
129
152
  }
130
153
  });
131
154
  }
155
+
132
156
  private isDescendant(parent: Element, child: Element) {
133
157
  var node = child.parentNode;
134
158
  while (node != null) {