mirror of
https://github.com/kkapsner/CanvasBlocker
synced 2025-07-04 04:26:35 +02:00
parent
040acb311f
commit
f73a4ee619
5 changed files with 77 additions and 5 deletions
|
@ -23,6 +23,11 @@
|
|||
hideContainer: true,
|
||||
defaultValue: {}
|
||||
},
|
||||
{
|
||||
name: "expandStatus",
|
||||
expandContainer: true,
|
||||
defaultValue: {}
|
||||
},
|
||||
{
|
||||
name: "displayHiddenSettings",
|
||||
defaultValue: false
|
||||
|
|
|
@ -40,6 +40,7 @@
|
|||
const settings = {};
|
||||
let urlContainer;
|
||||
let hideContainer;
|
||||
let expandContainer;
|
||||
|
||||
function isDefinitionInvalid(settingDefinition, newValue){
|
||||
if (newValue === undefined && settingDefinition.optional){
|
||||
|
@ -351,6 +352,40 @@
|
|||
});
|
||||
settingDefinition.hideAble = false;
|
||||
}
|
||||
|
||||
if (settingDefinition.expandContainer){
|
||||
expandContainer = settingDefinition;
|
||||
let changeListeners = {};
|
||||
settingDefinition.setExpandByName = function(name, value){
|
||||
logging.verbose("set expand of", name, "to", value);
|
||||
const expandStore = settingDefinition.get();
|
||||
expandStore[name] = value;
|
||||
settingDefinition.set(expandStore);
|
||||
(changeListeners[name] || []).forEach(function(listener){
|
||||
listener(value);
|
||||
});
|
||||
};
|
||||
settingDefinition.getExpandByName = function(name){
|
||||
const expandStore = settingDefinition.get();
|
||||
return expandStore[name] || false;
|
||||
};
|
||||
settingDefinition.onExpandChange = function(name, listener){
|
||||
if (!changeListeners[name]){
|
||||
changeListeners[name] = [];
|
||||
}
|
||||
changeListeners[name].push(listener);
|
||||
};
|
||||
settingDefinition.on(function(event){
|
||||
const value = event.newValue;
|
||||
Object.keys(value).forEach(function(name){
|
||||
if (value[name]){
|
||||
(changeListeners[name] || []).forEach(function(listener){
|
||||
listener(true);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
scope.getDefinition = function(name){
|
||||
|
@ -366,7 +401,8 @@
|
|||
scope.getContainers = function(){
|
||||
return {
|
||||
url: Object.create(urlContainer),
|
||||
hide: Object.create(hideContainer)
|
||||
hide: Object.create(hideContainer),
|
||||
expand: Object.create(expandContainer)
|
||||
};
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue