Skip to content

Commit 09e9fe9

Browse files
committed
fix: init and update demos scripts
1 parent 05a9ab2 commit 09e9fe9

File tree

2 files changed

+74
-75
lines changed

2 files changed

+74
-75
lines changed

demo/index.html

+5-4
Original file line numberDiff line numberDiff line change
@@ -131,12 +131,13 @@ <h6 style='color:blue'>7 example SELECT (show multiples)</h6>
131131
<script>
132132
var config = {
133133
apiKey: 'c2b08663-06e3-440c-ef6f-13978b42883a',
134-
organization_Id: '5de0387b12e200ea63204d6c'
134+
organization_Id: '5de0387b12e200ea63204d6c',
135+
host: 'ws.cocreate.app'
135136
}
136137
</script>
137-
138-
<!-- CoCreate JS CDN -->
139-
<script src="https://cdn.cocreate.app/conditional-logic/latest/CoCreate-conditional-logic.min.js" ></script>
138+
139+
<!--<script src="../dist/CoCreate-conditional-logic.js"></script>-->
140+
<script src="../../../CoCreateJS/dist/CoCreate.js" ></script>
140141

141142
</body>
142143
</html>

src/index.js

+69-71
Original file line numberDiff line numberDiff line change
@@ -5,75 +5,72 @@
55
* https://github.com/CoCreate-app/Conditional_Logic/blob/master/LICENSE
66
*/
77
import observer from '@cocreate/observer'
8-
import {logger} from '@cocreate/utils';
8+
import { logger } from '@cocreate/utils';
99

1010
let console = logger('off');
11-
initShowHideEles();
11+
init();
1212

1313
document.addEventListener('fetchedTemplate', () => {
14-
initShowHideEles();
14+
init();
1515
})
1616

