Skip to content

Commit 2c105fa

Browse files
committed
fix: updated actions callback data object
1 parent d6c0171 commit 2c105fa

File tree

1 file changed

+100
-100
lines changed

1 file changed

+100
-100
lines changed

Diff for: src/index.js

+100-100
Original file line numberDiff line numberDiff line change
@@ -7,131 +7,131 @@
77
/*globals CustomEvent, CoCreate*/
88
import observer from '@cocreate/observer';
99
import action from '@cocreate/actions';
10-
import {queryDocumentSelectorAll} from '@cocreate/utils';
10+
import { queryDocumentSelectorAll } from '@cocreate/utils';
1111

1212
// TODO: update to listen to document events, find closest action return
1313
function init() {
14-
let elements = document.querySelectorAll(`[show],[hide]`);
15-
initElements(elements);
14+
let elements = document.querySelectorAll(`[show],[hide]`);
15+
initElements(elements);
1616
}
1717

1818
function initElements(elements) {
19-
for (let el of elements)
20-
initElement(el);
19+
for (let el of elements)
20+
initElement(el);
2121
}
2222

2323
function initElement(el) {
24-
if (el.tagName.toLowerCase() == "option")
25-
el = el.closest('select');
26-
let actions = el.getAttribute('actions');
27-
if (actions && actions.includes('validate')){
28-
el.removeEventListener('change', selectShowHideEle);
29-
30-
el.addEventListener("change", selectShowHideEle);
31-
}
32-
else {
33-
el.removeEventListener('change', selectShowHideEle);
34-
el.removeEventListener("click", clickShowHideEle);
35-
36-
el.addEventListener("change", selectShowHideEle);
37-
el.addEventListener("click", clickShowHideEle);
38-
}
24+
if (el.tagName.toLowerCase() == "option")
25+
el = el.closest('select');
26+
let actions = el.getAttribute('actions');
27+
if (actions && actions.includes('validate')) {
28+
el.removeEventListener('change', selectShowHideEle);
29+
30+
el.addEventListener("change", selectShowHideEle);
31+
}
32+
else {
33+
el.removeEventListener('change', selectShowHideEle);
34+
el.removeEventListener("click", clickShowHideEle);
35+
36+
el.addEventListener("change", selectShowHideEle);
37+
el.addEventListener("click", clickShowHideEle);
38+
}
3939
}
4040

4141
function selectShowHideEle(e) {
42-
e.preventDefault();
43-
var select = this;
44-
if (typeof select.options != 'undefined')
45-
for (var i = 0, len = select.options.length; i < len; i++) {
46-
var opt = select.options[i];
47-
var value = opt.value;
48-
if (value != '') {
49-
var show = opt.getAttribute('show');
50-
if (typeof show != 'undefined') {
51-
for (let el of queryDocumentSelectorAll(show))
52-
el.setAttribute('hidden', '');
53-
if (opt.selected === true) {
54-
for (let el of queryDocumentSelectorAll(show))
55-
el.removeAttribute('hidden');
56-
}
57-
}
58-
}
59-
}
42+
e.preventDefault();
43+
var select = this;
44+
if (typeof select.options != 'undefined')
45+
for (var i = 0, len = select.options.length; i < len; i++) {
46+
var opt = select.options[i];
47+
var value = opt.value;
48+
if (value != '') {
49+
var show = opt.getAttribute('show');
50+
if (typeof show != 'undefined') {
51+
for (let el of queryDocumentSelectorAll(show))
52+
el.setAttribute('hidden', '');
53+
if (opt.selected === true) {
54+
for (let el of queryDocumentSelectorAll(show))
55+
el.removeAttribute('hidden');
56+
}
57+
}
58+
}
59+
}
6060
}
6161

