Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2019-06-24 05:38:05 +03:00
parent 3093e0e684
commit 350d39bd89
2 changed files with 16 additions and 9 deletions

View File

@ -47,7 +47,6 @@ body {
overflow: visible; overflow: visible;
} }
.browse-widget .list .text .key-hint { .browse-widget .list .text .key-hint {
text-decoration-skip-ink: none; text-decoration-skip-ink: none;
} }

View File

@ -299,6 +299,9 @@ var BaseItemPrototype = {
get text(){ get text(){
return this.constructor.text(this) }, return this.constructor.text(this) },
// NOTE: we are intentionally not including .index here as there are
// multiple ways to get and index...
get pathArray(){ get pathArray(){
var p = this.parent var p = this.parent
while(p.parent instanceof BaseBrowser){ while(p.parent instanceof BaseBrowser){
@ -505,6 +508,7 @@ function(item, event, evt, ...args){
// NOTE: item events do not directly trigger the original caller's handlers // NOTE: item events do not directly trigger the original caller's handlers
// those will get celled recursively when the events are propagated // those will get celled recursively when the events are propagated
// up the tree. // up the tree.
//
// XXX destructuring: should default_item get .focused??? // XXX destructuring: should default_item get .focused???
var makeItemEventMethod = var makeItemEventMethod =
module.makeItemEventMethod = module.makeItemEventMethod =
@ -1003,6 +1007,8 @@ var BaseBrowserPrototype = {
// Data generation (make)... // Data generation (make)...
__item__: BaseItem,
// Item list constructor... // Item list constructor...
// //
// .__list__(make, options) // .__list__(make, options)
@ -1073,8 +1079,6 @@ var BaseBrowserPrototype = {
__list__: function(make, options){ __list__: function(make, options){
throw new Error('.__list__(..): Not implemented.') }, throw new Error('.__list__(..): Not implemented.') },
__item__: BaseItem,
// Make extension... // Make extension...
// //
// This is called per item created by make(..) in .__list__(..) // This is called per item created by make(..) in .__list__(..)
@ -3313,6 +3317,8 @@ var HTMLBrowserPrototype = {
], ],
elementTemplate: { elementTemplate: {
__proto__: (BaseBrowser.prototype.options || {}).elementTemplate || {},
' ': { ' ': {
'class': 'separator', 'class': 'separator',
'html': '<div/>', 'html': '<div/>',
@ -3761,9 +3767,11 @@ var HTMLBrowserPrototype = {
// NOTE: DOM events trigger Browser events but not the other way // NOTE: DOM events trigger Browser events but not the other way
// around. It is not recommended to use DOM events directly. // around. It is not recommended to use DOM events directly.
// //
// XXX should buttons be active in disabled state??? // XXX need to figure out an intuitive behavior of focus + disable/enable...
// ...for enable/disable button seems logical, not so much for // ...do we skip disabled elements?
// the rest... // ...can a disabled item be focused?
// ...how do we collapse/expand a disabled root?
// ...what do we focus when toggleing disabled?
renderItem: function(item, i, context){ renderItem: function(item, i, context){
var that = this var that = this
var options = context.options || this.options || {} var options = context.options || this.options || {}
@ -3826,9 +3834,9 @@ var HTMLBrowserPrototype = {
|| elem.setAttribute('tabindex', '0') || elem.setAttribute('tabindex', '0')
Object.entries(item.attrs || {}) Object.entries(item.attrs || {})
// shorthand attrs... // shorthand attrs...
.concat([ //.concat([
].map(function(key){ //].map(function(key){
return [key, item[key]] })) // return [key, item[key]] }))
.forEach(function([key, value]){ .forEach(function([key, value]){
value !== undefined value !== undefined
&& elem.setAttribute(key, value) }) && elem.setAttribute(key, value) })