wj-elements 0.0.3 → 0.0.4

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.
Files changed (66) hide show
  1. package/dist/router-links-e0087f84.js +146 -0
  2. package/dist/style.css +2 -2365
  3. package/dist/wj-aside.js +18 -22
  4. package/dist/wj-avatar.js +32 -49
  5. package/dist/wj-badge.js +18 -22
  6. package/dist/wj-breadcrumb.js +53 -103
  7. package/dist/wj-breadcrumbs.js +21 -36
  8. package/dist/wj-button-group.js +24 -36
  9. package/dist/wj-button.js +37 -80
  10. package/dist/wj-card-content.js +16 -18
  11. package/dist/wj-card-controls.js +16 -18
  12. package/dist/wj-card-header.js +16 -20
  13. package/dist/wj-card-subtitle.js +17 -19
  14. package/dist/wj-card-title.js +16 -18
  15. package/dist/wj-card.js +16 -20
  16. package/dist/wj-checkbox.js +24 -46
  17. package/dist/wj-chip.js +21 -39
  18. package/dist/wj-col.js +18 -32
  19. package/dist/wj-color-picker.js +503 -868
  20. package/dist/wj-container.js +18 -20
  21. package/dist/wj-copy-button.js +66 -112
  22. package/dist/wj-dialog.js +43 -67
  23. package/dist/wj-divider.js +16 -20
  24. package/dist/wj-dropdown.js +22 -31
  25. package/dist/wj-element.js +241 -416
  26. package/dist/wj-footer.js +16 -18
  27. package/dist/wj-form.js +16 -18
  28. package/dist/wj-grid.js +17 -21
  29. package/dist/wj-header.js +18 -22
  30. package/dist/wj-icon-picker.js +66 -107
  31. package/dist/wj-icon.js +67 -142
  32. package/dist/wj-img-comparer.js +43 -72
  33. package/dist/wj-img.js +21 -31
  34. package/dist/wj-infinite-scroll.js +49 -84
  35. package/dist/wj-input.js +67 -146
  36. package/dist/wj-item.js +19 -34
  37. package/dist/wj-label.js +19 -21
  38. package/dist/wj-list.js +17 -20
  39. package/dist/wj-main.js +16 -18
  40. package/dist/wj-master.js +331 -462
  41. package/dist/wj-menu-button.js +18 -21
  42. package/dist/wj-menu-item.js +67 -144
  43. package/dist/wj-menu-label.js +17 -21
  44. package/dist/wj-menu.js +20 -24
  45. package/dist/wj-popup.js +714 -1140
  46. package/dist/wj-progress-bar.js +42 -100
  47. package/dist/wj-radio-group.js +27 -38
  48. package/dist/wj-radio.js +24 -46
  49. package/dist/wj-route.js +8 -11
  50. package/dist/wj-router-link.js +19 -22
  51. package/dist/wj-router-outlet.js +71 -135
  52. package/dist/wj-routerx.js +641 -1121
  53. package/dist/wj-row.js +20 -22
  54. package/dist/wj-slider.js +55 -97
  55. package/dist/wj-split-view.js +45 -81
  56. package/dist/wj-store.js +110 -195
  57. package/dist/wj-textarea.js +39 -86
  58. package/dist/wj-thumbnail.js +17 -19
  59. package/dist/wj-toast.js +34 -88
  60. package/dist/wj-toggle.js +24 -42
  61. package/dist/wj-toolbar-action.js +16 -27
  62. package/dist/wj-toolbar.js +21 -26
  63. package/dist/wj-tooltip.js +27 -41
  64. package/dist/wj-visually-hidden.js +16 -18
  65. package/package.json +1 -1
  66. package/dist/router-links-26e4a166.js +0 -204
