@studiometa/js-toolkit 1.7.2 → 2.0.0-alpha.10
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.
- package/Base/index.d.ts +217 -0
- package/Base/index.js +237 -0
- package/Base/managers/ChildrenManager.d.ts +108 -0
- package/Base/managers/ChildrenManager.js +124 -0
- package/Base/managers/EventsManager.d.ts +190 -0
- package/Base/managers/EventsManager.js +195 -0
- package/Base/managers/OptionsManager.d.ts +120 -0
- package/Base/managers/OptionsManager.js +180 -0
- package/Base/managers/RefsManager.d.ts +84 -0
- package/Base/managers/RefsManager.js +83 -0
- package/{abstracts/Base/classes/Services.d.ts → Base/managers/ServicesManager.d.ts} +22 -7
- package/Base/managers/ServicesManager.js +115 -0
- package/{abstracts/Base → Base}/utils.d.ts +0 -30
- package/Base/utils.js +43 -0
- package/README.md +12 -70
- package/decorators/index.js +1 -2
- package/decorators/withBreakpointManager.d.ts +5 -5
- package/decorators/withBreakpointManager.js +41 -79
- package/decorators/withBreakpointObserver.d.ts +4 -4
- package/decorators/withBreakpointObserver.js +54 -77
- package/decorators/withDrag.d.ts +6 -6
- package/decorators/withDrag.js +17 -41
- package/decorators/withExtraConfig.d.ts +6 -6
- package/decorators/withExtraConfig.js +2 -24
- package/decorators/withIntersectionObserver.d.ts +4 -4
- package/decorators/withIntersectionObserver.js +17 -60
- package/decorators/withMountWhenInView.d.ts +8 -8
- package/decorators/withMountWhenInView.js +23 -51
- package/helpers/createApp.d.ts +4 -4
- package/helpers/createApp.js +10 -12
- package/helpers/importOnInteraction.d.ts +6 -6
- package/helpers/importOnInteraction.js +7 -8
- package/helpers/importWhenIdle.d.ts +4 -4
- package/helpers/importWhenIdle.js +7 -8
- package/helpers/importWhenVisible.d.ts +6 -6
- package/helpers/importWhenVisible.js +9 -16
- package/helpers/index.d.ts +1 -3
- package/helpers/index.js +1 -4
- package/helpers/utils.js +2 -3
- package/index.d.ts +19 -5
- package/index.js +5 -6
- package/index.modern.js +1 -3230
- package/index.umd.js +1 -3586
- package/package.json +3 -6
- package/{abstracts → services}/Service.d.ts +0 -0
- package/services/Service.js +63 -0
- package/services/drag.js +144 -180
- package/services/index.js +1 -2
- package/services/key.js +56 -98
- package/services/load.d.ts +1 -1
- package/services/load.js +22 -51
- package/services/pointer.js +118 -157
- package/services/raf.js +37 -65
- package/services/resize.js +46 -98
- package/services/scroll.js +81 -120
- package/utils/collide/boundingRectToCircle.js +7 -6
- package/utils/collide/collideCircleCircle.js +1 -2
- package/utils/collide/collideCircleRect.js +1 -2
- package/utils/collide/collidePointCircle.js +1 -2
- package/utils/collide/collidePointRect.js +1 -2
- package/utils/collide/collideRectRect.js +1 -2
- package/utils/collide/index.js +1 -2
- package/utils/css/classes.js +2 -3
- package/utils/css/index.js +1 -2
- package/utils/css/matrix.js +1 -2
- package/utils/css/styles.js +3 -8
- package/utils/css/transition.js +67 -140
- package/utils/debounce.js +3 -4
- package/utils/focusTrap.js +4 -5
- package/utils/history.js +12 -19
- package/utils/index.d.ts +2 -1
- package/utils/index.js +2 -2
- package/utils/keyCodes.js +1 -2
- package/utils/math/clamp.js +1 -2
- package/utils/math/clamp01.js +1 -2
- package/utils/math/damp.js +1 -2
- package/utils/math/index.js +1 -2
- package/utils/math/inertiaFinalValue.js +1 -2
- package/utils/math/lerp.js +1 -2
- package/utils/math/map.js +1 -2
- package/utils/math/round.js +1 -2
- package/utils/memoize.d.ts +30 -0
- package/utils/memoize.js +30 -0
- package/utils/nextFrame.js +4 -9
- package/utils/object/autoBind.js +11 -19
- package/utils/object/getAllProperties.d.ts +6 -3
- package/utils/object/getAllProperties.js +10 -8
- package/utils/object/index.js +1 -2
- package/utils/object/isObject.js +2 -4
- package/utils/string/index.js +1 -2
- package/utils/string/withLeadingCharacters.js +1 -2
- package/utils/string/withLeadingSlash.js +1 -2
- package/utils/string/withTrailingCharacters.js +1 -2
- package/utils/string/withTrailingSlash.js +1 -2
- package/utils/string/withoutLeadingCharacters.js +1 -2
- package/utils/string/withoutLeadingCharactersRecursive.js +1 -2
- package/utils/string/withoutLeadingSlash.js +1 -2
- package/utils/string/withoutTrailingCharacters.js +1 -2
- package/utils/string/withoutTrailingCharactersRecursive.js +1 -2
- package/utils/string/withoutTrailingSlash.js +1 -2
- package/utils/throttle.js +2 -3
- package/abstracts/Base/children.d.ts +0 -16
- package/abstracts/Base/children.js +0 -66
- package/abstracts/Base/children.js.map +0 -1
- package/abstracts/Base/classes/Options.d.ts +0 -37
- package/abstracts/Base/classes/Options.js +0 -182
- package/abstracts/Base/classes/Options.js.map +0 -1
- package/abstracts/Base/classes/Services.js +0 -120
- package/abstracts/Base/classes/Services.js.map +0 -1
- package/abstracts/Base/components.d.ts +0 -22
- package/abstracts/Base/components.js +0 -67
- package/abstracts/Base/components.js.map +0 -1
- package/abstracts/Base/events.d.ts +0 -8
- package/abstracts/Base/events.js +0 -185
- package/abstracts/Base/events.js.map +0 -1
- package/abstracts/Base/index.d.ts +0 -176
- package/abstracts/Base/index.js +0 -215
- package/abstracts/Base/index.js.map +0 -1
- package/abstracts/Base/options.d.ts +0 -17
- package/abstracts/Base/options.js +0 -112
- package/abstracts/Base/options.js.map +0 -1
- package/abstracts/Base/refs.d.ts +0 -30
- package/abstracts/Base/refs.js +0 -60
- package/abstracts/Base/refs.js.map +0 -1
- package/abstracts/Base/utils.js +0 -102
- package/abstracts/Base/utils.js.map +0 -1
- package/abstracts/EventManager.d.ts +0 -41
- package/abstracts/EventManager.js +0 -88
- package/abstracts/EventManager.js.map +0 -1
- package/abstracts/Service.js +0 -82
- package/abstracts/Service.js.map +0 -1
- package/abstracts/index.d.ts +0 -4
- package/abstracts/index.js +0 -5
- package/abstracts/index.js.map +0 -1
- package/components/Accordion/Accordion.d.ts +0 -83
- package/components/Accordion/Accordion.js +0 -121
- package/components/Accordion/Accordion.js.map +0 -1
- package/components/Accordion/AccordionItem.d.ts +0 -122
- package/components/Accordion/AccordionItem.js +0 -327
- package/components/Accordion/AccordionItem.js.map +0 -1
- package/components/Accordion/index.d.ts +0 -27
- package/components/Accordion/index.js +0 -39
- package/components/Accordion/index.js.map +0 -1
- package/components/Cursor.d.ts +0 -138
- package/components/Cursor.js +0 -167
- package/components/Cursor.js.map +0 -1
- package/components/Draggable.d.ts +0 -49
- package/components/Draggable.js +0 -77
- package/components/Draggable.js.map +0 -1
- package/components/Modal.d.ts +0 -158
- package/components/Modal.js +0 -270
- package/components/Modal.js.map +0 -1
- package/components/Tabs.d.ts +0 -108
- package/components/Tabs.js +0 -195
- package/components/Tabs.js.map +0 -1
- package/components/index.d.ts +0 -6
- package/components/index.js +0 -7
- package/components/index.js.map +0 -1
- package/decorators/index.js.map +0 -1
- package/decorators/withBreakpointManager.js.map +0 -1
- package/decorators/withBreakpointObserver.js.map +0 -1
- package/decorators/withDrag.js.map +0 -1
- package/decorators/withExtraConfig.js.map +0 -1
- package/decorators/withIntersectionObserver.js.map +0 -1
- package/decorators/withMountWhenInView.js.map +0 -1
- package/full.d.ts +0 -10
- package/full.js +0 -12
- package/full.js.map +0 -1
- package/full.modern.js +0 -7523
- package/full.modern.js.map +0 -1
- package/full.umd.js +0 -8277
- package/full.umd.js.map +0 -1
- package/helpers/createApp.js.map +0 -1
- package/helpers/createBase.d.ts +0 -7
- package/helpers/createBase.js +0 -7
- package/helpers/createBase.js.map +0 -1
- package/helpers/defineComponent.d.ts +0 -11
- package/helpers/defineComponent.js +0 -68
- package/helpers/defineComponent.js.map +0 -1
- package/helpers/importOnInteraction.js.map +0 -1
- package/helpers/importWhenIdle.js.map +0 -1
- package/helpers/importWhenVisible.js.map +0 -1
- package/helpers/index.js.map +0 -1
- package/helpers/utils.js.map +0 -1
- package/index.js.map +0 -1
- package/index.modern.js.map +0 -1
- package/index.umd.js.map +0 -1
- package/services/drag.js.map +0 -1
- package/services/index.js.map +0 -1
- package/services/key.js.map +0 -1
- package/services/load.js.map +0 -1
- package/services/pointer.js.map +0 -1
- package/services/raf.js.map +0 -1
- package/services/resize.js.map +0 -1
- package/services/scroll.js.map +0 -1
- package/utils/collide/boundingRectToCircle.js.map +0 -1
- package/utils/collide/collideCircleCircle.js.map +0 -1
- package/utils/collide/collideCircleRect.js.map +0 -1
- package/utils/collide/collidePointCircle.js.map +0 -1
- package/utils/collide/collidePointRect.js.map +0 -1
- package/utils/collide/collideRectRect.js.map +0 -1
- package/utils/collide/index.js.map +0 -1
- package/utils/css/classes.js.map +0 -1
- package/utils/css/index.js.map +0 -1
- package/utils/css/matrix.js.map +0 -1
- package/utils/css/styles.js.map +0 -1
- package/utils/css/transition.js.map +0 -1
- package/utils/debounce.js.map +0 -1
- package/utils/focusTrap.js.map +0 -1
- package/utils/history.js.map +0 -1
- package/utils/index.js.map +0 -1
- package/utils/keyCodes.js.map +0 -1
- package/utils/math/clamp.js.map +0 -1
- package/utils/math/clamp01.js.map +0 -1
- package/utils/math/damp.js.map +0 -1
- package/utils/math/index.js.map +0 -1
- package/utils/math/inertiaFinalValue.js.map +0 -1
- package/utils/math/lerp.js.map +0 -1
- package/utils/math/map.js.map +0 -1
- package/utils/math/round.js.map +0 -1
- package/utils/nextFrame.js.map +0 -1
- package/utils/object/autoBind.js.map +0 -1
- package/utils/object/getAllProperties.js.map +0 -1
- package/utils/object/index.js.map +0 -1
- package/utils/object/isObject.js.map +0 -1
- package/utils/string/index.js.map +0 -1
- package/utils/string/withLeadingCharacters.js.map +0 -1
- package/utils/string/withLeadingSlash.js.map +0 -1
- package/utils/string/withTrailingCharacters.js.map +0 -1
- package/utils/string/withTrailingSlash.js.map +0 -1
- package/utils/string/withoutLeadingCharacters.js.map +0 -1
- package/utils/string/withoutLeadingCharactersRecursive.js.map +0 -1
- package/utils/string/withoutLeadingSlash.js.map +0 -1
- package/utils/string/withoutTrailingCharacters.js.map +0 -1
- package/utils/string/withoutTrailingCharactersRecursive.js.map +0 -1
- package/utils/string/withoutTrailingSlash.js.map +0 -1
- package/utils/throttle.js.map +0 -1
package/components/Tabs.js
DELETED
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
2
|
-
import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
|
|
3
|
-
import _createClass from "@babel/runtime/helpers/createClass";
|
|
4
|
-
import _inherits from "@babel/runtime/helpers/inherits";
|
|
5
|
-
import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
|
|
6
|
-
import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
|
|
7
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
8
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
9
|
-
|
|
10
|
-
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
11
|
-
|
|
12
|
-
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
13
|
-
|
|
14
|
-
import Base from '../abstracts/Base/index.js';
|
|
15
|
-
import transition from '../utils/css/transition.js';
|
|
16
|
-
|
|
17
|
-
var Tabs = function (_Base) {
|
|
18
|
-
_inherits(Tabs, _Base);
|
|
19
|
-
|
|
20
|
-
var _super = _createSuper(Tabs);
|
|
21
|
-
|
|
22
|
-
function Tabs() {
|
|
23
|
-
_classCallCheck(this, Tabs);
|
|
24
|
-
|
|
25
|
-
return _super.apply(this, arguments);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
_createClass(Tabs, [{
|
|
29
|
-
key: "mounted",
|
|
30
|
-
value: function mounted() {
|
|
31
|
-
var _this = this;
|
|
32
|
-
|
|
33
|
-
this.items = this.$refs.btn.map(function (btn, index) {
|
|
34
|
-
var id = "".concat(_this.$id, "-").concat(index);
|
|
35
|
-
var content = _this.$refs.content[index];
|
|
36
|
-
btn.setAttribute('id', id);
|
|
37
|
-
content.setAttribute('aria-labelledby', id);
|
|
38
|
-
var item = {
|
|
39
|
-
btn: btn,
|
|
40
|
-
content: content,
|
|
41
|
-
isEnabled: index > 0
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
if (index > 0) {
|
|
45
|
-
_this.disableItem(item);
|
|
46
|
-
} else {
|
|
47
|
-
_this.enableItem(item);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
return item;
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
}, {
|
|
54
|
-
key: "onBtnClick",
|
|
55
|
-
value: function onBtnClick(event, index) {
|
|
56
|
-
var _this2 = this;
|
|
57
|
-
|
|
58
|
-
this.items.forEach(function (item, i) {
|
|
59
|
-
if (i !== index) {
|
|
60
|
-
_this2.disableItem(item);
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
this.enableItem(this.items[index]);
|
|
64
|
-
}
|
|
65
|
-
}, {
|
|
66
|
-
key: "enableItem",
|
|
67
|
-
value: function () {
|
|
68
|
-
var _enableItem = _asyncToGenerator(_regeneratorRuntime.mark(function _callee(item) {
|
|
69
|
-
var _this3 = this;
|
|
70
|
-
|
|
71
|
-
var btn, content, btnStyles, contentStyles;
|
|
72
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
73
|
-
while (1) {
|
|
74
|
-
switch (_context.prev = _context.next) {
|
|
75
|
-
case 0:
|
|
76
|
-
if (!(!item || item.isEnabled)) {
|
|
77
|
-
_context.next = 2;
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
return _context.abrupt("return", Promise.resolve(this));
|
|
82
|
-
|
|
83
|
-
case 2:
|
|
84
|
-
item.isEnabled = true;
|
|
85
|
-
btn = item.btn, content = item.content;
|
|
86
|
-
btnStyles = this.$options.styles.btn || {};
|
|
87
|
-
contentStyles = this.$options.styles.content || {};
|
|
88
|
-
content.setAttribute('aria-hidden', 'false');
|
|
89
|
-
this.$emit('enable', item);
|
|
90
|
-
return _context.abrupt("return", Promise.all([transition(btn, {
|
|
91
|
-
from: btnStyles.closed,
|
|
92
|
-
active: btnStyles.active,
|
|
93
|
-
to: btnStyles.open
|
|
94
|
-
}, 'keep'), transition(content, {
|
|
95
|
-
from: contentStyles.closed,
|
|
96
|
-
active: contentStyles.active,
|
|
97
|
-
to: contentStyles.open
|
|
98
|
-
}, 'keep')]).then(function () {
|
|
99
|
-
return Promise.resolve(_this3);
|
|
100
|
-
}));
|
|
101
|
-
|
|
102
|
-
case 9:
|
|
103
|
-
case "end":
|
|
104
|
-
return _context.stop();
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}, _callee, this);
|
|
108
|
-
}));
|
|
109
|
-
|
|
110
|
-
function enableItem(_x) {
|
|
111
|
-
return _enableItem.apply(this, arguments);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return enableItem;
|
|
115
|
-
}()
|
|
116
|
-
}, {
|
|
117
|
-
key: "disableItem",
|
|
118
|
-
value: function () {
|
|
119
|
-
var _disableItem = _asyncToGenerator(_regeneratorRuntime.mark(function _callee2(item) {
|
|
120
|
-
var _this4 = this;
|
|
121
|
-
|
|
122
|
-
var btn, content, btnStyles, contentStyles;
|
|
123
|
-
return _regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
124
|
-
while (1) {
|
|
125
|
-
switch (_context2.prev = _context2.next) {
|
|
126
|
-
case 0:
|
|
127
|
-
if (!(!item || !item.isEnabled)) {
|
|
128
|
-
_context2.next = 2;
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
return _context2.abrupt("return", Promise.resolve(this));
|
|
133
|
-
|
|
134
|
-
case 2:
|
|
135
|
-
item.isEnabled = false;
|
|
136
|
-
btn = item.btn, content = item.content;
|
|
137
|
-
btnStyles = this.$options.styles.btn || {};
|
|
138
|
-
contentStyles = this.$options.styles.content || {};
|
|
139
|
-
content.setAttribute('aria-hidden', 'true');
|
|
140
|
-
this.$emit('disable', item);
|
|
141
|
-
return _context2.abrupt("return", Promise.all([transition(btn, {
|
|
142
|
-
from: btnStyles.open,
|
|
143
|
-
active: btnStyles.active,
|
|
144
|
-
to: btnStyles.closed
|
|
145
|
-
}, 'keep'), transition(content, {
|
|
146
|
-
from: contentStyles.open,
|
|
147
|
-
active: contentStyles.active,
|
|
148
|
-
to: contentStyles.closed
|
|
149
|
-
}, 'keep')]).then(function () {
|
|
150
|
-
return Promise.resolve(_this4);
|
|
151
|
-
}));
|
|
152
|
-
|
|
153
|
-
case 9:
|
|
154
|
-
case "end":
|
|
155
|
-
return _context2.stop();
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}, _callee2, this);
|
|
159
|
-
}));
|
|
160
|
-
|
|
161
|
-
function disableItem(_x2) {
|
|
162
|
-
return _disableItem.apply(this, arguments);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
return disableItem;
|
|
166
|
-
}()
|
|
167
|
-
}]);
|
|
168
|
-
|
|
169
|
-
return Tabs;
|
|
170
|
-
}(Base);
|
|
171
|
-
|
|
172
|
-
_defineProperty(Tabs, "config", {
|
|
173
|
-
name: 'Tabs',
|
|
174
|
-
refs: ['btn[]', 'content[]'],
|
|
175
|
-
options: {
|
|
176
|
-
styles: {
|
|
177
|
-
type: Object,
|
|
178
|
-
default: function _default() {
|
|
179
|
-
return {
|
|
180
|
-
content: {
|
|
181
|
-
closed: {
|
|
182
|
-
position: 'absolute',
|
|
183
|
-
opacity: '0',
|
|
184
|
-
pointerEvents: 'none',
|
|
185
|
-
visibility: 'hidden'
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
export { Tabs as default };
|
|
195
|
-
//# sourceMappingURL=Tabs.js.map
|
package/components/Tabs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/components/Tabs.js"],"names":["Base","transition","Tabs","items","$refs","btn","map","index","id","$id","content","setAttribute","item","isEnabled","disableItem","enableItem","event","forEach","i","Promise","resolve","btnStyles","$options","styles","contentStyles","$emit","all","from","closed","active","to","open","then","name","refs","options","type","Object","default","position","opacity","pointerEvents","visibility"],"mappings":"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","sourcesContent":["import Base from '../abstracts/Base/index.js';\nimport transition from '../utils/css/transition.js';\n\n/**\n * @typedef {import('../abstracts/Base').BaseOptions} BaseOptions\n */\n\n/**\n * @typedef {Object} TabItem\n * @property {HTMLElement} btn\n * @property {HTMLElement} content\n * @property {Boolean} isEnabled\n */\n\n/**\n * @typedef {Object} TabsRefs\n * @property {HTMLElement[]} btn\n * @property {HTMLElement[]} content\n */\n\n/**\n * @typedef {import('../utils/css/styles.js').CssStyleObject} CssStyleObject\n * @typedef {Partial<Record<'open'|'active'|'closed', string|CssStyleObject>>} TabsStates\n * @typedef {Partial<Record<keyof TabsRefs, TabsStates>>} TabsStylesOption\n */\n\n/**\n * @typedef {Object} TabsOptions\n * @property {TabsStylesOption} styles\n */\n\n/**\n * @typedef {Object} TabsPrivateInterface\n * @property {TabsOptions} $options\n * @property {TabsRefs} $refs\n * @property {Array<TabItem>} items\n */\n\n/**\n * @typedef {Tabs & TabsPrivateInterface} TabsInterface\n */\n\n/**\n * Tabs class.\n */\nexport default class Tabs extends Base {\n /**\n * Tabs config.\n */\n static config = {\n name: 'Tabs',\n refs: ['btn[]', 'content[]'],\n options: {\n styles: {\n type: Object,\n /**\n * @return {TabsStylesOption}\n */\n default: () => ({\n content: {\n closed: {\n position: 'absolute',\n opacity: '0',\n pointerEvents: 'none',\n visibility: 'hidden',\n },\n },\n }),\n },\n },\n };\n\n /**\n * Initialize the component's behaviours.\n * @this {TabsInterface}\n * @return {void}\n */\n mounted() {\n this.items = this.$refs.btn.map((btn, index) => {\n const id = `${this.$id}-${index}`;\n const content = this.$refs.content[index];\n btn.setAttribute('id', id);\n content.setAttribute('aria-labelledby', id);\n\n const item = { btn, content, isEnabled: index > 0 };\n if (index > 0) {\n this.disableItem(item);\n } else {\n this.enableItem(item);\n }\n return item;\n });\n }\n\n /**\n * Switch tab on button click.\n *\n * @this {TabsInterface}\n * @param {Event} event The click event object.\n * @param {Number} index The index of the clicked button.\n * @return {void}\n */\n onBtnClick(event, index) {\n this.items.forEach((item, i) => {\n if (i !== index) {\n this.disableItem(item);\n }\n });\n\n this.enableItem(this.items[index]);\n }\n\n /**\n * Enable the given tab and its associated content.\n *\n * @this {TabsInterface}\n * @param {TabItem} item The item to enable.\n * @return {Promise<TabsInterface>} Tabs instance.\n */\n async enableItem(item) {\n if (!item || item.isEnabled) {\n return Promise.resolve(this);\n }\n\n item.isEnabled = true;\n const { btn, content } = item;\n const btnStyles = this.$options.styles.btn || {};\n const contentStyles = this.$options.styles.content || {};\n\n content.setAttribute('aria-hidden', 'false');\n this.$emit('enable', item);\n\n return Promise.all([\n transition(\n btn,\n {\n from: btnStyles.closed,\n active: btnStyles.active,\n to: btnStyles.open,\n },\n 'keep'\n ),\n transition(\n content,\n {\n from: contentStyles.closed,\n active: contentStyles.active,\n to: contentStyles.open,\n },\n 'keep'\n ),\n ]).then(() => Promise.resolve(this));\n }\n\n /**\n * Disable the given tab and its associated content.\n *\n * @this {TabsInterface}\n * @param {TabItem} item The item to disable.\n * @return {Promise<TabsInterface>} The Tabs instance.\n */\n async disableItem(item) {\n if (!item || !item.isEnabled) {\n return Promise.resolve(this);\n }\n\n item.isEnabled = false;\n const { btn, content } = item;\n const btnStyles = this.$options.styles.btn || {};\n const contentStyles = this.$options.styles.content || {};\n\n content.setAttribute('aria-hidden', 'true');\n this.$emit('disable', item);\n\n return Promise.all([\n transition(\n btn,\n {\n from: btnStyles.open,\n active: btnStyles.active,\n to: btnStyles.closed,\n },\n 'keep'\n ),\n transition(\n content,\n {\n from: contentStyles.open,\n active: contentStyles.active,\n to: contentStyles.closed,\n },\n 'keep'\n ),\n ]).then(() => Promise.resolve(this));\n }\n}\n"],"file":"Tabs.js"}
|
package/components/index.d.ts
DELETED
package/components/index.js
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import Accordion from './Accordion/index.js';
|
|
2
|
-
import Cursor from './Cursor.js';
|
|
3
|
-
import Draggable from './Draggable.js';
|
|
4
|
-
import Modal from './Modal.js';
|
|
5
|
-
import Tabs from './Tabs.js';
|
|
6
|
-
export { Accordion, Cursor, Draggable, Modal, Tabs };
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
package/components/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/components/index.js"],"names":["Accordion","Cursor","Draggable","Modal","Tabs"],"mappings":"AAAA,OAAOA,SAAP,MAAsB,sBAAtB;AACA,OAAOC,MAAP,MAAmB,aAAnB;AACA,OAAOC,SAAP,MAAsB,gBAAtB;AACA,OAAOC,KAAP,MAAkB,YAAlB;AACA,OAAOC,IAAP,MAAiB,WAAjB;AAEA,SAASJ,SAAT,EAAoBC,MAApB,EAA4BC,SAA5B,EAAuCC,KAAvC,EAA8CC,IAA9C","sourcesContent":["import Accordion from './Accordion/index.js';\nimport Cursor from './Cursor.js';\nimport Draggable from './Draggable.js';\nimport Modal from './Modal.js';\nimport Tabs from './Tabs.js';\n\nexport { Accordion, Cursor, Draggable, Modal, Tabs };\n"],"file":"index.js"}
|
package/decorators/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/decorators/index.js"],"names":["withBreakpointManager","withBreakpointObserver","withDrag","withExtraConfig","withIntersectionObserver","withMountWhenInView"],"mappings":"AAAA,OAAOA,qBAAP,MAAkC,4BAAlC;AACA,OAAOC,sBAAP,MAAmC,6BAAnC;AACA,OAAOC,QAAP,MAAqB,eAArB;AACA,OAAOC,eAAP,MAA4B,sBAA5B;AACA,OAAOC,wBAAP,MAAqC,+BAArC;AACA,OAAOC,mBAAP,MAAgC,0BAAhC;AAEA,SACEL,qBADF,EAEEC,sBAFF,EAGEC,QAHF,EAIEC,eAJF,EAKEC,wBALF,EAMEC,mBANF","sourcesContent":["import withBreakpointManager from './withBreakpointManager.js';\nimport withBreakpointObserver from './withBreakpointObserver.js';\nimport withDrag from './withDrag.js';\nimport withExtraConfig from './withExtraConfig.js';\nimport withIntersectionObserver from './withIntersectionObserver.js';\nimport withMountWhenInView from './withMountWhenInView.js';\n\nexport {\n withBreakpointManager,\n withBreakpointObserver,\n withDrag,\n withExtraConfig,\n withIntersectionObserver,\n withMountWhenInView,\n};\n"],"file":"index.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/decorators/withBreakpointManager.js"],"names":["useResize","testBreakpoints","breakpoints","props","breakpoint","forEach","breakpointKeys","instance","includes","$mount","$destroy","mountComponents","map","bk","ComponentClass","child","$el","Object","defineProperty","get","instances","withBreakpointManager","BaseClass","Array","isArray","Error","length","add","element","$id"],"mappings":"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","sourcesContent":["import useResize from '../services/resize.js';\n\n/**\n * @typedef {import('../abstracts/Base').default} Base\n * @typedef {import('../abstracts/Base').BaseComponent} BaseComponent\n */\n\n/**\n * Test the breakpoins of the given Base instance and return the hook to call.\n *\n * @param {Array<[String[], Base]>} breakpoints The breakpoints's data.\n */\nfunction testBreakpoints(breakpoints) {\n const { breakpoint } = useResize().props();\n breakpoints.forEach(([breakpointKeys, instance]) => {\n if (breakpointKeys.includes(breakpoint)) {\n instance.$mount();\n } else {\n instance.$destroy();\n }\n });\n}\n\n/**\n * Prepare the components.\n * @param {Base} instance\n * @param {Array<[String, BaseComponent]>} breakpoints\n * @return {Array<[String, Base]>}\n */\nfunction mountComponents(instance, breakpoints) {\n return breakpoints.map(([bk, ComponentClass]) => {\n const child = new ComponentClass(instance.$el);\n Object.defineProperty(child, '$parent', { get: () => instance });\n return [bk, child];\n });\n}\n\n/**\n * A cache object to hold each Base sub-instances.\n * @type {Object}\n */\nconst instances = {};\n\n/**\n * BreakpointManager class.\n * @template {BaseComponent} T\n * @param {T} BaseClass\n * @param {Array<[String, BaseComponent]>} breakpoints\n * @return {T}\n */\nexport default function withBreakpointManager(BaseClass, breakpoints) {\n if (!Array.isArray(breakpoints)) {\n throw new Error('[withBreakpointManager] The `breakpoints` parameter must be an array.');\n }\n\n if (breakpoints.length < 2) {\n throw new Error('[withBreakpointManager] You must define at least 2 breakpoints.');\n }\n\n const { add, props } = useResize();\n\n // Do nothing if no breakpoint has been defined.\n // @see https://js-toolkit.meta.fr/services/resize.html#breakpoint\n if (!props().breakpoint) {\n throw new Error(`The \\`BreakpointManager\\` class requires breakpoints to be defined.`);\n }\n\n // @ts-ignore\n return class extends BaseClass {\n /**\n * Watch for the document resize to test the breakpoints.\n * @param {HTMLElement} element The component's root element.\n */\n constructor(element) {\n super(element);\n\n if (!instances[this.$id]) {\n instances[this.$id] = mountComponents(this, breakpoints);\n }\n\n testBreakpoints(instances[this.$id]);\n\n add(`BreakpointManager-${this.$id}`, () => {\n testBreakpoints(instances[this.$id]);\n });\n\n return this;\n }\n\n /**\n * Override the default $mount method to prevent component's from being\n * mounted when they should not.\n *\n * @return {this}\n */\n $mount() {\n if (!instances[this.$id]) {\n instances[this.$id] = mountComponents(this, breakpoints);\n }\n\n testBreakpoints(instances[this.$id]);\n\n return super.$mount();\n }\n\n /**\n * Destroy all instances when the main one is destroyed.\n *\n * @return {this}\n */\n $destroy() {\n if (Array.isArray(instances[this.$id])) {\n instances[this.$id].forEach(([, instance]) => {\n instance.$destroy();\n });\n }\n\n return super.$destroy();\n }\n };\n}\n"],"file":"withBreakpointManager.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/decorators/withBreakpointObserver.js"],"names":["useResize","testBreakpoints","instance","breakpoint","props","$options","activeBreakpoints","inactiveBreakpoints","isInActiveBreakpoint","split","includes","isInInactiveBreakpoint","hasBreakpointConfiguration","Boolean","testConflictingBreakpointConfiguration","name","Error","addToResize","key","add","has","onResize","action","$isMounted","setTimeout","withBreakpointObserver","BaseClass","element","remove","$id","mutationObserver","MutationObserver","mutation","type","attributeName","startsWith","$mount","observe","$el","attributes","config","options","String"],"mappings":"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","sourcesContent":["import useResize from '../services/resize.js';\n\n/**\n * @typedef {import('../abstracts/Base').default} Base\n * @typedef {import('../abstracts/Base').BaseComponent} BaseComponent\n */\n\n/**\n * @typedef {Object} WithBreakpointObserverOptions\n * @property {String} [activeBreakpoints]\n * @property {String} [inactiveBreakpoints]\n */\n\n/**\n * @typedef {Object} WithBreakpointObserverInterface\n * @property {WithBreakpointObserverOptions} $options\n */\n\n/**\n * Test the breakpoins of the given Base instance and return the hook to call.\n *\n * @param {Base & WithBreakpointObserverInterface} instance The component's instance.\n * @return {String} The action to trigger.\n */\nfunction testBreakpoints(instance, breakpoint = useResize().props().breakpoint) {\n const { activeBreakpoints, inactiveBreakpoints } = instance.$options;\n const isInActiveBreakpoint =\n activeBreakpoints && activeBreakpoints.split(' ').includes(breakpoint);\n const isInInactiveBreakpoint =\n inactiveBreakpoints && inactiveBreakpoints.split(' ').includes(breakpoint);\n\n if (\n (activeBreakpoints && isInActiveBreakpoint) ||\n (inactiveBreakpoints && !isInInactiveBreakpoint)\n ) {\n return '$mount';\n }\n\n return '$destroy';\n}\n\n/**\n * Test if the given instance is configured for breakpoints.\n * @param {Base & WithBreakpointObserverInterface} instance A Base class instance.\n * @return {Boolean} True if configured correctly, false otherwise.\n */\nfunction hasBreakpointConfiguration(instance) {\n const { activeBreakpoints, inactiveBreakpoints } = instance.$options;\n return Boolean(activeBreakpoints || inactiveBreakpoints);\n}\n\n/**\n * Test if the given instance has a conflicting configuration for breakpoints.\n * @param {Base & WithBreakpointObserverInterface} instance A Base class instance.\n * @return {void}\n */\nfunction testConflictingBreakpointConfiguration(instance) {\n const { activeBreakpoints, inactiveBreakpoints, name } = instance.$options;\n if (activeBreakpoints && inactiveBreakpoints) {\n throw new Error(\n `[${name}] Incorrect configuration: the \\`activeBreakpoints\\` and \\`inactiveBreakpoints\\` are not compatible.`\n );\n }\n}\n\n/**\n * Add the current instance to the resize service.\n * @param {String} key The key for the resize service callback.\n * @param {Base} instance The instance to observe.\n */\nfunction addToResize(key, instance) {\n testConflictingBreakpointConfiguration(instance);\n const { add, has } = useResize();\n\n if (!has(key)) {\n add(key, function onResize({ breakpoint }) {\n const action = testBreakpoints(instance, breakpoint);\n\n // Always destroy before mounting\n if (action === '$destroy' && instance.$isMounted) {\n instance[action]();\n } else if (action === '$mount' && !instance.$isMounted) {\n setTimeout(() => instance[action](), 0);\n }\n });\n }\n}\n\n/**\n * BreakpointObserver class.\n *\n * @template {BaseComponent} T\n * @param {T} BaseClass The Base class to extend from.\n * @return {T}\n */\nexport default function withBreakpointObserver(BaseClass) {\n // @ts-ignore\n return class extends BaseClass {\n static config = {\n ...(BaseClass.config || {}),\n name: `${BaseClass?.config?.name ?? ''}WithBreakpointObserver`,\n options: {\n ...(BaseClass?.config?.options || {}),\n activeBreakpoints: String,\n inactiveBreakpoints: String,\n },\n };\n\n /**\n * Watch for the document resize to test the breakpoints.\n * @this {Base & WithBreakpointObserverInterface}\n * @param {HTMLElement} element The component's root element.\n */\n constructor(element) {\n super(element);\n\n const { remove, props } = useResize();\n const { name } = this.$options;\n\n // Do nothing if no breakpoint has been defined.\n // @see https://js-toolkit.meta.fr/services/resize.html#breakpoint\n if (!props().breakpoint) {\n throw new Error(\n `[${name}] The \\`BreakpointObserver\\` class requires breakpoints to be defined.`\n );\n }\n\n const key = `BreakpointObserver-${this.$id}`;\n\n // Watch change on the `data-options` attribute to emit the `set:options` event.\n const mutationObserver = new MutationObserver(([mutation]) => {\n if (\n mutation.type === 'attributes' &&\n (mutation.attributeName === 'data-options' ||\n mutation.attributeName.startsWith('data-option-'))\n ) {\n // Stop here silently when no breakpoint configuration given.\n if (!hasBreakpointConfiguration(this)) {\n this.$mount();\n remove(key);\n return;\n }\n\n addToResize(key, this);\n }\n });\n mutationObserver.observe(this.$el, { attributes: true });\n\n // Stop here silently when no breakpoint configuration given.\n if (!hasBreakpointConfiguration(this)) {\n return this;\n }\n\n addToResize(key, this);\n return this;\n }\n\n /**\n * Override the default $mount method to prevent component's from being\n * mounted when they should not.\n * @return {this}\n */\n $mount() {\n // Execute normal behavior when no breakpoint configuration given.\n if (!hasBreakpointConfiguration(this)) {\n return super.$mount();\n }\n\n const action = testBreakpoints(this);\n if (action === '$mount') {\n return super.$mount();\n }\n\n return this;\n }\n };\n}\n"],"file":"withBreakpointObserver.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/decorators/withDrag.js"],"names":["useDrag","withDrag","BaseClass","options","target","$el","el","$on","otherOptions","boundUseDrag","bind","undefined","call","$services","register","enable","disable","unregister"],"mappings":";;;;;;;;;;;;AAAA,OAAOA,OAAP,MAAoB,qBAApB;AAoBA,eAAe,SAASC,QAAT,CACbC,SADa,EAOb;AAAA,MALAC,OAKA,uEALU;AACRC,IAAAA,MADQ,oBACC;AACP,aAAO,KAAKC,GAAZ;AACD;AAHO,GAKV;AAEA;AAAA;;AAAA;;AAKE,oBAAYC,EAAZ,EAAgB;AAAA;;AAAA;;AACd,gCAAMA,EAAN;;AAEA,YAAKC,GAAL,CAAS,SAAT,EAAoB,YAAM;AACxB,YAAQH,MAAR,GAAoCD,OAApC,CAAQC,MAAR;AAAA,YAAmBI,YAAnB,4BAAoCL,OAApC;;AACA,YAAMM,YAAY,GAAGT,OAAO,CAACU,IAAR,CAAaC,SAAb,EAAwBP,MAAM,CAACQ,IAAP,+BAAxB,EAA2CJ,YAA3C,CAArB;;AACA,cAAKK,SAAL,CAAeC,QAAf,CAAwB,SAAxB,EAAmCL,YAAnC;;AACA,cAAKI,SAAL,CAAeE,MAAf,CAAsB,SAAtB;AACD,OALD;;AAOA,YAAKR,GAAL,CAAS,WAAT,EAAsB,YAAM;AAC1B,cAAKM,SAAL,CAAeG,OAAf,CAAuB,SAAvB;;AACA,cAAKH,SAAL,CAAeI,UAAf,CAA0B,SAA1B;AACD,OAHD;;AAVc;AAcf;;AAnBH;AAAA,IAAqBf,SAArB;AAqBD","sourcesContent":["import useDrag from '../services/drag.js';\n\n/**\n * @typedef {import('../abstracts/Base').default} Base\n * @typedef {import('../abstracts/Base').BaseComponent} BaseComponent\n * @typedef {import('../services/drag').DragServiceOptions} DragServiceOptions\n */\n\n/**\n * @typedef {DragServiceOptions & { target: (this:Base) => HTMLElement }} DragDecoratorOptions\n */\n\n/**\n * Add dragging capabilities to a component.\n *\n * @template {BaseComponent} T\n * @param {T} BaseClass\n * @param {DragDecoratorOptions} options\n * @return {T}\n */\nexport default function withDrag(\n BaseClass,\n options = {\n target() {\n return this.$el;\n },\n }\n) {\n // @ts-ignore\n return class extends BaseClass {\n /**\n * Class constructor.\n * @param {HTMLElement} el\n */\n constructor(el) {\n super(el);\n\n this.$on('mounted', () => {\n const { target, ...otherOptions } = options;\n const boundUseDrag = useDrag.bind(undefined, target.call(this), otherOptions);\n this.$services.register('dragged', boundUseDrag);\n this.$services.enable('dragged');\n });\n\n this.$on('destroyed', () => {\n this.$services.disable('dragged');\n this.$services.unregister('dragged');\n });\n }\n };\n}\n"],"file":"withDrag.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/decorators/withExtraConfig.js"],"names":["merge","withExtraConfig","BaseClass","config","options","newConfig","name"],"mappings":";;;;;;;;;;AAAA,OAAOA,KAAP,MAAkB,WAAlB;AAiBA,eAAe,SAASC,eAAT,CAAyBC,SAAzB,EAAoCC,MAApC,EAA0D;AAAA;;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACvE,MAAMC,SAAS,GAAGL,KAAK,CAACE,SAAS,CAACC,MAAX,EAAmBA,MAAnB,EAA2BC,OAA3B,CAAvB;;AAEA,MAAIC,SAAS,CAACC,IAAV,KAAmBJ,SAAS,CAACC,MAAV,CAAiBG,IAAxC,EAA8C;AAC5CD,IAAAA,SAAS,CAACC,IAAV,aAAoBJ,SAAS,CAACC,MAAV,CAAiBG,IAArC;AACD;;AAGD;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA,IAAqBJ,SAArB,qCAKkBG,SALlB;AAOD","sourcesContent":["import merge from 'deepmerge';\n\n/**\n * @typedef {import('deepmerge').Options} DeepmergeOptions\n * @typedef {import('../abstracts/Base').BaseConfig} BaseConfig\n * @typedef {import('../abstracts/Base').BaseComponent} BaseComponent\n */\n\n/**\n * Extends the configuration of an existing class.\n *\n * @template {BaseComponent} T\n * @param {T} BaseClass The Base class to extend.\n * @param {Partial<BaseConfig>} config Extra configuration to merge.\n * @param {DeepmergeOptions} options Options for the `deepmerge` function. {@link https://github.com/TehShrike/deepmerge#options}\n * @return {T}\n */\nexport default function withExtraConfig(BaseClass, config, options = {}) {\n const newConfig = merge(BaseClass.config, config, options);\n\n if (newConfig.name === BaseClass.config.name) {\n newConfig.name = `${BaseClass.config.name}WithExtraConfig`;\n }\n\n // @ts-ignore\n return class extends BaseClass {\n /**\n * Class config.\n * @type {BaseConfig}\n */\n static config = newConfig;\n };\n}\n"],"file":"withExtraConfig.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/decorators/withIntersectionObserver.js"],"names":["debug","createArrayOfNumber","length","Array","map","val","index","withIntersectionObserver","BaseClass","defaultOptions","threshold","element","intersected","Error","$observer","IntersectionObserver","entries","__DEV__","$emit","$options","intersectionObserver","$isMounted","observe","$el","$on","unobserve","config","name","options","Object"],"mappings":";;;;;;;;;;;;;;;;;;AAAA,SAASA,KAAT,QAAsB,4BAAtB;;AAwBA,SAASC,mBAAT,CAA6BC,MAA7B,EAAqC;AACnC,SAAO,mBAAI,IAAIC,KAAJ,CAAUD,MAAM,GAAG,CAAnB,CAAJ,EAA2BE,GAA3B,CAA+B,UAACC,GAAD,EAAMC,KAAN;AAAA,WAAgBA,KAAK,GAAGJ,MAAxB;AAAA,GAA/B,CAAP;AACD;;AAUD,eAAe,SAASK,wBAAT,CACbC,SADa,EAGb;AAAA;;AAAA,MADAC,cACA,uEADiB;AAAEC,IAAAA,SAAS,EAAET,mBAAmB,CAAC,GAAD;AAAhC,GACjB;AAEA;AAAA;;AAAA;;AAuBE,oBAAYU,OAAZ,EAAqB;AAAA;;AAAA;;AACnB,gCAAMA,OAAN;;AAEA,UAAI,CAAC,MAAKC,WAAN,IAAqB,OAAO,MAAKA,WAAZ,KAA4B,UAArD,EAAiE;AAC/D,cAAM,IAAIC,KAAJ,CAAU,sEAAV,CAAN;AACD;;AAED,YAAKC,SAAL,GAAiB,IAAIC,oBAAJ,CACf,UAACC,OAAD,EAAa;AACX,YAAIC,OAAJ,EAAa;AACXjB,UAAAA,KAAK,gCAAO,aAAP,EAAsBgB,OAAtB,CAAL;AACD;;AACD,cAAKE,KAAL,CAAW,aAAX,EAA0BF,OAA1B;;AACA,cAAKJ,WAAL,CAAiBI,OAAjB;AACD,OAPc,kCAQVP,cARU,GAQU,MAAKU,QAAL,CAAcC,oBAAd,IAAsC,EARhD,EAAjB;;AAWA,UAAI,MAAKC,UAAT,EAAqB;AACnB,cAAKP,SAAL,CAAeQ,OAAf,CAAuB,MAAKC,GAA5B;AACD;;AAED,YAAKC,GAAL,CAAS,SAAT,EAAoB,YAAM;AACxB,cAAKV,SAAL,CAAeQ,OAAf,CAAuB,MAAKC,GAA5B;AACD,OAFD;;AAIA,YAAKC,GAAL,CAAS,WAAT,EAAsB,YAAM;AAC1B,cAAKV,SAAL,CAAeW,SAAf,CAAyB,MAAKF,GAA9B;AACD,OAFD;;AAIA;AACD;;AAtDH;AAAA;AAAA,WAIE,eAA2B;AACzB,4CAAY,yEAA8B,EAA1C,IAA+C,aAA/C;AACD;AANH;;AAAA;AAAA,IAAqBf,SAArB,qEASQA,SAAS,CAACkB,MAAV,IAAoB,EAT5B;AAUIC,IAAAA,IAAI,qCAAKnB,SAAL,aAAKA,SAAL,4CAAKA,SAAS,CAAEkB,MAAhB,sDAAK,kBAAmBC,IAAxB,yEAAgC,EAAhC,6BAVR;AAWIC,IAAAA,OAAO,kCACD,CAAApB,SAAS,SAAT,IAAAA,SAAS,WAAT,kCAAAA,SAAS,CAAEkB,MAAX,0EAAmBE,OAAnB,KAA8B,EAD7B;AAELR,MAAAA,oBAAoB,EAAES;AAFjB;AAXX;AAwDD","sourcesContent":["import { debug } from '../abstracts/Base/utils.js';\n\n/**\n * @typedef {import('../abstracts/Base').default} Base\n * @typedef {import('../abstracts/Base').BaseComponent} BaseComponent\n */\n\n/**\n * @typedef {Object} WithIntersectionObserverOptions\n * @property {Object} intersectionObserver\n */\n\n/**\n * @typedef {Object} WithIntersectionObserverInterface\n * @property {WithIntersectionObserverOptions} $options\n * @property {IntersectionObserver} $observer\n * @property {(entries: IntersectionObserverEntry[]) => void} intersected\n */\n\n/**\n * Create an array of number between 0 and 1 from the given length.\n * @param {Number} length The length of the array.\n * @return {Array} An array of number.\n */\nfunction createArrayOfNumber(length) {\n return [...new Array(length + 1)].map((val, index) => index / length);\n}\n\n/**\n * IntersectionObserver decoration.\n *\n * @template {BaseComponent} T\n * @param {T} BaseClass The Base class to extend.\n * @param {Object} [defaultOptions] The options for the IntersectionObserver instance.\n * @return {T & { new: (element:HTMLElement) => { $observer: IntersectionObserver }}}\n */\nexport default function withIntersectionObserver(\n BaseClass,\n defaultOptions = { threshold: createArrayOfNumber(100) }\n) {\n // @ts-ignore\n return class extends BaseClass {\n /**\n * Add the `intersected` method to the list of method to exclude from the `autoBind` call.\n */\n get _excludeFromAutoBind() {\n return [...(super._excludeFromAutoBind || []), 'intersected'];\n }\n\n static config = {\n ...(BaseClass.config || {}),\n name: `${BaseClass?.config?.name ?? ''}WithIntersectionObserver`,\n options: {\n ...(BaseClass?.config?.options || {}),\n intersectionObserver: Object,\n },\n };\n\n /**\n * Create an observer when the class in instantiated.\n *\n * @this {Base & WithIntersectionObserverInterface}\n * @param {HTMLElement} element The component's root element.\n */\n constructor(element) {\n super(element);\n\n if (!this.intersected || typeof this.intersected !== 'function') {\n throw new Error('[withIntersectionObserver] The `intersected` method must be defined.');\n }\n\n this.$observer = new IntersectionObserver(\n (entries) => {\n if (__DEV__) {\n debug(this, 'intersected', entries);\n }\n this.$emit('intersected', entries);\n this.intersected(entries);\n },\n { ...defaultOptions, ...(this.$options.intersectionObserver || {}) }\n );\n\n if (this.$isMounted) {\n this.$observer.observe(this.$el);\n }\n\n this.$on('mounted', () => {\n this.$observer.observe(this.$el);\n });\n\n this.$on('destroyed', () => {\n this.$observer.unobserve(this.$el);\n });\n\n return this;\n }\n };\n}\n"],"file":"withIntersectionObserver.js"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../packages/js-toolkit/decorators/withMountWhenInView.js"],"names":["withMountWhenInView","BaseClass","defaultOptions","threshold","element","IntersectionObserver","entries","isVisible","reduce","acc","entry","isIntersecting","method","$options","intersectionObserver","observe","$el","$on","disconnect","config","name","options","Object"],"mappings":";;;;;;;;;;;;;;;;;;;AAyBA,eAAe,SAASA,mBAAT,CAA6BC,SAA7B,EAAgF;AAAA;;AAAA,MAAxCC,cAAwC,uEAAvB;AAAEC,IAAAA,SAAS,EAAE,CAAC,CAAD,EAAI,CAAJ;AAAb,GAAuB;AAE7F;AAAA;;AAAA;;AA+BE,oBAAYC,OAAZ,EAAqB;AAAA;;AAAA;;AACnB,gCAAMA,OAAN;;AADmB;AAAA;AAAA,eAbR;AAaQ;;AAAA;AAAA;AAAA;AAAA;;AAGnB,sEAAiB,IAAIC,oBAAJ,CACf,UAACC,OAAD,EAAa;AACX,YAAMC,SAAS,GAAGD,OAAO,CAACE,MAAR,CAAe,UAACC,GAAD,EAAMC,KAAN;AAAA,iBAAgBD,GAAG,IAAIC,KAAK,CAACC,cAA7B;AAAA,SAAf,EAA4D,KAA5D,CAAlB;;AACA,YAAI,qEAAoBJ,SAAxB,EAAmC;AACjC,2EAAkBA,SAAlB;;AAEA,cAAMK,MAAM,GAAGL,SAAS,GAAG,QAAH,GAAc,UAAtC;;AACA,gBAAKK,MAAL;AACD;AACF,OATc,kCAUVV,cAVU,GAUS,MAAKW,QAAL,CAAcC,oBAVvB,EAAjB;;AAaA,sEAAeC,OAAf,CAAuB,MAAKC,GAA5B;;AAEA,YAAKC,GAAL,CAAS,YAAT,EAAuB,YAAM;AAC3B,wEAAeC,UAAf;AACD,OAFD;;AAIA;AACD;;AAtDH;AAAA;AAAA,aA6DE,kBAAS;AACP,kCAAI,IAAJ,eAAqB;AACnB;AACD;;AAED,eAAO,IAAP;AACD;AAnEH;;AAAA;AAAA,IAAqBjB,SAArB,sEAMQA,SAAS,CAACkB,MAAV,IAAoB,EAN5B;AAOIC,IAAAA,IAAI,qCAAKnB,SAAL,aAAKA,SAAL,4CAAKA,SAAS,CAAEkB,MAAhB,sDAAK,kBAAmBC,IAAxB,yEAAgC,EAAhC,wBAPR;AAQIC,IAAAA,OAAO,kCACD,CAAApB,SAAS,SAAT,IAAAA,SAAS,WAAT,kCAAAA,SAAS,CAAEkB,MAAX,0EAAmBE,OAAnB,KAA8B,EAD7B;AAELP,MAAAA,oBAAoB,EAAEQ;AAFjB;AARX;AAqED","sourcesContent":["/**\n * @typedef {import('../abstracts/Base').default} Base\n * @typedef {import('../abstracts/Base').BaseOptions} BaseOptions\n * @typedef {import('../abstracts/Base').BaseComponent} BaseComponent\n */\n\n/**\n * @typedef {Object} WithMountWhenInViewOptions\n * @property {Object} intersectionObserver\n */\n\n/**\n * @typedef {Object} WithMountWhenInViewInterface\n * @property {() => void} terminated\n * @property {WithMountWhenInViewOptions & BaseOptions} $options\n */\n\n/**\n * IntersectionObserver decoration.\n *\n * @template {BaseComponent} T\n * @param {T} BaseClass The Base class to extend.\n * @param {Object} [defaultOptions] The options for the IntersectionObserver instance.\n * @return {T}\n */\nexport default function withMountWhenInView(BaseClass, defaultOptions = { threshold: [0, 1] }) {\n // @ts-ignore\n return class extends BaseClass {\n /**\n * Class config.\n * @type {Object}\n */\n static config = {\n ...(BaseClass.config || {}),\n name: `${BaseClass?.config?.name ?? ''}WithMountWhenInView`,\n options: {\n ...(BaseClass?.config?.options || {}),\n intersectionObserver: Object,\n },\n };\n\n /**\n * Is the component visible?\n * @type {Boolean}\n */\n #isVisible = false;\n\n /**\n * The component's observer.\n * @type {IntersectionObserver}\n */\n #observer;\n\n /**\n * Create an observer when the class in instantiated.\n *\n * @param {HTMLElement} element The component's root element.\n */\n constructor(element) {\n super(element);\n\n this.#observer = new IntersectionObserver(\n (entries) => {\n const isVisible = entries.reduce((acc, entry) => acc || entry.isIntersecting, false);\n if (this.#isVisible !== isVisible) {\n this.#isVisible = isVisible;\n\n const method = isVisible ? '$mount' : '$destroy';\n this[method]();\n }\n },\n { ...defaultOptions, ...this.$options.intersectionObserver }\n );\n\n this.#observer.observe(this.$el);\n\n this.$on('terminated', () => {\n this.#observer.disconnect();\n });\n\n return this;\n }\n\n /**\n * Override the mounting of the component.\n *\n * @return {this}\n */\n $mount() {\n if (this.#isVisible) {\n super.$mount();\n }\n\n return this;\n }\n };\n}\n"],"file":"withMountWhenInView.js"}
|
package/full.d.ts
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { defineComponent } from "./index.js";
|
|
2
|
-
import { createBase } from "./index.js";
|
|
3
|
-
import Base from "./abstracts/Base/index.js";
|
|
4
|
-
import * as abstracts from "./abstracts/index.js";
|
|
5
|
-
import * as components from "./components/index.js";
|
|
6
|
-
import * as decorators from "./decorators/index.js";
|
|
7
|
-
import * as helpers from "./helpers/index.js";
|
|
8
|
-
import * as services from "./services/index.js";
|
|
9
|
-
import * as utils from "./utils/index.js";
|
|
10
|
-
export { defineComponent, createBase, Base, abstracts, components, decorators, helpers, services, utils };
|
package/full.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { defineComponent, createBase } from './index.js';
|
|
2
|
-
import Base from './abstracts/Base/index.js';
|
|
3
|
-
import * as abstracts from './abstracts/index.js';
|
|
4
|
-
import * as components from './components/index.js';
|
|
5
|
-
import * as decorators from './decorators/index.js';
|
|
6
|
-
import * as helpers from './helpers/index.js';
|
|
7
|
-
import * as services from './services/index.js';
|
|
8
|
-
import * as utils from './utils/index.js';
|
|
9
|
-
export { defineComponent, createBase };
|
|
10
|
-
export { Base };
|
|
11
|
-
export { abstracts, components, decorators, helpers, services, utils };
|
|
12
|
-
//# sourceMappingURL=full.js.map
|
package/full.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../packages/js-toolkit/full.js"],"names":["defineComponent","createBase","Base","abstracts","components","decorators","helpers","services","utils"],"mappings":"AAAA,SAASA,eAAT,EAA0BC,UAA1B,QAA4C,YAA5C;AACA,OAAOC,IAAP,MAAiB,2BAAjB;AAEA,OAAO,KAAKC,SAAZ,MAA2B,sBAA3B;AACA,OAAO,KAAKC,UAAZ,MAA4B,uBAA5B;AACA,OAAO,KAAKC,UAAZ,MAA4B,uBAA5B;AACA,OAAO,KAAKC,OAAZ,MAAyB,oBAAzB;AACA,OAAO,KAAKC,QAAZ,MAA0B,qBAA1B;AACA,OAAO,KAAKC,KAAZ,MAAuB,kBAAvB;AAEA,SAASR,eAAT,EAA0BC,UAA1B;AACA,SAASC,IAAT;AAEA,SAASC,SAAT,EAAoBC,UAApB,EAAgCC,UAAhC,EAA4CC,OAA5C,EAAqDC,QAArD,EAA+DC,KAA/D","sourcesContent":["import { defineComponent, createBase } from './index.js';\nimport Base from './abstracts/Base/index.js';\n\nimport * as abstracts from './abstracts/index.js';\nimport * as components from './components/index.js';\nimport * as decorators from './decorators/index.js';\nimport * as helpers from './helpers/index.js';\nimport * as services from './services/index.js';\nimport * as utils from './utils/index.js';\n\nexport { defineComponent, createBase };\nexport { Base };\n\nexport { abstracts, components, decorators, helpers, services, utils };\n"],"file":"full.js"}
|