1717
//. cocreate init section
18-
function initShowHideEles(container) {
19-
let mainContainer = container || document;
20-
if (!mainContainer.querySelectorAll) {
21-
return;
22-
}
23-
let elements = mainContainer.querySelectorAll(`[data-show],[data-hide]`);
24-
if (elements.length === 0 && mainContainer != document &&
25-
(mainContainer.hasAttribute(`[data-show]`) || mainContainer.hasAttributes("[data-hide"))) {
26-
elements = [mainContainer];
27-
}
28-
for (let el of elements) {
29-
30-
if(el.tagName.toLowerCase() == "option")
31-
el = el.closest('select');
32-
33-
el.removeEventListener('change', selectShowHideEle);
34-
el.removeEventListener("click", clickShowHideEle);
35-
36-
el.addEventListener("change", selectShowHideEle);
37-
el.addEventListener("click", clickShowHideEle);
38-
}
18+
function init() {
19+
let elements = document.querySelectorAll(`[data-show],[data-hide]`);
20+
initElements(elements)
21+
}
22+
23+
function initElements(elements) {
24+
for (let el of elements)
25+
initElement(el)
3926
}
40-
// CoCreateInit.register('CoCreateConditionalLogic', window, window.initShowHideEles);
4127

42-
observer.init({
43-
name: 'CoCreateConditionalLogic',
28+
function initElement(el) {
29+
if (el.tagName.toLowerCase() == "option")
30+
el = el.closest('select');
31+
32+
el.removeEventListener('change', selectShowHideEle);
33+
el.removeEventListener("click", clickShowHideEle);
34+
35+
el.addEventListener("change", selectShowHideEle);
36+
el.addEventListener("click", clickShowHideEle);
37+
}
38+
// CoCreateInit.register('CoCreateConditionalLogic', window, window.init);
39+
40+
observer.init({
41+
name: 'CoCreateConditionalLogic',
4442
observe: ['addedNodes'],
45-
attributes: ['data-show', 'data-hide'],
43+
target: '[data-show], [data-hide]',
4644
callback: function(mutation) {
47-
48-
initShowHideEles(mutation.target)
45+
initElement(mutation.target)
4946
}
5047
})
5148

5249
//. upgrade by jin (using document event)
53-
// function initShowHideEles() {
54-
50+
// function init() {
51+
5552
// const selector = "[data-show],[data-hide]";
5653
// document.removeEventListener("change", function(event) {
5754
// const target = event.target.closest(selector);
5855
// if (target) {
5956
// selectShowHideEle(event)
6057
// }
6158
// });
62-
59+
6360
// document.removeEventListener("click", function(event) {
6461
// const target = event.target.closest(selector);
6562
// if (target) {
6663
// clickShowHideEle(event)
6764
// }
6865
// });
69-
66+
7067
// document.addEventListener("change", function(event) {
7168
// const target = event.target.closest(selector);
7269
// if (target) {
7370
// selectShowHideEle(event)
7471
// }
7572
// });
76-
73+
7774
// document.addEventListener("click", function(event) {
7875
// const target = event.target.closest(selector);
7976
// if (target) {
@@ -87,71 +84,72 @@ function selectShowHideEle(e) {
8784
e.preventDefault()
8885
var select = this;
8986
if (typeof select.options != 'undefined')
90-
for ( var i = 0, len = select.options.length; i < len; i++ ) {
91-
var opt = select.options[i];
92-
var value = opt.value
93-
if (value != ''){
94-
var show = opt.dataset.show
95-
// var show_class = opt.dataset.showClass
96-
if(typeof show!='undefined'){
97-
for (let el of document.querySelectorAll(show))
98-
el.classList.add('hidden');
99-
if ( opt.selected === true ) {
100-
for (let el of document.querySelectorAll(show))
101-
el.classList.remove('hidden');
102-
}
103-
}
104-
}//end value is not empty
105-
}//end for
87+
for (var i = 0, len = select.options.length; i < len; i++) {
88+
var opt = select.options[i];
89+
var value = opt.value
90+
if (value != '') {
91+
var show = opt.dataset.show
92+
// var show_class = opt.dataset.showClass
93+
if (typeof show != 'undefined') {
94+
for (let el of document.querySelectorAll(show))
95+
el.classList.add('hidden');
96+
if (opt.selected === true) {
97+
for (let el of document.querySelectorAll(show))
98+
el.classList.remove('hidden');
99+
}
100+
}
101+
} //end value is not empty
102+
} //end for
106103
}
107104

108105
function clickShowHideEle(e) {
109106
console.log(this, 'click');
110107
var show = this.dataset.show;
111108
var hide = this.dataset.hide;
112109
let tagName = this.tagName.toLowerCase();
113-
114-
if(tagName =='input' && this.getAttribute("type").toLowerCase()=='radio') {
110+
111+
if (tagName == 'input' && this.getAttribute("type").toLowerCase() == 'radio') {
115112
let name = this.getAttribute("name")
116-
let radios = document.querySelectorAll(tagName+'[name="'+name+'"]');
113+
let radios = document.querySelectorAll(tagName + '[name="' + name + '"]');
117114
for (let radio of radios) {
118-
115+
119116
show = radio.dataset.show;
120-
117+
121118
for (let el of document.querySelectorAll(show)) {
122119
el.classList.add('hidden');
123120
}
124-
125-
if(radio.checked){
126-
for (let el of document.querySelectorAll(show))
121+
122+
if (radio.checked) {
123+
for (let el of document.querySelectorAll(show))
127124
el.classList.remove('hidden');
128125
}
129126
}
130-
131-
} else {
132-
127+
128+
}
129+
else {
130+
133131
let updated_els = [];
134-
132+
135133
for (let el of document.querySelectorAll(show)) {
136-
if(el.classList.contains('hidden')){
134+
if (el.classList.contains('hidden')) {
137135
el.classList.remove('hidden');
138136
updated_els.push(el);
139137
}
140138
}
141-
139+
142140
for (let el of document.querySelectorAll(hide)) {
143141
let existEqual = false;
144-
for(let uel of updated_els){
145-
if(el.isEqualNode(uel)){
142+
for (let uel of updated_els) {
143+
if (el.isEqualNode(uel)) {
146144
existEqual = true;
147145
break;
148-
}
146+
}
149147
}
150-
151-
if(!existEqual) el.classList.add('hidden');
148+
149+
if (!existEqual) el.classList.add('hidden');
152150
}
153151
}
154152
}
155153

156-
const CoCreateConditionalLogic = { initShowHideEles, selectShowHideEle, clickShowHideEle };
154+
const CoCreateConditionalLogic = { initElements, selectShowHideEle, clickShowHideEle };
157155
export default CoCreateConditionalLogic;

0 commit comments

Comments
 (0)