@asd20/ui 3.2.1014 → 3.2.1016
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/package.json
CHANGED
|
@@ -250,8 +250,29 @@ export default {
|
|
|
250
250
|
detailLinkLabel: '',
|
|
251
251
|
}
|
|
252
252
|
},
|
|
253
|
+
// tabsList() {
|
|
254
|
+
// return this.messageCategories.map(c => ({
|
|
255
|
+
// label: c,
|
|
256
|
+
// hash: `#tab-${kebabCase(c)}`,
|
|
257
|
+
// active: this.tab === `#tab-${kebabCase(c)}`,
|
|
258
|
+
// }))
|
|
259
|
+
// },
|
|
253
260
|
tabsList() {
|
|
254
|
-
|
|
261
|
+
// sort categories: 'reset' tabs first (alphabetized among themselves), then the rest (alphabetized)
|
|
262
|
+
const sortedCategories = [...(this.messageCategories || [])].sort(
|
|
263
|
+
(a, b) => {
|
|
264
|
+
const aReset = this.isResetTab(a)
|
|
265
|
+
const bReset = this.isResetTab(b)
|
|
266
|
+
if (aReset && !bReset) return -1
|
|
267
|
+
if (!aReset && bReset) return 1
|
|
268
|
+
return a.localeCompare(b, undefined, {
|
|
269
|
+
sensitivity: 'base',
|
|
270
|
+
numeric: true,
|
|
271
|
+
})
|
|
272
|
+
}
|
|
273
|
+
)
|
|
274
|
+
|
|
275
|
+
return sortedCategories.map(c => ({
|
|
255
276
|
label: c,
|
|
256
277
|
hash: `#tab-${kebabCase(c)}`,
|
|
257
278
|
active: this.tab === `#tab-${kebabCase(c)}`,
|
|
@@ -267,20 +288,45 @@ export default {
|
|
|
267
288
|
}
|
|
268
289
|
})
|
|
269
290
|
},
|
|
291
|
+
// loginsByTab() {
|
|
292
|
+
// if (!this.tabsList.length || !this.logins.length) return []
|
|
293
|
+
// let logins = []
|
|
294
|
+
// for (let t of this.tabsList) {
|
|
295
|
+
// let loginsByTab = this.logins.filter(l =>
|
|
296
|
+
// l.categoryTitles.includes(t.label)
|
|
297
|
+
// )
|
|
298
|
+
// logins.push({
|
|
299
|
+
// tab: t.label,
|
|
300
|
+
// hash: t.hash,
|
|
301
|
+
// logins: loginsByTab,
|
|
302
|
+
// })
|
|
303
|
+
// }
|
|
304
|
+
// return logins
|
|
305
|
+
// },
|
|
306
|
+
|
|
270
307
|
loginsByTab() {
|
|
271
308
|
if (!this.tabsList.length || !this.logins.length) return []
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
309
|
+
const groups = []
|
|
310
|
+
|
|
311
|
+
for (const t of this.tabsList) {
|
|
312
|
+
// filter then alphabetize by title
|
|
313
|
+
const loginsForTab = this.logins
|
|
314
|
+
.filter(l => l.categoryTitles.includes(t.label))
|
|
315
|
+
.sort((a, b) =>
|
|
316
|
+
(a.title || '').localeCompare(b.title || '', undefined, {
|
|
317
|
+
sensitivity: 'base',
|
|
318
|
+
numeric: true,
|
|
319
|
+
})
|
|
320
|
+
)
|
|
321
|
+
|
|
322
|
+
groups.push({
|
|
278
323
|
tab: t.label,
|
|
279
324
|
hash: t.hash,
|
|
280
|
-
logins:
|
|
325
|
+
logins: loginsForTab,
|
|
281
326
|
})
|
|
282
327
|
}
|
|
283
|
-
|
|
328
|
+
|
|
329
|
+
return groups
|
|
284
330
|
},
|
|
285
331
|
selectedTabLogins() {
|
|
286
332
|
return this.loginsByTab.find(t => this.tab === t.hash)
|
|
@@ -291,6 +337,9 @@ export default {
|
|
|
291
337
|
window.location.hash = tab.hash
|
|
292
338
|
this.tab = tab.hash
|
|
293
339
|
},
|
|
340
|
+
isResetTab(label) {
|
|
341
|
+
return /\breset\b/i.test(label)
|
|
342
|
+
},
|
|
294
343
|
},
|
|
295
344
|
}
|
|
296
345
|
</script>
|