6262
function clickShowHideEle(e) {
63-
let element = e.currentTarget;
64-
if (!element)
65-
element = e;
66-
var show = element.getAttribute('show');
67-
var hide = element.getAttribute('hide');
68-
let tagName = element.tagName.toLowerCase();
69-
70-
if (tagName == 'input' && element.getAttribute("type").toLowerCase() == 'radio') {
71-
let name = element.getAttribute("name");
72-
let radios = document.querySelectorAll(tagName + '[name="' + name + '"]');
73-
for (let radio of radios) {
74-
75-
show = radio.getAttribute('show');
76-
77-
for (let el of queryDocumentSelectorAll(show)) {
78-
el.setAttribute('hidden', '');
79-
}
80-
81-
if (radio.checked) {
82-
for (let el of queryDocumentSelectorAll(show))
83-
el.removeAttribute('hidden');
84-
}
85-
}
86-
}
87-
else {
88-
89-
let updated_els = [];
90-
91-
for (let el of queryDocumentSelectorAll(show)) {
92-
if (el.hasAttribute('hidden')) {
93-
el.removeAttribute('hidden');
94-
updated_els.push(el);
95-
}
96-
}
97-
98-
for (let el of queryDocumentSelectorAll(hide)) {
99-
let existEqual = false;
100-
for (let uel of updated_els) {
101-
if (el.isEqualNode(uel)) {
102-
existEqual = true;
103-
break;
104-
}
105-
}
106-
if (!existEqual) el.setAttribute('hidden', '');
107-
}
108-
}
109-
110-
document.dispatchEvent(new CustomEvent('showHide', {
111-
detail: {}
112-
}));
63+
let element = e.currentTarget;
64+
if (!element)
65+
element = e;
66+
var show = element.getAttribute('show');
67+
var hide = element.getAttribute('hide');
68+
let tagName = element.tagName.toLowerCase();
69+
70+
if (tagName == 'input' && element.getAttribute("type").toLowerCase() == 'radio') {
71+
let name = element.getAttribute("name");
72+
let radios = document.querySelectorAll(tagName + '[name="' + name + '"]');
73+
for (let radio of radios) {
74+
75+
show = radio.getAttribute('show');
76+
77+
for (let el of queryDocumentSelectorAll(show)) {
78+
el.setAttribute('hidden', '');
79+
}
80+
81+
if (radio.checked) {
82+
for (let el of queryDocumentSelectorAll(show))
83+
el.removeAttribute('hidden');
84+
}
85+
}
86+
}
87+
else {
88+
89+
let updated_els = [];
90+
91+
for (let el of queryDocumentSelectorAll(show)) {
92+
if (el.hasAttribute('hidden')) {
93+
el.removeAttribute('hidden');
94+
updated_els.push(el);
95+
}
96+
}
97+
98+
for (let el of queryDocumentSelectorAll(hide)) {
99+
let existEqual = false;
100+
for (let uel of updated_els) {
101+
if (el.isEqualNode(uel)) {
102+
existEqual = true;
103+
break;
104+
}
105+
}
106+
if (!existEqual) el.setAttribute('hidden', '');
107+
}
108+
}
109+
110+
document.dispatchEvent(new CustomEvent('showHide', {
111+
detail: {}
112+
}));
113113

114114
}
115115

116116
document.addEventListener('fetchedData', () => {
117-
init();
117+
init();
118118
});
119119

120120
observer.init({
121-
name: 'CoCreateConditionalLogic',
122-
observe: ['addedNodes'],
123-
target: '[show], [hide]',
124-
callback: function(mutation) {
125-
initElement(mutation.target);
126-
}
121+
name: 'CoCreateConditionalLogic',
122+
observe: ['addedNodes'],
123+
target: '[show], [hide]',
124+
callback: function (mutation) {
125+
initElement(mutation.target);
126+
}
127127
});
128128

129129
action.init({
130-
name: "showHide",
131-
endEvent: "showHide",
132-
callback: (btn, data) => {
133-
clickShowHideEle(btn);
134-
}
130+
name: "showHide",
131+
endEvent: "showHide",
132+
callback: (data) => {
133+
clickShowHideEle(data.element);
134+
}
135135
});
136136

137137
init();

0 commit comments

Comments
 (0)