1b94590fd02ca19669dfb4b5deb563a290459d81Tilo MitraYUI.add('panel', function(Y) {
1b94590fd02ca19669dfb4b5deb563a290459d81Tilo Mitra
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo// TODO: Change this description!
1b94590fd02ca19669dfb4b5deb563a290459d81Tilo Mitra/**
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric FerraiuoloProvides a Panel widget, a widget that mimics the functionality of a regular OS
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolowindow. Comes with Standard Module support, XY Positioning, Alignment Support,
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric FerraiuoloStack (z-index) support, modality, auto-focus and auto-hide functionality, and
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuoloheader/footer button support.
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@module panel
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo**/
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolovar getClassName = Y.ClassNameManager.getClassName;
1b94590fd02ca19669dfb4b5deb563a290459d81Tilo Mitra
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo// TODO: Change this description!
1b94590fd02ca19669dfb4b5deb563a290459d81Tilo Mitra/**
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric FerraiuoloA basic Panel Widget, which can be positioned based on Page XY co-ordinates and
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolois stackable (z-index support). It also provides alignment and centering support
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuoloand uses a standard module format for it's content, with header, body and footer
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolosection support. It can be made modal, and has functionality to hide and focus
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuoloon different events. The header and footer sections can be modified to allow for
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolobutton support.
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@class Panel
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@constructor
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@extends Widget
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@uses WidgetAutohide
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@uses WidgetButtons
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@uses WidgetModality
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@uses WidgetPosition
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@uses WidgetPositionAlign
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@uses WidgetPositionConstrain
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@uses WidgetStack
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@uses WidgetStdMod
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo@since 3.4.0
1b94590fd02ca19669dfb4b5deb563a290459d81Tilo Mitra */
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric FerraiuoloY.Panel = Y.Base.create('panel', Y.Widget, [
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo // Other Widget extensions depend on these two.
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Y.WidgetPosition,
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Y.WidgetStdMod,
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Y.WidgetAutohide,
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Y.WidgetButtons,
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Y.WidgetModality,
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Y.WidgetPositionAlign,
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Y.WidgetPositionConstrain,
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Y.WidgetStack
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo], {
41dfe277865e653806b6bea886cb6409f04d48adEric Ferraiuolo // -- Public Properties ----------------------------------------------------
41dfe277865e653806b6bea886cb6409f04d48adEric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo /**
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Collection of predefined buttons mapped from name => config.
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo Panel includes a "close" button which can be use by name. When the close
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo button is in the header (which is the default), it will look like: [x].
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo See `addButton()` for a list of possible configuration values.
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo @example
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo // Panel with close button in header.
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo var panel = new Y.Panel({
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo buttons: ['close']
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo });
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo // Panel with close button in footer.
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo var otherPanel = new Y.Panel({
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo buttons: {
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo footer: ['close']
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo }
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo });
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo @property BUTTONS
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo @type Object
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo @default {close: {}}
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo @since 3.5.0
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo **/
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo BUTTONS: {
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo close: {
a8d3a22f2de4cd2b839c0982ab10ddc18362d7aaEric Ferraiuolo label : 'Close',
a8d3a22f2de4cd2b839c0982ab10ddc18362d7aaEric Ferraiuolo action : 'hide',
a8d3a22f2de4cd2b839c0982ab10ddc18362d7aaEric Ferraiuolo section: 'header',
a8d3a22f2de4cd2b839c0982ab10ddc18362d7aaEric Ferraiuolo
a8d3a22f2de4cd2b839c0982ab10ddc18362d7aaEric Ferraiuolo // Uses `type="button"` so the button's default action can still
a8d3a22f2de4cd2b839c0982ab10ddc18362d7aaEric Ferraiuolo // occur but it won't cause things like a form to submit.
a8d3a22f2de4cd2b839c0982ab10ddc18362d7aaEric Ferraiuolo template : '<button type="button" />',
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo classNames: getClassName('button', 'close')
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo }
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo }
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo}, {
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo ATTRS: {
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo // TODO: API Docs.
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo buttons: {
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo value: ['close']
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo }
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo }
5693ff1fe7eb0b49064c922e2104a56bce3e3967Eric Ferraiuolo});
1b94590fd02ca19669dfb4b5deb563a290459d81Tilo Mitra
1b94590fd02ca19669dfb4b5deb563a290459d81Tilo Mitra
9736eb294fe34560603876a0ef5bfdb01a2f3161Eric Ferraiuolo}, '@VERSION@' ,{requires:['widget', 'widget-autohide', 'widget-buttons', 'widget-modality', 'widget-position', 'widget-position-align', 'widget-position-constrain', 'widget-stack', 'widget-stdmod'], skinnable:true});