@@ -1,204 +0,0 @@
1
- const routerLinksData = Symbol("routerLinksData");
2
- const unbindRouterLinks = Symbol("unbindRouterLinks");
3
- const resolved = Promise.resolve();
4
- const linkContainers = /* @__PURE__ */ new Set();
5
- let router;
6
- const delegate = function(el, eventName, selector, listener, context) {
7
- const handler = function(e) {
8
- var node = e.target;
9
- for (; node; node = node.parentNode) {
10
- if (node.matches && node.matches(selector)) {
11
- e.selectorTarget = node;
12
- listener.call(context, e);
13
- }
14
- }
15
- };
16
- handler.eventName = eventName;
17
- el.addEventListener(eventName, handler, false);
18
- return handler;
19
- };
20
- function isModifiedEvent(event) {
21
- return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);
22
- }
23
- const undelegate = function(el, handler) {
24
- const eventName = handler.eventName;
25
- el.removeEventListener(eventName, handler, false);
26
- };
27
- const camelize = (str) => {
28
- if (str.indexOf("-") === -1)
29
- return str;
30
- const words = str.split("-");
31
- let result = "";
32
- for (let i = 0; i < words.length; i++) {
33
- const word = words[i];
34
- result += i ? word.charAt(0).toUpperCase() + word.slice(1) : word;
35
- }
36
- return result;
37
- };
38
- function mutationHandler(mutations, observer) {
39
- mutations.forEach(function(mutation) {
40
- if (mutation.type === "attributes") {
41
- const attr = mutation.attributeName;
42
- if (attr.indexOf("param-") === 0 || attr.indexOf("query-") === 0) {
43
- updateLink(mutation.target, observer.ownerEl);
44
- }
45
- } else {
46
- mutation.addedNodes.forEach((node) => {
47
- if (node.nodeType === 1) {
48
- if (node.getAttribute("route"))
49
- updateLink(node, observer.ownerEl);
50
- createLinks(observer.ownerEl, node);
51
- }
52
- });
53
- }
54
- });
55
- }
56
- const elementsObserverConfig = { childList: true, subtree: true, attributes: true };
57
- function getAttributeValues(el, prefix, result) {
58
- const attributes = el.attributes;
59
- for (let i = 0; i < attributes.length; i++) {
60
- const attr = attributes[i];
61
- if (attr.name.indexOf(prefix) === 0) {
62
- const paramName = camelize(attr.name.slice(prefix.length));
63
- result[paramName] = attr.value;
64
- }
65
- }
66
- return result;
67
- }
68
- function getDefaults(ownerEl, routeName, propName, routeEl, options) {
69
- let result = options[propName];
70
- if (typeof result === "function")
71
- result = result.call(ownerEl, routeName, routeEl);
72
- return result || {};
73
- }
74
- function getRouteProp(ownerEl, routeName, routeEl, propName, attrPrefix) {
75
- const options = ownerEl[routerLinksData].options;
76
- const defaults = getDefaults(ownerEl, routeName, propName, routeEl, options);
77
- const rootEl = routeEl.closest(options.selector || "[routerlinks]");
78
- if (rootEl) {
79
- getAttributeValues(rootEl, attrPrefix, defaults);
80
- }
81
- return getAttributeValues(routeEl, attrPrefix, defaults);
82
- }
83
- function updateActiveClass(el, routeName, params, query) {
84
- const activeClass = el.hasAttribute("active-class") ? el.getAttribute("active-class") : "active";
85
- if (activeClass) {
86
- const isActive = router.isActive(routeName, params, query, el.hasAttribute("exact"));
87
- el.classList.toggle(activeClass, isActive);
88
- }
89
- }
90
- function updateLink(el, ownerEl) {
91
- const routeName = el.getAttribute("route");
92
- if (!routeName)
93
- return;
94
- const params = getRouteProp(ownerEl, routeName, el, "params", "param-");
95
- const query = getRouteProp(ownerEl, routeName, el, "query", "query-");
96
- try {
97
- const href = router.generate(routeName, params, query);
98
- const anchorEl = el.tagName === "A" ? el : el.querySelector("a");
99
- if (anchorEl)
100
- anchorEl.setAttribute("href", href);
101
- if (!router.state.activeTransition) {
102
- updateActiveClass(el, routeName, params, query);
103
- }
104
- } catch (error) {
105
- console.warn(`Error generating link for "${routeName}": ${error}`);
106
- }
107
- }
108
- function createLinks(ownerEl, rootEl) {
109
- const routeEls = rootEl.querySelectorAll("[route]");
110
- routeEls.forEach((el) => {
111
- updateLink(el, ownerEl);
112
- });
113
- }
114
- function linkClickHandler(e) {
115
- if (e.button !== 0 || isModifiedEvent(e))
116
- return;
117
- e.preventDefault();
118
- const el = e.selectorTarget;
119
- const routeName = el.getAttribute("route");
120
- if (!routeName)
121
- return;
122
- const params = getRouteProp(this, routeName, el, "params", "param-");
123
- const query = getRouteProp(this, routeName, el, "query", "query-");
124
- const method = el.hasAttribute("replace") ? "replaceWith" : "transitionTo";
125
- router[method](routeName, params, query);
126
- }
127
- function bindRouterLinks(ownerEl, options = {}) {
128
- const { selector = "[routerlinks]" } = options;
129
- const rootEls = selector ? ownerEl.querySelectorAll(selector) : [ownerEl];
130
- const observer = new MutationObserver(mutationHandler);
131
- const eventHandlers = [];
132
- observer.ownerEl = ownerEl;
133
- ownerEl[routerLinksData] = { options, rootEls, observer };
134
- rootEls.forEach((rootEl) => {
135
- eventHandlers.push(delegate(rootEl, "click", "[route]", linkClickHandler, ownerEl));
136
- createLinks(ownerEl, rootEl);
137
- observer.observe(rootEl, elementsObserverConfig);
138
- });
139
- linkContainers.add(ownerEl);
140
- return function() {
141
- linkContainers.delete(ownerEl);
142
- eventHandlers.forEach((eventHandler, i) => undelegate(rootEls[i], eventHandler));
143
- };
144
- }
145
- const createClass = (ctor, options = {}) => {
146
- return class extends ctor {
147
- connectedCallback() {
148
- super.connectedCallback && super.connectedCallback();
149
- const renderWait = this.updateComplete || resolved;
150
- renderWait.then(() => {
151
- this[unbindRouterLinks] = bindRouterLinks(this, options);
152
- });
153
- }
154
- disconnectedCallback() {
155
- super.disconnectedCallback && super.disconnectedCallback();
156
- if (this[unbindRouterLinks]) {
157
- this[unbindRouterLinks]();
158
- }
159
- }
160
- };
161
- };
162
- const withRouterLinks = (optionsOrCtorOrDescriptor, options) => {
163
- if (typeof optionsOrCtorOrDescriptor === "function") {
164
- return createClass(optionsOrCtorOrDescriptor, options);
165
- }
166
- if (optionsOrCtorOrDescriptor.kind === "class") {
167
- const { kind, elements } = optionsOrCtorOrDescriptor;
168
- return {
169
- kind,
170
- elements,
171
- finisher(ctor) {
172
- return createClass(ctor, options);
173
- }
174
- };
175
- }
176
- return (ctorOrDescriptor) => {
177
- return withRouterLinks(ctorOrDescriptor, optionsOrCtorOrDescriptor);
178
- };
179
- };
180
- function create(instance) {
181
- router = instance;
182
- }
183
- function done() {
184
- linkContainers.forEach((ownerEl) => {
185
- const data = ownerEl[routerLinksData];
186
- data.rootEls.forEach((el) => {
187
- const routeName = el.getAttribute("route");
188
- if (!routeName)
189
- return;
190
- const params = getRouteProp(ownerEl, routeName, el, "params", "param-");
191
- const query = getRouteProp(ownerEl, routeName, el, "query", "query-");
192
- updateActiveClass(el, routeName, params, query);
193
- });
194
- });
195
- }
196
- const routerLinks = {
197
- create,
198
- done
199
- };
200
- export {
201
- bindRouterLinks as b,
202
- routerLinks as r,
203
- withRouterLinks as w
204
- };