@phosphor/widgets
Version:
PhosphorJS - Widgets
289 lines (288 loc) • 8.26 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
/*-----------------------------------------------------------------------------
| Copyright (c) 2014-2017, PhosphorJS Contributors
|
| Distributed under the terms of the BSD 3-Clause License.
|
| The full license is in the file LICENSE, distributed with this software.
|----------------------------------------------------------------------------*/
var signaling_1 = require("@phosphor/signaling");
/**
* An object which holds data related to an object's title.
*
* #### Notes
* A title object is intended to hold the data necessary to display a
* header for a particular object. A common example is the `TabPanel`,
* which uses the widget title to populate the tab for a child widget.
*/
var Title = /** @class */ (function () {
/**
* Construct a new title.
*
* @param options - The options for initializing the title.
*/
function Title(options) {
this._label = '';
this._caption = '';
this._mnemonic = -1;
this._iconClass = '';
this._iconLabel = '';
this._className = '';
this._closable = false;
this._changed = new signaling_1.Signal(this);
this.owner = options.owner;
if (options.label !== undefined) {
this._label = options.label;
}
if (options.mnemonic !== undefined) {
this._mnemonic = options.mnemonic;
}
if (options.icon !== undefined) {
this._iconClass = options.icon;
}
if (options.iconClass !== undefined) {
this._iconClass = options.iconClass;
}
if (options.iconLabel !== undefined) {
this._iconLabel = options.iconLabel;
}
if (options.caption !== undefined) {
this._caption = options.caption;
}
if (options.className !== undefined) {
this._className = options.className;
}
if (options.closable !== undefined) {
this._closable = options.closable;
}
this._dataset = options.dataset || {};
}
Object.defineProperty(Title.prototype, "changed", {
/**
* A signal emitted when the state of the title changes.
*/
get: function () {
return this._changed;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "label", {
/**
* Get the label for the title.
*
* #### Notes
* The default value is an empty string.
*/
get: function () {
return this._label;
},
/**
* Set the label for the title.
*/
set: function (value) {
if (this._label === value) {
return;
}
this._label = value;
this._changed.emit(undefined);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "mnemonic", {
/**
* Get the mnemonic index for the title.
*
* #### Notes
* The default value is `-1`.
*/
get: function () {
return this._mnemonic;
},
/**
* Set the mnemonic index for the title.
*/
set: function (value) {
if (this._mnemonic === value) {
return;
}
this._mnemonic = value;
this._changed.emit(undefined);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "icon", {
/**
* @deprecated Use `iconClass` instead.
*/
get: function () {
return this.iconClass;
},
/**
* @deprecated Use `iconClass` instead.
*/
set: function (value) {
this.iconClass = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "iconClass", {
/**
* Get the icon class name for the title.
*
* #### Notes
* The default value is an empty string.
*/
get: function () {
return this._iconClass;
},
/**
* Set the icon class name for the title.
*
* #### Notes
* Multiple class names can be separated with whitespace.
*/
set: function (value) {
if (this._iconClass === value) {
return;
}
this._iconClass = value;
this._changed.emit(undefined);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "iconLabel", {
/**
* Get the icon label for the title.
*
* #### Notes
* The default value is an empty string.
*/
get: function () {
return this._iconLabel;
},
/**
* Set the icon label for the title.
*
* #### Notes
* Multiple class names can be separated with whitespace.
*/
set: function (value) {
if (this._iconLabel === value) {
return;
}
this._iconLabel = value;
this._changed.emit(undefined);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "caption", {
/**
* Get the caption for the title.
*
* #### Notes
* The default value is an empty string.
*/
get: function () {
return this._caption;
},
/**
* Set the caption for the title.
*/
set: function (value) {
if (this._caption === value) {
return;
}
this._caption = value;
this._changed.emit(undefined);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "className", {
/**
* Get the extra class name for the title.
*
* #### Notes
* The default value is an empty string.
*/
get: function () {
return this._className;
},
/**
* Set the extra class name for the title.
*
* #### Notes
* Multiple class names can be separated with whitespace.
*/
set: function (value) {
if (this._className === value) {
return;
}
this._className = value;
this._changed.emit(undefined);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "closable", {
/**
* Get the closable state for the title.
*
* #### Notes
* The default value is `false`.
*/
get: function () {
return this._closable;
},
/**
* Set the closable state for the title.
*
* #### Notes
* This controls the presence of a close icon when applicable.
*/
set: function (value) {
if (this._closable === value) {
return;
}
this._closable = value;
this._changed.emit(undefined);
},
enumerable: true,
configurable: true
});
Object.defineProperty(Title.prototype, "dataset", {
/**
* Get the dataset for the title.
*
* #### Notes
* The default value is an empty dataset.
*/
get: function () {
return this._dataset;
},
/**
* Set the dataset for the title.
*
* #### Notes
* This controls the data attributes when applicable.
*/
set: function (value) {
if (this._dataset === value) {
return;
}
this._dataset = value;
this._changed.emit(undefined);
},
enumerable: true,
configurable: true
});
return Title;
}());
exports.Title = Title;