solid-ui 2.4.23 → 2.4.24
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/dist/main.js +2159 -5039
- package/dist/main.js.map +1 -1
- package/lib/acl/access-controller.js +4 -67
- package/lib/acl/access-controller.js.map +1 -1
- package/lib/acl/access-groups.js +59 -137
- package/lib/acl/access-groups.js.map +1 -1
- package/lib/acl/acl-control.js +14 -54
- package/lib/acl/acl-control.js.map +1 -1
- package/lib/acl/acl.js +32 -107
- package/lib/acl/acl.js.map +1 -1
- package/lib/acl/add-agent-buttons.js +0 -92
- package/lib/acl/add-agent-buttons.js.map +1 -1
- package/lib/acl/index.js +1 -3
- package/lib/acl/index.js.map +1 -1
- package/lib/acl/styles.js +1 -2
- package/lib/acl/styles.js.map +1 -1
- package/lib/chat/bookmarks.js +8 -80
- package/lib/chat/bookmarks.js.map +1 -1
- package/lib/chat/chatLogic.js +109 -180
- package/lib/chat/chatLogic.js.map +1 -1
- package/lib/chat/dateFolder.js +6 -91
- package/lib/chat/dateFolder.js.map +1 -1
- package/lib/chat/infinite.js +33 -185
- package/lib/chat/infinite.js.map +1 -1
- package/lib/chat/message.js +37 -150
- package/lib/chat/message.js.map +1 -1
- package/lib/chat/messageTools.js +23 -96
- package/lib/chat/messageTools.js.map +1 -1
- package/lib/chat/thread.js +33 -91
- package/lib/chat/thread.js.map +1 -1
- package/lib/create/create.js +19 -51
- package/lib/create/create.js.map +1 -1
- package/lib/create/index.js +0 -2
- package/lib/create/index.js.map +1 -1
- package/lib/debug.js +0 -8
- package/lib/debug.js.map +1 -1
- package/lib/folders.js +4 -27
- package/lib/folders.js.map +1 -1
- package/lib/footer/index.js +2 -24
- package/lib/footer/index.js.map +1 -1
- package/lib/footer/styleMap.js.map +1 -1
- package/lib/header/empty-profile.js.map +1 -1
- package/lib/header/index.js +3 -72
- package/lib/header/index.js.map +1 -1
- package/lib/header/styleMap.js +4 -3
- package/lib/header/styleMap.js.map +1 -1
- package/lib/iconBase.js +3 -4
- package/lib/iconBase.js.map +1 -1
- package/lib/index.js +5 -46
- package/lib/index.js.map +1 -1
- package/lib/jss/index.js +3 -9
- package/lib/jss/index.js.map +1 -1
- package/lib/log.js +15 -51
- package/lib/log.js.map +1 -1
- package/lib/login/login.js +74 -303
- package/lib/login/login.js.map +1 -1
- package/lib/matrix/index.js +0 -2
- package/lib/matrix/index.js.map +1 -1
- package/lib/matrix/matrix.js +7 -55
- package/lib/matrix/matrix.js.map +1 -1
- package/lib/media/index.js +0 -2
- package/lib/media/index.js.map +1 -1
- package/lib/media/media-capture.js +13 -33
- package/lib/media/media-capture.js.map +1 -1
- package/lib/messageArea.js +23 -64
- package/lib/messageArea.js.map +1 -1
- package/lib/noun_Camera_1618446_000000.js.map +1 -1
- package/lib/ns.js +5 -7
- package/lib/ns.js.map +1 -1
- package/lib/pad.js +48 -234
- package/lib/pad.js.map +1 -1
- package/lib/participation.js +10 -65
- package/lib/participation.js.map +1 -1
- package/lib/preferences.js +21 -42
- package/lib/preferences.js.map +1 -1
- package/lib/signup/config-default.js +1 -8
- package/lib/signup/config-default.js.map +1 -1
- package/lib/signup/signup.js +6 -13
- package/lib/signup/signup.js.map +1 -1
- package/lib/stories/decorators.js +0 -2
- package/lib/stories/decorators.js.map +1 -1
- package/lib/style.js +8 -5
- package/lib/style.js.map +1 -1
- package/lib/style_multiSelect.js +1 -5
- package/lib/style_multiSelect.js.map +1 -1
- package/lib/table.js +309 -322
- package/lib/table.js.map +1 -1
- package/lib/tabs.js +20 -100
- package/lib/tabs.js.map +1 -1
- package/lib/utils/headerFooterHelpers.js +4 -52
- package/lib/utils/headerFooterHelpers.js.map +1 -1
- package/lib/utils/index.js +41 -135
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/label.js +13 -34
- package/lib/utils/label.js.map +1 -1
- package/lib/versionInfo.js +4 -4
- package/lib/versionInfo.js.map +1 -1
- package/lib/widgets/buttons/iconLinks.js +0 -8
- package/lib/widgets/buttons/iconLinks.js.map +1 -1
- package/lib/widgets/buttons.js +115 -291
- package/lib/widgets/buttons.js.map +1 -1
- package/lib/widgets/dragAndDrop.js +12 -41
- package/lib/widgets/dragAndDrop.js.map +1 -1
- package/lib/widgets/error.js +3 -9
- package/lib/widgets/error.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteBar.js +8 -71
- package/lib/widgets/forms/autocomplete/autocompleteBar.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompleteField.js +13 -65
- package/lib/widgets/forms/autocomplete/autocompleteField.js.map +1 -1
- package/lib/widgets/forms/autocomplete/autocompletePicker.js +15 -107
- package/lib/widgets/forms/autocomplete/autocompletePicker.js.map +1 -1
- package/lib/widgets/forms/autocomplete/language.js +6 -55
- package/lib/widgets/forms/autocomplete/language.js.map +1 -1
- package/lib/widgets/forms/autocomplete/publicData.js +12 -131
- package/lib/widgets/forms/autocomplete/publicData.js.map +1 -1
- package/lib/widgets/forms/basic.js +12 -55
- package/lib/widgets/forms/basic.js.map +1 -1
- package/lib/widgets/forms/comment.js +1 -15
- package/lib/widgets/forms/comment.js.map +1 -1
- package/lib/widgets/forms/fieldFunction.js +3 -16
- package/lib/widgets/forms/fieldFunction.js.map +1 -1
- package/lib/widgets/forms/fieldParams.js +0 -12
- package/lib/widgets/forms/fieldParams.js.map +1 -1
- package/lib/widgets/forms/formStyle.js +1 -14
- package/lib/widgets/forms/formStyle.js.map +1 -1
- package/lib/widgets/forms.js +70 -474
- package/lib/widgets/forms.js.map +1 -1
- package/lib/widgets/index.js +0 -21
- package/lib/widgets/index.js.map +1 -1
- package/lib/widgets/multiSelect.js +48 -171
- package/lib/widgets/multiSelect.js.map +1 -1
- package/lib/widgets/peoplePicker.js +20 -90
- package/lib/widgets/peoplePicker.js.map +1 -1
- package/lib/widgets/widgetHelpers.js +2 -9
- package/lib/widgets/widgetHelpers.js.map +1 -1
- package/package.json +28 -28
|
@@ -1,35 +1,24 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports.IconicMultiSelect = void 0;
|
|
11
|
-
|
|
12
9
|
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
13
|
-
|
|
14
10
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
15
|
-
|
|
16
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
17
|
-
|
|
18
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
19
|
-
|
|
20
13
|
var style = _interopRequireWildcard(require("../style_multiSelect"));
|
|
21
|
-
|
|
22
14
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
23
|
-
|
|
24
15
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
25
|
-
|
|
26
16
|
/*
|
|
27
17
|
* IconicMultiSelect v0.7.0
|
|
28
18
|
* Licence: MIT
|
|
29
19
|
* (c) 2021 Sidney Wimart.
|
|
30
20
|
* repo & configuration: https://github.com/sidneywm/iconic-multiselect
|
|
31
21
|
*/
|
|
32
|
-
|
|
33
22
|
/**
|
|
34
23
|
* @version IconicMultiSelect v0.7.0
|
|
35
24
|
* @licence MIT
|
|
@@ -47,15 +36,15 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
47
36
|
*/
|
|
48
37
|
function IconicMultiSelect(_ref) {
|
|
49
38
|
var data = _ref.data,
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
39
|
+
itemTemplate = _ref.itemTemplate,
|
|
40
|
+
noData = _ref.noData,
|
|
41
|
+
noResults = _ref.noResults,
|
|
42
|
+
placeholder = _ref.placeholder,
|
|
43
|
+
select = _ref.select,
|
|
44
|
+
container = _ref.container,
|
|
45
|
+
tagTemplate = _ref.tagTemplate,
|
|
46
|
+
textField = _ref.textField,
|
|
47
|
+
valueField = _ref.valueField;
|
|
59
48
|
(0, _classCallCheck2["default"])(this, IconicMultiSelect);
|
|
60
49
|
(0, _defineProperty2["default"])(this, "_data", void 0);
|
|
61
50
|
(0, _defineProperty2["default"])(this, "_domElements", void 0);
|
|
@@ -78,19 +67,18 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
78
67
|
this._noData = noData !== null && noData !== void 0 ? noData : 'No data found.';
|
|
79
68
|
this._noResults = noResults !== null && noResults !== void 0 ? noResults : 'No results found.';
|
|
80
69
|
this._placeholder = placeholder !== null && placeholder !== void 0 ? placeholder : 'Select...';
|
|
81
|
-
this._select = select;
|
|
82
|
-
|
|
70
|
+
this._select = select;
|
|
71
|
+
// Timea added a container here
|
|
83
72
|
this._selectContainer = container;
|
|
84
73
|
this._tagTemplate = tagTemplate !== null && tagTemplate !== void 0 ? tagTemplate : null;
|
|
85
74
|
this._textField = textField !== null && textField !== void 0 ? textField : null;
|
|
86
75
|
this._valueField = valueField !== null && valueField !== void 0 ? valueField : null;
|
|
87
76
|
}
|
|
77
|
+
|
|
88
78
|
/**
|
|
89
79
|
* Initialize the Iconic Multiselect component.
|
|
90
80
|
* @public
|
|
91
81
|
*/
|
|
92
|
-
|
|
93
|
-
|
|
94
82
|
(0, _createClass2["default"])(IconicMultiSelect, [{
|
|
95
83
|
key: "init",
|
|
96
84
|
value: function init() {
|
|
@@ -99,17 +87,12 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
99
87
|
if (this._itemTemplate && this._data.length === 0) {
|
|
100
88
|
throw new Error('itemTemplate must be initialized with data from the component settings');
|
|
101
89
|
}
|
|
102
|
-
|
|
103
90
|
if (this._tagTemplate && this._data.length === 0) {
|
|
104
91
|
throw new Error('tagTemplate must be initialized with data from the component settings');
|
|
105
92
|
}
|
|
106
|
-
|
|
107
93
|
this._options = this._data.length > 0 ? this._getDataFromSettings() : this._getDataFromSelectTag();
|
|
108
|
-
|
|
109
94
|
this._renderMultiselect();
|
|
110
|
-
|
|
111
95
|
this._renderOptionsList();
|
|
112
|
-
|
|
113
96
|
this._domElements = {
|
|
114
97
|
clear: this._multiselect.querySelector('.multiselect__clear-btn'),
|
|
115
98
|
input: this._multiselect.querySelector('.multiselect__input'),
|
|
@@ -122,7 +105,6 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
122
105
|
var node = this.list[i];
|
|
123
106
|
if (callbackFn(node)) return node;
|
|
124
107
|
}
|
|
125
|
-
|
|
126
108
|
return undefined;
|
|
127
109
|
},
|
|
128
110
|
some: function some(callbackFn) {
|
|
@@ -130,25 +112,22 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
130
112
|
var node = this.list[i];
|
|
131
113
|
if (callbackFn(node, i)) return true;
|
|
132
114
|
}
|
|
133
|
-
|
|
134
115
|
return false;
|
|
135
116
|
}
|
|
136
117
|
}
|
|
137
118
|
};
|
|
138
|
-
|
|
139
119
|
this._enableEventListenners();
|
|
140
|
-
|
|
141
120
|
this._initSelectedList();
|
|
142
121
|
} else {
|
|
143
122
|
throw new Error("The selector '".concat(this._select, "' did not select any valid select tag."));
|
|
144
123
|
}
|
|
145
124
|
}
|
|
125
|
+
|
|
146
126
|
/**
|
|
147
127
|
* Subscribes to the emitted events.
|
|
148
128
|
* @param { Function } callback - Callback function which emits a custom event object.
|
|
149
129
|
* @public
|
|
150
130
|
*/
|
|
151
|
-
|
|
152
131
|
}, {
|
|
153
132
|
key: "subscribe",
|
|
154
133
|
value: function subscribe(callback) {
|
|
@@ -158,195 +137,154 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
158
137
|
throw new Error('parameter in the subscribe method is not a function');
|
|
159
138
|
}
|
|
160
139
|
}
|
|
140
|
+
|
|
161
141
|
/**
|
|
162
142
|
* Add an option to the selection list.
|
|
163
143
|
* @param { Object: { text: string; value: string; }} option
|
|
164
144
|
* @private
|
|
165
145
|
*/
|
|
166
|
-
|
|
167
146
|
}, {
|
|
168
147
|
key: "_addOptionToList",
|
|
169
148
|
value: function _addOptionToList(option, index) {
|
|
170
149
|
var _this = this;
|
|
171
|
-
|
|
172
150
|
var html = "<span class=\"multiselect__selected\" style=\"".concat(style.multiselect__selected, "\" data-value=\"").concat(option.value, "\">").concat(this._tagTemplate ? this._processTemplate(this._tagTemplate, index) : option.text, "<span class=\"multiselect__remove-btn\" style=\"").concat(style.multiselect__remove_btn, "\">").concat(this._cross, "</span></span>");
|
|
173
|
-
|
|
174
151
|
this._domElements.input.insertAdjacentHTML('beforebegin', html);
|
|
175
|
-
|
|
176
152
|
var _this$_multiselect$qu = this._multiselect.querySelector("span[data-value=\"".concat(option.value, "\"]")),
|
|
177
|
-
|
|
178
|
-
|
|
153
|
+
removeBtn = _this$_multiselect$qu.lastElementChild;
|
|
179
154
|
removeBtn.addEventListener('click', function () {
|
|
180
155
|
var target = _this._domElements.options.find(function (el) {
|
|
181
156
|
return el.dataset.value === option.value;
|
|
182
157
|
});
|
|
183
|
-
|
|
184
158
|
_this._handleOption(target);
|
|
185
159
|
});
|
|
186
160
|
}
|
|
161
|
+
|
|
187
162
|
/**
|
|
188
163
|
* Clears all selected options.
|
|
189
164
|
* @private
|
|
190
165
|
*/
|
|
191
|
-
|
|
192
166
|
}, {
|
|
193
167
|
key: "_clearSelection",
|
|
194
168
|
value: function _clearSelection() {
|
|
195
169
|
var _this2 = this;
|
|
196
|
-
|
|
197
170
|
var _loop = function _loop(i) {
|
|
198
171
|
var option = _this2._selectedOptions[i];
|
|
199
|
-
|
|
200
172
|
var target = _this2._domElements.options.find(function (el) {
|
|
201
173
|
return el.dataset.value === option.value;
|
|
202
174
|
});
|
|
203
|
-
|
|
204
175
|
target.classList.remove('multiselect__options--selected');
|
|
205
176
|
target.setAttribute('style', style.multiselect__options);
|
|
206
|
-
|
|
207
177
|
_this2._removeOptionFromList(target.dataset.value);
|
|
208
178
|
};
|
|
209
|
-
|
|
210
179
|
for (var i = 0; i < this._selectedOptions.length; i++) {
|
|
211
180
|
_loop(i);
|
|
212
181
|
}
|
|
213
|
-
|
|
214
182
|
this._selectedOptions = [];
|
|
215
|
-
|
|
216
183
|
this._handleClearSelectionBtn();
|
|
217
|
-
|
|
218
184
|
this._handlePlaceholder();
|
|
219
|
-
|
|
220
185
|
this._dispatchEvent({
|
|
221
186
|
action: 'CLEAR_ALL_OPTIONS',
|
|
222
187
|
selection: this._selectedOptions
|
|
223
188
|
});
|
|
224
189
|
}
|
|
190
|
+
|
|
225
191
|
/**
|
|
226
192
|
* Close the options container.
|
|
227
193
|
* @private
|
|
228
194
|
*/
|
|
229
|
-
|
|
230
195
|
}, {
|
|
231
196
|
key: "_closeList",
|
|
232
197
|
value: function _closeList() {
|
|
233
198
|
this._domElements.input.value = '';
|
|
234
|
-
|
|
235
199
|
this._domElements.optionsContainer.classList.remove('visible');
|
|
236
|
-
|
|
237
200
|
this._domElements.optionsContainer.setAttribute('style', style.multiselect__options);
|
|
238
|
-
|
|
239
201
|
this._filterOptions('');
|
|
240
|
-
|
|
241
202
|
this._removeAllArrowSelected();
|
|
242
203
|
}
|
|
204
|
+
|
|
243
205
|
/**
|
|
244
206
|
* Dispatches new events.
|
|
245
207
|
* @param { object : { action: string; selection: { option: string; text: string; }[]; value?: string; } } event
|
|
246
208
|
* @private
|
|
247
209
|
*/
|
|
248
|
-
|
|
249
210
|
}, {
|
|
250
211
|
key: "_dispatchEvent",
|
|
251
212
|
value: function _dispatchEvent(event) {
|
|
252
213
|
this._event(event);
|
|
253
214
|
}
|
|
215
|
+
|
|
254
216
|
/**
|
|
255
217
|
* Enables all main event listenners.
|
|
256
218
|
* @private
|
|
257
219
|
*/
|
|
258
|
-
|
|
259
220
|
}, {
|
|
260
221
|
key: "_enableEventListenners",
|
|
261
222
|
value: function _enableEventListenners() {
|
|
262
223
|
var _this3 = this;
|
|
263
|
-
|
|
264
224
|
document.addEventListener('mouseup', function (_ref2) {
|
|
265
225
|
var target = _ref2.target;
|
|
266
|
-
|
|
267
226
|
if (!_this3._multiselect.contains(target)) {
|
|
268
227
|
_this3._filterOptions('');
|
|
269
|
-
|
|
270
228
|
_this3._closeList();
|
|
271
|
-
|
|
272
229
|
_this3._handlePlaceholder();
|
|
273
230
|
}
|
|
274
231
|
});
|
|
275
|
-
|
|
276
232
|
this._domElements.clear.addEventListener('click', function () {
|
|
277
233
|
_this3._clearSelection();
|
|
278
234
|
});
|
|
279
|
-
|
|
280
235
|
for (var i = 0; i < this._domElements.options.list.length; i++) {
|
|
281
236
|
var option = this._domElements.options.list[i];
|
|
282
237
|
option.addEventListener('click', function (_ref3) {
|
|
283
238
|
var target = _ref3.target;
|
|
284
|
-
|
|
285
239
|
_this3._handleOption(target);
|
|
286
|
-
|
|
287
240
|
_this3._closeList();
|
|
288
241
|
});
|
|
289
242
|
}
|
|
290
|
-
|
|
291
243
|
this._domElements.input.addEventListener('focus', function () {
|
|
292
244
|
_this3._domElements.optionsContainer.classList.add('visible');
|
|
293
|
-
|
|
294
245
|
_this3._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible);
|
|
295
246
|
});
|
|
296
|
-
|
|
297
247
|
this._domElements.input.addEventListener('input', function (_ref4) {
|
|
298
248
|
var value = _ref4.target.value;
|
|
299
|
-
|
|
300
249
|
if (_this3._domElements.options.list.length > 0) {
|
|
301
250
|
_this3._filterOptions(value);
|
|
302
251
|
}
|
|
303
252
|
});
|
|
304
|
-
|
|
305
253
|
this._domElements.input.addEventListener('keydown', function (e) {
|
|
306
254
|
_this3._handleArrows(e);
|
|
307
|
-
|
|
308
255
|
_this3._handleBackspace(e);
|
|
309
|
-
|
|
310
256
|
_this3._handleEnter(e);
|
|
311
257
|
});
|
|
312
258
|
}
|
|
259
|
+
|
|
313
260
|
/**
|
|
314
261
|
* Filters user input.
|
|
315
262
|
* @param { string } value
|
|
316
263
|
* @private
|
|
317
264
|
*/
|
|
318
|
-
|
|
319
265
|
}, {
|
|
320
266
|
key: "_filterOptions",
|
|
321
267
|
value: function _filterOptions(value) {
|
|
322
268
|
var _this4 = this;
|
|
323
|
-
|
|
324
269
|
var isOpen = this._domElements.optionsContainer.classList.contains('visible');
|
|
325
|
-
|
|
326
270
|
var valueLowerCase = value.toLowerCase();
|
|
327
|
-
|
|
328
271
|
if (!isOpen && value.length > 0) {
|
|
329
272
|
this._domElements.optionsContainer.classList.add('visible');
|
|
330
|
-
|
|
331
273
|
this._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible);
|
|
332
274
|
}
|
|
333
|
-
|
|
334
275
|
if (this._domElements.options.list.length > 0) {
|
|
335
276
|
for (var i = 0; i < this._domElements.options.list.length; i++) {
|
|
336
277
|
var el = this._domElements.options.list[i];
|
|
337
278
|
var text = this._itemTemplate ? this._data[i][this._textField] : el.textContent;
|
|
338
|
-
|
|
339
279
|
if (text.toLowerCase().substring(0, valueLowerCase.length) === valueLowerCase) {
|
|
340
280
|
this._domElements.optionsContainerList.appendChild(el);
|
|
341
281
|
} else {
|
|
342
282
|
el.parentNode && el.parentNode.removeChild(el);
|
|
343
283
|
}
|
|
344
284
|
}
|
|
345
|
-
|
|
346
285
|
var hasResults = this._domElements.options.some(function (el, index) {
|
|
347
286
|
return (_this4._itemTemplate ? _this4._data[index][_this4._textField] : el.textContent).toLowerCase().substring(0, valueLowerCase.length) === valueLowerCase;
|
|
348
287
|
});
|
|
349
|
-
|
|
350
288
|
this._showNoResults(!hasResults);
|
|
351
289
|
}
|
|
352
290
|
}
|
|
@@ -356,24 +294,21 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
356
294
|
var result = '';
|
|
357
295
|
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
|
|
358
296
|
var charactersLength = characters.length;
|
|
359
|
-
|
|
360
297
|
for (var i = 0; i < length; i++) {
|
|
361
298
|
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
362
299
|
}
|
|
363
|
-
|
|
364
300
|
return result;
|
|
365
301
|
}
|
|
302
|
+
|
|
366
303
|
/**
|
|
367
304
|
* Gets data from select tag.
|
|
368
305
|
* @private
|
|
369
306
|
*/
|
|
370
|
-
|
|
371
307
|
}, {
|
|
372
308
|
key: "_getDataFromSelectTag",
|
|
373
309
|
value: function _getDataFromSelectTag() {
|
|
374
310
|
var arr = [];
|
|
375
311
|
var options = this._select.options;
|
|
376
|
-
|
|
377
312
|
for (var i = 0; i < options.length; i++) {
|
|
378
313
|
var item = options[i];
|
|
379
314
|
arr.push({
|
|
@@ -382,14 +317,13 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
382
317
|
selected: item.hasAttribute('selected')
|
|
383
318
|
});
|
|
384
319
|
}
|
|
385
|
-
|
|
386
320
|
return arr;
|
|
387
321
|
}
|
|
322
|
+
|
|
388
323
|
/**
|
|
389
324
|
* Gets data from settings.
|
|
390
325
|
* @private
|
|
391
326
|
*/
|
|
392
|
-
|
|
393
327
|
}, {
|
|
394
328
|
key: "_getDataFromSettings",
|
|
395
329
|
value: function _getDataFromSettings() {
|
|
@@ -397,11 +331,9 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
397
331
|
var isValueFieldValid = typeof this._valueField === 'string';
|
|
398
332
|
var isTextFieldValid = typeof this._textField === 'string';
|
|
399
333
|
var arr = [];
|
|
400
|
-
|
|
401
334
|
if (!isValueFieldValid || !isTextFieldValid) {
|
|
402
335
|
throw new Error('textField and valueField must be of type string');
|
|
403
336
|
}
|
|
404
|
-
|
|
405
337
|
for (var i = 0; i < this._data.length; i++) {
|
|
406
338
|
var item = this._data[i];
|
|
407
339
|
arr.push({
|
|
@@ -410,105 +342,89 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
410
342
|
selected: typeof item.selected === 'boolean' ? item.selected : false
|
|
411
343
|
});
|
|
412
344
|
}
|
|
413
|
-
|
|
414
345
|
return arr;
|
|
415
346
|
} else {
|
|
416
347
|
return null;
|
|
417
348
|
}
|
|
418
349
|
}
|
|
350
|
+
|
|
419
351
|
/**
|
|
420
352
|
* Handles Arrow up & Down. Selection of an option is also possible with these keys.
|
|
421
353
|
* @param { Event } event
|
|
422
354
|
* @private
|
|
423
355
|
*/
|
|
424
|
-
|
|
425
356
|
}, {
|
|
426
357
|
key: "_handleArrows",
|
|
427
358
|
value: function _handleArrows(event) {
|
|
428
359
|
if (event.keyCode === 40 || event.keyCode === 38) {
|
|
429
360
|
event.preventDefault();
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
361
|
+
var isOpen = this._domElements.optionsContainer.classList.contains('visible');
|
|
362
|
+
// An updated view of the container is needed because of the filtering option
|
|
434
363
|
var optionsContainerList = this._multiselect.querySelector('.multiselect__options > ul');
|
|
435
|
-
|
|
436
364
|
if (!isOpen) {
|
|
437
365
|
this._domElements.optionsContainer.classList.add('visible');
|
|
438
|
-
|
|
439
366
|
this._domElements.optionsContainer.setAttribute('style', style.multiselect__options_visible);
|
|
440
|
-
|
|
441
367
|
optionsContainerList.firstElementChild.classList.add('arrow-selected');
|
|
442
368
|
optionsContainerList.firstElementChild.setAttribute('style', style.multiselect__options_ul_li_arrow_selected);
|
|
443
369
|
optionsContainerList.firstElementChild.scrollIntoView(false);
|
|
444
370
|
} else {
|
|
445
371
|
var selected = this._multiselect.querySelector('.multiselect__options ul li.arrow-selected');
|
|
446
|
-
|
|
447
372
|
var action = {
|
|
448
373
|
ArrowUp: 'previous',
|
|
449
374
|
Up: 'previous',
|
|
450
375
|
ArrowDown: 'next',
|
|
451
376
|
Down: 'next'
|
|
452
377
|
};
|
|
453
|
-
|
|
454
378
|
if (!selected) {
|
|
455
379
|
optionsContainerList.firstElementChild.classList.add('arrow-selected');
|
|
456
380
|
optionsContainerList.firstElementChild.setAttribute('style', style.multiselect__options_ul_li_arrow_selected);
|
|
457
381
|
optionsContainerList.firstElementChild.scrollIntoView(false);
|
|
458
382
|
return;
|
|
459
383
|
}
|
|
460
|
-
|
|
461
384
|
selected.classList.remove('arrow-selected');
|
|
462
385
|
selected.setAttribute('style', style.multiselect__options_ul_li);
|
|
463
|
-
selected = selected[action[event.key] + 'ElementSibling'];
|
|
386
|
+
selected = selected[action[event.key] + 'ElementSibling'];
|
|
464
387
|
|
|
388
|
+
// Go to start or end of the popup list
|
|
465
389
|
if (!selected) {
|
|
466
390
|
selected = optionsContainerList.children[action[event.key] === 'next' ? 0 : optionsContainerList.children.length - 1];
|
|
467
391
|
selected.classList.add('arrow-selected');
|
|
468
392
|
selected.setAttribute('style', style.multiselect__options_ul_li_arrow_selected);
|
|
469
|
-
|
|
470
393
|
this._scrollIntoView(optionsContainerList, selected);
|
|
471
|
-
|
|
472
394
|
return;
|
|
473
395
|
}
|
|
474
|
-
|
|
475
396
|
selected.classList.add('arrow-selected');
|
|
476
397
|
selected.setAttribute('style', style.multiselect__options_ul_li_arrow_selected);
|
|
477
|
-
|
|
478
398
|
this._scrollIntoView(optionsContainerList, selected);
|
|
479
399
|
}
|
|
480
400
|
}
|
|
481
401
|
}
|
|
402
|
+
|
|
482
403
|
/**
|
|
483
404
|
* Handles the backspace key event - Deletes the preceding option in the selection list.
|
|
484
405
|
* @param { Event } e
|
|
485
406
|
* @private
|
|
486
407
|
*/
|
|
487
|
-
|
|
488
408
|
}, {
|
|
489
409
|
key: "_handleBackspace",
|
|
490
410
|
value: function _handleBackspace(e) {
|
|
491
411
|
if (e.keyCode === 8 && e.target.value === '') {
|
|
492
412
|
var lastSelectedOption = this._selectedOptions.length > 0 ? this._selectedOptions[this._selectedOptions.length - 1] : null;
|
|
493
|
-
|
|
494
413
|
if (lastSelectedOption) {
|
|
495
414
|
var targetLastSelectedOption = this._multiselect.querySelector("li[data-value=\"".concat(lastSelectedOption.value, "\"]"));
|
|
496
|
-
|
|
497
415
|
this._handleOption(targetLastSelectedOption);
|
|
498
|
-
|
|
499
416
|
if (this._selectedOptions.length === 0) {
|
|
500
417
|
this._domElements.optionsContainer.classList.remove('visible');
|
|
501
|
-
|
|
502
418
|
this._domElements.optionsContainer.setAttribute('style', style.multiselect__options);
|
|
503
419
|
}
|
|
504
420
|
}
|
|
505
421
|
}
|
|
506
422
|
}
|
|
423
|
+
|
|
507
424
|
/**
|
|
508
425
|
* Shows clear selection button if some options are selected.
|
|
509
426
|
* @private
|
|
510
427
|
*/
|
|
511
|
-
|
|
512
428
|
}, {
|
|
513
429
|
key: "_handleClearSelectionBtn",
|
|
514
430
|
value: function _handleClearSelectionBtn() {
|
|
@@ -518,21 +434,19 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
518
434
|
this._domElements.clear.style.display = 'none';
|
|
519
435
|
}
|
|
520
436
|
}
|
|
437
|
+
|
|
521
438
|
/**
|
|
522
439
|
* Handles the enter key event.
|
|
523
440
|
* @param { Event } event
|
|
524
441
|
* @private
|
|
525
442
|
*/
|
|
526
|
-
|
|
527
443
|
}, {
|
|
528
444
|
key: "_handleEnter",
|
|
529
445
|
value: function _handleEnter(event) {
|
|
530
446
|
if (event.keyCode === 13) {
|
|
531
447
|
var selected = this._multiselect.querySelector('.multiselect__options ul li.arrow-selected');
|
|
532
|
-
|
|
533
448
|
if (selected) {
|
|
534
449
|
this._handleOption(selected);
|
|
535
|
-
|
|
536
450
|
this._closeList();
|
|
537
451
|
}
|
|
538
452
|
}
|
|
@@ -541,46 +455,34 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
541
455
|
key: "_handleOption",
|
|
542
456
|
value: function _handleOption(target) {
|
|
543
457
|
var dispatchEvent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
544
|
-
|
|
545
458
|
// Remove
|
|
546
459
|
for (var i = 0; i < this._selectedOptions.length; i++) {
|
|
547
460
|
var el = this._selectedOptions[i];
|
|
548
|
-
|
|
549
461
|
if (el.value === target.dataset.value) {
|
|
550
462
|
target.classList.remove('multiselect__options--selected');
|
|
551
463
|
target.setAttribute('style', style.multiselect__options);
|
|
552
|
-
|
|
553
464
|
this._selectedOptions.splice(i, 1);
|
|
554
|
-
|
|
555
465
|
this._removeOptionFromList(target.dataset.value);
|
|
556
|
-
|
|
557
466
|
this._handleClearSelectionBtn();
|
|
558
|
-
|
|
559
467
|
this._handlePlaceholder();
|
|
560
|
-
|
|
561
468
|
return dispatchEvent && this._dispatchEvent({
|
|
562
469
|
action: 'REMOVE_OPTION',
|
|
563
470
|
value: target.dataset.value,
|
|
564
471
|
selection: this._selectedOptions
|
|
565
472
|
});
|
|
566
473
|
}
|
|
567
|
-
}
|
|
568
|
-
|
|
474
|
+
}
|
|
569
475
|
|
|
476
|
+
// Add
|
|
570
477
|
for (var _i = 0; _i < this._options.length; _i++) {
|
|
571
478
|
var option = this._options[_i];
|
|
572
|
-
|
|
573
479
|
if (option.value === target.dataset.value) {
|
|
574
480
|
target.classList.add('multiselect__options--selected');
|
|
575
481
|
target.setAttribute('style', style.multiselect__options_selected);
|
|
576
482
|
this._selectedOptions = [].concat((0, _toConsumableArray2["default"])(this._selectedOptions), [option]);
|
|
577
|
-
|
|
578
483
|
this._addOptionToList(option, _i);
|
|
579
|
-
|
|
580
484
|
this._handleClearSelectionBtn();
|
|
581
|
-
|
|
582
485
|
this._handlePlaceholder();
|
|
583
|
-
|
|
584
486
|
return dispatchEvent && this._dispatchEvent({
|
|
585
487
|
action: 'ADD_OPTION',
|
|
586
488
|
value: target.dataset.value,
|
|
@@ -589,11 +491,11 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
589
491
|
}
|
|
590
492
|
}
|
|
591
493
|
}
|
|
494
|
+
|
|
592
495
|
/**
|
|
593
496
|
* Shows the placeholder if no options are selected.
|
|
594
497
|
* @private
|
|
595
498
|
*/
|
|
596
|
-
|
|
597
499
|
}, {
|
|
598
500
|
key: "_handlePlaceholder",
|
|
599
501
|
value: function _handlePlaceholder() {
|
|
@@ -603,43 +505,34 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
603
505
|
key: "_initSelectedList",
|
|
604
506
|
value: function _initSelectedList() {
|
|
605
507
|
var _this5 = this;
|
|
606
|
-
|
|
607
508
|
var hasItemsSelected = false;
|
|
608
|
-
|
|
609
509
|
var _loop2 = function _loop2(i) {
|
|
610
510
|
var option = _this5._options[i];
|
|
611
|
-
|
|
612
511
|
if (option.selected) {
|
|
613
512
|
hasItemsSelected = true;
|
|
614
|
-
|
|
615
513
|
var target = _this5._domElements.options.find(function (el) {
|
|
616
514
|
return el.dataset.value === option.value;
|
|
617
515
|
});
|
|
618
|
-
|
|
619
516
|
target.classList.add('multiselect__options--selected');
|
|
620
517
|
target.setAttribute('style', style.multiselect__options_selected);
|
|
621
518
|
_this5._selectedOptions = [].concat((0, _toConsumableArray2["default"])(_this5._selectedOptions), [option]);
|
|
622
|
-
|
|
623
519
|
_this5._addOptionToList(option, i);
|
|
624
520
|
}
|
|
625
521
|
};
|
|
626
|
-
|
|
627
522
|
for (var i = 0; i < this._options.length; i++) {
|
|
628
523
|
_loop2(i);
|
|
629
524
|
}
|
|
630
|
-
|
|
631
525
|
if (hasItemsSelected) {
|
|
632
526
|
this._handleClearSelectionBtn();
|
|
633
527
|
}
|
|
634
|
-
|
|
635
528
|
this._handlePlaceholder();
|
|
636
529
|
}
|
|
530
|
+
|
|
637
531
|
/**
|
|
638
532
|
* Process the custom template.
|
|
639
533
|
* @param { string } template
|
|
640
534
|
* @private
|
|
641
535
|
*/
|
|
642
|
-
|
|
643
536
|
}, {
|
|
644
537
|
key: "_processTemplate",
|
|
645
538
|
value: function _processTemplate(template, index) {
|
|
@@ -647,128 +540,113 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
647
540
|
var objAttr = template.match(/\$\{(\w+)\}/g).map(function (e) {
|
|
648
541
|
return e.replace(/\$\{|\}/g, '');
|
|
649
542
|
});
|
|
650
|
-
|
|
651
543
|
for (var i = 0; i < objAttr.length; i++) {
|
|
652
544
|
var _this$_data$index$att;
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
545
|
+
var attr = objAttr[i];
|
|
546
|
+
// eslint-disable-next-line no-useless-escape
|
|
656
547
|
processedTemplate = processedTemplate.replace("${".concat(attr, "}"), (_this$_data$index$att = this._data[index][attr]) !== null && _this$_data$index$att !== void 0 ? _this$_data$index$att : '');
|
|
657
548
|
}
|
|
658
|
-
|
|
659
549
|
return processedTemplate;
|
|
660
550
|
}
|
|
661
551
|
}, {
|
|
662
552
|
key: "_removeAllArrowSelected",
|
|
663
553
|
value: function _removeAllArrowSelected() {
|
|
664
554
|
var className = 'arrow-selected';
|
|
665
|
-
|
|
666
555
|
var target = this._domElements.options.find(function (el) {
|
|
667
556
|
return el.classList.contains(className);
|
|
668
557
|
});
|
|
669
|
-
|
|
670
558
|
target && target.classList.remove(className) && target.setAttribute('style', style.multiselect__options_ul_li);
|
|
671
559
|
}
|
|
560
|
+
|
|
672
561
|
/**
|
|
673
562
|
* Removes an option from the list.
|
|
674
563
|
* @param { string } value
|
|
675
564
|
* @private
|
|
676
565
|
*/
|
|
677
|
-
|
|
678
566
|
}, {
|
|
679
567
|
key: "_removeOptionFromList",
|
|
680
568
|
value: function _removeOptionFromList(value) {
|
|
681
569
|
var optionDom = this._multiselect.querySelector("span[data-value=\"".concat(value, "\"]"));
|
|
682
|
-
|
|
683
570
|
optionDom && optionDom.parentNode && optionDom.parentNode.removeChild(optionDom);
|
|
684
571
|
}
|
|
572
|
+
|
|
685
573
|
/**
|
|
686
574
|
* Renders the multiselect options list view.
|
|
687
575
|
* @private
|
|
688
576
|
*/
|
|
689
|
-
|
|
690
577
|
}, {
|
|
691
578
|
key: "_renderOptionsList",
|
|
692
579
|
value: function _renderOptionsList() {
|
|
693
580
|
var _this6 = this;
|
|
694
|
-
|
|
695
581
|
var html = "\n <div class=\"multiselect__options\" style=\"".concat(style.multiselect__options, "\">\n <ul style=\"").concat(style.multiselect__options_ul, "\">\n ").concat(this._options.length > 0 && !this._itemTemplate ? this._options.map(function (option) {
|
|
696
582
|
return "\n <li data-value=\"".concat(option.value, "\" style=\"").concat(style.multiselect__options_ul_li, "\">").concat(option.text, "</li>\n ");
|
|
697
583
|
}).join('') : '', "\n\n ").concat(this._options.length > 0 && this._itemTemplate ? this._options.map(function (option, index) {
|
|
698
584
|
return "\n <li data-value=\"".concat(option.value, "\" style=\"").concat(style.multiselect__options_ul_li, "\">").concat(_this6._processTemplate(_this6._itemTemplate, index), "</li>\n ");
|
|
699
585
|
}).join('') : '', "\n ").concat(this._showNoData(this._options.length === 0), "\n </ul>\n </div>\n ");
|
|
700
|
-
|
|
701
586
|
this._multiselect.insertAdjacentHTML('beforeend', html);
|
|
702
587
|
}
|
|
588
|
+
|
|
703
589
|
/**
|
|
704
590
|
* Renders the multiselect view.
|
|
705
591
|
* @private
|
|
706
592
|
*/
|
|
707
|
-
|
|
708
593
|
}, {
|
|
709
594
|
key: "_renderMultiselect",
|
|
710
595
|
value: function _renderMultiselect() {
|
|
711
596
|
this._select.style.display = 'none';
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
597
|
+
var id = 'iconic-' + this._generateId(20);
|
|
598
|
+
// Timea created dedicated div element because previous code was not rendering
|
|
716
599
|
this._multiselect = document.createElement('div');
|
|
717
|
-
|
|
718
600
|
this._multiselect.setAttribute('id', id);
|
|
719
|
-
|
|
720
601
|
this._multiselect.setAttribute('class', 'multiselect__container');
|
|
721
|
-
|
|
722
602
|
this._multiselect.setAttribute('style', style.multiselect__container);
|
|
723
|
-
|
|
724
603
|
var html = "\n <div class=\"multiselect__wrapper\" style=\"".concat(style.multiselect__wrapper, "\">\n <input class=\"multiselect__input\" style=\"").concat(style.multiselect__input, "\" placeholder=\"").concat(this._placeholder, "\" />\n </div>\n <span style=\"display: none;\" class=\"multiselect__clear-btn\" style=\"").concat(style.multiselect__clear_btn, "\">").concat(this._cross, "</span>\n ");
|
|
725
604
|
this._multiselect.innerHTML = html;
|
|
726
|
-
|
|
727
605
|
this._selectContainer.appendChild(this._multiselect);
|
|
728
606
|
}
|
|
607
|
+
|
|
729
608
|
/**
|
|
730
609
|
* ScrollIntoView - This small utility reproduces the behavior of .scrollIntoView({ block: "nearest", inline: "nearest" })
|
|
731
610
|
* This is for IE compatibility without a need of a polyfill
|
|
732
611
|
* @private
|
|
733
612
|
*/
|
|
734
|
-
|
|
735
613
|
}, {
|
|
736
614
|
key: "_scrollIntoView",
|
|
737
615
|
value: function _scrollIntoView(parent, child) {
|
|
738
616
|
var rectParent = parent.getBoundingClientRect();
|
|
739
|
-
var rectChild = child.getBoundingClientRect();
|
|
617
|
+
var rectChild = child.getBoundingClientRect();
|
|
740
618
|
|
|
619
|
+
// Detect if not visible at top and then scroll to the top
|
|
741
620
|
if (!(rectParent.top < rectChild.bottom - child.offsetHeight)) {
|
|
742
621
|
parent.scrollTop = child.clientHeight + (child.offsetTop - child.offsetHeight);
|
|
743
|
-
}
|
|
744
|
-
|
|
622
|
+
}
|
|
745
623
|
|
|
624
|
+
// Detect if not visible at bottom and then scroll to the bottom
|
|
746
625
|
if (!(rectParent.bottom > rectChild.top + child.offsetHeight)) {
|
|
747
626
|
parent.scrollTop = child.clientHeight + (child.offsetTop - child.offsetHeight) - (parent.offsetHeight - (child.offsetHeight + (child.offsetHeight - child.clientHeight)));
|
|
748
627
|
}
|
|
749
628
|
}
|
|
629
|
+
|
|
750
630
|
/**
|
|
751
631
|
* Shows a no data message.
|
|
752
632
|
* @param { boolean } condition
|
|
753
633
|
* @private
|
|
754
634
|
*/
|
|
755
|
-
|
|
756
635
|
}, {
|
|
757
636
|
key: "_showNoData",
|
|
758
637
|
value: function _showNoData(condition) {
|
|
759
638
|
return condition ? "<p class=\"multiselect__options--no-data\" style=\"".concat(style.multiselect__options_ul_p_multiselect__options_no_data, "\">").concat(this._noData, "</p>") : '';
|
|
760
639
|
}
|
|
640
|
+
|
|
761
641
|
/**
|
|
762
642
|
* Shows a no results message.
|
|
763
643
|
* @param { boolean } condition
|
|
764
644
|
* @private
|
|
765
645
|
*/
|
|
766
|
-
|
|
767
646
|
}, {
|
|
768
647
|
key: "_showNoResults",
|
|
769
648
|
value: function _showNoResults(condition) {
|
|
770
649
|
var dom = this._multiselect.querySelector('.multiselect__options--no-results');
|
|
771
|
-
|
|
772
650
|
if (condition) {
|
|
773
651
|
var html = "<p class=\"multiselect__options--no-results\" style=\"".concat(style.multiselect__options_ul_p_multiselect__options_no_results, "\">").concat(this._noResults, "</p>");
|
|
774
652
|
!dom && this._domElements.optionsContainerList.insertAdjacentHTML('beforeend', html);
|
|
@@ -779,6 +657,5 @@ var IconicMultiSelect = /*#__PURE__*/function () {
|
|
|
779
657
|
}]);
|
|
780
658
|
return IconicMultiSelect;
|
|
781
659
|
}();
|
|
782
|
-
|
|
783
660
|
exports.IconicMultiSelect = IconicMultiSelect;
|
|
784
661
|
//# sourceMappingURL=multiSelect.js.map
|