Skip to content

Commit 23222d1

Browse files
committed
add(js-sdk-v2): folder setup
1 parent b09d8fc commit 23222d1

File tree

29 files changed

+136
-0
lines changed

29 files changed

+136
-0
lines changed

.gitignore

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
node_modules/
2+
.idea/
3+
package-lock.json
4+
**/.DS_Store
5+
.yo-rc.json
6+
public/dist/
7+
**/*.css
8+
**/*.map
9+
logs/
10+
settings.json
11+
.vscode
12+
webpack-stats.json

index.js

Whitespace-only changes.

package.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"name": "version2",
3+
"version": "1.0.0",
4+
"description": "Asgard for ajax implementation",
5+
"main": "src/main.js",
6+
"scripts": {
7+
"build": "webpack",
8+
"test": "mocha"
9+
},
10+
"repository": {
11+
"type": "git",
12+
"url": "https://github.com/unbxd/js-sdk.git"
13+
},
14+
"author": "",
15+
"license": "ISC"
16+
}

src/common/constants.js

Whitespace-only changes.

src/common/index.js

Whitespace-only changes.

src/common/utils.js

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
/* eslint wrap-iife: ["error", "inside"] */
2+
/* eslint arrow-parens: ["error", "as-needed"] */
3+
const MAX_LISTENERS = 1;
4+
const uiBuilder = document => {
5+
debugger;
6+
const listeners = [];
7+
const getAllListeners = listeners =>
8+
listeners.map(listener => listener.eventName);
9+
let matches;
10+
11+
(function(doc) {
12+
matches =
13+
doc.matchesSelector ||
14+
doc.webkitMatchesSelector ||
15+
doc.mozMatchesSelector ||
16+
doc.oMatchesSelector ||
17+
doc.msMatchesSelector;
18+
})(document.documentElement);
19+
20+
const findParent = (el, elementString) => {
21+
const matchFound = matches.call(el, elementString);
22+
return matchFound ? el : findParent(el.parentNode, elementString);
23+
};
24+
25+
const addEventListener = (eventName, handler) => {
26+
if (
27+
listeners.filter(listener => listener.eventName === eventName).length <=
28+
MAX_LISTENERS
29+
) {
30+
const eventHandler = e => {
31+
const els = listeners.filter(
32+
listener =>
33+
matches.call(e.target, [
34+
listener.elementString,
35+
`${listener.elementString} *`
36+
]) && listener.eventName === eventName
37+
);
38+
if (els.length > 0) {
39+
els.forEach(el => {
40+
const target = findParent(e.target, el.elementString);
41+
el.handler.call(target, e);
42+
});
43+
}
44+
};
45+
46+
if (document.addEventListener) {
47+
document.addEventListener(eventName, eventHandler);
48+
} else {
49+
document.attachEvent('on' + eventName, eventHandler);
50+
}
51+
}
52+
};
53+
54+
return {
55+
find(elementString) {
56+
return document.querySelector(elementString);
57+
},
58+
findAll(elementString) {
59+
return Array.prototype.slice.call(
60+
document.querySelectorAll(elementString)
61+
);
62+
},
63+
append(elementString, content) {
64+
const els = this.findAll(elementString);
65+
if (els.length > 0) {
66+
els.forEach(el => {
67+
if (typeof content === 'string') {
68+
el.insertAdjacentHTML('afterend', content);
69+
} else {
70+
el.appendChild(content);
71+
}
72+
});
73+
}
74+
},
75+
manageEvent(elementString, eventName, handler) {
76+
listeners.push({
77+
eventName,
78+
elementString,
79+
handler
80+
});
81+
addEventListener(eventName, handler);
82+
}
83+
};
84+
};
85+
86+
export default uiBuilder;

src/components/Facets/Hierarchical/index.js

Whitespace-only changes.

src/components/Facets/RangeFacets/index.js

Whitespace-only changes.

src/components/Facets/TextFacets/index.js

Whitespace-only changes.

src/components/Facets/index.js

Whitespace-only changes.

0 commit comments

Comments
 (0)