Automated build for v0.01
This commit is contained in:
341
lib/CheckBoxStoreModel.js
Normal file
341
lib/CheckBoxStoreModel.js
Normal file
@ -0,0 +1,341 @@
|
||||
//dojo.provide("lib.CheckBoxTree");
|
||||
//dojo.provide("lib.CheckBoxStoreModel");
|
||||
|
||||
// THIS WIDGET IS BASED ON DOJO/DIJIT 1.4.0 AND WILL NOT WORK WITH PREVIOUS VERSIONS
|
||||
//
|
||||
// Release date: 02/05/2010
|
||||
//
|
||||
|
||||
//dojo.require("dijit.Tree");
|
||||
//dojo.require("dijit.form.CheckBox");
|
||||
|
||||
define(["dojo/_base/declare", "dijit/tree/TreeStoreModel"], function (declare) {
|
||||
|
||||
return declare( "lib.CheckBoxStoreModel", dijit.tree.TreeStoreModel,
|
||||
{
|
||||
// checkboxAll: Boolean
|
||||
// If true, every node in the tree will receive a checkbox regardless if the 'checkbox' attribute
|
||||
// is specified in the dojo.data.
|
||||
checkboxAll: true,
|
||||
|
||||
// checkboxState: Boolean
|
||||
// The default state applied to every checkbox unless otherwise specified in the dojo.data.
|
||||
// (see also: checkboxIdent)
|
||||
checkboxState: false,
|
||||
|
||||
// checkboxRoot: Boolean
|
||||
// If true, the root node will receive a checkbox eventhough it's not a true entry in the store.
|
||||
// This attribute is independent of the showRoot attribute of the tree itself. If the tree
|
||||
// attribute 'showRoot' is set to false to checkbox for the root will not show either.
|
||||
checkboxRoot: false,
|
||||
|
||||
// checkboxStrict: Boolean
|
||||
// If true, a strict parent-child checkbox relation is maintained. For example, if all children
|
||||
// are checked the parent will automatically be checked or if any of the children are unchecked
|
||||
// the parent will be unchecked.
|
||||
checkboxStrict: true,
|
||||
|
||||
// checkboxIdent: String
|
||||
// The attribute name (attribute of the dojo.data.item) that specifies that items checkbox initial
|
||||
// state. Example: { name:'Egypt', type:'country', checkbox: true }
|
||||
// If a dojo.data.item has no 'checkbox' attribute specified it will depend on the attribute
|
||||
// 'checkboxAll' if one will be created automatically and if so what the initial state will be as
|
||||
// specified by 'checkboxState'.
|
||||
checkboxIdent: "checkbox",
|
||||
|
||||
updateCheckbox: function(/*dojo.data.Item*/ storeItem, /*Boolean*/ newState ) {
|
||||
// summary:
|
||||
// Update the checkbox state (true/false) for the item and the associated parent and
|
||||
// child checkboxes if any.
|
||||
// description:
|
||||
// Update a single checkbox state (true/false) for the item and the associated parent
|
||||
// and child checkboxes if any. This function is called from the tree if a user checked
|
||||
// or unchecked a checkbox on the tree. The parent and child tree nodes are updated to
|
||||
// maintain consistency if 'checkboxStrict' is set to true.
|
||||
// storeItem:
|
||||
// The item in the dojo.data.store whos checkbox state needs updating.
|
||||
// newState:
|
||||
// The new state of the checkbox: true or false
|
||||
// example:
|
||||
// | model.updateCheckboxState(item, true);
|
||||
//
|
||||
|
||||
this._setCheckboxState( storeItem, newState );
|
||||
//if( this.checkboxStrict ) { I don't need all this 1-1 stuff, only parent -> child (fox)
|
||||
this._updateChildCheckbox( storeItem, newState );
|
||||
//this._updateParentCheckbox( storeItem, newState );
|
||||
//}
|
||||
},
|
||||
setAllChecked: function(checked) {
|
||||
var items = this.store._arrayOfAllItems;
|
||||
this.setCheckboxState(items, checked);
|
||||
},
|
||||
setCheckboxState: function(items, checked) {
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
this._setCheckboxState(items[i], checked);
|
||||
}
|
||||
},
|
||||
getCheckedItems: function() {
|
||||
var items = this.store._arrayOfAllItems;
|
||||
var result = [];
|
||||
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
if (this.store.getValue(items[i], 'checkbox'))
|
||||
result.push(items[i]);
|
||||
}
|
||||
|
||||
return result;
|
||||
},
|
||||
|
||||
getCheckboxState: function(/*dojo.data.Item*/ storeItem) {
|
||||
// summary:
|
||||
// Get the current checkbox state from the dojo.data.store.
|
||||
// description:
|
||||
// Get the current checkbox state from the dojo.data store. A checkbox can have three
|
||||
// different states: true, false or undefined. Undefined in this context means no
|
||||
// checkbox identifier (checkboxIdent) was found in the dojo.data store. Depending on
|
||||
// the checkbox attributes as specified above the following will take place:
|
||||
// a) If the current checkbox state is undefined and the checkbox attribute 'checkboxAll' or
|
||||
// 'checkboxRoot' is true one will be created and the default state 'checkboxState' will
|
||||
// be applied.
|
||||
// b) If the current state is undefined and 'checkboxAll' is false the state undefined remains
|
||||
// unchanged and is returned. This will prevent any tree node from creating a checkbox.
|
||||
//
|
||||
// storeItem:
|
||||
// The item in the dojo.data.store whos checkbox state is returned.
|
||||
// example:
|
||||
// | var currState = model.getCheckboxState(item);
|
||||
//
|
||||
var currState = undefined;
|
||||
|
||||
// Special handling required for the 'fake' root entry (the root is NOT a dojo.data.item).
|
||||
// this stuff is only relevant for Forest store -fox
|
||||
/* if ( storeItem == this.root ) {
|
||||
if( typeof(storeItem.checkbox) == "undefined" ) {
|
||||
this.root.checkbox = undefined; // create a new checbox reference as undefined.
|
||||
if( this.checkboxRoot ) {
|
||||
currState = this.root.checkbox = this.checkboxState;
|
||||
}
|
||||
} else {
|
||||
currState = this.root.checkbox;
|
||||
}
|
||||
} else { // a valid dojo.store.item
|
||||
currState = this.store.getValue(storeItem, this.checkboxIdent);
|
||||
if( currState == undefined && this.checkboxAll) {
|
||||
this._setCheckboxState( storeItem, this.checkboxState );
|
||||
currState = this.checkboxState;
|
||||
}
|
||||
} */
|
||||
|
||||
currState = this.store.getValue(storeItem, this.checkboxIdent);
|
||||
if( currState == undefined && this.checkboxAll) {
|
||||
this._setCheckboxState( storeItem, this.checkboxState );
|
||||
currState = this.checkboxState;
|
||||
}
|
||||
|
||||
return currState; // the current state of the checkbox (true/false or undefined)
|
||||
},
|
||||
|
||||
_setCheckboxState: function(/*dojo.data.Item*/ storeItem, /*Boolean*/ newState ) {
|
||||
// summary:
|
||||
// Set/update the checkbox state on the dojo.data store.
|
||||
// description:
|
||||
// Set/update the checkbox state on the dojo.data.store. Retreive the current
|
||||
// state of the checkbox and validate if an update is required, this will keep
|
||||
// update events to a minimum. On completion a 'onCheckboxChange' event is
|
||||
// triggered.
|
||||
// If the current state is undefined (ie: no checkbox attribute specified for
|
||||
// this dojo.data.item) the 'checkboxAll' attribute is checked to see if one
|
||||
// needs to be created. In case of the root the 'checkboxRoot' attribute is checked.
|
||||
// NOTE: the store.setValue function will create the 'checkbox' attribute for the
|
||||
// item if none exists.
|
||||
// storeItem:
|
||||
// The item in the dojo.data.store whos checkbox state is updated.
|
||||
// newState:
|
||||
// The new state of the checkbox: true or false
|
||||
// example:
|
||||
// | model.setCheckboxState(item, true);
|
||||
//
|
||||
var stateChanged = true;
|
||||
|
||||
if( storeItem != this.root ) {
|
||||
var currState = this.store.getValue(storeItem, this.checkboxIdent);
|
||||
if( currState != newState && ( currState !== undefined || this.checkboxAll ) ) {
|
||||
this.store.setValue(storeItem, this.checkboxIdent, newState);
|
||||
} else {
|
||||
stateChanged = false; // No changes to the checkbox
|
||||
}
|
||||
} else { // Tree root instance
|
||||
if( this.root.checkbox != newState && ( this.root.checkbox !== undefined || this.checkboxRoot ) ) {
|
||||
this.root.checkbox = newState;
|
||||
} else {
|
||||
stateChanged = false;
|
||||
}
|
||||
}
|
||||
if( stateChanged ) { // In case of any changes trigger the update event.
|
||||
this.onCheckboxChange(storeItem);
|
||||
}
|
||||
return stateChanged;
|
||||
},
|
||||
|
||||
_updateChildCheckbox: function(/*dojo.data.Item*/ parentItem, /*Boolean*/ newState ) {
|
||||
// summary:
|
||||
// Set all child checkboxes to true/false depending on the parent checkbox state.
|
||||
// description:
|
||||
// If a parent checkbox changes state, all child and grandchild checkboxes will be
|
||||
// updated to reflect the change. For example, if the parent state is set to true,
|
||||
// all child and grandchild checkboxes will receive that same 'true' state.
|
||||
// If a child checkbox changes state and has multiple parent, all of its parents
|
||||
// need to be re-evaluated.
|
||||
// parentItem:
|
||||
// The parent dojo.data.item whos child/grandchild checkboxes require updating.
|
||||
// newState:
|
||||
// The new state of the checkbox: true or false
|
||||
//
|
||||
|
||||
if( this.mayHaveChildren( parentItem )) {
|
||||
this.getChildren( parentItem, dojo.hitch( this,
|
||||
function( children ) {
|
||||
dojo.forEach( children, function(child) {
|
||||
if( this._setCheckboxState(child, newState) ) {
|
||||
var parents = this._getParentsItem(child);
|
||||
if( parents.length > 1 ) {
|
||||
this._updateParentCheckbox( child, newState );
|
||||
}
|
||||
}
|
||||
if( this.mayHaveChildren( child )) {
|
||||
this._updateChildCheckbox( child, newState );
|
||||
}
|
||||
}, this );
|
||||
}),
|
||||
function(err) {
|
||||
console.error(this, ": updating child checkboxes: ", err);
|
||||
}
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
_updateParentCheckbox: function(/*dojo.data.Item*/ storeItem, /*Boolean*/ newState ) {
|
||||
// summary:
|
||||
// Update the parent checkbox state depending on the state of all child checkboxes.
|
||||
// description:
|
||||
// Update the parent checkbox state depending on the state of all child checkboxes.
|
||||
// The parent checkbox automatically changes state if ALL child checkboxes are true
|
||||
// or false. If, as a result, the parent checkbox changes state, we will check if
|
||||
// its parent needs to be updated as well all the way upto the root.
|
||||
// storeItem:
|
||||
// The dojo.data.item whos parent checkboxes require updating.
|
||||
// newState:
|
||||
// The new state of the checkbox: true or false
|
||||
//
|
||||
var parents = this._getParentsItem(storeItem);
|
||||
dojo.forEach( parents, function( parentItem ) {
|
||||
if( newState ) { // new state = true (checked)
|
||||
this.getChildren( parentItem, dojo.hitch( this,
|
||||
function(siblings) {
|
||||
var allChecked = true;
|
||||
dojo.some( siblings, function(sibling) {
|
||||
siblState = this.getCheckboxState(sibling);
|
||||
if( siblState !== undefined && allChecked )
|
||||
allChecked = siblState;
|
||||
return !(allChecked);
|
||||
}, this );
|
||||
if( allChecked ) {
|
||||
this._setCheckboxState( parentItem, true );
|
||||
this._updateParentCheckbox( parentItem, true );
|
||||
}
|
||||
}),
|
||||
function(err) {
|
||||
console.error(this, ": updating parent checkboxes: ", err);
|
||||
}
|
||||
);
|
||||
} else { // new state = false (unchecked)
|
||||
if( this._setCheckboxState( parentItem, false ) ) {
|
||||
this._updateParentCheckbox( parentItem, false );
|
||||
}
|
||||
}
|
||||
}, this );
|
||||
},
|
||||
|
||||
_getParentsItem: function(/*dojo.data.Item*/ storeItem ) {
|
||||
// summary:
|
||||
// Get the parent(s) of a dojo.data item.
|
||||
// description:
|
||||
// Get the parent(s) of a dojo.data item. The '_reverseRefMap' entry of the item is
|
||||
// used to identify the parent(s). A child will have a parent reference if the parent
|
||||
// specified the '_reference' attribute.
|
||||
// For example: children:[{_reference:'Mexico'}, {_reference:'Canada'}, ...
|
||||
// storeItem:
|
||||
// The dojo.data.item whos parent(s) will be returned.
|
||||
//
|
||||
var parents = [];
|
||||
|
||||
if( storeItem != this.root ) {
|
||||
var references = storeItem[this.store._reverseRefMap];
|
||||
for(itemId in references ) {
|
||||
parents.push(this.store._itemsByIdentity[itemId]);
|
||||
}
|
||||
if (!parents.length) {
|
||||
parents.push(this.root);
|
||||
}
|
||||
}
|
||||
return parents; // parent(s) of a dojo.data.item (Array of dojo.data.items)
|
||||
},
|
||||
|
||||
validateData: function(/*dojo.data.Item*/ storeItem, /*thisObject*/ scope ) {
|
||||
// summary:
|
||||
// Validate/normalize the parent(s) checkbox data in the dojo.data store.
|
||||
// description:
|
||||
// Validate/normalize the parent-child checkbox relationship if the attribute
|
||||
// 'checkboxStrict' is set to true. This function is called as part of the post
|
||||
// creation of the Tree instance. All parent checkboxes are set to the appropriate
|
||||
// state according to the actual state(s) of their children.
|
||||
// This will potentionally overwrite whatever was specified for the parent in the
|
||||
// dojo.data store. This will garantee the tree is in a consistent state after startup.
|
||||
// storeItem:
|
||||
// The element to start traversing the dojo.data.store, typically model.root
|
||||
// scope:
|
||||
// The scope to use when this method executes.
|
||||
// example:
|
||||
// | this.model.validateData(this.model.root, this.model);
|
||||
//
|
||||
if( !scope.checkboxStrict ) {
|
||||
return;
|
||||
}
|
||||
scope.getChildren( storeItem, dojo.hitch( scope,
|
||||
function(children) {
|
||||
var allChecked = true;
|
||||
var childState;
|
||||
dojo.forEach( children, function( child ) {
|
||||
if( this.mayHaveChildren( child )) {
|
||||
this.validateData( child, this );
|
||||
}
|
||||
childState = this.getCheckboxState( child );
|
||||
if( childState !== undefined && allChecked )
|
||||
allChecked = childState;
|
||||
}, this);
|
||||
|
||||
if ( this._setCheckboxState( storeItem, allChecked) ) {
|
||||
this._updateParentCheckbox( storeItem, allChecked);
|
||||
}
|
||||
}),
|
||||
function(err) {
|
||||
console.error(this, ": validating checkbox data: ", err);
|
||||
}
|
||||
);
|
||||
},
|
||||
|
||||
onCheckboxChange: function(/*dojo.data.Item*/ storeItem ) {
|
||||
// summary:
|
||||
// Callback whenever a checkbox state has changed state, so that
|
||||
// the Tree can update the checkbox. This callback is generally
|
||||
// triggered by the '_setCheckboxState' function.
|
||||
// tags:
|
||||
// callback
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
105
lib/CheckBoxTree.js
Normal file
105
lib/CheckBoxTree.js
Normal file
@ -0,0 +1,105 @@
|
||||
define(["dojo/_base/declare", "dijit/Tree", "lib/_CheckBoxTreeNode" ], function (declare) {
|
||||
|
||||
return declare( "lib.CheckBoxTree", dijit.Tree,
|
||||
{
|
||||
|
||||
onNodeChecked: function(/*dojo.data.Item*/ storeItem, /*treeNode*/ treeNode) {
|
||||
// summary:
|
||||
// Callback when a checkbox tree node is checked
|
||||
// tags:
|
||||
// callback
|
||||
},
|
||||
|
||||
onNodeUnchecked: function(/*dojo.data.Item*/ storeItem, /* treeNode */ treeNode) {
|
||||
// summary:
|
||||
// Callback when a checkbox tree node is unchecked
|
||||
// tags:
|
||||
// callback
|
||||
},
|
||||
|
||||
_onClick: function(/*TreeNode*/ nodeWidget, /*Event*/ e) {
|
||||
// summary:
|
||||
// Translates click events into commands for the controller to process
|
||||
// description:
|
||||
// the _onClick function is called whenever a 'click' is detected. This
|
||||
// instance of _onClick only handles the click events associated with
|
||||
// the checkbox whos DOM name is INPUT.
|
||||
//
|
||||
var domElement = e.target;
|
||||
|
||||
// Only handle checkbox clicks here
|
||||
if(domElement.type != 'checkbox') {
|
||||
return this.inherited( arguments );
|
||||
}
|
||||
|
||||
this._publish("execute", { item: nodeWidget.item, node: nodeWidget} );
|
||||
// Go tell the model to update the checkbox state
|
||||
|
||||
this.model.updateCheckbox( nodeWidget.item, nodeWidget._checkbox.checked );
|
||||
// Generate some additional events
|
||||
//this.onClick( nodeWidget.item, nodeWidget, e );
|
||||
if(nodeWidget._checkbox.checked) {
|
||||
this.onNodeChecked( nodeWidget.item, nodeWidget);
|
||||
} else {
|
||||
this.onNodeUnchecked( nodeWidget.item, nodeWidget);
|
||||
}
|
||||
this.focusNode(nodeWidget);
|
||||
},
|
||||
|
||||
_onCheckboxChange: function(/*dojo.data.Item*/ storeItem ) {
|
||||
// summary:
|
||||
// Processes notification of a change to a checkbox state (triggered by the model).
|
||||
// description:
|
||||
// Whenever the model changes the state of a checkbox in the dojo.data.store it will
|
||||
// trigger the 'onCheckboxChange' event allowing the Tree to make the same changes
|
||||
// on the tree Node. There are several conditions why a tree node or checkbox does not
|
||||
// exists:
|
||||
// a) The node has not been created yet (the user has not expanded the tree node yet).
|
||||
// b) The checkbox may be null if condition (a) exists or no 'checkbox' attribute was
|
||||
// specified for the associated dojo.data.item and the attribute 'checkboxAll' is
|
||||
// set to false.
|
||||
// tags:
|
||||
// callback
|
||||
var model = this.model,
|
||||
identity = model.getIdentity(storeItem),
|
||||
nodes = this._itemNodesMap[identity];
|
||||
|
||||
// As of dijit.Tree 1.4 multiple references (parents) are supported, therefore we may have
|
||||
// to update multiple nodes which are all associated with the same dojo.data.item.
|
||||
if( nodes ) {
|
||||
dojo.forEach( nodes, function(node) {
|
||||
if( node._checkbox != null ) {
|
||||
node._checkbox.attr('checked', this.model.getCheckboxState( storeItem ));
|
||||
}
|
||||
}, this );
|
||||
}
|
||||
},
|
||||
|
||||
postCreate: function() {
|
||||
// summary:
|
||||
// Handle any specifics related to the tree and model after the instanciation of the Tree.
|
||||
// description:
|
||||
// Validate if we have a 'write' store first. Subscribe to the 'onCheckboxChange' event
|
||||
// (triggered by the model) and kickoff the initial checkbox data validation.
|
||||
//
|
||||
var store = this.model.store;
|
||||
if(!store.getFeatures()['dojo.data.api.Write']){
|
||||
throw new Error("lib.CheckboxTree: store must support dojo.data.Write");
|
||||
}
|
||||
this.connect(this.model, "onCheckboxChange", "_onCheckboxChange");
|
||||
this.model.validateData( this.model.root, this.model );
|
||||
this.inherited(arguments);
|
||||
},
|
||||
|
||||
_createTreeNode: function( args ) {
|
||||
// summary:
|
||||
// Create a new CheckboxTreeNode instance.
|
||||
// description:
|
||||
// Create a new CheckboxTreeNode instance.
|
||||
return new lib._CheckBoxTreeNode(args);
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
922
lib/MiniTemplator.class.php
Normal file
922
lib/MiniTemplator.class.php
Normal file
@ -0,0 +1,922 @@
|
||||
<?php
|
||||
/**
|
||||
* File MiniTemplator.class.php
|
||||
* @package MiniTemplator
|
||||
*/
|
||||
|
||||
/**
|
||||
* A compact template engine for HTML files.
|
||||
*
|
||||
* Requires PHP 4.0.4 or newer.
|
||||
*
|
||||
* <pre>
|
||||
* Template syntax:
|
||||
*
|
||||
* Variables:
|
||||
* ${VariableName}
|
||||
*
|
||||
* Blocks:
|
||||
* <!-- $BeginBlock BlockName -->
|
||||
* ... block content ...
|
||||
* <!-- $EndBlock BlockName -->
|
||||
*
|
||||
* Include a subtemplate:
|
||||
* <!-- $Include RelativeFileName -->
|
||||
* </pre>
|
||||
*
|
||||
* <pre>
|
||||
* General remarks:
|
||||
* - Variable names and block names are case-insensitive.
|
||||
* - The same variable may be used multiple times within a template.
|
||||
* - Blocks can be nested.
|
||||
* - Multiple blocks with the same name may occur within a template.
|
||||
* </pre>
|
||||
*
|
||||
* <pre>
|
||||
* Public methods:
|
||||
* readTemplateFromFile - Reads the template from a file.
|
||||
* setTemplateString - Assigns a new template string.
|
||||
* setVariable - Sets a template variable.
|
||||
* setVariableEsc - Sets a template variable to an escaped string value.
|
||||
* variableExists - Checks whether a template variable exists.
|
||||
* addBlock - Adds an instance of a template block.
|
||||
* blockExists - Checks whether a block exists.
|
||||
* reset - Clears all variables and blocks.
|
||||
* generateOutput - Generates the HTML page and writes it to the PHP output stream.
|
||||
* generateOutputToFile - Generates the HTML page and writes it to a file.
|
||||
* generateOutputToString - Generates the HTML page and writes it to a string.
|
||||
* </pre>
|
||||
*
|
||||
* Home page: {@link http://www.source-code.biz/MiniTemplator}<br>
|
||||
* License: This module is released under the GNU/LGPL license ({@link http://www.gnu.org/licenses/lgpl.html}).<br>
|
||||
* Copyright 2003: Christian d'Heureuse, Inventec Informatik AG, Switzerland. All rights reserved.<br>
|
||||
* This product is provided "as is" without warranty of any kind.<br>
|
||||
*
|
||||
* Version history:<br>
|
||||
* 2001-10-24 Christian d'Heureuse (chdh): VBasic version created.<br>
|
||||
* 2002-01-26 Markus Angst: ported to PHP4.<br>
|
||||
* 2003-04-07 chdh: changes to adjust to Java version.<br>
|
||||
* 2003-07-08 chdh: Method variableExists added.
|
||||
* Method setVariable changed to trigger an error when the variable does not exist.<br>
|
||||
* 2004-04-07 chdh: Parameter isOptional added to method setVariable.
|
||||
* Licensing changed from GPL to LGPL.<br>
|
||||
* 2004-04-18 chdh: Method blockExists added.<br>
|
||||
* 2004-10-28 chdh:<br>
|
||||
* Method setVariableEsc added.<br>
|
||||
* Multiple blocks with the same name may now occur within a template.<br>
|
||||
* No error ("unknown command") is generated any more, if a HTML comment starts with "${".<br>
|
||||
* 2004-11-06 chdh:<br>
|
||||
* "$Include" command implemented.<br>
|
||||
* 2004-11-20 chdh:<br>
|
||||
* "$Include" command changed so that the command text is not copied to the output file.<br>
|
||||
*/
|
||||
|
||||
class MiniTemplator {
|
||||
|
||||
//--- public member variables ---------------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Base path for relative file names of subtemplates (for the $Include command).
|
||||
* This path is prepended to the subtemplate file names. It must be set before
|
||||
* readTemplateFromFile or setTemplateString.
|
||||
* @access public
|
||||
*/
|
||||
var $subtemplateBasePath;
|
||||
|
||||
//--- private member variables --------------------------------------------------------------------------------------
|
||||
|
||||
/**#@+
|
||||
* @access private
|
||||
*/
|
||||
|
||||
var $maxNestingLevel = 50; // maximum number of block nestings
|
||||
var $maxInclTemplateSize = 1000000; // maximum length of template string when including subtemplates
|
||||
var $template; // Template file data
|
||||
var $varTab; // variables table, array index is variable no
|
||||
// Fields:
|
||||
// varName // variable name
|
||||
// varValue // variable value
|
||||
var $varTabCnt; // no of entries used in VarTab
|
||||
var $varNameToNoMap; // maps variable names to variable numbers
|
||||
var $varRefTab; // variable references table
|
||||
// Contains an entry for each variable reference in the template. Ordered by TemplatePos.
|
||||
// Fields:
|
||||
// varNo // variable no
|
||||
// tPosBegin // template position of begin of variable reference
|
||||
// tPosEnd // template position of end of variable reference
|
||||
// blockNo // block no of the (innermost) block that contains this variable reference
|
||||
// blockVarNo // block variable no. Index into BlockInstTab.BlockVarTab
|
||||
var $varRefTabCnt; // no of entries used in VarRefTab
|
||||
var $blockTab; // Blocks table, array index is block no
|
||||
// Contains an entry for each block in the template. Ordered by TPosBegin.
|
||||
// Fields:
|
||||
// blockName // block name
|
||||
// nextWithSameName; // block no of next block with same name or -1 (blocks are backward linked in relation to template position)
|
||||
// tPosBegin // template position of begin of block
|
||||
// tPosContentsBegin // template pos of begin of block contents
|
||||
// tPosContentsEnd // template pos of end of block contents
|
||||
// tPosEnd // template position of end of block
|
||||
// nestingLevel // block nesting level
|
||||
// parentBlockNo // block no of parent block
|
||||
// definitionIsOpen // true while $BeginBlock processed but no $EndBlock
|
||||
// instances // number of instances of this block
|
||||
// firstBlockInstNo // block instance no of first instance of this block or -1
|
||||
// lastBlockInstNo // block instance no of last instance of this block or -1
|
||||
// currBlockInstNo // current block instance no, used during generation of output file
|
||||
// blockVarCnt // no of variables in block
|
||||
// blockVarNoToVarNoMap // maps block variable numbers to variable numbers
|
||||
// firstVarRefNo // variable reference no of first variable of this block or -1
|
||||
var $blockTabCnt; // no of entries used in BlockTab
|
||||
var $blockNameToNoMap; // maps block names to block numbers
|
||||
var $openBlocksTab;
|
||||
// During parsing, this table contains the block numbers of the open parent blocks (nested outer blocks).
|
||||
// Indexed by the block nesting level.
|
||||
var $blockInstTab; // block instances table
|
||||
// This table contains an entry for each block instance that has been added.
|
||||
// Indexed by BlockInstNo.
|
||||
// Fields:
|
||||
// blockNo // block number
|
||||
// instanceLevel // instance level of this block
|
||||
// InstanceLevel is an instance counter per block.
|
||||
// (In contrast to blockInstNo, which is an instance counter over the instances of all blocks)
|
||||
// parentInstLevel // instance level of parent block
|
||||
// nextBlockInstNo // pointer to next instance of this block or -1
|
||||
// Forward chain for instances of same block.
|
||||
// blockVarTab // block instance variables
|
||||
var $blockInstTabCnt; // no of entries used in BlockInstTab
|
||||
|
||||
var $currentNestingLevel; // Current block nesting level during parsing.
|
||||
var $templateValid; // true if a valid template is prepared
|
||||
var $outputMode; // 0 = to PHP output stream, 1 = to file, 2 = to string
|
||||
var $outputFileHandle; // file handle during writing of output file
|
||||
var $outputError; // true when an output error occurred
|
||||
var $outputString; // string buffer for the generated HTML page
|
||||
|
||||
/**#@-*/
|
||||
|
||||
//--- constructor ---------------------------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Constructs a MiniTemplator object.
|
||||
* @access public
|
||||
*/
|
||||
function __construct() {
|
||||
$this->templateValid = false; }
|
||||
|
||||
//--- template string handling --------------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Reads the template from a file.
|
||||
* @param string $fileName name of the file that contains the template.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access public
|
||||
*/
|
||||
function readTemplateFromFile ($fileName) {
|
||||
if (!$this->readFileIntoString($fileName,$s)) {
|
||||
$this->triggerError ("Error while reading template file " . $fileName . ".");
|
||||
return false; }
|
||||
if (!$this->setTemplateString($s)) return false;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Assigns a new template string.
|
||||
* @param string $templateString contents of the template file.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access public
|
||||
*/
|
||||
function setTemplateString ($templateString) {
|
||||
$this->templateValid = false;
|
||||
$this->template = $templateString;
|
||||
if (!$this->parseTemplate()) return false;
|
||||
$this->reset();
|
||||
$this->templateValid = true;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Loads the template string for a subtemplate (used for the $Include command).
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function loadSubtemplate ($subtemplateName, &$s) {
|
||||
$subtemplateFileName = $this->combineFileSystemPath($this->subtemplateBasePath,$subtemplateName);
|
||||
if (!$this->readFileIntoString($subtemplateFileName,$s)) {
|
||||
$this->triggerError ("Error while reading subtemplate file " . $subtemplateFileName . ".");
|
||||
return false; }
|
||||
return true; }
|
||||
|
||||
//--- template parsing ----------------------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Parses the template.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function parseTemplate() {
|
||||
$this->initParsing();
|
||||
$this->beginMainBlock();
|
||||
if (!$this->parseTemplateCommands()) return false;
|
||||
$this->endMainBlock();
|
||||
if (!$this->checkBlockDefinitionsComplete()) return false;
|
||||
if (!$this->parseTemplateVariables()) return false;
|
||||
$this->associateVariablesWithBlocks();
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function initParsing() {
|
||||
$this->varTab = array();
|
||||
$this->varTabCnt = 0;
|
||||
$this->varNameToNoMap = array();
|
||||
$this->varRefTab = array();
|
||||
$this->varRefTabCnt = 0;
|
||||
$this->blockTab = array();
|
||||
$this->blockTabCnt = 0;
|
||||
$this->blockNameToNoMap = array();
|
||||
$this->openBlocksTab = array(); }
|
||||
|
||||
/**
|
||||
* Registers the main block.
|
||||
* The main block is an implicitly defined block that covers the whole template.
|
||||
* @access private
|
||||
*/
|
||||
function beginMainBlock() {
|
||||
$blockNo = 0;
|
||||
$this->registerBlock('@@InternalMainBlock@@', $blockNo);
|
||||
$bte =& $this->blockTab[$blockNo];
|
||||
$bte['tPosBegin'] = 0;
|
||||
$bte['tPosContentsBegin'] = 0;
|
||||
$bte['nestingLevel'] = 0;
|
||||
$bte['parentBlockNo'] = -1;
|
||||
$bte['definitionIsOpen'] = true;
|
||||
$this->openBlocksTab[0] = $blockNo;
|
||||
$this->currentNestingLevel = 1; }
|
||||
|
||||
/**
|
||||
* Completes the main block registration.
|
||||
* @access private
|
||||
*/
|
||||
function endMainBlock() {
|
||||
$bte =& $this->blockTab[0];
|
||||
$bte['tPosContentsEnd'] = strlen($this->template);
|
||||
$bte['tPosEnd'] = strlen($this->template);
|
||||
$bte['definitionIsOpen'] = false;
|
||||
$this->currentNestingLevel -= 1; }
|
||||
|
||||
/**
|
||||
* Parses commands within the template in the format "<!-- $command parameters -->".
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function parseTemplateCommands() {
|
||||
$p = 0;
|
||||
while (true) {
|
||||
$p0 = strpos($this->template,'<!--',$p);
|
||||
if ($p0 === false) break;
|
||||
$p = strpos($this->template,'-->',$p0);
|
||||
if ($p === false) {
|
||||
$this->triggerError ("Invalid HTML comment in template at offset $p0.");
|
||||
return false; }
|
||||
$p += 3;
|
||||
$cmdL = substr($this->template,$p0+4,$p-$p0-7);
|
||||
if (!$this->processTemplateCommand($cmdL,$p0,$p,$resumeFromStart))
|
||||
return false;
|
||||
if ($resumeFromStart) $p = $p0; }
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function processTemplateCommand ($cmdL, $cmdTPosBegin, $cmdTPosEnd, &$resumeFromStart) {
|
||||
$resumeFromStart = false;
|
||||
$p = 0;
|
||||
$cmd = '';
|
||||
if (!$this->parseWord($cmdL,$p,$cmd)) return true;
|
||||
$parms = substr($cmdL,$p);
|
||||
switch (strtoupper($cmd)) {
|
||||
case '$BEGINBLOCK':
|
||||
if (!$this->processBeginBlockCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
|
||||
return false;
|
||||
break;
|
||||
case '$ENDBLOCK':
|
||||
if (!$this->processEndBlockCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
|
||||
return false;
|
||||
break;
|
||||
case '$INCLUDE':
|
||||
if (!$this->processincludeCmd($parms,$cmdTPosBegin,$cmdTPosEnd))
|
||||
return false;
|
||||
$resumeFromStart = true;
|
||||
break;
|
||||
default:
|
||||
if ($cmd{0} == '$' && !(strlen($cmd) >= 2 && $cmd{1} == '{')) {
|
||||
$this->triggerError ("Unknown command \"$cmd\" in template at offset $cmdTPosBegin.");
|
||||
return false; }}
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Processes the $BeginBlock command.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function processBeginBlockCmd ($parms, $cmdTPosBegin, $cmdTPosEnd) {
|
||||
$p = 0;
|
||||
if (!$this->parseWord($parms,$p,$blockName)) {
|
||||
$this->triggerError ("Missing block name in \$BeginBlock command in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
if (trim(substr($parms,$p)) != '') {
|
||||
$this->triggerError ("Extra parameter in \$BeginBlock command in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
$this->registerBlock ($blockName, $blockNo);
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
$btr['tPosBegin'] = $cmdTPosBegin;
|
||||
$btr['tPosContentsBegin'] = $cmdTPosEnd;
|
||||
$btr['nestingLevel'] = $this->currentNestingLevel;
|
||||
$btr['parentBlockNo'] = $this->openBlocksTab[$this->currentNestingLevel-1];
|
||||
$this->openBlocksTab[$this->currentNestingLevel] = $blockNo;
|
||||
$this->currentNestingLevel += 1;
|
||||
if ($this->currentNestingLevel > $this->maxNestingLevel) {
|
||||
$this->triggerError ("Block nesting overflow in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Processes the $EndBlock command.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function processEndBlockCmd ($parms, $cmdTPosBegin, $cmdTPosEnd) {
|
||||
$p = 0;
|
||||
if (!$this->parseWord($parms,$p,$blockName)) {
|
||||
$this->triggerError ("Missing block name in \$EndBlock command in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
if (trim(substr($parms,$p)) != '') {
|
||||
$this->triggerError ("Extra parameter in \$EndBlock command in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
if (!$this->lookupBlockName($blockName,$blockNo)) {
|
||||
$this->triggerError ("Undefined block name \"$blockName\" in \$EndBlock command in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
$this->currentNestingLevel -= 1;
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
if (!$btr['definitionIsOpen']) {
|
||||
$this->triggerError ("Multiple \$EndBlock command for block \"$blockName\" in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
if ($btr['nestingLevel'] != $this->currentNestingLevel) {
|
||||
$this->triggerError ("Block nesting level mismatch at \$EndBlock command for block \"$blockName\" in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
$btr['tPosContentsEnd'] = $cmdTPosBegin;
|
||||
$btr['tPosEnd'] = $cmdTPosEnd;
|
||||
$btr['definitionIsOpen'] = false;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function registerBlock($blockName, &$blockNo) {
|
||||
$blockNo = $this->blockTabCnt++;
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
$btr = array();
|
||||
$btr['blockName'] = $blockName;
|
||||
if (!$this->lookupBlockName($blockName,$btr['nextWithSameName']))
|
||||
$btr['nextWithSameName'] = -1;
|
||||
$btr['definitionIsOpen'] = true;
|
||||
$btr['instances'] = 0;
|
||||
$btr['firstBlockInstNo'] = -1;
|
||||
$btr['lastBlockInstNo'] = -1;
|
||||
$btr['blockVarCnt'] = 0;
|
||||
$btr['firstVarRefNo'] = -1;
|
||||
$btr['blockVarNoToVarNoMap'] = array();
|
||||
$this->blockNameToNoMap[strtoupper($blockName)] = $blockNo; }
|
||||
|
||||
/**
|
||||
* Checks that all block definitions are closed.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function checkBlockDefinitionsComplete() {
|
||||
for ($blockNo=0; $blockNo < $this->blockTabCnt; $blockNo++) {
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
if ($btr['definitionIsOpen']) {
|
||||
$this->triggerError ("Missing \$EndBlock command in template for block " . $btr['blockName'] . ".");
|
||||
return false; }}
|
||||
if ($this->currentNestingLevel != 0) {
|
||||
$this->triggerError ("Block nesting level error at end of template.");
|
||||
return false; }
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Processes the $Include command.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function processIncludeCmd ($parms, $cmdTPosBegin, $cmdTPosEnd) {
|
||||
$p = 0;
|
||||
if (!$this->parseWordOrQuotedString($parms,$p,$subtemplateName)) {
|
||||
$this->triggerError ("Missing or invalid subtemplate name in \$Include command in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
if (trim(substr($parms,$p)) != '') {
|
||||
$this->triggerError ("Extra parameter in \$include command in template at offset $cmdTPosBegin.");
|
||||
return false; }
|
||||
return $this->insertSubtemplate($subtemplateName,$cmdTPosBegin,$cmdTPosEnd); }
|
||||
|
||||
/**
|
||||
* Processes the $Include command.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function insertSubtemplate ($subtemplateName, $tPos1, $tPos2) {
|
||||
if (strlen($this->template) > $this->maxInclTemplateSize) {
|
||||
$this->triggerError ("Subtemplate include aborted because the internal template string is longer than $this->maxInclTemplateSize characters.");
|
||||
return false; }
|
||||
if (!$this->loadSubtemplate($subtemplateName,$subtemplate)) return false;
|
||||
// (Copying the template to insert a subtemplate is a bit slow. In a future implementation of MiniTemplator,
|
||||
// a table could be used that contains references to the string fragments.)
|
||||
$this->template = substr($this->template,0,$tPos1) . $subtemplate . substr($this->template,$tPos2);
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Parses variable references within the template in the format "${VarName}".
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function parseTemplateVariables() {
|
||||
$p = 0;
|
||||
while (true) {
|
||||
$p = strpos($this->template, '${', $p);
|
||||
if ($p === false) break;
|
||||
$p0 = $p;
|
||||
$p = strpos($this->template, '}', $p);
|
||||
if ($p === false) {
|
||||
$this->triggerError ("Invalid variable reference in template at offset $p0.");
|
||||
return false; }
|
||||
$p += 1;
|
||||
$varName = trim(substr($this->template, $p0+2, $p-$p0-3));
|
||||
if (strlen($varName) == 0) {
|
||||
$this->triggerError ("Empty variable name in template at offset $p0.");
|
||||
return false; }
|
||||
$this->registerVariableReference ($varName, $p0, $p); }
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function registerVariableReference ($varName, $tPosBegin, $tPosEnd) {
|
||||
if (!$this->lookupVariableName($varName,$varNo))
|
||||
$this->registerVariable($varName,$varNo);
|
||||
$varRefNo = $this->varRefTabCnt++;
|
||||
$vrtr =& $this->varRefTab[$varRefNo];
|
||||
$vrtr = array();
|
||||
$vrtr['tPosBegin'] = $tPosBegin;
|
||||
$vrtr['tPosEnd'] = $tPosEnd;
|
||||
$vrtr['varNo'] = $varNo; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function registerVariable ($varName, &$varNo) {
|
||||
$varNo = $this->varTabCnt++;
|
||||
$vtr =& $this->varTab[$varNo];
|
||||
$vtr = array();
|
||||
$vtr['varName'] = $varName;
|
||||
$vtr['varValue'] = '';
|
||||
$this->varNameToNoMap[strtoupper($varName)] = $varNo; }
|
||||
|
||||
/**
|
||||
* Associates variable references with blocks.
|
||||
* @access private
|
||||
*/
|
||||
function associateVariablesWithBlocks() {
|
||||
$varRefNo = 0;
|
||||
$activeBlockNo = 0;
|
||||
$nextBlockNo = 1;
|
||||
while ($varRefNo < $this->varRefTabCnt) {
|
||||
$vrtr =& $this->varRefTab[$varRefNo];
|
||||
$varRefTPos = $vrtr['tPosBegin'];
|
||||
$varNo = $vrtr['varNo'];
|
||||
if ($varRefTPos >= $this->blockTab[$activeBlockNo]['tPosEnd']) {
|
||||
$activeBlockNo = $this->blockTab[$activeBlockNo]['parentBlockNo'];
|
||||
continue; }
|
||||
if ($nextBlockNo < $this->blockTabCnt) {
|
||||
if ($varRefTPos >= $this->blockTab[$nextBlockNo]['tPosBegin']) {
|
||||
$activeBlockNo = $nextBlockNo;
|
||||
$nextBlockNo += 1;
|
||||
continue; }}
|
||||
$btr =& $this->blockTab[$activeBlockNo];
|
||||
if ($varRefTPos < $btr['tPosBegin'])
|
||||
$this->programLogicError(1);
|
||||
$blockVarNo = $btr['blockVarCnt']++;
|
||||
$btr['blockVarNoToVarNoMap'][$blockVarNo] = $varNo;
|
||||
if ($btr['firstVarRefNo'] == -1)
|
||||
$btr['firstVarRefNo'] = $varRefNo;
|
||||
$vrtr['blockNo'] = $activeBlockNo;
|
||||
$vrtr['blockVarNo'] = $blockVarNo;
|
||||
$varRefNo += 1; }}
|
||||
|
||||
//--- build up (template variables and blocks) ----------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Clears all variables and blocks.
|
||||
* This method can be used to produce another HTML page with the same
|
||||
* template. It is faster than creating another MiniTemplator object,
|
||||
* because the template does not have to be parsed again.
|
||||
* All variable values are cleared and all added block instances are deleted.
|
||||
* @access public
|
||||
*/
|
||||
function reset() {
|
||||
for ($varNo=0; $varNo<$this->varTabCnt; $varNo++)
|
||||
$this->varTab[$varNo]['varValue'] = '';
|
||||
for ($blockNo=0; $blockNo<$this->blockTabCnt; $blockNo++) {
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
$btr['instances'] = 0;
|
||||
$btr['firstBlockInstNo'] = -1;
|
||||
$btr['lastBlockInstNo'] = -1; }
|
||||
$this->blockInstTab = array();
|
||||
$this->blockInstTabCnt = 0; }
|
||||
|
||||
/**
|
||||
* Sets a template variable.
|
||||
* For variables that are used in blocks, the variable value
|
||||
* must be set before {@link addBlock} is called.
|
||||
* @param string $variableName the name of the variable to be set.
|
||||
* @param string $variableValue the new value of the variable.
|
||||
* @param boolean $isOptional Specifies whether an error should be
|
||||
* generated when the variable does not exist in the template. If
|
||||
* $isOptional is false and the variable does not exist, an error is
|
||||
* generated.
|
||||
* @return boolean true on success, or false on error (e.g. when no
|
||||
* variable with the specified name exists in the template and
|
||||
* $isOptional is false).
|
||||
* @access public
|
||||
*/
|
||||
function setVariable ($variableName, $variableValue, $isOptional=false) {
|
||||
if (!$this->templateValid) {$this->triggerError ("Template not valid."); return false; }
|
||||
if (!$this->lookupVariableName($variableName,$varNo)) {
|
||||
if ($isOptional) return true;
|
||||
$this->triggerError ("Variable \"$variableName\" not defined in template.");
|
||||
return false; }
|
||||
$this->varTab[$varNo]['varValue'] = $variableValue;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Sets a template variable to an escaped string.
|
||||
* This method is identical to (@link setVariable), except that
|
||||
* the characters <, >, &, ' and " of variableValue are
|
||||
* replaced by their corresponding HTML/XML character entity codes.
|
||||
* For variables that are used in blocks, the variable value
|
||||
* must be set before {@link addBlock} is called.
|
||||
* @param string $variableName the name of the variable to be set.
|
||||
* @param string $variableValue the new value of the variable. Special HTML/XML characters are escaped.
|
||||
* @param boolean $isOptional Specifies whether an error should be
|
||||
* generated when the variable does not exist in the template. If
|
||||
* $isOptional is false and the variable does not exist, an error is
|
||||
* generated.
|
||||
* @return boolean true on success, or false on error (e.g. when no
|
||||
* variable with the specified name exists in the template and
|
||||
* $isOptional is false).
|
||||
* @access public
|
||||
*/
|
||||
function setVariableEsc ($variableName, $variableValue, $isOptional=false) {
|
||||
return $this->setVariable($variableName,htmlspecialchars($variableValue,ENT_QUOTES),$isOptional); }
|
||||
|
||||
/**
|
||||
* Checks whether a variable with the specified name exists within the template.
|
||||
* @param string $variableName the name of the variable.
|
||||
* @return boolean true if the variable exists, or false when no
|
||||
* variable with the specified name exists in the template.
|
||||
* @access public
|
||||
*/
|
||||
function variableExists ($variableName) {
|
||||
if (!$this->templateValid) {$this->triggerError ("Template not valid."); return false; }
|
||||
return $this->lookupVariableName($variableName,$varNo); }
|
||||
|
||||
/**
|
||||
* Adds an instance of a template block.
|
||||
* If the block contains variables, these variables must be set
|
||||
* before the block is added.
|
||||
* If the block contains subblocks (nested blocks), the subblocks
|
||||
* must be added before this block is added.
|
||||
* If multiple blocks exist with the specified name, an instance
|
||||
* is added for each block occurence.
|
||||
* @param string blockName the name of the block to be added.
|
||||
* @return boolean true on success, false on error (e.g. when no
|
||||
* block with the specified name exists in the template).
|
||||
* @access public
|
||||
*/
|
||||
function addBlock($blockName) {
|
||||
if (!$this->templateValid) {$this->triggerError ("Template not valid."); return false; }
|
||||
if (!$this->lookupBlockName($blockName,$blockNo)) {
|
||||
$this->triggerError ("Block \"$blockName\" not defined in template.");
|
||||
return false; }
|
||||
while ($blockNo != -1) {
|
||||
$this->addBlockByNo($blockNo);
|
||||
$blockNo = $this->blockTab[$blockNo]['nextWithSameName']; }
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function addBlockByNo ($blockNo) {
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
$this->registerBlockInstance ($blockInstNo);
|
||||
$bitr =& $this->blockInstTab[$blockInstNo];
|
||||
if ($btr['firstBlockInstNo'] == -1)
|
||||
$btr['firstBlockInstNo'] = $blockInstNo;
|
||||
if ($btr['lastBlockInstNo'] != -1)
|
||||
$this->blockInstTab[$btr['lastBlockInstNo']]['nextBlockInstNo'] = $blockInstNo;
|
||||
// set forward pointer of chain
|
||||
$btr['lastBlockInstNo'] = $blockInstNo;
|
||||
$parentBlockNo = $btr['parentBlockNo'];
|
||||
$blockVarCnt = $btr['blockVarCnt'];
|
||||
$bitr['blockNo'] = $blockNo;
|
||||
$bitr['instanceLevel'] = $btr['instances']++;
|
||||
if ($parentBlockNo == -1)
|
||||
$bitr['parentInstLevel'] = -1;
|
||||
else
|
||||
$bitr['parentInstLevel'] = $this->blockTab[$parentBlockNo]['instances'];
|
||||
$bitr['nextBlockInstNo'] = -1;
|
||||
$bitr['blockVarTab'] = array();
|
||||
// copy instance variables for this block
|
||||
for ($blockVarNo=0; $blockVarNo<$blockVarCnt; $blockVarNo++) {
|
||||
$varNo = $btr['blockVarNoToVarNoMap'][$blockVarNo];
|
||||
$bitr['blockVarTab'][$blockVarNo] = $this->varTab[$varNo]['varValue']; }}
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function registerBlockInstance (&$blockInstNo) {
|
||||
$blockInstNo = $this->blockInstTabCnt++; }
|
||||
|
||||
/**
|
||||
* Checks whether a block with the specified name exists within the template.
|
||||
* @param string $blockName the name of the block.
|
||||
* @return boolean true if the block exists, or false when no
|
||||
* block with the specified name exists in the template.
|
||||
* @access public
|
||||
*/
|
||||
function blockExists ($blockName) {
|
||||
if (!$this->templateValid) {$this->triggerError ("Template not valid."); return false; }
|
||||
return $this->lookupBlockName($blockName,$blockNo); }
|
||||
|
||||
//--- output generation ---------------------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Generates the HTML page and writes it to the PHP output stream.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access public
|
||||
*/
|
||||
function generateOutput () {
|
||||
$this->outputMode = 0;
|
||||
if (!$this->generateOutputPage()) return false;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Generates the HTML page and writes it to a file.
|
||||
* @param string $fileName name of the output file.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access public
|
||||
*/
|
||||
function generateOutputToFile ($fileName) {
|
||||
$fh = fopen($fileName,"wb");
|
||||
if ($fh === false) return false;
|
||||
$this->outputMode = 1;
|
||||
$this->outputFileHandle = $fh;
|
||||
$ok = $this->generateOutputPage();
|
||||
fclose ($fh);
|
||||
return $ok; }
|
||||
|
||||
/**
|
||||
* Generates the HTML page and writes it to a string.
|
||||
* @param string $outputString variable that receives
|
||||
* the contents of the generated HTML page.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access public
|
||||
*/
|
||||
function generateOutputToString (&$outputString) {
|
||||
$outputString = "Error";
|
||||
$this->outputMode = 2;
|
||||
$this->outputString = "";
|
||||
if (!$this->generateOutputPage()) return false;
|
||||
$outputString = $this->outputString;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
* @return boolean true on success, false on error.
|
||||
*/
|
||||
function generateOutputPage() {
|
||||
if (!$this->templateValid) {$this->triggerError ("Template not valid."); return false; }
|
||||
if ($this->blockTab[0]['instances'] == 0)
|
||||
$this->addBlockByNo (0); // add main block
|
||||
for ($blockNo=0; $blockNo < $this->blockTabCnt; $blockNo++) {
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
$btr['currBlockInstNo'] = $btr['firstBlockInstNo']; }
|
||||
$this->outputError = false;
|
||||
$this->writeBlockInstances (0, -1);
|
||||
if ($this->outputError) return false;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Writes all instances of a block that are contained within a specific
|
||||
* parent block instance.
|
||||
* Called recursively.
|
||||
* @access private
|
||||
*/
|
||||
function writeBlockInstances ($blockNo, $parentInstLevel) {
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
while (!$this->outputError) {
|
||||
$blockInstNo = $btr['currBlockInstNo'];
|
||||
if ($blockInstNo == -1) break;
|
||||
$bitr =& $this->blockInstTab[$blockInstNo];
|
||||
if ($bitr['parentInstLevel'] < $parentInstLevel)
|
||||
$this->programLogicError (2);
|
||||
if ($bitr['parentInstLevel'] > $parentInstLevel) break;
|
||||
$this->writeBlockInstance ($blockInstNo);
|
||||
$btr['currBlockInstNo'] = $bitr['nextBlockInstNo']; }}
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function writeBlockInstance($blockInstNo) {
|
||||
$bitr =& $this->blockInstTab[$blockInstNo];
|
||||
$blockNo = $bitr['blockNo'];
|
||||
$btr =& $this->blockTab[$blockNo];
|
||||
$tPos = $btr['tPosContentsBegin'];
|
||||
$subBlockNo = $blockNo + 1;
|
||||
$varRefNo = $btr['firstVarRefNo'];
|
||||
while (!$this->outputError) {
|
||||
$tPos2 = $btr['tPosContentsEnd'];
|
||||
$kind = 0; // assume end-of-block
|
||||
if ($varRefNo != -1 && $varRefNo < $this->varRefTabCnt) { // check for variable reference
|
||||
$vrtr =& $this->varRefTab[$varRefNo];
|
||||
if ($vrtr['tPosBegin'] < $tPos) {
|
||||
$varRefNo += 1;
|
||||
continue; }
|
||||
if ($vrtr['tPosBegin'] < $tPos2) {
|
||||
$tPos2 = $vrtr['tPosBegin'];
|
||||
$kind = 1; }}
|
||||
if ($subBlockNo < $this->blockTabCnt) { // check for subblock
|
||||
$subBtr =& $this->blockTab[$subBlockNo];
|
||||
if ($subBtr['tPosBegin'] < $tPos) {
|
||||
$subBlockNo += 1;
|
||||
continue; }
|
||||
if ($subBtr['tPosBegin'] < $tPos2) {
|
||||
$tPos2 = $subBtr['tPosBegin'];
|
||||
$kind = 2; }}
|
||||
if ($tPos2 > $tPos)
|
||||
$this->writeString (substr($this->template,$tPos,$tPos2-$tPos));
|
||||
switch ($kind) {
|
||||
case 0: // end of block
|
||||
return;
|
||||
case 1: // variable
|
||||
$vrtr =& $this->varRefTab[$varRefNo];
|
||||
if ($vrtr['blockNo'] != $blockNo)
|
||||
$this->programLogicError (4);
|
||||
$variableValue = $bitr['blockVarTab'][$vrtr['blockVarNo']];
|
||||
$this->writeString ($variableValue);
|
||||
$tPos = $vrtr['tPosEnd'];
|
||||
$varRefNo += 1;
|
||||
break;
|
||||
case 2: // sub block
|
||||
$subBtr =& $this->blockTab[$subBlockNo];
|
||||
if ($subBtr['parentBlockNo'] != $blockNo)
|
||||
$this->programLogicError (3);
|
||||
$this->writeBlockInstances ($subBlockNo, $bitr['instanceLevel']); // recursive call
|
||||
$tPos = $subBtr['tPosEnd'];
|
||||
$subBlockNo += 1;
|
||||
break; }}}
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function writeString ($s) {
|
||||
if ($this->outputError) return;
|
||||
switch ($this->outputMode) {
|
||||
case 0: // output to PHP output stream
|
||||
if (!print($s))
|
||||
$this->outputError = true;
|
||||
break;
|
||||
case 1: // output to file
|
||||
$rc = fwrite($this->outputFileHandle, $s);
|
||||
if ($rc === false) $this->outputError = true;
|
||||
break;
|
||||
case 2: // output to string
|
||||
$this->outputString .= $s;
|
||||
break; }}
|
||||
|
||||
//--- name lookup routines ------------------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Maps variable name to variable number.
|
||||
* @return boolean true on success, false if the variable is not found.
|
||||
* @access private
|
||||
*/
|
||||
function lookupVariableName ($varName, &$varNo) {
|
||||
$x =& $this->varNameToNoMap[strtoupper($varName)];
|
||||
if (!isset($x)) return false;
|
||||
$varNo = $x;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* Maps block name to block number.
|
||||
* If there are multiple blocks with the same name, the block number of the last
|
||||
* registered block with that name is returned.
|
||||
* @return boolean true on success, false when the block is not found.
|
||||
* @access private
|
||||
*/
|
||||
function lookupBlockName ($blockName, &$blockNo) {
|
||||
$x =& $this->blockNameToNoMap[strtoupper($blockName)];
|
||||
if (!isset($x)) return false;
|
||||
$blockNo = $x;
|
||||
return true; }
|
||||
|
||||
//--- general utility routines -----------------------------------------------------------------------------------------
|
||||
|
||||
/**
|
||||
* Reads a file into a string.
|
||||
* @return boolean true on success, false on error.
|
||||
* @access private
|
||||
*/
|
||||
function readFileIntoString ($fileName, &$s) {
|
||||
if (function_exists('version_compare') && version_compare(phpversion(),"4.3.0",">=")) {
|
||||
$s = file_get_contents($fileName);
|
||||
if ($s === false) return false;
|
||||
return true; }
|
||||
$fh = fopen($fileName,"rb");
|
||||
if ($fh === false) return false;
|
||||
$fileSize = filesize($fileName);
|
||||
if ($fileSize === false) {fclose ($fh); return false; }
|
||||
$s = fread($fh,$fileSize);
|
||||
fclose ($fh);
|
||||
if (strlen($s) != $fileSize) return false;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
* @return boolean true on success, false when the end of the string is reached.
|
||||
*/
|
||||
function parseWord ($s, &$p, &$w) {
|
||||
$sLen = strlen($s);
|
||||
while ($p < $sLen && ord($s{$p}) <= 32) $p++;
|
||||
if ($p >= $sLen) return false;
|
||||
$p0 = $p;
|
||||
while ($p < $sLen && ord($s{$p}) > 32) $p++;
|
||||
$w = substr($s, $p0, $p - $p0);
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
* @return boolean true on success, false on error.
|
||||
*/
|
||||
function parseQuotedString ($s, &$p, &$w) {
|
||||
$sLen = strlen($s);
|
||||
while ($p < $sLen && ord($s{$p}) <= 32) $p++;
|
||||
if ($p >= $sLen) return false;
|
||||
if (substr($s,$p,1) != '"') return false;
|
||||
$p++; $p0 = $p;
|
||||
while ($p < $sLen && $s{$p} != '"') $p++;
|
||||
if ($p >= $sLen) return false;
|
||||
$w = substr($s, $p0, $p - $p0);
|
||||
$p++;
|
||||
return true; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
* @return boolean true on success, false on error.
|
||||
*/
|
||||
function parseWordOrQuotedString ($s, &$p, &$w) {
|
||||
$sLen = strlen($s);
|
||||
while ($p < $sLen && ord($s{$p}) <= 32) $p++;
|
||||
if ($p >= $sLen) return false;
|
||||
if (substr($s,$p,1) == '"')
|
||||
return $this->parseQuotedString($s,$p,$w);
|
||||
else
|
||||
return $this->parseWord($s,$p,$w); }
|
||||
|
||||
/**
|
||||
* Combine two file system paths.
|
||||
* @access private
|
||||
*/
|
||||
function combineFileSystemPath ($path1, $path2) {
|
||||
if ($path1 == '' || $path2 == '') return $path2;
|
||||
$s = $path1;
|
||||
if (substr($s,-1) != '\\' && substr($s,-1) != '/') $s = $s . "/";
|
||||
if (substr($path2,0,1) == '\\' || substr($path2,0,1) == '/')
|
||||
$s = $s . substr($path2,1);
|
||||
else
|
||||
$s = $s . $path2;
|
||||
return $s; }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function triggerError ($msg) {
|
||||
trigger_error ("MiniTemplator error: $msg", E_USER_ERROR); }
|
||||
|
||||
/**
|
||||
* @access private
|
||||
*/
|
||||
function programLogicError ($errorId) {
|
||||
die ("MiniTemplator: Program logic error $errorId.\n"); }
|
||||
|
||||
}
|
||||
?>
|
42
lib/_CheckBoxTreeNode.js
Normal file
42
lib/_CheckBoxTreeNode.js
Normal file
@ -0,0 +1,42 @@
|
||||
define(["dojo/_base/declare", "dojo/dom-construct", "dijit/Tree"], function (declare, domConstruct) {
|
||||
|
||||
return declare("lib._CheckBoxTreeNode", dijit._TreeNode,
|
||||
{
|
||||
// _checkbox: [protected] dojo.doc.element
|
||||
// Local reference to the dojo.doc.element of type 'checkbox'
|
||||
_checkbox: null,
|
||||
|
||||
_createCheckbox: function () {
|
||||
// summary:
|
||||
// Create a checkbox on the CheckBoxTreeNode
|
||||
// description:
|
||||
// Create a checkbox on the CheckBoxTreeNode. The checkbox is ONLY created if a
|
||||
// valid reference was found in the dojo.data store or the attribute 'checkboxAll'
|
||||
// is set to true. If the current state is 'undefined' no reference was found and
|
||||
// 'checkboxAll' is set to false.
|
||||
// Note: the attribute 'checkboxAll' is validated by the getCheckboxState function
|
||||
// therefore no need to do that here. (see getCheckboxState for details).
|
||||
//
|
||||
var currState = this.tree.model.getCheckboxState(this.item);
|
||||
if (currState !== undefined) {
|
||||
this._checkbox = new dijit.form.CheckBox();
|
||||
//this._checkbox = dojo.doc.createElement('input');
|
||||
this._checkbox.type = 'checkbox';
|
||||
this._checkbox.attr('checked', currState);
|
||||
domConstruct.place(this._checkbox.domNode, this.expandoNode, 'after');
|
||||
}
|
||||
},
|
||||
|
||||
postCreate: function () {
|
||||
// summary:
|
||||
// Handle the creation of the checkbox after the CheckBoxTreeNode has been instanciated.
|
||||
// description:
|
||||
// Handle the creation of the checkbox after the CheckBoxTreeNode has been instanciated.
|
||||
this._createCheckbox();
|
||||
this.inherited(arguments);
|
||||
}
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
186
lib/accept-to-gettext.php
Normal file
186
lib/accept-to-gettext.php
Normal file
@ -0,0 +1,186 @@
|
||||
<?php
|
||||
/*
|
||||
* accept-to-gettext.inc -- convert information in 'Accept-*' headers to
|
||||
* gettext language identifiers.
|
||||
* Copyright (c) 2003, Wouter Verhelst <wouter@debian.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* Usage:
|
||||
*
|
||||
* $locale=al2gt(<array of supported languages/charsets in gettext syntax>,
|
||||
* <MIME type of document>);
|
||||
* setlocale('LC_ALL', $locale); // or 'LC_MESSAGES', or whatever...
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* $langs=array('nl_BE.ISO-8859-15','nl_BE.UTF-8','en_US.UTF-8','en_GB.UTF-8');
|
||||
* $locale=al2gt($langs, 'text/html');
|
||||
* setlocale('LC_ALL', $locale);
|
||||
*
|
||||
* Note that this will send out header information (to be
|
||||
* RFC2616-compliant), so it must be called before anything is sent to
|
||||
* the user.
|
||||
*
|
||||
* Assumptions made:
|
||||
* * Charset encodings are written the same way as the Accept-Charset
|
||||
* HTTP header specifies them (RFC2616), except that they're parsed
|
||||
* case-insensitive.
|
||||
* * Country codes and language codes are the same in both gettext and
|
||||
* the Accept-Language syntax (except for the case differences, which
|
||||
* are dealt with easily). If not, some input may be ignored.
|
||||
* * The provided gettext-strings are fully qualified; i.e., no "en_US";
|
||||
* always "en_US.ISO-8859-15" or "en_US.UTF-8", or whichever has been
|
||||
* used. "en.ISO-8859-15" is OK, though.
|
||||
* * The language is more important than the charset; i.e., if the
|
||||
* following is given:
|
||||
*
|
||||
* Accept-Language: nl-be, nl;q=0.8, en-us;q=0.5, en;q=0.3
|
||||
* Accept-Charset: ISO-8859-15, utf-8;q=0.5
|
||||
*
|
||||
* And the supplied parameter contains (amongst others) nl_BE.UTF-8
|
||||
* and nl.ISO-8859-15, then nl_BE.UTF-8 will be picked.
|
||||
*
|
||||
* $Log: accept-to-gettext.inc,v $
|
||||
* Revision 1.1.1.1 2003/11/19 19:31:15 wouter
|
||||
* * moved to new CVS repo after death of the old
|
||||
* * Fixed code to apply a default to both Accept-Charset and
|
||||
* Accept-Language if none of those headers are supplied; patch from
|
||||
* Dominic Chambers <dominic@encasa.com>
|
||||
*
|
||||
* Revision 1.2 2003/08/14 10:23:59 wouter
|
||||
* Removed little error in Content-Type header syntaxis.
|
||||
*
|
||||
* 2007-04-01
|
||||
* add '@' before use of arrays, to avoid PHP warnings.
|
||||
*/
|
||||
|
||||
/* not really important, this one; perhaps I could've put it inline with
|
||||
* the rest. */
|
||||
function find_match($curlscore,$curcscore,$curgtlang,$langval,$charval,
|
||||
$gtlang)
|
||||
{
|
||||
if($curlscore < $langval) {
|
||||
$curlscore=$langval;
|
||||
$curcscore=$charval;
|
||||
$curgtlang=$gtlang;
|
||||
} else if ($curlscore == $langval) {
|
||||
if($curcscore < $charval) {
|
||||
$curcscore=$charval;
|
||||
$curgtlang=$gtlang;
|
||||
}
|
||||
}
|
||||
return array($curlscore, $curcscore, $curgtlang);
|
||||
}
|
||||
|
||||
function al2gt($gettextlangs, $mime) {
|
||||
/* default to "everything is acceptable", as RFC2616 specifies */
|
||||
$acceptLang=(($_SERVER["HTTP_ACCEPT_LANGUAGE"] == '') ? '*' :
|
||||
$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
|
||||
$acceptChar=(($_SERVER["HTTP_ACCEPT_CHARSET"] == '') ? '*' :
|
||||
$_SERVER["HTTP_ACCEPT_CHARSET"]);
|
||||
$alparts=@preg_split("/,/",$acceptLang);
|
||||
$acparts=@preg_split("/,/",$acceptChar);
|
||||
|
||||
/* Parse the contents of the Accept-Language header.*/
|
||||
foreach($alparts as $part) {
|
||||
$part=trim($part);
|
||||
if(preg_match("/;/", $part)) {
|
||||
$lang=@preg_split("/;/",$part);
|
||||
$score=@preg_split("/=/",$lang[1]);
|
||||
$alscores[$lang[0]]=$score[1];
|
||||
} else {
|
||||
$alscores[$part]=1;
|
||||
}
|
||||
}
|
||||
|
||||
/* Do the same for the Accept-Charset header. */
|
||||
|
||||
/* RFC2616: ``If no "*" is present in an Accept-Charset field, then
|
||||
* all character sets not explicitly mentioned get a quality value of
|
||||
* 0, except for ISO-8859-1, which gets a quality value of 1 if not
|
||||
* explicitly mentioned.''
|
||||
*
|
||||
* Making it 2 for the time being, so that we
|
||||
* can distinguish between "not specified" and "specified as 1" later
|
||||
* on. */
|
||||
$acscores["ISO-8859-1"]=2;
|
||||
|
||||
foreach($acparts as $part) {
|
||||
$part=trim($part);
|
||||
if(preg_match("/;/", $part)) {
|
||||
$cs=@preg_split("/;/",$part);
|
||||
$score=@preg_split("/=/",$cs[1]);
|
||||
$acscores[strtoupper($cs[0])]=$score[1];
|
||||
} else {
|
||||
$acscores[strtoupper($part)]=1;
|
||||
}
|
||||
}
|
||||
if($acscores["ISO-8859-1"]==2) {
|
||||
$acscores["ISO-8859-1"]=(isset($acscores["*"])?$acscores["*"]:1);
|
||||
}
|
||||
|
||||
/*
|
||||
* Loop through the available languages/encodings, and pick the one
|
||||
* with the highest score, excluding the ones with a charset the user
|
||||
* did not include.
|
||||
*/
|
||||
$curlscore=0;
|
||||
$curcscore=0;
|
||||
$curgtlang=NULL;
|
||||
foreach($gettextlangs as $gtlang) {
|
||||
|
||||
$tmp1=preg_replace("/\_/","-",$gtlang);
|
||||
$tmp2=@preg_split("/\./",$tmp1);
|
||||
$allang=strtolower($tmp2[0]);
|
||||
$gtcs=strtoupper($tmp2[1]);
|
||||
$noct=@preg_split("/-/",$allang);
|
||||
|
||||
$testvals=array(
|
||||
array(@$alscores[$allang], @$acscores[$gtcs]),
|
||||
array(@$alscores[$noct[0]], @$acscores[$gtcs]),
|
||||
array(@$alscores[$allang], @$acscores["*"]),
|
||||
array(@$alscores[$noct[0]], @$acscores["*"]),
|
||||
array(@$alscores["*"], @$acscores[$gtcs]),
|
||||
array(@$alscores["*"], @$acscores["*"]));
|
||||
|
||||
$found=FALSE;
|
||||
foreach($testvals as $tval) {
|
||||
if(!$found && isset($tval[0]) && isset($tval[1])) {
|
||||
$arr=find_match($curlscore, $curcscore, $curgtlang, $tval[0],
|
||||
$tval[1], $gtlang);
|
||||
$curlscore=$arr[0];
|
||||
$curcscore=$arr[1];
|
||||
$curgtlang=$arr[2];
|
||||
$found=TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* We must re-parse the gettext-string now, since we may have found it
|
||||
* through a "*" qualifier.*/
|
||||
|
||||
$gtparts=@preg_split("/\./",$curgtlang);
|
||||
$tmp=strtolower($gtparts[0]);
|
||||
$lang=preg_replace("/\_/", "-", $tmp);
|
||||
$charset=$gtparts[1];
|
||||
|
||||
header("Content-Language: $lang");
|
||||
header("Content-Type: $mime; charset=$charset");
|
||||
|
||||
return $curgtlang;
|
||||
}
|
||||
|
||||
?>
|
2
lib/dijit/BackgroundIframe.js
Normal file
2
lib/dijit/BackgroundIframe.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/BackgroundIframe",["require","./main","dojo/_base/config","dojo/dom-construct","dojo/dom-style","dojo/_base/lang","dojo/on","dojo/sniff"],function(_1,_2,_3,_4,_5,_6,on,_7){_7.add("config-bgIframe",(_7("ie")||_7("trident"))&&!/IEMobile\/10\.0/.test(navigator.userAgent));var _8=new function(){var _9=[];this.pop=function(){var _a;if(_9.length){_a=_9.pop();_a.style.display="";}else{if(_7("ie")<9){var _b=_3["dojoBlankHtmlUrl"]||_1.toUrl("dojo/resources/blank.html")||"javascript:\"\"";var _c="<iframe src='"+_b+"' role='presentation'"+" style='position: absolute; left: 0px; top: 0px;"+"z-index: -1; filter:Alpha(Opacity=\"0\");'>";_a=document.createElement(_c);}else{_a=_4.create("iframe");_a.src="javascript:\"\"";_a.className="dijitBackgroundIframe";_a.setAttribute("role","presentation");_5.set(_a,"opacity",0.1);}_a.tabIndex=-1;}return _a;};this.push=function(_d){_d.style.display="none";_9.push(_d);};}();_2.BackgroundIframe=function(_e){if(!_e.id){throw new Error("no id");}if(_7("config-bgIframe")){var _f=(this.iframe=_8.pop());_e.appendChild(_f);if(_7("ie")<7||_7("quirks")){this.resize(_e);this._conn=on(_e,"resize",_6.hitch(this,"resize",_e));}else{_5.set(_f,{width:"100%",height:"100%"});}}};_6.extend(_2.BackgroundIframe,{resize:function(_10){if(this.iframe){_5.set(this.iframe,{width:_10.offsetWidth+"px",height:_10.offsetHeight+"px"});}},destroy:function(){if(this._conn){this._conn.remove();this._conn=null;}if(this.iframe){this.iframe.parentNode.removeChild(this.iframe);_8.push(this.iframe);delete this.iframe;}}});return _2.BackgroundIframe;});
|
226
lib/dijit/CONTRIBUTING.md
Normal file
226
lib/dijit/CONTRIBUTING.md
Normal file
@ -0,0 +1,226 @@
|
||||
_Do you have a contribution? We welcome contributions, but please ensure that you read the following information
|
||||
before issuing a pull request. Also refer back to this document as a checklist before issuing your pull request.
|
||||
This will save time for everyone._
|
||||
|
||||
# Before You Start
|
||||
|
||||
## Understanding the Basics
|
||||
|
||||
If you don't understand what a *pull request* is, or how to submit one, please refer to the [help documentation][]
|
||||
provided by GitHub.
|
||||
|
||||
## Is It Really a Support Issue
|
||||
|
||||
If you aren't sure if your contribution is needed or necessary, please visit the [support forum][] before attempting to
|
||||
submit a pull request or a ticket.
|
||||
|
||||
## Search Dojo Toolkit's Bug Database
|
||||
|
||||
We require every commit to be tracked via our [bug database][]. It is useful, before you get too far, that you have
|
||||
checked that your issue isn't already known, otherwise addressed? If you think it is a valid defect or enhancement,
|
||||
please open a new ticket before submitting your pull request.
|
||||
|
||||
## Discuss Non-Trivial Contributions with the Committers
|
||||
|
||||
If your desired contribution is more than a non-trivial fix, you should discuss it on the
|
||||
[contributor's mailing list][dojo-contrib]. If you currently are not a member, you can request to be added.
|
||||
|
||||
## Contributor License Agreement
|
||||
|
||||
We require all contributions, to be covered under the JS Foundation's [Contributor License Agreement][cla]. This can
|
||||
be done electronically and essentially ensures that you are making it clear that your contributions are your
|
||||
contributions, you have the legal right to contribute and you are transferring the copyright of your works to the Dojo
|
||||
Foundation.
|
||||
|
||||
If you are an unfamiliar contributor to the committer assessing your pull request, it is best to make it clear how
|
||||
you are covered by a CLA in the notes of the pull request. A bot will verify your status.
|
||||
|
||||
If your GitHub user id you are submitting your pull request from differs from the e-mail address
|
||||
which you have signed your CLA under, you should specifically note what you have your CLA filed under.
|
||||
|
||||
# Submitting a Pull Request
|
||||
|
||||
The following are the general steps you should follow in creating a pull request. Subsequent pull requests only need
|
||||
to follow step 3 and beyond:
|
||||
|
||||
1. Fork the repository on GitHub
|
||||
2. Clone the forked repository to your machine
|
||||
3. Create a "feature" branch in your local repository
|
||||
4. Make your changes and commit them to your local repository
|
||||
5. Rebase and push your commits to your GitHub remote fork/repository
|
||||
6. Issue a Pull Request to the official repository
|
||||
7. Your Pull Request is reviewed by a committer and merged into the repository
|
||||
|
||||
*Note* While there are other ways to accomplish the steps using other tools, the examples here will assume the most
|
||||
actions will be performed via the `git` command line.
|
||||
|
||||
## 1. Fork the Repository
|
||||
|
||||
When logged into your GitHub account, and you are viewing one of the main repositories, you will see the *Fork* button.
|
||||
Clicking this button will show you which repositories your can fork to. Choose your own account. Once the process
|
||||
finishes, you will have your own repository that is "forked" from the GitHub one.
|
||||
|
||||
Forking is a GitHub term and not a git term. Git is a wholly distributed source control system and simply worries
|
||||
about local and remote repositories and allows you to manage your code against them. GitHub then adds this additional
|
||||
layer of structure of how repositories can relate to each other.
|
||||
|
||||
## 2. Clone the Forked Repository
|
||||
|
||||
Once you have successfully forked your repository, you will need to clone it locally to your machine:
|
||||
|
||||
```bash
|
||||
$ git clone --recursive git@github.com:username/dijit.git
|
||||
```
|
||||
|
||||
This will clone your fork to your current path in a directory named `dijit`.
|
||||
|
||||
It is important that you clone recursively for ``dojox``, ``demos`` or ``util``because some of the code is contained in
|
||||
submodules. You won't be able to submit your changes to the repositories that way though. If you are working on any of
|
||||
these sub-projects, you should contact those project leads to see if their workflow differs.
|
||||
|
||||
You should also setup the `upstream` repository. This will allow you to take changes from the "master" repository
|
||||
and merge them into your local clone and then push them to your GitHub fork:
|
||||
|
||||
```bash
|
||||
$ cd dojo
|
||||
$ git remote add upstream git@github.com:dojo/dijit.git
|
||||
$ git fetch upstream
|
||||
```
|
||||
|
||||
Then you can retrieve upstream changes and rebase on them into your code like this:
|
||||
|
||||
```bash
|
||||
$ git pull --rebase upstream master
|
||||
```
|
||||
|
||||
For more information on maintaining a fork, please see the GitHub Help article [Fork a Repo][] and information on
|
||||
[rebasing][] from git.
|
||||
|
||||
## 3. Create a Branch
|
||||
|
||||
The easiest workflow is to keep your master branch in sync with the upstream branch and do not locate any of your own
|
||||
commits in that branch. When you want to work on a new feature, you then ensure you are on the master branch and create
|
||||
a new branch from there. While the name of the branch can be anything, it can often be easy to use the ticket number
|
||||
you might be working on. For example:
|
||||
|
||||
```bash
|
||||
$ git checkout -b t12345 master
|
||||
Switched to a new branch 't12345'
|
||||
```
|
||||
|
||||
You will then be on the feature branch. You can verify what branch you are on like this:
|
||||
|
||||
```bash
|
||||
$ git status
|
||||
# On branch t12345
|
||||
nothing to commit, working directory clean
|
||||
```
|
||||
|
||||
## 4. Make Changes and Commit
|
||||
|
||||
Now you just need to make your changes. Once you have finished your changes (and tested them) you need to commit them
|
||||
to your local repository (assuming you have staged your changes for committing):
|
||||
|
||||
```bash
|
||||
$ git status
|
||||
# On branch t12345
|
||||
# Changes to be committed:
|
||||
# (use "git reset HEAD <file>..." to unstage)
|
||||
#
|
||||
# modified: somefile.js
|
||||
#
|
||||
$ git commit -m "Corrects some defect, fixes #12345, refs #12346"
|
||||
[t12345 0000000] Corrects some defect, fixes #12345, refs #12346
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
```
|
||||
|
||||
## 5. Rebase and Push Changes
|
||||
|
||||
If you have been working on your contribution for a while, the upstream repository may have changed. You may want to
|
||||
ensure your work is on top of the latest changes so your pull request can be applied cleanly:
|
||||
|
||||
```bash
|
||||
$ git pull --rebase upstream master
|
||||
```
|
||||
|
||||
When you are ready to push your commit to your GitHub repository for the first time on this branch you would do the
|
||||
following:
|
||||
|
||||
```bash
|
||||
$ git push -u origin t12345
|
||||
```
|
||||
|
||||
After the first time, you simply need to do:
|
||||
|
||||
```bash
|
||||
$ git push
|
||||
```
|
||||
|
||||
## 6. Issue a Pull Request
|
||||
|
||||
In order to have your commits merged into the main repository, you need to create a pull request. The instructions for
|
||||
this can be found in the GitHub Help Article [Creating a Pull Request][]. Essentially you do the following:
|
||||
|
||||
1. Go to the site for your repository.
|
||||
2. Click the Pull Request button.
|
||||
3. Select the feature branch from your repository.
|
||||
4. Enter a title and description of your pull request mentioning the corresponding [bug database][] ticket in the description.
|
||||
5. Review the commit and files changed tabs.
|
||||
6. Click `Send Pull Request`
|
||||
|
||||
You will get notified about the status of your pull request based on your GitHub settings.
|
||||
|
||||
## 7. Request is Reviewed and Merged
|
||||
|
||||
Your request will be reviewed. It may be merged directly, or you may receive feedback or questions on your pull
|
||||
request.
|
||||
|
||||
# What Makes a Successful Pull Request?
|
||||
|
||||
Having your contribution accepted is more than just the mechanics of getting your contribution into a pull request,
|
||||
there are several other things that are expected when contributing to the Dojo Toolkit which are covered below.
|
||||
|
||||
## Coding Style and Linting
|
||||
|
||||
Dojo has a very specific [coding style][styleguide]. All pull requests should adhere to this.
|
||||
|
||||
## Inline Documentation
|
||||
|
||||
Dojo has an inline API documentation called [DojoDoc][]. Any pull request should ensure it has updated the inline
|
||||
documentation appropriately or added the appropriate inline documentation.
|
||||
|
||||
## Test Cases
|
||||
|
||||
If the pull request changes the functional behaviour or is fixing a defect, the unit test cases should be modified to
|
||||
reflect this. The committer reviewing your pull request is likely to request the appropriate changes in the test
|
||||
cases. Dojo utilises [Intern][] for all new tests, and has legacy support for its previous generation test harness called [D.O.H.][] and is available as part of the [dojo/util][] repository. All new tests should be authored using Intern.
|
||||
|
||||
It is expected that you will have tested your changes against the existing test cases and appropriate platforms prior to
|
||||
submitting your pull request.
|
||||
|
||||
## Licensing
|
||||
|
||||
All of your submissions are licensed under a dual "New" BSD/AFL license.
|
||||
|
||||
## Expect Discussion and Rework
|
||||
|
||||
Unless you have been working with contributing to Dojo for a while, expect a significant amount of feedback on your
|
||||
pull requests. We are a very passionate community and even the committers often will provide robust feedback to each
|
||||
other about their code. Don't be offended by such feedback or feel that your contributions aren't welcome, it is just
|
||||
that we are quite passionate and Dojo has a long history with many things that are the "Dojo-way" which may be
|
||||
unfamiliar to those who are just starting to contribute.
|
||||
|
||||
[help documentation]: http://help.github.com/send-pull-requests
|
||||
[bug database]: http://bugs.dojotoolkit.org/
|
||||
[support forum]: http://dojotoolkit.org/community/
|
||||
[dojo-contrib]: http://mail.dojotoolkit.org/mailman/listinfo/dojo-contributors
|
||||
[cla]: http://js.foundation/CLA
|
||||
[Creating a Pull Request]: https://help.github.com/articles/creating-a-pull-request
|
||||
[Fork a Repo]: https://help.github.com/articles/fork-a-repo
|
||||
[Intern]: http://theintern.io/
|
||||
[styleguide]: http://dojotoolkit.org/reference-guide/developer/styleguide.html
|
||||
[DojoDoc]: http://dojotoolkit.org/reference-guide/developer/markup.html
|
||||
[D.O.H.]: http://dojotoolkit.org/reference-guide/util/doh.html
|
||||
[dojo/util]: https://github.com/dojo/util
|
||||
[interactive rebase]: http://git-scm.com/book/en/Git-Tools-Rewriting-History#Changing-Multiple-Commit-Messages
|
||||
[rebasing]: http://git-scm.com/book/en/Git-Branching-Rebasing
|
2
lib/dijit/Calendar.js
Normal file
2
lib/dijit/Calendar.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/Calendar",["dojo/_base/array","dojo/date","dojo/date/locale","dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/_base/kernel","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","./CalendarLite","./_Widget","./_CssStateMixin","./_TemplatedMixin","./form/DropDownButton"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,on,_b,_c,_d,_e,_f,_10){var _11=_4("dijit.Calendar",[_c,_d,_e],{baseClass:"dijitCalendar",cssStateNodes:{"decrementMonth":"dijitCalendarArrow","incrementMonth":"dijitCalendarArrow","previousYearLabelNode":"dijitCalendarPreviousYear","nextYearLabelNode":"dijitCalendarNextYear"},setValue:function(_12){_8.deprecated("dijit.Calendar:setValue() is deprecated. Use set('value', ...) instead.","","2.0");this.set("value",_12);},_createMonthWidget:function(){return new _11._MonthDropDownButton({id:this.id+"_mddb",tabIndex:-1,onMonthSelect:_a.hitch(this,"_onMonthSelect"),lang:this.lang,dateLocaleModule:this.dateLocaleModule},this.monthNode);},postCreate:function(){this.inherited(arguments);this.own(on(this.domNode,"keydown",_a.hitch(this,"_onKeyDown")),on(this.dateRowsNode,"mouseover",_a.hitch(this,"_onDayMouseOver")),on(this.dateRowsNode,"mouseout",_a.hitch(this,"_onDayMouseOut")),on(this.dateRowsNode,"mousedown",_a.hitch(this,"_onDayMouseDown")),on(this.dateRowsNode,"mouseup",_a.hitch(this,"_onDayMouseUp")));},_onMonthSelect:function(_13){var _14=new this.dateClassObj(this.currentFocus);_14.setDate(1);_14.setMonth(_13);var _15=this.dateModule.getDaysInMonth(_14);var _16=this.currentFocus.getDate();_14.setDate(Math.min(_16,_15));this._setCurrentFocusAttr(_14);},_onDayMouseOver:function(evt){var _17=_6.contains(evt.target,"dijitCalendarDateLabel")?evt.target.parentNode:evt.target;if(_17&&((_17.dijitDateValue&&!_6.contains(_17,"dijitCalendarDisabledDate"))||_17==this.previousYearLabelNode||_17==this.nextYearLabelNode)){_6.add(_17,"dijitCalendarHoveredDate");this._currentNode=_17;}},_onDayMouseOut:function(evt){if(!this._currentNode){return;}if(evt.relatedTarget&&evt.relatedTarget.parentNode==this._currentNode){return;}var cls="dijitCalendarHoveredDate";if(_6.contains(this._currentNode,"dijitCalendarActiveDate")){cls+=" dijitCalendarActiveDate";}_6.remove(this._currentNode,cls);this._currentNode=null;},_onDayMouseDown:function(evt){var _18=evt.target.parentNode;if(_18&&_18.dijitDateValue&&!_6.contains(_18,"dijitCalendarDisabledDate")){_6.add(_18,"dijitCalendarActiveDate");this._currentNode=_18;}},_onDayMouseUp:function(evt){var _19=evt.target.parentNode;if(_19&&_19.dijitDateValue){_6.remove(_19,"dijitCalendarActiveDate");}},handleKey:function(evt){var _1a=-1,_1b,_1c=this.currentFocus;switch(evt.keyCode){case _9.RIGHT_ARROW:_1a=1;case _9.LEFT_ARROW:_1b="day";if(!this.isLeftToRight()){_1a*=-1;}break;case _9.DOWN_ARROW:_1a=1;case _9.UP_ARROW:_1b="week";break;case _9.PAGE_DOWN:_1a=1;case _9.PAGE_UP:_1b=evt.ctrlKey||evt.altKey?"year":"month";break;case _9.END:_1c=this.dateModule.add(_1c,"month",1);_1b="day";case _9.HOME:_1c=new this.dateClassObj(_1c);_1c.setDate(1);break;default:return true;}if(_1b){_1c=this.dateModule.add(_1c,_1b,_1a);}this._setCurrentFocusAttr(_1c);return false;},_onKeyDown:function(evt){if(!this.handleKey(evt)){evt.stopPropagation();evt.preventDefault();}},onValueSelected:function(){},onChange:function(_1d){this.onValueSelected(_1d);},getClassForDate:function(){}});_11._MonthDropDownButton=_4("dijit.Calendar._MonthDropDownButton",_10,{onMonthSelect:function(){},postCreate:function(){this.inherited(arguments);this.dropDown=new _11._MonthDropDown({id:this.id+"_mdd",onChange:this.onMonthSelect});},_setMonthAttr:function(_1e){var _1f=this.dateLocaleModule.getNames("months","wide","standAlone",this.lang,_1e);this.dropDown.set("months",_1f);this.containerNode.innerHTML=(_b("ie")==6?"":"<div class='dijitSpacer'>"+this.dropDown.domNode.innerHTML+"</div>")+"<div class='dijitCalendarMonthLabel dijitCalendarCurrentMonthLabel'>"+_1f[_1e.getMonth()]+"</div>";}});_11._MonthDropDown=_4("dijit.Calendar._MonthDropDown",[_d,_f,_e],{months:[],baseClass:"dijitCalendarMonthMenu dijitMenu",templateString:"<div data-dojo-attach-event='ondijitclick:_onClick'></div>",_setMonthsAttr:function(_20){this.domNode.innerHTML="";_1.forEach(_20,function(_21,idx){var div=_7.create("div",{className:"dijitCalendarMonthLabel",month:idx,innerHTML:_21},this.domNode);div._cssState="dijitCalendarMonthLabel";},this);},_onClick:function(evt){this.onChange(_5.get(evt.target,"month"));},onChange:function(){}});return _11;});
|
2
lib/dijit/CalendarLite.js
Normal file
2
lib/dijit/CalendarLite.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/CheckedMenuItem.js
Normal file
2
lib/dijit/CheckedMenuItem.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/CheckedMenuItem.html":"<tr class=\"dijitReset\" data-dojo-attach-point=\"focusNode\" role=\"${role}\" tabIndex=\"-1\" aria-checked=\"${checked}\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<span class=\"dijitInline dijitIcon dijitMenuItemIcon dijitCheckedMenuItemIcon\" data-dojo-attach-point=\"iconNode\"></span>\n\t\t<span class=\"dijitMenuItemIconChar dijitCheckedMenuItemIconChar\">${!checkedChar}</span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode,labelNode,textDirNode\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\"> </td>\n</tr>\n"}});define("dijit/CheckedMenuItem",["dojo/_base/declare","dojo/dom-class","./MenuItem","dojo/text!./templates/CheckedMenuItem.html","./hccss"],function(_1,_2,_3,_4){return _1("dijit.CheckedMenuItem",_3,{baseClass:"dijitMenuItem dijitCheckedMenuItem",templateString:_4,checked:false,_setCheckedAttr:function(_5){this.domNode.setAttribute("aria-checked",_5?"true":"false");this._set("checked",_5);},iconClass:"",role:"menuitemcheckbox",checkedChar:"✓",onChange:function(){},_onClick:function(_6){if(!this.disabled){this.set("checked",!this.checked);this.onChange(this.checked);}this.onClick(_6);}});});
|
2
lib/dijit/ColorPalette.js
Normal file
2
lib/dijit/ColorPalette.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/ColorPalette.html":"<div class=\"dijitInline dijitColorPalette\" role=\"grid\">\n\t<table data-dojo-attach-point=\"paletteTableNode\" class=\"dijitPaletteTable\" cellSpacing=\"0\" cellPadding=\"0\" role=\"presentation\">\n\t\t<tbody data-dojo-attach-point=\"gridNode\"></tbody>\n\t</table>\n</div>\n"}});define("dijit/ColorPalette",["require","dojo/text!./templates/ColorPalette.html","./_Widget","./_TemplatedMixin","./_PaletteMixin","./hccss","dojo/i18n","dojo/_base/Color","dojo/_base/declare","dojo/dom-construct","dojo/string","dojo/i18n!dojo/nls/colors","dojo/colors"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b){var _c=_9("dijit.ColorPalette",[_3,_4,_5],{palette:"7x10",_palettes:{"7x10":[["white","seashell","cornsilk","lemonchiffon","lightyellow","palegreen","paleturquoise","lightcyan","lavender","plum"],["lightgray","pink","bisque","moccasin","khaki","lightgreen","lightseagreen","lightskyblue","cornflowerblue","violet"],["silver","lightcoral","sandybrown","orange","palegoldenrod","chartreuse","mediumturquoise","skyblue","mediumslateblue","orchid"],["gray","red","orangered","darkorange","yellow","limegreen","darkseagreen","royalblue","slateblue","mediumorchid"],["dimgray","crimson","chocolate","coral","gold","forestgreen","seagreen","blue","blueviolet","darkorchid"],["darkslategray","firebrick","saddlebrown","sienna","olive","green","darkcyan","mediumblue","darkslateblue","darkmagenta"],["black","darkred","maroon","brown","darkolivegreen","darkgreen","midnightblue","navy","indigo","purple"]],"3x4":[["white","lime","green","blue"],["silver","yellow","fuchsia","navy"],["gray","red","purple","black"]]},templateString:_2,baseClass:"dijitColorPalette",_dyeFactory:function(_d,_e,_f,_10){return new this._dyeClass(_d,_e,_f,_10);},buildRendering:function(){this.inherited(arguments);this._dyeClass=_9(_c._Color,{palette:this.palette});this._preparePalette(this._palettes[this.palette],_7.getLocalization("dojo","colors",this.lang));}});_c._Color=_9("dijit._Color",_8,{template:"<span class='dijitInline dijitPaletteImg'>"+"<img src='${blankGif}' alt='${alt}' title='${title}' class='dijitColorPaletteSwatch' style='background-color: ${color}'/>"+"</span>",hcTemplate:"<span class='dijitInline dijitPaletteImg' style='position: relative; overflow: hidden; height: 12px; width: 14px;'>"+"<img src='${image}' alt='${alt}' title='${title}' style='position: absolute; left: ${left}px; top: ${top}px; ${size}'/>"+"</span>",_imagePaths:{"7x10":_1.toUrl("./themes/a11y/colors7x10.png"),"3x4":_1.toUrl("./themes/a11y/colors3x4.png")},constructor:function(_11,row,col,_12){this._title=_12;this._row=row;this._col=col;this.setColor(_8.named[_11]);},getValue:function(){return this.toHex();},fillCell:function(_13,_14){var _15=_b.substitute(_6("highcontrast")?this.hcTemplate:this.template,{color:this.toHex(),blankGif:_14,alt:this._title,title:this._title,image:this._imagePaths[this.palette].toString(),left:this._col*-20-5,top:this._row*-20-5,size:this.palette=="7x10"?"height: 145px; width: 206px":"height: 64px; width: 86px"});_a.place(_15,_13);}});return _c;});
|
2
lib/dijit/ConfirmDialog.js
Normal file
2
lib/dijit/ConfirmDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/ConfirmDialog",["dojo/_base/declare","./Dialog","./_ConfirmDialogMixin"],function(_1,_2,_3){return _1("dijit.ConfirmDialog",[_2,_3],{});});
|
2
lib/dijit/ConfirmTooltipDialog.js
Normal file
2
lib/dijit/ConfirmTooltipDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/ConfirmTooltipDialog",["dojo/_base/declare","./TooltipDialog","./_ConfirmDialogMixin"],function(_1,_2,_3){return _1("dijit.ConfirmTooltipDialog",[_2,_3],{});});
|
2
lib/dijit/Declaration.js
Normal file
2
lib/dijit/Declaration.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/Declaration",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/lang","dojo/parser","dojo/query","./_Widget","./_TemplatedMixin","./_WidgetsInTemplateMixin","dojo/NodeList-dom"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9){return _3("dijit.Declaration",_7,{_noScript:true,stopParser:true,widgetClass:"",defaults:null,mixins:[],buildRendering:function(){var _a=this.srcNodeRef.parentNode.removeChild(this.srcNodeRef),_b=_6("> script[type='dojo/method']",_a).orphan(),_c=_6("> script[type='dojo/connect']",_a).orphan(),_d=_6("> script[type='dojo/aspect']",_a).orphan(),_e=_a.nodeName;var _f=this.defaults||{};_1.forEach(_b,function(s){var evt=s.getAttribute("event")||s.getAttribute("data-dojo-event"),_10=_5._functionFromScript(s,"data-dojo-");if(evt){_f[evt]=_10;}else{_d.push(s);}});if(this.mixins.length){this.mixins=_1.map(this.mixins,function(_11){return _4.getObject(_11);});}else{this.mixins=[_7,_8,_9];}_f._skipNodeCache=true;_f.templateString="<"+_e+" class='"+_a.className+"'"+" data-dojo-attach-point='"+(_a.getAttribute("data-dojo-attach-point")||_a.getAttribute("dojoAttachPoint")||"")+"' data-dojo-attach-event='"+(_a.getAttribute("data-dojo-attach-event")||_a.getAttribute("dojoAttachEvent")||"")+"' >"+_a.innerHTML.replace(/\%7B/g,"{").replace(/\%7D/g,"}")+"</"+_e+">";var wc=_3(this.widgetClass,this.mixins,_f);_1.forEach(_d,function(s){var _12=s.getAttribute("data-dojo-advice")||"after",_13=s.getAttribute("data-dojo-method")||"postscript",_14=_5._functionFromScript(s);_2.after(wc.prototype,_13,_14,true);});_1.forEach(_c,function(s){var evt=s.getAttribute("event")||s.getAttribute("data-dojo-event"),_15=_5._functionFromScript(s);_2.after(wc.prototype,evt,_15,true);});}});});
|
2
lib/dijit/Destroyable.js
Normal file
2
lib/dijit/Destroyable.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/Destroyable",["dojo/_base/array","dojo/aspect","dojo/_base/declare"],function(_1,_2,_3){return _3("dijit.Destroyable",null,{destroy:function(_4){this._destroyed=true;},own:function(){var _5=["destroyRecursive","destroy","remove"];_1.forEach(arguments,function(_6){var _7;var _8=_2.before(this,"destroy",function(_9){_6[_7](_9);});var _a=[];function _b(){_8.remove();_1.forEach(_a,function(_c){_c.remove();});};if(_6.then){_7="cancel";_6.then(_b,_b);}else{_1.forEach(_5,function(_d){if(typeof _6[_d]==="function"){if(!_7){_7=_d;}_a.push(_2.after(_6,_d,_b,true));}});}},this);return arguments;}});});
|
2
lib/dijit/Dialog.js
Normal file
2
lib/dijit/Dialog.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/DialogUnderlay.js
Normal file
2
lib/dijit/DialogUnderlay.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/DialogUnderlay",["dojo/_base/declare","dojo/_base/lang","dojo/aspect","dojo/dom-attr","dojo/dom-style","dojo/on","dojo/window","./_Widget","./_TemplatedMixin","./BackgroundIframe","./Viewport","./main"],function(_1,_2,_3,_4,_5,on,_6,_7,_8,_9,_a,_b){var _c=_1("dijit.DialogUnderlay",[_7,_8],{templateString:"<div class='dijitDialogUnderlayWrapper'><div class='dijitDialogUnderlay' tabIndex='-1' data-dojo-attach-point='node'></div></div>",dialogId:"","class":"",_modalConnects:[],_setDialogIdAttr:function(id){_4.set(this.node,"id",id+"_underlay");this._set("dialogId",id);},_setClassAttr:function(_d){this.node.className="dijitDialogUnderlay "+_d;this._set("class",_d);},postCreate:function(){this.ownerDocumentBody.appendChild(this.domNode);this.own(on(this.domNode,"keydown",_2.hitch(this,"_onKeyDown")));this.inherited(arguments);},layout:function(){var is=this.node.style,os=this.domNode.style;os.display="none";var _e=_6.getBox(this.ownerDocument);os.top=_e.t+"px";os.left=_e.l+"px";is.width=_e.w+"px";is.height=_e.h+"px";os.display="block";},show:function(){this.domNode.style.display="block";this.open=true;this.layout();this.bgIframe=new _9(this.domNode);var _f=_6.get(this.ownerDocument);this._modalConnects=[_a.on("resize",_2.hitch(this,"layout")),on(_f,"scroll",_2.hitch(this,"layout"))];},hide:function(){this.bgIframe.destroy();delete this.bgIframe;this.domNode.style.display="none";while(this._modalConnects.length){(this._modalConnects.pop()).remove();}this.open=false;},destroy:function(){while(this._modalConnects.length){(this._modalConnects.pop()).remove();}this.inherited(arguments);},_onKeyDown:function(){}});_c.show=function(_10,_11){var _12=_c._singleton;if(!_12||_12._destroyed){_12=_b._underlay=_c._singleton=new _c(_10);}else{if(_10){_12.set(_10);}}_5.set(_12.domNode,"zIndex",_11);if(!_12.open){_12.show();}};_c.hide=function(){var _13=_c._singleton;if(_13&&!_13._destroyed){_13.hide();}};return _c;});
|
2
lib/dijit/DropDownMenu.js
Normal file
2
lib/dijit/DropDownMenu.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/Menu.html":"<table class=\"dijit dijitMenu dijitMenuPassive dijitReset dijitMenuTable\" role=\"menu\" tabIndex=\"${tabIndex}\"\n\t cellspacing=\"0\">\n\t<tbody class=\"dijitReset\" data-dojo-attach-point=\"containerNode\"></tbody>\n</table>\n"}});define("dijit/DropDownMenu",["dojo/_base/declare","dojo/keys","dojo/text!./templates/Menu.html","./_MenuBase"],function(_1,_2,_3,_4){return _1("dijit.DropDownMenu",_4,{templateString:_3,baseClass:"dijitMenu",_onUpArrow:function(){this.focusPrev();},_onDownArrow:function(){this.focusNext();},_onRightArrow:function(_5){this._moveToPopup(_5);_5.stopPropagation();_5.preventDefault();},_onLeftArrow:function(_6){if(this.parentMenu){if(this.parentMenu._isMenuBar){this.parentMenu.focusPrev();}else{this.onCancel(false);}}else{_6.stopPropagation();_6.preventDefault();}}});});
|
2
lib/dijit/Editor.js
Normal file
2
lib/dijit/Editor.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/Fieldset.js
Normal file
2
lib/dijit/Fieldset.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/Fieldset.html":"<fieldset>\n\t<legend data-dojo-attach-event=\"ondijitclick:_onTitleClick, onkeydown:_onTitleKey\"\n\t\t\tdata-dojo-attach-point=\"titleBarNode, titleNode\">\n\t\t<span data-dojo-attach-point=\"arrowNode\" class=\"dijitInline dijitArrowNode\" role=\"presentation\"></span\n\t\t><span data-dojo-attach-point=\"arrowNodeInner\" class=\"dijitArrowNodeInner\"></span\n\t\t><span data-dojo-attach-point=\"titleNode, focusNode\" class=\"dijitFieldsetLegendNode\" id=\"${id}_titleNode\"></span>\n\t</legend>\n\t<div class=\"dijitFieldsetContentOuter\" data-dojo-attach-point=\"hideNode\" role=\"presentation\">\n\t\t<div class=\"dijitReset\" data-dojo-attach-point=\"wipeNode\" role=\"presentation\">\n\t\t\t<div class=\"dijitFieldsetContentInner\" data-dojo-attach-point=\"containerNode\" role=\"region\"\n\t\t\t\t \tid=\"${id}_pane\" aria-labelledby=\"${id}_titleNode\">\n\t\t\t\t<!-- nested divs because wipeIn()/wipeOut() doesn't work right on node w/padding etc. Put padding on inner div. -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</fieldset>\n"}});define("dijit/Fieldset",["dojo/_base/declare","dojo/query!css2","dijit/TitlePane","dojo/text!./templates/Fieldset.html","./a11yclick"],function(_1,_2,_3,_4){return _1("dijit.Fieldset",_3,{baseClass:"dijitFieldset",title:"",open:true,templateString:_4,postCreate:function(){if(!this.title){var _5=_2("legend",this.containerNode);if(_5.length){this.set("title",_5[0].innerHTML);_5[0].parentNode.removeChild(_5[0]);}}this.inherited(arguments);}});});
|
2
lib/dijit/InlineEditBox.js
Normal file
2
lib/dijit/InlineEditBox.js
Normal file
File diff suppressed because one or more lines are too long
195
lib/dijit/LICENSE
Normal file
195
lib/dijit/LICENSE
Normal file
@ -0,0 +1,195 @@
|
||||
Dojo is available under *either* the terms of the modified BSD license *or* the
|
||||
Academic Free License version 2.1. As a recipient of Dojo, you may choose which
|
||||
license to receive this code under (except as noted in per-module LICENSE
|
||||
files). Some modules may not be the copyright of the JS Foundation. These
|
||||
modules contain explicit declarations of copyright in both the LICENSE files in
|
||||
the directories in which they reside and in the code itself. No external
|
||||
contributions are allowed under licenses which are fundamentally incompatible
|
||||
with the AFL or BSD licenses that Dojo is distributed under.
|
||||
|
||||
The text of the AFL and BSD licenses is reproduced below.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
The "New" BSD License:
|
||||
**********************
|
||||
|
||||
Copyright (c) 2005-2016, The JS Foundation
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
* Neither the name of the JS Foundation nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
The Academic Free License, v. 2.1:
|
||||
**********************************
|
||||
|
||||
This Academic Free License (the "License") applies to any original work of
|
||||
authorship (the "Original Work") whose owner (the "Licensor") has placed the
|
||||
following notice immediately following the copyright notice for the Original
|
||||
Work:
|
||||
|
||||
Licensed under the Academic Free License version 2.1
|
||||
|
||||
1) Grant of Copyright License. Licensor hereby grants You a world-wide,
|
||||
royalty-free, non-exclusive, perpetual, sublicenseable license to do the
|
||||
following:
|
||||
|
||||
a) to reproduce the Original Work in copies;
|
||||
|
||||
b) to prepare derivative works ("Derivative Works") based upon the Original
|
||||
Work;
|
||||
|
||||
c) to distribute copies of the Original Work and Derivative Works to the
|
||||
public;
|
||||
|
||||
d) to perform the Original Work publicly; and
|
||||
|
||||
e) to display the Original Work publicly.
|
||||
|
||||
2) Grant of Patent License. Licensor hereby grants You a world-wide,
|
||||
royalty-free, non-exclusive, perpetual, sublicenseable license, under patent
|
||||
claims owned or controlled by the Licensor that are embodied in the Original
|
||||
Work as furnished by the Licensor, to make, use, sell and offer for sale the
|
||||
Original Work and Derivative Works.
|
||||
|
||||
3) Grant of Source Code License. The term "Source Code" means the preferred
|
||||
form of the Original Work for making modifications to it and all available
|
||||
documentation describing how to modify the Original Work. Licensor hereby
|
||||
agrees to provide a machine-readable copy of the Source Code of the Original
|
||||
Work along with each copy of the Original Work that Licensor distributes.
|
||||
Licensor reserves the right to satisfy this obligation by placing a
|
||||
machine-readable copy of the Source Code in an information repository
|
||||
reasonably calculated to permit inexpensive and convenient access by You for as
|
||||
long as Licensor continues to distribute the Original Work, and by publishing
|
||||
the address of that information repository in a notice immediately following
|
||||
the copyright notice that applies to the Original Work.
|
||||
|
||||
4) Exclusions From License Grant. Neither the names of Licensor, nor the names
|
||||
of any contributors to the Original Work, nor any of their trademarks or
|
||||
service marks, may be used to endorse or promote products derived from this
|
||||
Original Work without express prior written permission of the Licensor. Nothing
|
||||
in this License shall be deemed to grant any rights to trademarks, copyrights,
|
||||
patents, trade secrets or any other intellectual property of Licensor except as
|
||||
expressly stated herein. No patent license is granted to make, use, sell or
|
||||
offer to sell embodiments of any patent claims other than the licensed claims
|
||||
defined in Section 2. No right is granted to the trademarks of Licensor even if
|
||||
such marks are included in the Original Work. Nothing in this License shall be
|
||||
interpreted to prohibit Licensor from licensing under different terms from this
|
||||
License any Original Work that Licensor otherwise would have a right to
|
||||
license.
|
||||
|
||||
5) This section intentionally omitted.
|
||||
|
||||
6) Attribution Rights. You must retain, in the Source Code of any Derivative
|
||||
Works that You create, all copyright, patent or trademark notices from the
|
||||
Source Code of the Original Work, as well as any notices of licensing and any
|
||||
descriptive text identified therein as an "Attribution Notice." You must cause
|
||||
the Source Code for any Derivative Works that You create to carry a prominent
|
||||
Attribution Notice reasonably calculated to inform recipients that You have
|
||||
modified the Original Work.
|
||||
|
||||
7) Warranty of Provenance and Disclaimer of Warranty. Licensor warrants that
|
||||
the copyright in and to the Original Work and the patent rights granted herein
|
||||
by Licensor are owned by the Licensor or are sublicensed to You under the terms
|
||||
of this License with the permission of the contributor(s) of those copyrights
|
||||
and patent rights. Except as expressly stated in the immediately proceeding
|
||||
sentence, the Original Work is provided under this License on an "AS IS" BASIS
|
||||
and WITHOUT WARRANTY, either express or implied, including, without limitation,
|
||||
the warranties of NON-INFRINGEMENT, MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY OF THE ORIGINAL WORK IS WITH YOU.
|
||||
This DISCLAIMER OF WARRANTY constitutes an essential part of this License. No
|
||||
license to Original Work is granted hereunder except under this disclaimer.
|
||||
|
||||
8) Limitation of Liability. Under no circumstances and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise, shall the
|
||||
Licensor be liable to any person for any direct, indirect, special, incidental,
|
||||
or consequential damages of any character arising as a result of this License
|
||||
or the use of the Original Work including, without limitation, damages for loss
|
||||
of goodwill, work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses. This limitation of liability shall not
|
||||
apply to liability for death or personal injury resulting from Licensor's
|
||||
negligence to the extent applicable law prohibits such limitation. Some
|
||||
jurisdictions do not allow the exclusion or limitation of incidental or
|
||||
consequential damages, so this exclusion and limitation may not apply to You.
|
||||
|
||||
9) Acceptance and Termination. If You distribute copies of the Original Work or
|
||||
a Derivative Work, You must make a reasonable effort under the circumstances to
|
||||
obtain the express assent of recipients to the terms of this License. Nothing
|
||||
else but this License (or another written agreement between Licensor and You)
|
||||
grants You permission to create Derivative Works based upon the Original Work
|
||||
or to exercise any of the rights granted in Section 1 herein, and any attempt
|
||||
to do so except under the terms of this License (or another written agreement
|
||||
between Licensor and You) is expressly prohibited by U.S. copyright law, the
|
||||
equivalent laws of other countries, and by international treaty. Therefore, by
|
||||
exercising any of the rights granted to You in Section 1 herein, You indicate
|
||||
Your acceptance of this License and all of its terms and conditions.
|
||||
|
||||
10) Termination for Patent Action. This License shall terminate automatically
|
||||
and You may no longer exercise any of the rights granted to You by this License
|
||||
as of the date You commence an action, including a cross-claim or counterclaim,
|
||||
against Licensor or any licensee alleging that the Original Work infringes a
|
||||
patent. This termination provision shall not apply for an action alleging
|
||||
patent infringement by combinations of the Original Work with other software or
|
||||
hardware.
|
||||
|
||||
11) Jurisdiction, Venue and Governing Law. Any action or suit relating to this
|
||||
License may be brought only in the courts of a jurisdiction wherein the
|
||||
Licensor resides or in which Licensor conducts its primary business, and under
|
||||
the laws of that jurisdiction excluding its conflict-of-law provisions. The
|
||||
application of the United Nations Convention on Contracts for the International
|
||||
Sale of Goods is expressly excluded. Any use of the Original Work outside the
|
||||
scope of this License or after its termination shall be subject to the
|
||||
requirements and penalties of the U.S. Copyright Act, 17 U.S.C. § 101 et
|
||||
seq., the equivalent laws of other countries, and international treaty. This
|
||||
section shall survive the termination of this License.
|
||||
|
||||
12) Attorneys Fees. In any action to enforce the terms of this License or
|
||||
seeking damages relating thereto, the prevailing party shall be entitled to
|
||||
recover its costs and expenses, including, without limitation, reasonable
|
||||
attorneys' fees and costs incurred in connection with such action, including
|
||||
any appeal of such action. This section shall survive the termination of this
|
||||
License.
|
||||
|
||||
13) Miscellaneous. This License represents the complete agreement concerning
|
||||
the subject matter hereof. If any provision of this License is held to be
|
||||
unenforceable, such provision shall be reformed only to the extent necessary to
|
||||
make it enforceable.
|
||||
|
||||
14) Definition of "You" in This License. "You" throughout this License, whether
|
||||
in upper or lower case, means an individual or a legal entity exercising rights
|
||||
under, and complying with all of the terms of, this License. For legal
|
||||
entities, "You" includes any entity that controls, is controlled by, or is
|
||||
under common control with you. For purposes of this definition, "control" means
|
||||
(i) the power, direct or indirect, to cause the direction or management of such
|
||||
entity, whether by contract or otherwise, or (ii) ownership of fifty percent
|
||||
(50%) or more of the outstanding shares, or (iii) beneficial ownership of such
|
||||
entity.
|
||||
|
||||
15) Right to Use. You may use the Original Work in all ways not otherwise
|
||||
restricted or conditioned by this License or by law, and Licensor promises not
|
||||
to interfere with or be responsible for such uses by You.
|
||||
|
||||
This license is Copyright (C) 2003-2004 Lawrence E. Rosen. All rights reserved.
|
||||
Permission is hereby granted to copy and distribute this license without
|
||||
modification. This license may not be modified without the express written
|
||||
permission of its copyright owner.
|
2
lib/dijit/Menu.js
Normal file
2
lib/dijit/Menu.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/Menu",["require","dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-geometry","dojo/dom-style","dojo/keys","dojo/_base/lang","dojo/on","dojo/sniff","dojo/_base/window","dojo/window","./popup","./DropDownMenu","dojo/ready"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,on,_a,_b,_c,pm,_d,_e){if(_a("dijit-legacy-requires")){_e(0,function(){var _f=["dijit/MenuItem","dijit/PopupMenuItem","dijit/CheckedMenuItem","dijit/MenuSeparator"];_1(_f);});}return _3("dijit.Menu",_d,{constructor:function(){this._bindings=[];},targetNodeIds:[],selector:"",contextMenuForWindow:false,leftClickToOpen:false,refocus:true,postCreate:function(){if(this.contextMenuForWindow){this.bindDomNode(this.ownerDocumentBody);}else{_2.forEach(this.targetNodeIds,this.bindDomNode,this);}this.inherited(arguments);},_iframeContentWindow:function(_10){return _c.get(this._iframeContentDocument(_10))||this._iframeContentDocument(_10)["__parent__"]||(_10.name&&document.frames[_10.name])||null;},_iframeContentDocument:function(_11){return _11.contentDocument||(_11.contentWindow&&_11.contentWindow.document)||(_11.name&&document.frames[_11.name]&&document.frames[_11.name].document)||null;},bindDomNode:function(_12){_12=_4.byId(_12,this.ownerDocument);var cn;if(_12.tagName.toLowerCase()=="iframe"){var _13=_12,_14=this._iframeContentWindow(_13);cn=_b.body(_14.document);}else{cn=(_12==_b.body(this.ownerDocument)?this.ownerDocument.documentElement:_12);}var _15={node:_12,iframe:_13};_5.set(_12,"_dijitMenu"+this.id,this._bindings.push(_15));var _16=_9.hitch(this,function(cn){var _17=this.selector,_18=_17?function(_19){return on.selector(_17,_19);}:function(_1a){return _1a;},_1b=this;return [on(cn,_18(this.leftClickToOpen?"click":"contextmenu"),function(evt){evt.stopPropagation();evt.preventDefault();if((new Date()).getTime()<_1b._lastKeyDown+500){return;}_1b._scheduleOpen(this,_13,{x:evt.pageX,y:evt.pageY},evt.target);}),on(cn,_18("keydown"),function(evt){if(evt.keyCode==93||(evt.shiftKey&&evt.keyCode==_8.F10)||(_1b.leftClickToOpen&&evt.keyCode==_8.SPACE)){evt.stopPropagation();evt.preventDefault();_1b._scheduleOpen(this,_13,null,evt.target);_1b._lastKeyDown=(new Date()).getTime();}})];});_15.connects=cn?_16(cn):[];if(_13){_15.onloadHandler=_9.hitch(this,function(){var _1c=this._iframeContentWindow(_13),cn=_b.body(_1c.document);_15.connects=_16(cn);});if(_13.addEventListener){_13.addEventListener("load",_15.onloadHandler,false);}else{_13.attachEvent("onload",_15.onloadHandler);}}},unBindDomNode:function(_1d){var _1e;try{_1e=_4.byId(_1d,this.ownerDocument);}catch(e){return;}var _1f="_dijitMenu"+this.id;if(_1e&&_5.has(_1e,_1f)){var bid=_5.get(_1e,_1f)-1,b=this._bindings[bid],h;while((h=b.connects.pop())){h.remove();}var _20=b.iframe;if(_20){if(_20.removeEventListener){_20.removeEventListener("load",b.onloadHandler,false);}else{_20.detachEvent("onload",b.onloadHandler);}}_5.remove(_1e,_1f);delete this._bindings[bid];}},_scheduleOpen:function(_21,_22,_23,_24){if(!this._openTimer){this._openTimer=this.defer(function(){delete this._openTimer;this._openMyself({target:_24,delegatedTarget:_21,iframe:_22,coords:_23});},1);}},_openMyself:function(_25){var _26=_25.target,_27=_25.iframe,_28=_25.coords,_29=!_28;this.currentTarget=_25.delegatedTarget;if(_28){if(_27){var ifc=_6.position(_27,true),_2a=this._iframeContentWindow(_27),_2b=_6.docScroll(_2a.document);var cs=_7.getComputedStyle(_27),tp=_7.toPixelValue,_2c=(_a("ie")&&_a("quirks")?0:tp(_27,cs.paddingLeft))+(_a("ie")&&_a("quirks")?tp(_27,cs.borderLeftWidth):0),top=(_a("ie")&&_a("quirks")?0:tp(_27,cs.paddingTop))+(_a("ie")&&_a("quirks")?tp(_27,cs.borderTopWidth):0);_28.x+=ifc.x+_2c-_2b.x;_28.y+=ifc.y+top-_2b.y;}}else{_28=_6.position(_26,true);_28.x+=10;_28.y+=10;}var _2d=this;var _2e=this._focusManager.get("prevNode");var _2f=this._focusManager.get("curNode");var _30=!_2f||(_4.isDescendant(_2f,this.domNode))?_2e:_2f;function _31(){if(_2d.refocus&&_30){_30.focus();}pm.close(_2d);};pm.open({popup:this,x:_28.x,y:_28.y,onExecute:_31,onCancel:_31,orient:this.isLeftToRight()?"L":"R"});this.focus();if(!_29){this.defer(function(){this._cleanUp(true);});}this._onBlur=function(){this.inherited("_onBlur",arguments);pm.close(this);};},destroy:function(){_2.forEach(this._bindings,function(b){if(b){this.unBindDomNode(b.node);}},this);this.inherited(arguments);}});});
|
2
lib/dijit/MenuBar.js
Normal file
2
lib/dijit/MenuBar.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/MenuBar.html":"<div class=\"dijitMenuBar dijitMenuPassive\" data-dojo-attach-point=\"containerNode\" role=\"menubar\" tabIndex=\"${tabIndex}\"\n\t ></div>\n"}});define("dijit/MenuBar",["dojo/_base/declare","dojo/keys","./_MenuBase","dojo/text!./templates/MenuBar.html"],function(_1,_2,_3,_4){return _1("dijit.MenuBar",_3,{templateString:_4,baseClass:"dijitMenuBar",popupDelay:0,_isMenuBar:true,_orient:["below"],_moveToPopup:function(_5){if(this.focusedChild&&this.focusedChild.popup&&!this.focusedChild.disabled){this.onItemClick(this.focusedChild,_5);}},focusChild:function(_6){this.inherited(arguments);if(this.activated&&_6.popup&&!_6.disabled){this._openItemPopup(_6,true);}},_onChildDeselect:function(_7){if(this.currentPopupItem==_7){this.currentPopupItem=null;_7._closePopup();}this.inherited(arguments);},_onLeftArrow:function(){this.focusPrev();},_onRightArrow:function(){this.focusNext();},_onDownArrow:function(_8){this._moveToPopup(_8);},_onUpArrow:function(){},onItemClick:function(_9,_a){if(_9.popup&&_9.popup.isShowingNow&&(!/^key/.test(_a.type)||_a.keyCode!==_2.DOWN_ARROW)){_9.focusNode.focus();this._cleanUp(true);}else{this.inherited(arguments);}}});});
|
2
lib/dijit/MenuBarItem.js
Normal file
2
lib/dijit/MenuBarItem.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/MenuBarItem.html":"<div class=\"dijitReset dijitInline dijitMenuItem dijitMenuItemLabel\" data-dojo-attach-point=\"focusNode\"\n\t \trole=\"menuitem\" tabIndex=\"-1\">\n\t<span data-dojo-attach-point=\"containerNode,textDirNode\"></span>\n</div>\n"}});define("dijit/MenuBarItem",["dojo/_base/declare","./MenuItem","dojo/text!./templates/MenuBarItem.html"],function(_1,_2,_3){var _4=_1("dijit._MenuBarItemMixin",null,{templateString:_3,_setIconClassAttr:null});var _5=_1("dijit.MenuBarItem",[_2,_4],{});_5._MenuBarItemMixin=_4;return _5;});
|
2
lib/dijit/MenuItem.js
Normal file
2
lib/dijit/MenuItem.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/MenuItem.html":"<tr class=\"dijitReset\" data-dojo-attach-point=\"focusNode\" role=\"menuitem\" tabIndex=\"-1\">\n\t<td class=\"dijitReset dijitMenuItemIconCell\" role=\"presentation\">\n\t\t<span role=\"presentation\" class=\"dijitInline dijitIcon dijitMenuItemIcon\" data-dojo-attach-point=\"iconNode\"></span>\n\t</td>\n\t<td class=\"dijitReset dijitMenuItemLabel\" colspan=\"2\" data-dojo-attach-point=\"containerNode,textDirNode\"\n\t\trole=\"presentation\"></td>\n\t<td class=\"dijitReset dijitMenuItemAccelKey\" style=\"display: none\" data-dojo-attach-point=\"accelKeyNode\"></td>\n\t<td class=\"dijitReset dijitMenuArrowCell\" role=\"presentation\">\n\t\t<span data-dojo-attach-point=\"arrowWrapper\" style=\"visibility: hidden\">\n\t\t\t<span class=\"dijitInline dijitIcon dijitMenuExpand\"></span>\n\t\t\t<span class=\"dijitMenuExpandA11y\">+</span>\n\t\t</span>\n\t</td>\n</tr>\n"}});define("dijit/MenuItem",["dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/_base/kernel","dojo/sniff","dojo/_base/lang","./_Widget","./_TemplatedMixin","./_Contained","./_CssStateMixin","dojo/text!./templates/MenuItem.html"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c){var _d=_1("dijit.MenuItem"+(_6("dojo-bidi")?"_NoBidi":""),[_8,_9,_a,_b],{templateString:_c,baseClass:"dijitMenuItem",label:"",_setLabelAttr:function(_e){this._set("label",_e);var _f="";var _10;var ndx=_e.search(/{\S}/);if(ndx>=0){_f=_e.charAt(ndx+1);var _11=_e.substr(0,ndx);var _12=_e.substr(ndx+3);_10=_11+_f+_12;_e=_11+"<span class=\"dijitMenuItemShortcutKey\">"+_f+"</span>"+_12;}else{_10=_e;}this.domNode.setAttribute("aria-label",_10+" "+this.accelKey);this.containerNode.innerHTML=_e;this._set("shortcutKey",_f);},iconClass:"dijitNoIcon",_setIconClassAttr:{node:"iconNode",type:"class"},accelKey:"",disabled:false,_fillContent:function(_13){if(_13&&!("label" in this.params)){this._set("label",_13.innerHTML);}},buildRendering:function(){this.inherited(arguments);var _14=this.id+"_text";_3.set(this.containerNode,"id",_14);if(this.accelKeyNode){_3.set(this.accelKeyNode,"id",this.id+"_accel");}_2.setSelectable(this.domNode,false);},onClick:function(){},focus:function(){try{if(_6("ie")==8){this.containerNode.focus();}this.focusNode.focus();}catch(e){}},_setSelected:function(_15){_4.toggle(this.domNode,"dijitMenuItemSelected",_15);},setLabel:function(_16){_5.deprecated("dijit.MenuItem.setLabel() is deprecated. Use set('label', ...) instead.","","2.0");this.set("label",_16);},setDisabled:function(_17){_5.deprecated("dijit.Menu.setDisabled() is deprecated. Use set('disabled', bool) instead.","","2.0");this.set("disabled",_17);},_setDisabledAttr:function(_18){this.focusNode.setAttribute("aria-disabled",_18?"true":"false");this._set("disabled",_18);},_setAccelKeyAttr:function(_19){if(this.accelKeyNode){this.accelKeyNode.style.display=_19?"":"none";this.accelKeyNode.innerHTML=_19;_3.set(this.containerNode,"colSpan",_19?"1":"2");}this._set("accelKey",_19);}});if(_6("dojo-bidi")){_d=_1("dijit.MenuItem",_d,{_setLabelAttr:function(val){this.inherited(arguments);if(this.textDir==="auto"){this.applyTextDir(this.textDirNode);}}});}return _d;});
|
2
lib/dijit/MenuSeparator.js
Normal file
2
lib/dijit/MenuSeparator.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/MenuSeparator.html":"<tr class=\"dijitMenuSeparator\" role=\"separator\">\n\t<td class=\"dijitMenuSeparatorIconCell\">\n\t\t<div class=\"dijitMenuSeparatorTop\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n\t<td colspan=\"3\" class=\"dijitMenuSeparatorLabelCell\">\n\t\t<div class=\"dijitMenuSeparatorTop dijitMenuSeparatorLabel\"></div>\n\t\t<div class=\"dijitMenuSeparatorBottom\"></div>\n\t</td>\n</tr>\n"}});define("dijit/MenuSeparator",["dojo/_base/declare","dojo/dom","./_WidgetBase","./_TemplatedMixin","./_Contained","dojo/text!./templates/MenuSeparator.html"],function(_1,_2,_3,_4,_5,_6){return _1("dijit.MenuSeparator",[_3,_4,_5],{templateString:_6,buildRendering:function(){this.inherited(arguments);_2.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});});
|
2
lib/dijit/PopupMenuBarItem.js
Normal file
2
lib/dijit/PopupMenuBarItem.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/PopupMenuBarItem",["dojo/_base/declare","./PopupMenuItem","./MenuBarItem"],function(_1,_2,_3){var _4=_3._MenuBarItemMixin;return _1("dijit.PopupMenuBarItem",[_2,_4],{});});
|
2
lib/dijit/PopupMenuItem.js
Normal file
2
lib/dijit/PopupMenuItem.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/PopupMenuItem",["dojo/_base/declare","dojo/dom-style","dojo/_base/lang","dojo/query","./popup","./registry","./MenuItem","./hccss"],function(_1,_2,_3,_4,pm,_5,_6){return _1("dijit.PopupMenuItem",_6,{baseClass:"dijitMenuItem dijitPopupMenuItem",_fillContent:function(){if(this.srcNodeRef){var _7=_4("*",this.srcNodeRef);this.inherited(arguments,[_7[0]]);this.dropDownContainer=this.srcNodeRef;}},_openPopup:function(_8,_9){var _a=this.popup;pm.open(_3.delegate(_8,{popup:this.popup,around:this.domNode}));if(_9&&_a.focus){_a.focus();}},_closePopup:function(){pm.close(this.popup);this.popup.parentMenu=null;},startup:function(){if(this._started){return;}this.inherited(arguments);if(!this.popup){var _b=_4("[widgetId]",this.dropDownContainer)[0];this.popup=_5.byNode(_b);}this.ownerDocumentBody.appendChild(this.popup.domNode);this.popup.domNode.setAttribute("aria-labelledby",this.containerNode.id);this.popup.startup();this.popup.domNode.style.display="none";if(this.arrowWrapper){_2.set(this.arrowWrapper,"visibility","");}this.focusNode.setAttribute("aria-haspopup","true");},destroyDescendants:function(_c){if(this.popup){if(!this.popup._destroyed){this.popup.destroyRecursive(_c);}delete this.popup;}this.inherited(arguments);}});});
|
2
lib/dijit/ProgressBar.js
Normal file
2
lib/dijit/ProgressBar.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/ProgressBar.html":"<div class=\"dijitProgressBar dijitProgressBarEmpty\" role=\"progressbar\"\n\t><div data-dojo-attach-point=\"internalProgress\" class=\"dijitProgressBarFull\"\n\t\t><div class=\"dijitProgressBarTile\" role=\"presentation\"></div\n\t\t><span style=\"visibility:hidden\"> </span\n\t></div\n\t><div data-dojo-attach-point=\"labelNode\" class=\"dijitProgressBarLabel\" id=\"${id}_label\"></div\n\t><span data-dojo-attach-point=\"indeterminateHighContrastImage\"\n\t\t class=\"dijitInline dijitProgressBarIndeterminateHighContrastImage\"></span\n></div>\n"}});define("dijit/ProgressBar",["require","dojo/_base/declare","dojo/dom-class","dojo/_base/lang","dojo/number","./_Widget","./_TemplatedMixin","dojo/text!./templates/ProgressBar.html"],function(_1,_2,_3,_4,_5,_6,_7,_8){return _2("dijit.ProgressBar",[_6,_7],{progress:"0",value:"",maximum:100,places:0,indeterminate:false,label:"",name:"",templateString:_8,_indeterminateHighContrastImagePath:_1.toUrl("./themes/a11y/indeterminate_progress.gif"),postMixInProperties:function(){this.inherited(arguments);if(!(this.params&&"value" in this.params)){this.value=this.indeterminate?Infinity:this.progress;}},buildRendering:function(){this.inherited(arguments);this.indeterminateHighContrastImage.setAttribute("src",this._indeterminateHighContrastImagePath.toString());this.update();},_setDirAttr:function(_9){var _a=_9.toLowerCase()=="rtl";_3.toggle(this.domNode,"dijitProgressBarRtl",_a);_3.toggle(this.domNode,"dijitProgressBarIndeterminateRtl",this.indeterminate&&_a);this.inherited(arguments);},update:function(_b){_4.mixin(this,_b||{});var _c=this.internalProgress,ap=this.domNode;var _d=1;if(this.indeterminate){ap.removeAttribute("aria-valuenow");}else{if(String(this.progress).indexOf("%")!=-1){_d=Math.min(parseFloat(this.progress)/100,1);this.progress=_d*this.maximum;}else{this.progress=Math.min(this.progress,this.maximum);_d=this.maximum?this.progress/this.maximum:0;}ap.setAttribute("aria-valuenow",this.progress);}ap.setAttribute("aria-labelledby",this.labelNode.id);ap.setAttribute("aria-valuemin",0);ap.setAttribute("aria-valuemax",this.maximum);this.labelNode.innerHTML=this.report(_d);_3.toggle(this.domNode,"dijitProgressBarIndeterminate",this.indeterminate);_3.toggle(this.domNode,"dijitProgressBarIndeterminateRtl",this.indeterminate&&!this.isLeftToRight());_c.style.width=(_d*100)+"%";this.onChange();},_setValueAttr:function(v){this._set("value",v);if(v==Infinity){this.update({indeterminate:true});}else{this.update({indeterminate:false,progress:v});}},_setLabelAttr:function(_e){this._set("label",_e);this.update();},_setIndeterminateAttr:function(_f){this._set("indeterminate",_f);this.update();},report:function(_10){return this.label?this.label:(this.indeterminate?" ":_5.format(_10,{type:"percent",places:this.places,locale:this.lang}));},onChange:function(){}});});
|
32
lib/dijit/README.md
Normal file
32
lib/dijit/README.md
Normal file
@ -0,0 +1,32 @@
|
||||
# dijit
|
||||
|
||||
**dijit** is the package that contains the widget library for Dojo Toolkit. It requires the [core][] of the Dojo
|
||||
Toolkit and provides a framework for building additional widgets as well as a full set of rich user interface widgets
|
||||
including form, layout and data-aware items.
|
||||
|
||||
## Installing
|
||||
|
||||
Installation instructions are available at [dojotoolkit.org/download][download].
|
||||
|
||||
## Getting Started
|
||||
|
||||
If you are starting out with Dojo and Dijit, the following resources are available to you:
|
||||
|
||||
* [Tutorials][]
|
||||
* [Reference Guide][]
|
||||
* [API Documentation][]
|
||||
* [Community Forum][]
|
||||
|
||||
## License and Copyright
|
||||
|
||||
The Dojo Toolkit (including this package) is dual licensed under BSD 3-Clause and AFL. For more information on the
|
||||
license please see the [License Information][]. The Dojo Toolkit is Copyright (c) 2005-2016, The JS Foundation. All
|
||||
rights reserved.
|
||||
|
||||
[core]: https://github.com/dojo/dojo
|
||||
[download]: http://dojotoolkit.org/download/
|
||||
[Tutorials]: http://dojotoolkit.org/documentation/
|
||||
[Reference Guide]: http://dojotoolkit.org/reference-guide/
|
||||
[API Documentation]: http://dojotoolkit.org/api/
|
||||
[Community Forum]: http://dojotoolkit.org/community/
|
||||
[License Information]: http://dojotoolkit.org/license
|
2
lib/dijit/RadioMenuItem.js
Normal file
2
lib/dijit/RadioMenuItem.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/RadioMenuItem",["dojo/_base/array","dojo/_base/declare","dojo/dom-class","dojo/query!css2","./CheckedMenuItem","./registry"],function(_1,_2,_3,_4,_5,_6){return _2("dijit.RadioButtonMenuItem",_5,{baseClass:"dijitMenuItem dijitRadioMenuItem",role:"menuitemradio",checkedChar:"*",group:"",_setGroupAttr:"domNode",_setCheckedAttr:function(_7){this.inherited(arguments);if(!this._created){return;}if(_7&&this.group){_1.forEach(this._getRelatedWidgets(),function(_8){if(_8!=this&&_8.checked){_8.set("checked",false);}},this);}},_onClick:function(_9){if(!this.disabled&&!this.checked){this.set("checked",true);this.onChange(true);}this.onClick(_9);},_getRelatedWidgets:function(){var _a=[];_4("[group="+this.group+"][role="+this.role+"]").forEach(function(_b){var _c=_6.getEnclosingWidget(_b);if(_c){_a.push(_c);}});return _a;}});});
|
2
lib/dijit/TitlePane.js
Normal file
2
lib/dijit/TitlePane.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/TitlePane.html":"<div>\n\t<div data-dojo-attach-event=\"ondijitclick:_onTitleClick, onkeydown:_onTitleKey\"\n\t\t\tclass=\"dijitTitlePaneTitle\" data-dojo-attach-point=\"titleBarNode\" id=\"${id}_titleBarNode\">\n\t\t<div class=\"dijitTitlePaneTitleFocus\" data-dojo-attach-point=\"focusNode\">\n\t\t\t<span data-dojo-attach-point=\"arrowNode\" class=\"dijitInline dijitArrowNode\" role=\"presentation\"></span\n\t\t\t><span data-dojo-attach-point=\"arrowNodeInner\" class=\"dijitArrowNodeInner\"></span\n\t\t\t><span data-dojo-attach-point=\"titleNode\" class=\"dijitTitlePaneTextNode\"></span>\n\t\t</div>\n\t</div>\n\t<div class=\"dijitTitlePaneContentOuter\" data-dojo-attach-point=\"hideNode\" role=\"presentation\">\n\t\t<div class=\"dijitReset\" data-dojo-attach-point=\"wipeNode\" role=\"presentation\">\n\t\t\t<div class=\"dijitTitlePaneContentInner\" data-dojo-attach-point=\"containerNode\" role=\"region\" id=\"${id}_pane\" aria-labelledby=\"${id}_titleBarNode\">\n\t\t\t\t<!-- nested divs because wipeIn()/wipeOut() doesn't work right on node w/padding etc. Put padding on inner div. -->\n\t\t\t</div>\n\t\t</div>\n\t</div>\n</div>\n"}});define("dijit/TitlePane",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-attr","dojo/dom-class","dojo/dom-geometry","dojo/fx","dojo/has","dojo/_base/kernel","dojo/keys","./_CssStateMixin","./_TemplatedMixin","./layout/ContentPane","dojo/text!./templates/TitlePane.html","./_base/manager","./a11yclick"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d,_e,_f){var _10=_2("dijit.TitlePane",[_d,_c,_b],{title:"",_setTitleAttr:{node:"titleNode",type:"innerHTML"},open:true,toggleable:true,tabIndex:"0",duration:_f.defaultDuration,baseClass:"dijitTitlePane",templateString:_e,doLayout:false,_setTooltipAttr:{node:"focusNode",type:"attribute",attribute:"title"},buildRendering:function(){this.inherited(arguments);_3.setSelectable(this.titleNode,false);},postCreate:function(){this.inherited(arguments);if(this.toggleable){this._trackMouseState(this.titleBarNode,this.baseClass+"Title");}var _11=this.hideNode,_12=this.wipeNode;this._wipeIn=_7.wipeIn({node:_12,duration:this.duration,beforeBegin:function(){_11.style.display="";}});this._wipeOut=_7.wipeOut({node:_12,duration:this.duration,onEnd:function(){_11.style.display="none";}});},_setOpenAttr:function(_13,_14){_1.forEach([this._wipeIn,this._wipeOut],function(_15){if(_15&&_15.status()=="playing"){_15.stop();}});if(_14){var _16=this[_13?"_wipeIn":"_wipeOut"];_16.play();}else{this.hideNode.style.display=this.wipeNode.style.display=_13?"":"none";}if(this._started){if(_13){this._onShow();}else{this.onHide();}}this.containerNode.setAttribute("aria-hidden",_13?"false":"true");this.focusNode.setAttribute("aria-pressed",_13?"true":"false");this._set("open",_13);this._setCss();},_setToggleableAttr:function(_17){this.focusNode.setAttribute("role",_17?"button":"heading");if(_17){this.focusNode.setAttribute("aria-controls",this.id+"_pane");this.focusNode.setAttribute("tabIndex",this.tabIndex);this.focusNode.setAttribute("aria-pressed",this.open);}else{_4.remove(this.focusNode,"aria-controls");_4.remove(this.focusNode,"tabIndex");_4.remove(this.focusNode,"aria-pressed");}this._set("toggleable",_17);this._setCss();},_setContentAttr:function(_18){if(!this.open||!this._wipeOut||this._wipeOut.status()=="playing"){this.inherited(arguments);}else{if(this._wipeIn&&this._wipeIn.status()=="playing"){this._wipeIn.stop();}_6.setMarginBox(this.wipeNode,{h:_6.getMarginBox(this.wipeNode).h});this.inherited(arguments);if(this._wipeIn){this._wipeIn.play();}else{this.hideNode.style.display="";}}},toggle:function(){this._setOpenAttr(!this.open,true);},_setCss:function(){var _19=this.titleBarNode||this.focusNode;var _1a=this._titleBarClass;this._titleBarClass=this.baseClass+"Title"+(this.toggleable?"":"Fixed")+(this.open?"Open":"Closed");_5.replace(_19,this._titleBarClass,_1a||"");_5.replace(_19,this._titleBarClass.replace("TitlePaneTitle",""),(_1a||"").replace("TitlePaneTitle",""));this.arrowNodeInner.innerHTML=this.open?"-":"+";},_onTitleKey:function(e){if(e.keyCode==_a.DOWN_ARROW&&this.open){this.containerNode.focus();e.preventDefault();}},_onTitleClick:function(){if(this.toggleable){this.toggle();}},setTitle:function(_1b){_9.deprecated("dijit.TitlePane.setTitle() is deprecated. Use set('title', ...) instead.","","2.0");this.set("title",_1b);}});if(_8("dojo-bidi")){_10.extend({_setTitleAttr:function(_1c){this._set("title",_1c);this.titleNode.innerHTML=_1c;this.applyTextDir(this.titleNode);},_setTooltipAttr:function(_1d){this._set("tooltip",_1d);if(this.textDir){_1d=this.enforceTextDirWithUcc(null,_1d);}_4.set(this.focusNode,"title",_1d);},_setTextDirAttr:function(_1e){if(this._created&&this.textDir!=_1e){this._set("textDir",_1e);this.set("title",this.title);this.set("tooltip",this.tooltip);}}});}return _10;});
|
2
lib/dijit/Toolbar.js
Normal file
2
lib/dijit/Toolbar.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/Toolbar",["require","dojo/_base/declare","dojo/has","dojo/keys","dojo/ready","./_Widget","./_KeyNavContainer","./_TemplatedMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8){if(_3("dijit-legacy-requires")){_5(0,function(){var _9=["dijit/ToolbarSeparator"];_1(_9);});}return _2("dijit.Toolbar",[_6,_8,_7],{templateString:"<div class=\"dijit\" role=\"toolbar\" tabIndex=\"${tabIndex}\" data-dojo-attach-point=\"containerNode\">"+"</div>",baseClass:"dijitToolbar",_onLeftArrow:function(){this.focusPrev();},_onRightArrow:function(){this.focusNext();}});});
|
2
lib/dijit/ToolbarSeparator.js
Normal file
2
lib/dijit/ToolbarSeparator.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/ToolbarSeparator",["dojo/_base/declare","dojo/dom","./_Widget","./_TemplatedMixin"],function(_1,_2,_3,_4){return _1("dijit.ToolbarSeparator",[_3,_4],{templateString:"<div class=\"dijitToolbarSeparator dijitInline\" role=\"presentation\"></div>",buildRendering:function(){this.inherited(arguments);_2.setSelectable(this.domNode,false);},isFocusable:function(){return false;}});});
|
2
lib/dijit/Tooltip.js
Normal file
2
lib/dijit/Tooltip.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/TooltipDialog.js
Normal file
2
lib/dijit/TooltipDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/TooltipDialog.html":"<div role=\"alertdialog\" tabIndex=\"-1\">\n\t<div class=\"dijitTooltipContainer\" role=\"presentation\">\n\t\t<div data-dojo-attach-point=\"contentsNode\" class=\"dijitTooltipContents dijitTooltipFocusNode\">\n\t\t\t<div data-dojo-attach-point=\"containerNode\"></div>\n\t\t\t${!actionBarTemplate}\n\t\t</div>\n\t</div>\n\t<div class=\"dijitTooltipConnector\" role=\"presentation\" data-dojo-attach-point=\"connectorNode\"></div>\n</div>\n"}});define("dijit/TooltipDialog",["dojo/_base/declare","dojo/dom-class","dojo/has","dojo/keys","dojo/_base/lang","dojo/on","./focus","./layout/ContentPane","./_DialogMixin","./form/_FormMixin","./_TemplatedMixin","dojo/text!./templates/TooltipDialog.html","./main"],function(_1,_2,_3,_4,_5,on,_6,_7,_8,_9,_a,_b,_c){var _d=_1("dijit.TooltipDialog",[_7,_a,_9,_8],{title:"",doLayout:false,autofocus:true,baseClass:"dijitTooltipDialog",_firstFocusItem:null,_lastFocusItem:null,templateString:_b,_setTitleAttr:"containerNode",postCreate:function(){this.inherited(arguments);this.own(on(this.domNode,"keydown",_5.hitch(this,"_onKey")));},orient:function(_e,_f,_10){var _11={"MR-ML":"dijitTooltipRight","ML-MR":"dijitTooltipLeft","TM-BM":"dijitTooltipAbove","BM-TM":"dijitTooltipBelow","BL-TL":"dijitTooltipBelow dijitTooltipABLeft","TL-BL":"dijitTooltipAbove dijitTooltipABLeft","BR-TR":"dijitTooltipBelow dijitTooltipABRight","TR-BR":"dijitTooltipAbove dijitTooltipABRight","BR-BL":"dijitTooltipRight","BL-BR":"dijitTooltipLeft","BR-TL":"dijitTooltipBelow dijitTooltipABLeft","BL-TR":"dijitTooltipBelow dijitTooltipABRight","TL-BR":"dijitTooltipAbove dijitTooltipABRight","TR-BL":"dijitTooltipAbove dijitTooltipABLeft"}[_f+"-"+_10];_2.replace(this.domNode,_11,this._currentOrientClass||"");this._currentOrientClass=_11;},focus:function(){this._getFocusItems();_6.focus(this._firstFocusItem);},onOpen:function(pos){this.orient(this.domNode,pos.aroundCorner,pos.corner);var _12=pos.aroundNodePos;if(pos.corner.charAt(0)=="M"&&pos.aroundCorner.charAt(0)=="M"){this.connectorNode.style.top=_12.y+((_12.h-this.connectorNode.offsetHeight)>>1)-pos.y+"px";this.connectorNode.style.left="";}else{if(pos.corner.charAt(1)=="M"&&pos.aroundCorner.charAt(1)=="M"){this.connectorNode.style.left=_12.x+((_12.w-this.connectorNode.offsetWidth)>>1)-pos.x+"px";}}this._onShow();},onClose:function(){this.onHide();},_onKey:function(evt){if(evt.keyCode==_4.ESCAPE){this.defer("onCancel");evt.stopPropagation();evt.preventDefault();}else{if(evt.keyCode==_4.TAB){var _13=evt.target;this._getFocusItems();if(this._firstFocusItem==this._lastFocusItem){evt.stopPropagation();evt.preventDefault();}else{if(_13==this._firstFocusItem&&evt.shiftKey){_6.focus(this._lastFocusItem);evt.stopPropagation();evt.preventDefault();}else{if(_13==this._lastFocusItem&&!evt.shiftKey){_6.focus(this._firstFocusItem);evt.stopPropagation();evt.preventDefault();}else{evt.stopPropagation();}}}}}}});if(_3("dojo-bidi")){_d.extend({_setTitleAttr:function(_14){this.containerNode.title=(this.textDir&&this.enforceTextDirWithUcc)?this.enforceTextDirWithUcc(null,_14):_14;this._set("title",_14);},_setTextDirAttr:function(_15){if(!this._created||this.textDir!=_15){this._set("textDir",_15);if(this.textDir&&this.title){this.containerNode.title=this.enforceTextDirWithUcc(null,this.title);}}}});}return _d;});
|
2
lib/dijit/Tree.js
Normal file
2
lib/dijit/Tree.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/Viewport.js
Normal file
2
lib/dijit/Viewport.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/Viewport",["dojo/Evented","dojo/on","dojo/domReady","dojo/sniff","dojo/window"],function(_1,on,_2,_3,_4){var _5=new _1();var _6;_2(function(){var _7=_4.getBox();_5._rlh=on(window,"resize",function(){var _8=_4.getBox();if(_7.h==_8.h&&_7.w==_8.w){return;}_7=_8;_5.emit("resize");});if(_3("ie")==8){var _9=screen.deviceXDPI;setInterval(function(){if(screen.deviceXDPI!=_9){_9=screen.deviceXDPI;_5.emit("resize");}},500);}if(_3("ios")){on(document,"focusin",function(_a){_6=_a.target;});on(document,"focusout",function(_b){_6=null;});}});_5.getEffectiveBox=function(_c){var _d=_4.getBox(_c);var _e=_6&&_6.tagName&&_6.tagName.toLowerCase();if(_3("ios")&&_6&&!_6.readOnly&&(_e=="textarea"||(_e=="input"&&/^(color|email|number|password|search|tel|text|url)$/.test(_6.type)))){_d.h*=(orientation==0||orientation==180?0.66:0.4);var _f=_6.getBoundingClientRect();_d.h=Math.max(_d.h,_f.top+_f.height);}return _d;};return _5;});
|
2
lib/dijit/WidgetSet.js
Normal file
2
lib/dijit/WidgetSet.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/WidgetSet",["dojo/_base/array","dojo/_base/declare","dojo/_base/kernel","./registry"],function(_1,_2,_3,_4){var _5=_2("dijit.WidgetSet",null,{constructor:function(){this._hash={};this.length=0;},add:function(_6){if(this._hash[_6.id]){throw new Error("Tried to register widget with id=="+_6.id+" but that id is already registered");}this._hash[_6.id]=_6;this.length++;},remove:function(id){if(this._hash[id]){delete this._hash[id];this.length--;}},forEach:function(_7,_8){_8=_8||_3.global;var i=0,id;for(id in this._hash){_7.call(_8,this._hash[id],i++,this._hash);}return this;},filter:function(_9,_a){_a=_a||_3.global;var _b=new _5(),i=0,id;for(id in this._hash){var w=this._hash[id];if(_9.call(_a,w,i++,this._hash)){_b.add(w);}}return _b;},byId:function(id){return this._hash[id];},byClass:function(_c){var _d=new _5(),id,_e;for(id in this._hash){_e=this._hash[id];if(_e.declaredClass==_c){_d.add(_e);}}return _d;},toArray:function(){var ar=[];for(var id in this._hash){ar.push(this._hash[id]);}return ar;},map:function(_f,_10){return _1.map(this.toArray(),_f,_10);},every:function(_11,_12){_12=_12||_3.global;var x=0,i;for(i in this._hash){if(!_11.call(_12,this._hash[i],x++,this._hash)){return false;}}return true;},some:function(_13,_14){_14=_14||_3.global;var x=0,i;for(i in this._hash){if(_13.call(_14,this._hash[i],x++,this._hash)){return true;}}return false;}});_1.forEach(["forEach","filter","byClass","map","every","some"],function(_15){_4[_15]=_5.prototype[_15];});return _5;});
|
2
lib/dijit/_AttachMixin.js
Normal file
2
lib/dijit/_AttachMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_AttachMixin",["require","dojo/_base/array","dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","dojo/mouse","dojo/on","dojo/touch","./_WidgetBase"],function(_1,_2,_3,_4,_5,_6,on,_7,_8){var _9=_5.delegate(_7,{"mouseenter":_6.enter,"mouseleave":_6.leave,"keypress":_3._keypress});var _a;var _b=_4("dijit._AttachMixin",null,{constructor:function(){this._attachPoints=[];this._attachEvents=[];},buildRendering:function(){this.inherited(arguments);this._attachTemplateNodes(this.domNode);this._beforeFillContent();},_beforeFillContent:function(){},_attachTemplateNodes:function(_c){var _d=_c;while(true){if(_d.nodeType==1&&(this._processTemplateNode(_d,function(n,p){return n.getAttribute(p);},this._attach)||this.searchContainerNode)&&_d.firstChild){_d=_d.firstChild;}else{if(_d==_c){return;}while(!_d.nextSibling){_d=_d.parentNode;if(_d==_c){return;}}_d=_d.nextSibling;}}},_processTemplateNode:function(_e,_f,_10){var ret=true;var _11=this.attachScope||this,_12=_f(_e,"dojoAttachPoint")||_f(_e,"data-dojo-attach-point");if(_12){var _13,_14=_12.split(/\s*,\s*/);while((_13=_14.shift())){if(_5.isArray(_11[_13])){_11[_13].push(_e);}else{_11[_13]=_e;}ret=(_13!="containerNode");this._attachPoints.push(_13);}}var _15=_f(_e,"dojoAttachEvent")||_f(_e,"data-dojo-attach-event");if(_15){var _16,_17=_15.split(/\s*,\s*/);var _18=_5.trim;while((_16=_17.shift())){if(_16){var _19=null;if(_16.indexOf(":")!=-1){var _1a=_16.split(":");_16=_18(_1a[0]);_19=_18(_1a[1]);}else{_16=_18(_16);}if(!_19){_19=_16;}this._attachEvents.push(_10(_e,_16,_5.hitch(_11,_19)));}}}return ret;},_attach:function(_1b,_1c,_1d){_1c=_1c.replace(/^on/,"").toLowerCase();if(_1c=="dijitclick"){_1c=_a||(_a=_1("./a11yclick"));}else{_1c=_9[_1c]||_1c;}return on(_1b,_1c,_1d);},_detachTemplateNodes:function(){var _1e=this.attachScope||this;_2.forEach(this._attachPoints,function(_1f){delete _1e[_1f];});this._attachPoints=[];_2.forEach(this._attachEvents,function(_20){_20.remove();});this._attachEvents=[];},destroyRendering:function(){this._detachTemplateNodes();this.inherited(arguments);}});_5.extend(_8,{dojoAttachEvent:"",dojoAttachPoint:""});return _b;});
|
2
lib/dijit/_BidiMixin.js
Normal file
2
lib/dijit/_BidiMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_BidiMixin",[],function(){var _1={LRM:"",LRE:"",PDF:"",RLM:"",RLE:""};return {getTextDir:function(_2){return this.textDir=="auto"?this._checkContextual(_2):this.textDir;},_checkContextual:function(_3){var _4=/[A-Za-z\u05d0-\u065f\u066a-\u06ef\u06fa-\u07ff\ufb1d-\ufdff\ufe70-\ufefc]/.exec(_3);return _4?(_4[0]<="z"?"ltr":"rtl"):this.dir?this.dir:this.isLeftToRight()?"ltr":"rtl";},applyTextDir:function(_5,_6){if(this.textDir){var _7=this.textDir;if(_7=="auto"){if(typeof _6==="undefined"){var _8=_5.tagName.toLowerCase();_6=(_8=="input"||_8=="textarea")?_5.value:_5.innerText||_5.textContent||"";}_7=this._checkContextual(_6);}if(_5.dir!=_7){_5.dir=_7;}}},enforceTextDirWithUcc:function(_9,_a){if(this.textDir){if(_9){_9.originalText=_a;}var _b=this.textDir=="auto"?this._checkContextual(_a):this.textDir;return (_b=="ltr"?_1.LRE:_1.RLE)+_a+_1.PDF;}return _a;},restoreOriginalText:function(_c){if(_c.originalText){_c.text=_c.originalText;delete _c.originalText;}return _c;},_setTextDirAttr:function(_d){if(!this._created||this.textDir!=_d){this._set("textDir",_d);var _e=null;if(this.displayNode){_e=this.displayNode;this.displayNode.align=this.dir=="rtl"?"right":"left";}else{_e=this.textDirNode||this.focusNode||this.textbox;}if(_e){this.applyTextDir(_e);}}}};});
|
2
lib/dijit/_BidiSupport.js
Normal file
2
lib/dijit/_BidiSupport.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_BidiSupport",["dojo/has","./_WidgetBase","./_BidiMixin"],function(_1,_2,_3){_2.extend(_3);_1.add("dojo-bidi",true);return _2;});
|
2
lib/dijit/_Calendar.js
Normal file
2
lib/dijit/_Calendar.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_Calendar",["dojo/_base/kernel","./Calendar","./main"],function(_1,_2,_3){_1.deprecated("dijit._Calendar is deprecated","dijit._Calendar moved to dijit.Calendar",2);_3._Calendar=_2;});
|
2
lib/dijit/_ConfirmDialogMixin.js
Normal file
2
lib/dijit/_ConfirmDialogMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
require({cache:{"url:dijit/templates/actionBar.html":"<div class='dijitDialogPaneActionBar' data-dojo-attach-point=\"actionBarNode\">\n\t<button data-dojo-type='dijit/form/Button' type='submit' data-dojo-attach-point=\"okButton\"></button>\n\t<button data-dojo-type='dijit/form/Button' type='button'\n\t\t\tdata-dojo-attach-point=\"cancelButton\" data-dojo-attach-event='click:onCancel'></button>\n</div>\n"}});define("dijit/_ConfirmDialogMixin",["dojo/_base/declare","./_WidgetsInTemplateMixin","dojo/i18n!./nls/common","dojo/text!./templates/actionBar.html","./form/Button"],function(_1,_2,_3,_4){return _1("dijit._ConfirmDialogMixin",_2,{actionBarTemplate:_4,buttonOk:_3.buttonOk,_setButtonOkAttr:{node:"okButton",attribute:"label"},buttonCancel:_3.buttonCancel,_setButtonCancelAttr:{node:"cancelButton",attribute:"label"}});});
|
2
lib/dijit/_Contained.js
Normal file
2
lib/dijit/_Contained.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_Contained",["dojo/_base/declare","./registry"],function(_1,_2){return _1("dijit._Contained",null,{_getSibling:function(_3){var p=this.getParent();return (p&&p._getSiblingOfChild&&p._getSiblingOfChild(this,_3=="previous"?-1:1))||null;},getPreviousSibling:function(){return this._getSibling("previous");},getNextSibling:function(){return this._getSibling("next");},getIndexInParent:function(){var p=this.getParent();if(!p||!p.getIndexOfChild){return -1;}return p.getIndexOfChild(this);}});});
|
2
lib/dijit/_Container.js
Normal file
2
lib/dijit/_Container.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_Container",["dojo/_base/array","dojo/_base/declare","dojo/dom-construct","dojo/_base/kernel"],function(_1,_2,_3,_4){return _2("dijit._Container",null,{buildRendering:function(){this.inherited(arguments);if(!this.containerNode){this.containerNode=this.domNode;}},addChild:function(_5,_6){var _7=this.containerNode;if(_6>0){_7=_7.firstChild;while(_6>0){if(_7.nodeType==1){_6--;}_7=_7.nextSibling;}if(_7){_6="before";}else{_7=this.containerNode;_6="last";}}_3.place(_5.domNode,_7,_6);if(this._started&&!_5._started){_5.startup();}},removeChild:function(_8){if(typeof _8=="number"){_8=this.getChildren()[_8];}if(_8){var _9=_8.domNode;if(_9&&_9.parentNode){_9.parentNode.removeChild(_9);}}},hasChildren:function(){return this.getChildren().length>0;},_getSiblingOfChild:function(_a,_b){var _c=this.getChildren(),_d=_1.indexOf(_c,_a);return _c[_d+_b];},getIndexOfChild:function(_e){return _1.indexOf(this.getChildren(),_e);}});});
|
2
lib/dijit/_CssStateMixin.js
Normal file
2
lib/dijit/_CssStateMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_CssStateMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom","dojo/dom-class","dojo/has","dojo/_base/lang","dojo/on","dojo/domReady","dojo/touch","dojo/_base/window","./a11yclick","./registry"],function(_1,_2,_3,_4,_5,_6,on,_7,_8,_9,_a,_b){var _c=_2("dijit._CssStateMixin",[],{hovering:false,active:false,_applyAttributes:function(){this.inherited(arguments);_1.forEach(["disabled","readOnly","checked","selected","focused","state","hovering","active","_opened"],function(_d){this.watch(_d,_6.hitch(this,"_setStateClass"));},this);for(var ap in this.cssStateNodes||{}){this._trackMouseState(this[ap],this.cssStateNodes[ap]);}this._trackMouseState(this.domNode,this.baseClass);this._setStateClass();},_cssMouseEvent:function(_e){if(!this.disabled){switch(_e.type){case "mouseover":case "MSPointerOver":case "pointerover":this._set("hovering",true);this._set("active",this._mouseDown);break;case "mouseout":case "MSPointerOut":case "pointerout":this._set("hovering",false);this._set("active",false);break;case "mousedown":case "touchstart":case "MSPointerDown":case "pointerdown":case "keydown":this._set("active",true);break;case "mouseup":case "dojotouchend":case "MSPointerUp":case "pointerup":case "keyup":this._set("active",false);break;}}},_setStateClass:function(){var _f=this.baseClass.split(" ");function _10(_11){_f=_f.concat(_1.map(_f,function(c){return c+_11;}),"dijit"+_11);};if(!this.isLeftToRight()){_10("Rtl");}var _12=this.checked=="mixed"?"Mixed":(this.checked?"Checked":"");if(this.checked){_10(_12);}if(this.state){_10(this.state);}if(this.selected){_10("Selected");}if(this._opened){_10("Opened");}if(this.disabled){_10("Disabled");}else{if(this.readOnly){_10("ReadOnly");}else{if(this.active){_10("Active");}else{if(this.hovering){_10("Hover");}}}}if(this.focused){_10("Focused");}var tn=this.stateNode||this.domNode,_13={};_1.forEach(tn.className.split(" "),function(c){_13[c]=true;});if("_stateClasses" in this){_1.forEach(this._stateClasses,function(c){delete _13[c];});}_1.forEach(_f,function(c){_13[c]=true;});var _14=[];for(var c in _13){_14.push(c);}tn.className=_14.join(" ");this._stateClasses=_f;},_subnodeCssMouseEvent:function(_15,_16,evt){if(this.disabled||this.readOnly){return;}function _17(_18){_4.toggle(_15,_16+"Hover",_18);};function _19(_1a){_4.toggle(_15,_16+"Active",_1a);};function _1b(_1c){_4.toggle(_15,_16+"Focused",_1c);};switch(evt.type){case "mouseover":case "MSPointerOver":case "pointerover":_17(true);break;case "mouseout":case "MSPointerOut":case "pointerout":_17(false);_19(false);break;case "mousedown":case "touchstart":case "MSPointerDown":case "pointerdown":case "keydown":_19(true);break;case "mouseup":case "MSPointerUp":case "pointerup":case "dojotouchend":case "keyup":_19(false);break;case "focus":case "focusin":_1b(true);break;case "blur":case "focusout":_1b(false);break;}},_trackMouseState:function(_1d,_1e){_1d._cssState=_1e;}});_7(function(){function _1f(evt,_20,_21){if(_21&&_3.isDescendant(_21,_20)){return;}for(var _22=_20;_22&&_22!=_21;_22=_22.parentNode){if(_22._cssState){var _23=_b.getEnclosingWidget(_22);if(_23){if(_22==_23.domNode){_23._cssMouseEvent(evt);}else{_23._subnodeCssMouseEvent(_22,_22._cssState,evt);}}}}};var _24=_9.body(),_25;on(_24,_8.over,function(evt){_1f(evt,evt.target,evt.relatedTarget);});on(_24,_8.out,function(evt){_1f(evt,evt.target,evt.relatedTarget);});on(_24,_a.press,function(evt){_25=evt.target;_1f(evt,_25);});on(_24,_a.release,function(evt){_1f(evt,_25);_25=null;});on(_24,"focusin, focusout",function(evt){var _26=evt.target;if(_26._cssState&&!_26.getAttribute("widgetId")){var _27=_b.getEnclosingWidget(_26);if(_27){_27._subnodeCssMouseEvent(_26,_26._cssState,evt);}}});});return _c;});
|
2
lib/dijit/_DialogMixin.js
Normal file
2
lib/dijit/_DialogMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_DialogMixin",["dojo/_base/declare","./a11y"],function(_1,_2){return _1("dijit._DialogMixin",null,{actionBarTemplate:"",execute:function(){},onCancel:function(){},onExecute:function(){},_onSubmit:function(){this.onExecute();this.execute(this.get("value"));},_getFocusItems:function(){var _3=_2._getTabNavigable(this.domNode);this._firstFocusItem=_3.lowest||_3.first||this.closeButtonNode||this.domNode;this._lastFocusItem=_3.last||_3.highest||this._firstFocusItem;}});});
|
2
lib/dijit/_FocusMixin.js
Normal file
2
lib/dijit/_FocusMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_FocusMixin",["./focus","./_WidgetBase","dojo/_base/declare","dojo/_base/lang"],function(_1,_2,_3,_4){_4.extend(_2,{focused:false,onFocus:function(){},onBlur:function(){},_onFocus:function(){this.onFocus();},_onBlur:function(){this.onBlur();}});return _3("dijit._FocusMixin",null,{_focusManager:_1});});
|
2
lib/dijit/_HasDropDown.js
Normal file
2
lib/dijit/_HasDropDown.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/_KeyNavContainer.js
Normal file
2
lib/dijit/_KeyNavContainer.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_KeyNavContainer",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/_base/kernel","dojo/keys","dojo/_base/lang","./registry","./_Container","./_FocusMixin","./_KeyNavMixin"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a){return _2("dijit._KeyNavContainer",[_9,_a,_8],{connectKeyNavHandlers:function(_b,_c){var _d=(this._keyNavCodes={});var _e=_6.hitch(this,"focusPrev");var _f=_6.hitch(this,"focusNext");_1.forEach(_b,function(_10){_d[_10]=_e;});_1.forEach(_c,function(_11){_d[_11]=_f;});_d[_5.HOME]=_6.hitch(this,"focusFirstChild");_d[_5.END]=_6.hitch(this,"focusLastChild");},startupKeyNavChildren:function(){_4.deprecated("startupKeyNavChildren() call no longer needed","","2.0");},startup:function(){this.inherited(arguments);_1.forEach(this.getChildren(),_6.hitch(this,"_startupChild"));},addChild:function(_12,_13){this.inherited(arguments);this._startupChild(_12);},_startupChild:function(_14){_14.set("tabIndex","-1");},_getFirst:function(){var _15=this.getChildren();return _15.length?_15[0]:null;},_getLast:function(){var _16=this.getChildren();return _16.length?_16[_16.length-1]:null;},focusNext:function(){this.focusChild(this._getNextFocusableChild(this.focusedChild,1));},focusPrev:function(){this.focusChild(this._getNextFocusableChild(this.focusedChild,-1),true);},childSelector:function(_17){var _17=_7.byNode(_17);return _17&&_17.getParent()==this;}});});
|
2
lib/dijit/_KeyNavMixin.js
Normal file
2
lib/dijit/_KeyNavMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_KeyNavMixin",["dojo/_base/array","dojo/_base/declare","dojo/dom-attr","dojo/keys","dojo/_base/lang","dojo/on","dijit/registry","dijit/_FocusMixin"],function(_1,_2,_3,_4,_5,on,_6,_7){return _2("dijit._KeyNavMixin",_7,{tabIndex:"0",childSelector:null,postCreate:function(){this.inherited(arguments);_3.set(this.domNode,"tabIndex",this.tabIndex);if(!this._keyNavCodes){var _8=this._keyNavCodes={};_8[_4.HOME]=_5.hitch(this,"focusFirstChild");_8[_4.END]=_5.hitch(this,"focusLastChild");_8[this.isLeftToRight()?_4.LEFT_ARROW:_4.RIGHT_ARROW]=_5.hitch(this,"_onLeftArrow");_8[this.isLeftToRight()?_4.RIGHT_ARROW:_4.LEFT_ARROW]=_5.hitch(this,"_onRightArrow");_8[_4.UP_ARROW]=_5.hitch(this,"_onUpArrow");_8[_4.DOWN_ARROW]=_5.hitch(this,"_onDownArrow");}var _9=this,_a=typeof this.childSelector=="string"?this.childSelector:_5.hitch(this,"childSelector");this.own(on(this.domNode,"keypress",_5.hitch(this,"_onContainerKeypress")),on(this.domNode,"keydown",_5.hitch(this,"_onContainerKeydown")),on(this.domNode,"focus",_5.hitch(this,"_onContainerFocus")),on(this.containerNode,on.selector(_a,"focusin"),function(_b){_9._onChildFocus(_6.getEnclosingWidget(this),_b);}));},_onLeftArrow:function(){},_onRightArrow:function(){},_onUpArrow:function(){},_onDownArrow:function(){},focus:function(){this.focusFirstChild();},_getFirstFocusableChild:function(){return this._getNextFocusableChild(null,1);},_getLastFocusableChild:function(){return this._getNextFocusableChild(null,-1);},focusFirstChild:function(){this.focusChild(this._getFirstFocusableChild());},focusLastChild:function(){this.focusChild(this._getLastFocusableChild());},focusChild:function(_c,_d){if(!_c){return;}if(this.focusedChild&&_c!==this.focusedChild){this._onChildBlur(this.focusedChild);}_c.set("tabIndex",this.tabIndex);_c.focus(_d?"end":"start");},_onContainerFocus:function(_e){if(_e.target!==this.domNode||this.focusedChild){return;}this.focus();},_onFocus:function(){_3.set(this.domNode,"tabIndex","-1");this.inherited(arguments);},_onBlur:function(_f){_3.set(this.domNode,"tabIndex",this.tabIndex);if(this.focusedChild){this.focusedChild.set("tabIndex","-1");this.lastFocusedChild=this.focusedChild;this._set("focusedChild",null);}this.inherited(arguments);},_onChildFocus:function(_10){if(_10&&_10!=this.focusedChild){if(this.focusedChild&&!this.focusedChild._destroyed){this.focusedChild.set("tabIndex","-1");}_10.set("tabIndex",this.tabIndex);this.lastFocused=_10;this._set("focusedChild",_10);}},_searchString:"",multiCharSearchDuration:1000,onKeyboardSearch:function(_11,evt,_12,_13){if(_11){this.focusChild(_11);}},_keyboardSearchCompare:function(_14,_15){var _16=_14.domNode,_17=_14.label||(_16.focusNode?_16.focusNode.label:"")||_16.innerText||_16.textContent||"",_18=_17.replace(/^\s+/,"").substr(0,_15.length).toLowerCase();return (!!_15.length&&_18==_15)?-1:0;},_onContainerKeydown:function(evt){var _19=this._keyNavCodes[evt.keyCode];if(_19){_19(evt,this.focusedChild);evt.stopPropagation();evt.preventDefault();this._searchString="";}else{if(evt.keyCode==_4.SPACE&&this._searchTimer&&!(evt.ctrlKey||evt.altKey||evt.metaKey)){evt.stopImmediatePropagation();evt.preventDefault();this._keyboardSearch(evt," ");}}},_onContainerKeypress:function(evt){if(evt.charCode<=_4.SPACE||evt.ctrlKey||evt.altKey||evt.metaKey){return;}evt.preventDefault();evt.stopPropagation();this._keyboardSearch(evt,String.fromCharCode(evt.charCode).toLowerCase());},_keyboardSearch:function(evt,_1a){var _1b=null,_1c,_1d=0,_1e=_5.hitch(this,function(){if(this._searchTimer){this._searchTimer.remove();}this._searchString+=_1a;var _1f=/^(.)\1*$/.test(this._searchString);var _20=_1f?1:this._searchString.length;_1c=this._searchString.substr(0,_20);this._searchTimer=this.defer(function(){this._searchTimer=null;this._searchString="";},this.multiCharSearchDuration);var _21=this.focusedChild||null;if(_20==1||!_21){_21=this._getNextFocusableChild(_21,1);if(!_21){return;}}var _22=_21;do{var rc=this._keyboardSearchCompare(_21,_1c);if(!!rc&&_1d++==0){_1b=_21;}if(rc==-1){_1d=-1;break;}_21=this._getNextFocusableChild(_21,1);}while(_21&&_21!=_22);});_1e();this.onKeyboardSearch(_1b,evt,_1c,_1d);},_onChildBlur:function(){},_getNextFocusableChild:function(_23,dir){var _24=_23;do{if(!_23){_23=this[dir>0?"_getFirst":"_getLast"]();if(!_23){break;}}else{_23=this._getNext(_23,dir);}if(_23!=null&&_23!=_24&&_23.isFocusable()){return _23;}}while(_23!=_24);return null;},_getFirst:function(){return null;},_getLast:function(){return null;},_getNext:function(_25,dir){if(_25){_25=_25.domNode;while(_25){_25=_25[dir<0?"previousSibling":"nextSibling"];if(_25&&"getAttribute" in _25){var w=_6.byNode(_25);if(w){return w;}}}}return null;}});});
|
2
lib/dijit/_MenuBase.js
Normal file
2
lib/dijit/_MenuBase.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/_OnDijitClickMixin.js
Normal file
2
lib/dijit/_OnDijitClickMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_OnDijitClickMixin",["dojo/on","dojo/_base/array","dojo/keys","dojo/_base/declare","dojo/has","./a11yclick"],function(on,_1,_2,_3,_4,_5){var _6=_3("dijit._OnDijitClickMixin",null,{connect:function(_7,_8,_9){return this.inherited(arguments,[_7,_8=="ondijitclick"?_5:_8,_9]);}});_6.a11yclick=_5;return _6;});
|
2
lib/dijit/_PaletteMixin.js
Normal file
2
lib/dijit/_PaletteMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_PaletteMixin",["dojo/_base/declare","dojo/dom-attr","dojo/dom-class","dojo/dom-construct","dojo/keys","dojo/_base/lang","dojo/on","./_CssStateMixin","./a11yclick","./focus","./typematic"],function(_1,_2,_3,_4,_5,_6,on,_7,_8,_9,_a){var _b=_1("dijit._PaletteMixin",_7,{defaultTimeout:500,timeoutChangeRate:0.9,value:"",_selectedCell:-1,tabIndex:"0",cellClass:"dijitPaletteCell",dyeClass:null,_dyeFactory:function(_c){var _d=typeof this.dyeClass=="string"?_6.getObject(this.dyeClass):this.dyeClass;return new _d(_c);},_preparePalette:function(_e,_f){this._cells=[];var url=this._blankGif;this.own(on(this.gridNode,_8,_6.hitch(this,"_onCellClick")));for(var row=0;row<_e.length;row++){var _10=_4.create("tr",{tabIndex:"-1",role:"row"},this.gridNode);for(var col=0;col<_e[row].length;col++){var _11=_e[row][col];if(_11){var _12=this._dyeFactory(_11,row,col,_f[_11]);var _13=_4.create("td",{"class":this.cellClass,tabIndex:"-1",title:_f[_11],role:"gridcell"},_10);_12.fillCell(_13,url);_13.idx=this._cells.length;this._cells.push({node:_13,dye:_12});}}}this._xDim=_e[0].length;this._yDim=_e.length;var _14={UP_ARROW:-this._xDim,DOWN_ARROW:this._xDim,RIGHT_ARROW:this.isLeftToRight()?1:-1,LEFT_ARROW:this.isLeftToRight()?-1:1};for(var key in _14){this.own(_a.addKeyListener(this.domNode,{keyCode:_5[key],ctrlKey:false,altKey:false,shiftKey:false},this,function(){var _15=_14[key];return function(_16){this._navigateByKey(_15,_16);};}(),this.timeoutChangeRate,this.defaultTimeout));}},postCreate:function(){this.inherited(arguments);this._setCurrent(this._cells[0].node);},focus:function(){_9.focus(this._currentFocus);},_onCellClick:function(evt){var _17=evt.target;while(_17.tagName!="TD"){if(!_17.parentNode||_17==this.gridNode){return;}_17=_17.parentNode;}var _18=this._getDye(_17).getValue();this._setCurrent(_17);_9.focus(_17);this._setValueAttr(_18,true);evt.stopPropagation();evt.preventDefault();},_setCurrent:function(_19){if("_currentFocus" in this){_2.set(this._currentFocus,"tabIndex","-1");}this._currentFocus=_19;if(_19){_2.set(_19,"tabIndex",this.tabIndex);}},_setValueAttr:function(_1a,_1b){if(this._selectedCell>=0){_3.remove(this._cells[this._selectedCell].node,this.cellClass+"Selected");}this._selectedCell=-1;if(_1a){for(var i=0;i<this._cells.length;i++){if(_1a==this._cells[i].dye.getValue()){this._selectedCell=i;_3.add(this._cells[i].node,this.cellClass+"Selected");break;}}}this._set("value",this._selectedCell>=0?_1a:null);if(_1b||_1b===undefined){this.onChange(_1a);}},onChange:function(){},_navigateByKey:function(_1c,_1d){if(_1d==-1){return;}var _1e=this._currentFocus.idx+_1c;if(_1e<this._cells.length&&_1e>-1){var _1f=this._cells[_1e].node;this._setCurrent(_1f);this.defer(_6.hitch(_9,"focus",_1f));}},_getDye:function(_20){return this._cells[_20.idx].dye;}});return _b;});
|
2
lib/dijit/_Templated.js
Normal file
2
lib/dijit/_Templated.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_Templated",["./_WidgetBase","./_TemplatedMixin","./_WidgetsInTemplateMixin","dojo/_base/array","dojo/_base/declare","dojo/_base/lang","dojo/_base/kernel"],function(_1,_2,_3,_4,_5,_6,_7){_6.extend(_1,{waiRole:"",waiState:""});return _5("dijit._Templated",[_2,_3],{constructor:function(){_7.deprecated(this.declaredClass+": dijit._Templated deprecated, use dijit._TemplatedMixin and if necessary dijit._WidgetsInTemplateMixin","","2.0");},_processNode:function(_8,_9){var _a=this.inherited(arguments);var _b=_9(_8,"waiRole");if(_b){_8.setAttribute("role",_b);}var _c=_9(_8,"waiState");if(_c){_4.forEach(_c.split(/\s*,\s*/),function(_d){if(_d.indexOf("-")!=-1){var _e=_d.split("-");_8.setAttribute("aria-"+_e[0],_e[1]);}});}return _a;}});});
|
2
lib/dijit/_TemplatedMixin.js
Normal file
2
lib/dijit/_TemplatedMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_TemplatedMixin",["dojo/cache","dojo/_base/declare","dojo/dom-construct","dojo/_base/lang","dojo/on","dojo/sniff","dojo/string","./_AttachMixin"],function(_1,_2,_3,_4,on,_5,_6,_7){var _8=_2("dijit._TemplatedMixin",_7,{templateString:null,templatePath:null,_skipNodeCache:false,searchContainerNode:true,_stringRepl:function(_9){var _a=this.declaredClass,_b=this;return _6.substitute(_9,this,function(_c,_d){if(_d.charAt(0)=="!"){_c=_4.getObject(_d.substr(1),false,_b);}if(typeof _c=="undefined"){throw new Error(_a+" template:"+_d);}if(_c==null){return "";}return _d.charAt(0)=="!"?_c:this._escapeValue(""+_c);},this);},_escapeValue:function(_e){return _e.replace(/["'<>&]/g,function(_f){return {"&":"&","<":"<",">":">","\"":""","'":"'"}[_f];});},buildRendering:function(){if(!this._rendered){if(!this.templateString){this.templateString=_1(this.templatePath,{sanitize:true});}var _10=_8.getCachedTemplate(this.templateString,this._skipNodeCache,this.ownerDocument);var _11;if(_4.isString(_10)){_11=_3.toDom(this._stringRepl(_10),this.ownerDocument);if(_11.nodeType!=1){throw new Error("Invalid template: "+_10);}}else{_11=_10.cloneNode(true);}this.domNode=_11;}this.inherited(arguments);if(!this._rendered){this._fillContent(this.srcNodeRef);}this._rendered=true;},_fillContent:function(_12){var _13=this.containerNode;if(_12&&_13){while(_12.hasChildNodes()){_13.appendChild(_12.firstChild);}}}});_8._templateCache={};_8.getCachedTemplate=function(_14,_15,doc){var _16=_8._templateCache;var key=_14;var _17=_16[key];if(_17){try{if(!_17.ownerDocument||_17.ownerDocument==(doc||document)){return _17;}}catch(e){}_3.destroy(_17);}_14=_6.trim(_14);if(_15||_14.match(/\$\{([^\}]+)\}/g)){return (_16[key]=_14);}else{var _18=_3.toDom(_14,doc);if(_18.nodeType!=1){throw new Error("Invalid template: "+_14);}return (_16[key]=_18);}};if(_5("ie")){on(window,"unload",function(){var _19=_8._templateCache;for(var key in _19){var _1a=_19[key];if(typeof _1a=="object"){_3.destroy(_1a);}delete _19[key];}});}return _8;});
|
2
lib/dijit/_TimePicker.js
Normal file
2
lib/dijit/_TimePicker.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/_Widget.js
Normal file
2
lib/dijit/_Widget.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_Widget",["dojo/aspect","dojo/_base/config","dojo/_base/connect","dojo/_base/declare","dojo/has","dojo/_base/kernel","dojo/_base/lang","dojo/query","dojo/ready","./registry","./_WidgetBase","./_OnDijitClickMixin","./_FocusMixin","dojo/uacss","./hccss"],function(_1,_2,_3,_4,_5,_6,_7,_8,_9,_a,_b,_c,_d){function _e(){};function _f(_10){return function(obj,_11,_12,_13){if(obj&&typeof _11=="string"&&obj[_11]==_e){return obj.on(_11.substring(2).toLowerCase(),_7.hitch(_12,_13));}return _10.apply(_3,arguments);};};_1.around(_3,"connect",_f);if(_6.connect){_1.around(_6,"connect",_f);}var _14=_4("dijit._Widget",[_b,_c,_d],{onClick:_e,onDblClick:_e,onKeyDown:_e,onKeyPress:_e,onKeyUp:_e,onMouseDown:_e,onMouseMove:_e,onMouseOut:_e,onMouseOver:_e,onMouseLeave:_e,onMouseEnter:_e,onMouseUp:_e,constructor:function(_15){this._toConnect={};for(var _16 in _15){if(this[_16]===_e){this._toConnect[_16.replace(/^on/,"").toLowerCase()]=_15[_16];delete _15[_16];}}},postCreate:function(){this.inherited(arguments);for(var _17 in this._toConnect){this.on(_17,this._toConnect[_17]);}delete this._toConnect;},on:function(_18,_19){if(this[this._onMap(_18)]===_e){return _3.connect(this.domNode,_18.toLowerCase(),this,_19);}return this.inherited(arguments);},_setFocusedAttr:function(val){this._focused=val;this._set("focused",val);},setAttribute:function(_1a,_1b){_6.deprecated(this.declaredClass+"::setAttribute(attr, value) is deprecated. Use set() instead.","","2.0");this.set(_1a,_1b);},attr:function(_1c,_1d){var _1e=arguments.length;if(_1e>=2||typeof _1c==="object"){return this.set.apply(this,arguments);}else{return this.get(_1c);}},getDescendants:function(){_6.deprecated(this.declaredClass+"::getDescendants() is deprecated. Use getChildren() instead.","","2.0");return this.containerNode?_8("[widgetId]",this.containerNode).map(_a.byNode):[];},_onShow:function(){this.onShow();},onShow:function(){},onHide:function(){},onClose:function(){return true;}});if(_5("dijit-legacy-requires")){_9(0,function(){var _1f=["dijit/_base"];require(_1f);});}return _14;});
|
2
lib/dijit/_WidgetBase.js
Normal file
2
lib/dijit/_WidgetBase.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/_WidgetsInTemplateMixin.js
Normal file
2
lib/dijit/_WidgetsInTemplateMixin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_WidgetsInTemplateMixin",["dojo/_base/array","dojo/aspect","dojo/_base/declare","dojo/_base/lang","dojo/parser"],function(_1,_2,_3,_4,_5){return _3("dijit._WidgetsInTemplateMixin",null,{_earlyTemplatedStartup:false,contextRequire:null,_beforeFillContent:function(){if(/dojoType|data-dojo-type/i.test(this.domNode.innerHTML)){var _6=this.domNode;if(this.containerNode&&!this.searchContainerNode){this.containerNode.stopParser=true;}_5.parse(_6,{noStart:!this._earlyTemplatedStartup,template:true,inherited:{dir:this.dir,lang:this.lang,textDir:this.textDir},propsThis:this,contextRequire:this.contextRequire,scope:"dojo"}).then(_4.hitch(this,function(_7){this._startupWidgets=_7;for(var i=0;i<_7.length;i++){this._processTemplateNode(_7[i],function(n,p){return n[p];},function(_8,_9,_a){if(_9 in _8){return _8.connect(_8,_9,_a);}else{return _8.on(_9,_a,true);}});}if(this.containerNode&&this.containerNode.stopParser){delete this.containerNode.stopParser;}}));if(!this._startupWidgets){throw new Error(this.declaredClass+": parser returned unfilled promise (probably waiting for module auto-load), "+"unsupported by _WidgetsInTemplateMixin. Must pre-load all supporting widgets before instantiation.");}}},_processTemplateNode:function(_b,_c,_d){if(_c(_b,"dojoType")||_c(_b,"data-dojo-type")){return true;}return this.inherited(arguments);},startup:function(){_1.forEach(this._startupWidgets,function(w){if(w&&!w._started&&w.startup){w.startup();}});this._startupWidgets=null;this.inherited(arguments);}});});
|
2
lib/dijit/_base.js
Normal file
2
lib/dijit/_base.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base",["./main","./a11y","./WidgetSet","./_base/focus","./_base/manager","./_base/place","./_base/popup","./_base/scroll","./_base/sniff","./_base/typematic","./_base/wai","./_base/window"],function(_1){return _1._base;});
|
2
lib/dijit/_base/focus.js
Normal file
2
lib/dijit/_base/focus.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/focus",["dojo/_base/array","dojo/dom","dojo/_base/lang","dojo/topic","dojo/_base/window","../focus","../selection","../main"],function(_1,_2,_3,_4,_5,_6,_7,_8){var _9={_curFocus:null,_prevFocus:null,isCollapsed:function(){return _8.getBookmark().isCollapsed;},getBookmark:function(){var _a=_5.global==window?_7:new _7.SelectionManager(_5.global);return _a.getBookmark();},moveToBookmark:function(_b){var _c=_5.global==window?_7:new _7.SelectionManager(_5.global);return _c.moveToBookmark(_b);},getFocus:function(_d,_e){var _f=!_6.curNode||(_d&&_2.isDescendant(_6.curNode,_d.domNode))?_8._prevFocus:_6.curNode;return {node:_f,bookmark:_f&&(_f==_6.curNode)&&_5.withGlobal(_e||_5.global,_8.getBookmark),openedForWindow:_e};},_activeStack:[],registerIframe:function(_10){return _6.registerIframe(_10);},unregisterIframe:function(_11){_11&&_11.remove();},registerWin:function(_12,_13){return _6.registerWin(_12,_13);},unregisterWin:function(_14){_14&&_14.remove();}};_6.focus=function(_15){if(!_15){return;}var _16="node" in _15?_15.node:_15,_17=_15.bookmark,_18=_15.openedForWindow,_19=_17?_17.isCollapsed:false;if(_16){var _1a=(_16.tagName.toLowerCase()=="iframe")?_16.contentWindow:_16;if(_1a&&_1a.focus){try{_1a.focus();}catch(e){}}_6._onFocusNode(_16);}if(_17&&_5.withGlobal(_18||_5.global,_8.isCollapsed)&&!_19){if(_18){_18.focus();}try{_5.withGlobal(_18||_5.global,_8.moveToBookmark,null,[_17]);}catch(e2){}}};_6.watch("curNode",function(_1b,_1c,_1d){_8._curFocus=_1d;_8._prevFocus=_1c;if(_1d){_4.publish("focusNode",_1d);}});_6.watch("activeStack",function(_1e,_1f,_20){_8._activeStack=_20;});_6.on("widget-blur",function(_21,by){_4.publish("widgetBlur",_21,by);});_6.on("widget-focus",function(_22,by){_4.publish("widgetFocus",_22,by);});_3.mixin(_8,_9);return _8;});
|
2
lib/dijit/_base/manager.js
Normal file
2
lib/dijit/_base/manager.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/manager",["dojo/_base/array","dojo/_base/config","dojo/_base/lang","../registry","../main"],function(_1,_2,_3,_4,_5){var _6={};_1.forEach(["byId","getUniqueId","findWidgets","_destroyAll","byNode","getEnclosingWidget"],function(_7){_6[_7]=_4[_7];});_3.mixin(_6,{defaultDuration:_2["defaultDuration"]||200});_3.mixin(_5,_6);return _5;});
|
2
lib/dijit/_base/place.js
Normal file
2
lib/dijit/_base/place.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/place",["dojo/_base/array","dojo/_base/lang","dojo/window","../place","../main"],function(_1,_2,_3,_4,_5){var _6={};_6.getViewport=function(){return _3.getBox();};_6.placeOnScreen=_4.at;_6.placeOnScreenAroundElement=function(_7,_8,_9,_a){var _b;if(_2.isArray(_9)){_b=_9;}else{_b=[];for(var _c in _9){_b.push({aroundCorner:_c,corner:_9[_c]});}}return _4.around(_7,_8,_b,true,_a);};_6.placeOnScreenAroundNode=_6.placeOnScreenAroundElement;_6.placeOnScreenAroundRectangle=_6.placeOnScreenAroundElement;_6.getPopupAroundAlignment=function(_d,_e){var _f={};_1.forEach(_d,function(pos){var ltr=_e;switch(pos){case "after":_f[_e?"BR":"BL"]=_e?"BL":"BR";break;case "before":_f[_e?"BL":"BR"]=_e?"BR":"BL";break;case "below-alt":ltr=!ltr;case "below":_f[ltr?"BL":"BR"]=ltr?"TL":"TR";_f[ltr?"BR":"BL"]=ltr?"TR":"TL";break;case "above-alt":ltr=!ltr;case "above":default:_f[ltr?"TL":"TR"]=ltr?"BL":"BR";_f[ltr?"TR":"TL"]=ltr?"BR":"BL";break;}});return _f;};_2.mixin(_5,_6);return _5;});
|
2
lib/dijit/_base/popup.js
Normal file
2
lib/dijit/_base/popup.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/popup",["dojo/dom-class","dojo/_base/window","../popup","../BackgroundIframe"],function(_1,_2,_3){var _4=_3._createWrapper;_3._createWrapper=function(_5){if(!_5.declaredClass){_5={_popupWrapper:(_5.parentNode&&_1.contains(_5.parentNode,"dijitPopup"))?_5.parentNode:null,domNode:_5,destroy:function(){},ownerDocument:_5.ownerDocument,ownerDocumentBody:_2.body(_5.ownerDocument)};}return _4.call(this,_5);};var _6=_3.open;_3.open=function(_7){if(_7.orient&&typeof _7.orient!="string"&&!("length" in _7.orient)){var _8=[];for(var _9 in _7.orient){_8.push({aroundCorner:_9,corner:_7.orient[_9]});}_7.orient=_8;}return _6.call(this,_7);};return _3;});
|
2
lib/dijit/_base/scroll.js
Normal file
2
lib/dijit/_base/scroll.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/scroll",["dojo/window","../main"],function(_1,_2){_2.scrollIntoView=function(_3,_4){_1.scrollIntoView(_3,_4);};});
|
2
lib/dijit/_base/sniff.js
Normal file
2
lib/dijit/_base/sniff.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/sniff",["dojo/uacss"],function(){});
|
2
lib/dijit/_base/typematic.js
Normal file
2
lib/dijit/_base/typematic.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/typematic",["../typematic"],function(){});
|
2
lib/dijit/_base/wai.js
Normal file
2
lib/dijit/_base/wai.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/wai",["dojo/dom-attr","dojo/_base/lang","../main","../hccss"],function(_1,_2,_3){var _4={hasWaiRole:function(_5,_6){var _7=this.getWaiRole(_5);return _6?(_7.indexOf(_6)>-1):(_7.length>0);},getWaiRole:function(_8){return _2.trim((_1.get(_8,"role")||"").replace("wairole:",""));},setWaiRole:function(_9,_a){_1.set(_9,"role",_a);},removeWaiRole:function(_b,_c){var _d=_1.get(_b,"role");if(!_d){return;}if(_c){var t=_2.trim((" "+_d+" ").replace(" "+_c+" "," "));_1.set(_b,"role",t);}else{_b.removeAttribute("role");}},hasWaiState:function(_e,_f){return _e.hasAttribute?_e.hasAttribute("aria-"+_f):!!_e.getAttribute("aria-"+_f);},getWaiState:function(_10,_11){return _10.getAttribute("aria-"+_11)||"";},setWaiState:function(_12,_13,_14){_12.setAttribute("aria-"+_13,_14);},removeWaiState:function(_15,_16){_15.removeAttribute("aria-"+_16);}};_2.mixin(_3,_4);return _3;});
|
2
lib/dijit/_base/window.js
Normal file
2
lib/dijit/_base/window.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_base/window",["dojo/window","../main"],function(_1,_2){_2.getDocumentWindow=function(_3){return _1.get(_3);};});
|
2
lib/dijit/_editor/RichText.js
Normal file
2
lib/dijit/_editor/RichText.js
Normal file
File diff suppressed because one or more lines are too long
2
lib/dijit/_editor/_Plugin.js
Normal file
2
lib/dijit/_editor/_Plugin.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/_Plugin",["dojo/_base/connect","dojo/_base/declare","dojo/_base/lang","../Destroyable","../form/Button"],function(_1,_2,_3,_4,_5){var _6=_2("dijit._editor._Plugin",_4,{constructor:function(_7){this.params=_7||{};_3.mixin(this,this.params);this._attrPairNames={};},editor:null,iconClassPrefix:"dijitEditorIcon",button:null,command:"",useDefaultCommand:true,buttonClass:_5,disabled:false,getLabel:function(_8){return this.editor.commands[_8];},_initButton:function(){if(this.command.length){var _9=this.getLabel(this.command),_a=this.editor,_b=this.iconClassPrefix+" "+this.iconClassPrefix+this.command.charAt(0).toUpperCase()+this.command.substr(1);if(!this.button){var _c=_3.mixin({label:_9,ownerDocument:_a.ownerDocument,dir:_a.dir,lang:_a.lang,showLabel:false,iconClass:_b,dropDown:this.dropDown,tabIndex:"-1"},this.params||{});delete _c.name;this.button=new this.buttonClass(_c);}}if(this.get("disabled")&&this.button){this.button.set("disabled",this.get("disabled"));}},destroy:function(){if(this.dropDown){this.dropDown.destroyRecursive();}this.inherited(arguments);},connect:function(o,f,tf){this.own(_1.connect(o,f,this,tf));},updateState:function(){var e=this.editor,c=this.command,_d,_e;if(!e||!e.isLoaded||!c.length){return;}var _f=this.get("disabled");if(this.button){try{var _10=e._implCommand(c);_e=!_f&&(this[_10]?this[_10](c):e.queryCommandEnabled(c));if(this.enabled!==_e){this.enabled=_e;this.button.set("disabled",!_e);}if(_e){if(typeof this.button.checked=="boolean"){_d=e.queryCommandState(c);if(this.checked!==_d){this.checked=_d;this.button.set("checked",e.queryCommandState(c));}}}}catch(e){}}},setEditor:function(_11){this.editor=_11;this._initButton();if(this.button&&this.useDefaultCommand){if(this.editor.queryCommandAvailable(this.command)){this.own(this.button.on("click",_3.hitch(this.editor,"execCommand",this.command,this.commandArg)));}else{this.button.domNode.style.display="none";}}this.own(this.editor.on("NormalizedDisplayChanged",_3.hitch(this,"updateState")));},setToolbar:function(_12){if(this.button){_12.addChild(this.button);}},set:function(_13,_14){if(typeof _13==="object"){for(var x in _13){this.set(x,_13[x]);}return this;}var _15=this._getAttrNames(_13);if(this[_15.s]){var _16=this[_15.s].apply(this,Array.prototype.slice.call(arguments,1));}else{this._set(_13,_14);}return _16||this;},get:function(_17){var _18=this._getAttrNames(_17);return this[_18.g]?this[_18.g]():this[_17];},_setDisabledAttr:function(_19){this._set("disabled",_19);this.updateState();},_getAttrNames:function(_1a){var apn=this._attrPairNames;if(apn[_1a]){return apn[_1a];}var uc=_1a.charAt(0).toUpperCase()+_1a.substr(1);return (apn[_1a]={s:"_set"+uc+"Attr",g:"_get"+uc+"Attr"});},_set:function(_1b,_1c){this[_1b]=_1c;}});_6.registry={};return _6;});
|
2
lib/dijit/_editor/html.js
Normal file
2
lib/dijit/_editor/html.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/html",["dojo/_base/array","dojo/_base/lang","dojo/sniff"],function(_1,_2,_3){var _4={};_2.setObject("dijit._editor.html",_4);var _5=_4.escapeXml=function(_6,_7){_6=_6.replace(/&/gm,"&").replace(/</gm,"<").replace(/>/gm,">").replace(/"/gm,""");if(!_7){_6=_6.replace(/'/gm,"'");}return _6;};_4.getNodeHtml=function(_8){var _9=[];_4.getNodeHtmlHelper(_8,_9);return _9.join("");};_4.getNodeHtmlHelper=function(_a,_b){switch(_a.nodeType){case 1:var _c=_a.nodeName.toLowerCase();if(!_c||_c.charAt(0)=="/"){return "";}_b.push("<",_c);var _d=[],_e={};var _f;if(_3("dom-attributes-explicit")||_3("dom-attributes-specified-flag")){var i=0;while((_f=_a.attributes[i++])){var n=_f.name;if(n.substr(0,3)!=="_dj"&&(!_3("dom-attributes-specified-flag")||_f.specified)&&!(n in _e)){var v=_f.value;if(n=="src"||n=="href"){if(_a.getAttribute("_djrealurl")){v=_a.getAttribute("_djrealurl");}}if(_3("ie")===8&&n==="style"){v=v.replace("HEIGHT:","height:").replace("WIDTH:","width:");}_d.push([n,v]);_e[n]=v;}}}else{var _10=/^input$|^img$/i.test(_a.nodeName)?_a:_a.cloneNode(false);var s=_10.outerHTML;var _11=/[\w-]+=("[^"]*"|'[^']*'|\S*)/gi;var _12=s.match(_11);s=s.substr(0,s.indexOf(">"));_1.forEach(_12,function(_13){if(_13){var idx=_13.indexOf("=");if(idx>0){var key=_13.substring(0,idx);if(key.substr(0,3)!="_dj"){if(key=="src"||key=="href"){if(_a.getAttribute("_djrealurl")){_d.push([key,_a.getAttribute("_djrealurl")]);return;}}var val,_14;switch(key){case "style":val=_a.style.cssText.toLowerCase();break;case "class":val=_a.className;break;case "width":if(_c==="img"){_14=/width=(\S+)/i.exec(s);if(_14){val=_14[1];}break;}case "height":if(_c==="img"){_14=/height=(\S+)/i.exec(s);if(_14){val=_14[1];}break;}default:val=_a.getAttribute(key);}if(val!=null){_d.push([key,val.toString()]);}}}}},this);}_d.sort(function(a,b){return a[0]<b[0]?-1:(a[0]==b[0]?0:1);});var j=0;while((_f=_d[j++])){_b.push(" ",_f[0],"=\"",(typeof _f[1]==="string"?_5(_f[1],true):_f[1]),"\"");}switch(_c){case "br":case "hr":case "img":case "input":case "base":case "meta":case "area":case "basefont":_b.push(" />");break;case "script":_b.push(">",_a.innerHTML,"</",_c,">");break;default:_b.push(">");if(_a.hasChildNodes()){_4.getChildrenHtmlHelper(_a,_b);}_b.push("</",_c,">");}break;case 4:case 3:_b.push(_5(_a.nodeValue,true));break;case 8:_b.push("<!--",_5(_a.nodeValue,true),"-->");break;default:_b.push("<!-- Element not recognized - Type: ",_a.nodeType," Name: ",_a.nodeName,"-->");}};_4.getChildrenHtml=function(_15){var _16=[];_4.getChildrenHtmlHelper(_15,_16);return _16.join("");};_4.getChildrenHtmlHelper=function(dom,_17){if(!dom){return;}var _18=dom["childNodes"]||dom;var _19=!_3("ie")||_18!==dom;var _1a,i=0;while((_1a=_18[i++])){if(!_19||_1a.parentNode==dom){_4.getNodeHtmlHelper(_1a,_17);}}};return _4;});
|
2
lib/dijit/_editor/nls/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/FontChoice",{root:({fontSize:"Size",fontName:"Font",formatBlock:"Format",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"cursive",fantasy:"fantasy",noFormat:"None",p:"Paragraph",h1:"Heading",h2:"Subheading",h3:"Sub-subheading",pre:"Pre-formatted",1:"xx-small",2:"x-small",3:"small",4:"medium",5:"large",6:"x-large",7:"xx-large"}),"bs":true,"mk":true,"sr":true,"zh":true,"zh-tw":true,"uk":true,"tr":true,"th":true,"sv":true,"sl":true,"sk":true,"ru":true,"ro":true,"pt":true,"pt-pt":true,"pl":true,"nl":true,"nb":true,"ko":true,"kk":true,"ja":true,"it":true,"id":true,"hu":true,"hr":true,"he":true,"fr":true,"fi":true,"eu":true,"es":true,"el":true,"de":true,"da":true,"cs":true,"ca":true,"bg":true,"az":true,"ar":true});
|
2
lib/dijit/_editor/nls/LinkDialog.js
Normal file
2
lib/dijit/_editor/nls/LinkDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/LinkDialog",{root:({createLinkTitle:"Link Properties",insertImageTitle:"Image Properties",url:"URL:",text:"Description:",target:"Target:",set:"Set",currentWindow:"Current Window",parentWindow:"Parent Window",topWindow:"Topmost Window",newWindow:"New Window"}),"bs":true,"mk":true,"sr":true,"zh":true,"zh-tw":true,"uk":true,"tr":true,"th":true,"sv":true,"sl":true,"sk":true,"ru":true,"ro":true,"pt":true,"pt-pt":true,"pl":true,"nl":true,"nb":true,"ko":true,"kk":true,"ja":true,"it":true,"id":true,"hu":true,"hr":true,"he":true,"fr":true,"fi":true,"eu":true,"es":true,"el":true,"de":true,"da":true,"cs":true,"ca":true,"bg":true,"az":true,"ar":true});
|
2
lib/dijit/_editor/nls/ar/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/ar/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/ar/FontChoice",({fontSize:"الحجم",fontName:"طاقم طباعة",formatBlock:"النسق",serif:"serif","sans-serif":"sans-serif",monospace:"أحادي المسافة",cursive:"كتابة بحروف متصلة",fantasy:"خيالي",noFormat:"لا شيء",p:"فقرة",h1:"عنوان",h2:"عنوان فرعي",h3:"فرعي-عنوان فرعي",pre:"منسق بصفة مسبقة",1:"صغير جدا جدا",2:"صغير جدا",3:"صغير",4:"متوسط",5:"كبير",6:"كبير جدا",7:"كبير جدا جدا"}));
|
2
lib/dijit/_editor/nls/ar/LinkDialog.js
Normal file
2
lib/dijit/_editor/nls/ar/LinkDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/ar/LinkDialog",({createLinkTitle:"خصائص الوصلة",insertImageTitle:"خصائص الصورة",url:"عنوان URL:",text:"الوصف:",target:"الهدف:",set:"تحديد",currentWindow:"النافذة الحالية",parentWindow:"النافذة الرئيسية",topWindow:"النافذة العلوية",newWindow:"نافذة جديدة"}));
|
2
lib/dijit/_editor/nls/ar/commands.js
Normal file
2
lib/dijit/_editor/nls/ar/commands.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/ar/commands",({"bold":"عريض","copy":"نسخ","cut":"قص","delete":"حذف","indent":"ازاحة للداخل","insertHorizontalRule":"مسطرة أفقية","insertOrderedList":"كشف مرقم","insertUnorderedList":"كشف نقطي","italic":"مائل","justifyCenter":"محاذاة في الوسط","justifyFull":"ضبط","justifyLeft":"محاذاة الى اليسار","justifyRight":"محاذاة الى اليمين","outdent":"ازاحة للخارج","paste":"لصق","redo":"اعادة","removeFormat":"ازالة النسق","selectAll":"اختيار كل","strikethrough":"تشطيب","subscript":"رمز سفلي","superscript":"رمز علوي","underline":"تسطير","undo":"تراجع","unlink":"ازالة وصلة","createLink":"تكوين وصلة","toggleDir":"تبديل الاتجاه","insertImage":"ادراج صورة","insertTable":"ادراج/تحرير جدول","toggleTableBorder":"تبديل حدود الجدول","deleteTable":"حذف جدول","tableProp":"خصائص الجدول","htmlToggle":"مصدر HTML","foreColor":"لون الواجهة الأمامية","hiliteColor":"لون الخلفية","plainFormatBlock":"نمط الفقرة","formatBlock":"نمط الفقرة","fontSize":"حجم طاقم الطباعة","fontName":"اسم طاقم الطباعة","tabIndent":"ازاحة علامة الجدولة للداخل","fullScreen":"تبديل الشاشة الكاملة","viewSource":"مشاهدة مصدر HTML","print":"طباعة","newPage":"صفحة جديدة","systemShortcut":"يكون التصرف \"${0}\" متاحا فقط ببرنامج الاستعراض الخاص بك باستخدام المسار المختصر للوحة المفاتيح. استخدم ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"}));
|
2
lib/dijit/_editor/nls/az/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/az/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/az/FontChoice",({"1":"xx-kiçik","2":"x-kiçik","formatBlock":"Format","3":"kiçik","4":"orta","5":"böyük","6":"çox-böyük","7":"ən böyük","fantasy":"fantaziya","serif":"serif","p":"Abzas","pre":"Əvvəldən düzəldilmiş","sans-serif":"sans-serif","fontName":"Şrift","h1":"Başlıq","h2":"Alt Başlıq","h3":"Alt Alt Başlıq","monospace":"Tək aralıqlı","fontSize":"Ölçü","cursive":"Əl yazısı","noFormat":"Heç biri"}));
|
2
lib/dijit/_editor/nls/az/LinkDialog.js
Normal file
2
lib/dijit/_editor/nls/az/LinkDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/az/LinkDialog",({"text":"Yazı:","insertImageTitle":"Şəkil başlığı əlavə et","set":"Yönəlt","newWindow":"Yeni pəncərə","topWindow":"Üst pəncərə","target":"Hədəf:","createLinkTitle":"Köprü başlığı yarat","parentWindow":"Ana pəncərə","currentWindow":"Hazırki pəncərə","url":"URL:"}));
|
2
lib/dijit/_editor/nls/az/commands.js
Normal file
2
lib/dijit/_editor/nls/az/commands.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/az/commands",({"removeFormat":"Formatı Sil","copy":"Köçür","paste":"Yapışdır","selectAll":"Hamısını seç","insertOrderedList":"Nömrəli siyahı","insertTable":"Cədvəl əlavə et","print":"Yazdır","underline":"Altıxətli","foreColor":"Ön plan rəngi","htmlToggle":"HTML kodu","formatBlock":"Abzas stili","newPage":"Yeni səhifə","insertHorizontalRule":"Üfüqi qayda","delete":"Sil","insertUnorderedList":"İşarələnmiş siyahı","tableProp":"Cədvəl xüsusiyyətləri","insertImage":"Şəkil əlavə et","superscript":"Üst işarə","subscript":"Alt işarə","createLink":"Körpü yarat","undo":"Geriyə al","fullScreen":"Tam ekran aç","italic":"İtalik","fontName":"Yazı tipi","justifyLeft":"Sol tərəfə Doğrult","unlink":"Körpünü sil","toggleTableBorder":"Cədvəl kənarlarını göstər/Gizlət","viewSource":"HTML qaynaq kodunu göstər","fontSize":"Yazı tipi böyüklüğü","systemShortcut":"\"${0}\" prosesi yalnız printerinizdə klaviatura qısayolu ilə istifadə oluna bilər. Bundan istifadə edin","indent":"Girinti","redo":"Yenilə","strikethrough":"Üstündən xətt çəkilmiş","justifyFull":"Doğrult","justifyCenter":"Ortaya doğrult","hiliteColor":"Arxa plan rəngi","deleteTable":"Cədvəli sil","outdent":"Çıxıntı","cut":"Kəs","plainFormatBlock":"Abzas stili","toggleDir":"İstiqaməti dəyişdir","bold":"Qalın","tabIndent":"Qulp girintisi","justifyRight":"Sağa doğrult","appleKey":"⌘${0}","ctrlKey":"ctrl+${0}"}));
|
2
lib/dijit/_editor/nls/bg/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/bg/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/bg/FontChoice",({fontSize:"Размер",fontName:"Шрифт",formatBlock:"Формат",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"cursive",fantasy:"fantasy",noFormat:"Няма",p:"Параграф",h1:"Заглавна част",h2:"Подзаглавие",h3:"Под-подзаглавие",pre:"Предварително форматиран",1:"xx-малък",2:"x-малък",3:"малък",4:"среден",5:"голям",6:"x-голям",7:"xx-голям"}));
|
2
lib/dijit/_editor/nls/bg/LinkDialog.js
Normal file
2
lib/dijit/_editor/nls/bg/LinkDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/bg/LinkDialog",({createLinkTitle:"Свойства на връзка",insertImageTitle:"Свойства на изображение",url:"URL:",text:"Описание:",target:"Цел:",set:"Задай",currentWindow:"Текущ прозорец",parentWindow:"Родителски прозорец",topWindow:"Най-горен прозорец",newWindow:"Нов прозорец"}));
|
2
lib/dijit/_editor/nls/bg/commands.js
Normal file
2
lib/dijit/_editor/nls/bg/commands.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/bg/commands",({"bold":"Получерен","copy":"Копирай","cut":"Изрежи","delete":"Изтрий","indent":"Отстъп","insertHorizontalRule":"Хоризонтална линия","insertOrderedList":"Номериран списък","insertUnorderedList":"Списък с водещи символи","italic":"Курсив","justifyCenter":"Центрирано подравняване","justifyFull":"Двустранно подравняване","justifyLeft":"Подравняване отляво","justifyRight":"Подравняване отдясно","outdent":"Обратен отстъп","paste":"Постави","redo":"Върни","removeFormat":"Премахни форматирането","selectAll":"Избери всички","strikethrough":"Зачеркване","subscript":"Долен индекс","superscript":"Горен индекс","underline":"Подчертаване","undo":"Отмени","unlink":"Премахване на връзка","createLink":"Създаване на връзка","toggleDir":"Превключване на посока","insertImage":"Вмъкване на изображение","insertTable":"Вмъкване/редактиране на таблица","toggleTableBorder":"Превключване на граница на таблица","deleteTable":"Изтриване на таблица","tableProp":"Свойство на таблица","htmlToggle":"HTML източник","foreColor":"Цвят на предния план","hiliteColor":"Цвят на фон","plainFormatBlock":"Стил на абзац","formatBlock":"Стил на абзац","fontSize":"Размер на шрифт","fontName":"Име на шрифт","tabIndent":"Отстъп на табулация","fullScreen":"Превключване на цял екран","viewSource":"Преглед на HTML източник","print":"Отпечатаване","newPage":"Нова страница","systemShortcut":"Действие \"${0}\" е достъпно във Вашия браузър само чрез използване на бърза клавишна комбинация. Използвайте ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"}));
|
2
lib/dijit/_editor/nls/bs/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/bs/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/bs/FontChoice",{fontSize:"Veličina",fontName:"Font",formatBlock:"Format",serif:"serif","sans-serif":"bez-serifa",monospace:"monoprostor",cursive:"kurziv",fantasy:"Fantazija",noFormat:"ništa",p:"Paragraf",h1:"Naslov",h2:"Podnaslov",h3:"Pod-podnaslov",pre:"Predformatizovano",1:"xx-malo",2:"x-malo",3:"maleno",4:"srednje",5:"veliko",6:"x-veliko",7:"xx-veliko"});
|
2
lib/dijit/_editor/nls/bs/LinkDialog.js
Normal file
2
lib/dijit/_editor/nls/bs/LinkDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/bs/LinkDialog",{createLinkTitle:"Osobine povezivanja",insertImageTitle:"Osobine slike",url:"URL:",text:"Opis",target:"Cilj:",set:"Postav",currentWindow:"Trenutni prozor",parentWindow:"Nadređeni prozor",topWindow:"Najviši prozor",newWindow:"Novi prozor"});
|
2
lib/dijit/_editor/nls/bs/commands.js
Normal file
2
lib/dijit/_editor/nls/bs/commands.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/bs/commands",{"bold":"Boldirano","copy":"Kopiraj","cut":"Izreži","delete":"Izbriši","indent":"Uvlači","insertHorizontalRule":"Horizontalno pravilo","insertOrderedList":"Numerisana lista","insertUnorderedList":"Lista oznaka","italic":"Kurziv","justifyCenter":"Poravnaj po sredini","justifyFull":"Poravnaj","justifyLeft":"Poravnaj na lijevo","justifyRight":"Poravnaj na desno","outdent":"Izvuci","paste":"Zalijepi","redo":"Ponovo napravi","removeFormat":"Ukloni format","selectAll":"Izaberi sve","strikethrough":"Precrtaj","subscript":"Indeks","superscript":"Superskript","underline":"Podvuci","undo":"Poništi","unlink":"Ukloni link","createLink":"Kreiraj link","toggleDir":"Promijeni smjer","insertImage":"Umetni sliku","insertTable":"Umetni/uredi tabelu","toggleTableBorder":"Promijeni rub tabele","deleteTable":"Briši tabelu","tableProp":"Osobina tabele","htmlToggle":"HTML izvor","foreColor":"Boja prednjeg plana","hiliteColor":"Boja pozadine","plainFormatBlock":"Stil paragrafa","formatBlock":"Stil paragrafa","fontSize":"Veličina fonta","fontName":"Ime fonta","tabIndent":"Uvlačenje kartice","fullScreen":"Promijeni pun ekran","viewSource":"Pogledaj HTML izvor","print":"Ispiši","newPage":"Nova stranica","systemShortcut":"Akcija \"${0}\"je dostupna u vašem pretraživaču kad koristite prečicu tastature. Koristite ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"});
|
2
lib/dijit/_editor/nls/ca/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/ca/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/ca/FontChoice",({fontSize:"Mida",fontName:"Tipus de lletra",formatBlock:"Format",serif:"serif","sans-serif":"sans-serif",monospace:"monoespai",cursive:"Cursiva",fantasy:"Fantasia",noFormat:"Cap",p:"Paràgraf",h1:"Títol",h2:"Subtítol",h3:"Subsubtítol",pre:"Format previ",1:"xx-petit",2:"x-petit",3:"petit",4:"mitjà",5:"gran",6:"x-gran",7:"xx-gran"}));
|
2
lib/dijit/_editor/nls/ca/LinkDialog.js
Normal file
2
lib/dijit/_editor/nls/ca/LinkDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/ca/LinkDialog",({createLinkTitle:"Propietats de l'enllaç",insertImageTitle:"Propietats de la imatge",url:"URL:",text:"Descripció:",target:"Destinació:",set:"Defineix",currentWindow:"Finestra actual",parentWindow:"Finestra pare",topWindow:"Finestra superior",newWindow:"Finestra nova"}));
|
2
lib/dijit/_editor/nls/ca/commands.js
Normal file
2
lib/dijit/_editor/nls/ca/commands.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/ca/commands",({"bold":"Negreta","copy":"Copia","cut":"Retalla","delete":"Suprimeix","indent":"Sagnat","insertHorizontalRule":"Regla horitzontal","insertOrderedList":"Llista numerada","insertUnorderedList":"Llista de vinyetes","italic":"Cursiva","justifyCenter":"Alineació centrada","justifyFull":"Justifica","justifyLeft":"Alineació a l'esquerra","justifyRight":"Alineació a la dreta","outdent":"Sagnat a l'esquerra","paste":"Enganxa","redo":"Refés","removeFormat":"Elimina el format","selectAll":"Selecciona-ho tot","strikethrough":"Ratllat","subscript":"Subíndex","superscript":"Superíndex","underline":"Subratllat","undo":"Desfés","unlink":"Elimina l'enllaç","createLink":"Crea un enllaç","toggleDir":"Inverteix la direcció","insertImage":"Insereix imatge","insertTable":"Insereix/edita la taula","toggleTableBorder":"Inverteix els contorns de taula","deleteTable":"Suprimeix la taula","tableProp":"Propietat de taula","htmlToggle":"Font HTML","foreColor":"Color de primer pla","hiliteColor":"Color de fons","plainFormatBlock":"Estil de paràgraf","formatBlock":"Estil de paràgraf","fontSize":"Mida del tipus de lletra","fontName":"Nom del tipus de lletra","tabIndent":"Sagnat","fullScreen":"Commuta pantalla completa","viewSource":"Visualitza font HTML","print":"Imprimeix","newPage":"Pàgina nova","systemShortcut":"L'acció \"${0}\" és l'única disponible al navegador utilitzant una drecera del teclat. Utilitzeu ${1}.","ctrlKey":"control+${0}","appleKey":"⌘${0}"}));
|
2
lib/dijit/_editor/nls/commands.js
Normal file
2
lib/dijit/_editor/nls/commands.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/commands",{root:({"bold":"Bold","copy":"Copy","cut":"Cut","delete":"Delete","indent":"Indent","insertHorizontalRule":"Horizontal Rule","insertOrderedList":"Numbered List","insertUnorderedList":"Bullet List","italic":"Italic","justifyCenter":"Align Center","justifyFull":"Justify","justifyLeft":"Align Left","justifyRight":"Align Right","outdent":"Outdent","paste":"Paste","redo":"Redo","removeFormat":"Remove Format","selectAll":"Select All","strikethrough":"Strikethrough","subscript":"Subscript","superscript":"Superscript","underline":"Underline","undo":"Undo","unlink":"Remove Link","createLink":"Create Link","toggleDir":"Toggle Direction","insertImage":"Insert Image","insertTable":"Insert/Edit Table","toggleTableBorder":"Toggle Table Border","deleteTable":"Delete Table","tableProp":"Table Property","htmlToggle":"HTML Source","foreColor":"Foreground Color","hiliteColor":"Background Color","plainFormatBlock":"Paragraph Style","formatBlock":"Paragraph Style","fontSize":"Font Size","fontName":"Font Name","tabIndent":"Tab Indent","fullScreen":"Toggle Full Screen","viewSource":"View HTML Source","print":"Print","newPage":"New Page","systemShortcut":"The \"${0}\" action is only available in your browser using a keyboard shortcut. Use ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"}),"bs":true,"mk":true,"sr":true,"zh":true,"zh-tw":true,"uk":true,"tr":true,"th":true,"sv":true,"sl":true,"sk":true,"ru":true,"ro":true,"pt":true,"pt-pt":true,"pl":true,"nl":true,"nb":true,"ko":true,"kk":true,"ja":true,"it":true,"id":true,"hu":true,"hr":true,"he":true,"fr":true,"fi":true,"eu":true,"es":true,"el":true,"de":true,"da":true,"cs":true,"ca":true,"bg":true,"az":true,"ar":true});
|
2
lib/dijit/_editor/nls/cs/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/cs/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/cs/FontChoice",({fontSize:"Velikost",fontName:"Písmo",formatBlock:"Formát",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"cursive",fantasy:"fantasy",noFormat:"Žádný",p:"Odstavec",h1:"Nadpis",h2:"Podnadpis",h3:"Podnadpis 2",pre:"Předformátované",1:"extra malé",2:"velmi malé",3:"malé",4:"střední",5:"velké",6:"velmi velké",7:"extra velké"}));
|
2
lib/dijit/_editor/nls/cs/LinkDialog.js
Normal file
2
lib/dijit/_editor/nls/cs/LinkDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/cs/LinkDialog",({createLinkTitle:"Vlastnosti odkazu",insertImageTitle:"Vlastnosti obrázku",url:"Adresa URL:",text:"Popis:",target:"Cíl:",set:"Nastavit",currentWindow:"Aktuální okno",parentWindow:"Nadřízené okno",topWindow:"Okno nejvyšší úrovně",newWindow:"Nové okno"}));
|
2
lib/dijit/_editor/nls/cs/commands.js
Normal file
2
lib/dijit/_editor/nls/cs/commands.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/cs/commands",({"bold":"Tučné","copy":"Kopírovat","cut":"Vyjmout","delete":"Odstranit","indent":"Odsadit","insertHorizontalRule":"Vodorovná čára","insertOrderedList":"Číslovaný seznam","insertUnorderedList":"Seznam s odrážkami","italic":"Kurzíva","justifyCenter":"Zarovnat na střed","justifyFull":"Do bloku","justifyLeft":"Zarovnat vlevo","justifyRight":"Zarovnat vpravo","outdent":"Předsadit","paste":"Vložit","redo":"Opakovat","removeFormat":"Odebrat formát","selectAll":"Vybrat vše","strikethrough":"Přeškrtnutí","subscript":"Dolní index","superscript":"Horní index","underline":"Podtržení","undo":"Zpět","unlink":"Odebrat odkaz","createLink":"Vytvořit odkaz","toggleDir":"Přepnout směr","insertImage":"Vložit obrázek","insertTable":"Vložit/upravit tabulku","toggleTableBorder":"Přepnout ohraničení tabulky","deleteTable":"Odstranit tabulku","tableProp":"Vlastnost tabulky","htmlToggle":"Zdroj HTML","foreColor":"Barva popředí","hiliteColor":"Barva pozadí","plainFormatBlock":"Styl odstavce","formatBlock":"Styl odstavce","fontSize":"Velikost písma","fontName":"Název písma","tabIndent":"Odsazení tabulátoru","fullScreen":"Přepnout režim celé obrazovky","viewSource":"Zobrazit zdroj ve formátu HTML","print":"Tisk","newPage":"Nová stránka","systemShortcut":"Akce \"${0}\" je v prohlížeči dostupná pouze prostřednictvím klávesové zkratky. Použijte klávesovou zkratku ${1}.","ctrlKey":"ctrl+${0}","appleKey":"⌘${0}"}));
|
2
lib/dijit/_editor/nls/da/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/da/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/da/FontChoice",({fontSize:"Størrelse",fontName:"Skrifttype",formatBlock:"Format",serif:"serif","sans-serif":"sans-serif",monospace:"monospace",cursive:"kursiv",fantasy:"fantasy",noFormat:"Ingen",p:"Afsnit",h1:"Overskrift",h2:"Underoverskrift",h3:"Underunderoverskrift",pre:"Forudformateret",1:"xx-small",2:"x-small",3:"small",4:"medium",5:"large",6:"x-large",7:"xx-large"}));
|
2
lib/dijit/_editor/nls/da/LinkDialog.js
Normal file
2
lib/dijit/_editor/nls/da/LinkDialog.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/da/LinkDialog",({createLinkTitle:"Linkegenskaber",insertImageTitle:"Billedegenskaber",url:"URL:",text:"Beskrivelse:",target:"Mål:",set:"Definér",currentWindow:"Aktuelt vindue",parentWindow:"Overordnet vindue",topWindow:"Øverste vindue",newWindow:"Nyt vindue"}));
|
2
lib/dijit/_editor/nls/da/commands.js
Normal file
2
lib/dijit/_editor/nls/da/commands.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/da/commands",({"bold":"Fed","copy":"Kopiér","cut":"Klip","delete":"Slet","indent":"Indrykning","insertHorizontalRule":"Vandret linje","insertOrderedList":"Nummereret liste","insertUnorderedList":"Punktliste","italic":"Kursiv","justifyCenter":"Centreret","justifyFull":"Lige margener","justifyLeft":"Venstrejusteret","justifyRight":"Højrejusteret","outdent":"Udrykning","paste":"Sæt ind","redo":"Annullér Fortryd","removeFormat":"Fjern format","selectAll":"Markér alle","strikethrough":"Gennemstreget","subscript":"Sænket skrift","superscript":"Hævet skrift","underline":"Understreget","undo":"Fortryd","unlink":"Fjern link","createLink":"Opret link","toggleDir":"Skift retning","insertImage":"Indsæt billede","insertTable":"Indsæt/redigér tabel","toggleTableBorder":"Skift tabelramme","deleteTable":"Slet tabel","tableProp":"Tabelegenskab","htmlToggle":"HTML-kilde","foreColor":"Forgrundsfarve","hiliteColor":"Baggrundsfarve","plainFormatBlock":"Afsnitstypografi","formatBlock":"Afsnitstypografi","fontSize":"Skriftstørrelse","fontName":"Skriftnavn","tabIndent":"Tabulatorindrykning","fullScreen":"Fuld skærm til/fra","viewSource":"Vis HTML-kilde","print":"Udskriv","newPage":"Ny side","systemShortcut":"Funktionen \"${0}\" kan kun bruges i din browser med en tastaturgenvej. Brug ${1}.","ctrlKey":"Ctrl+${0}","appleKey":"⌘${0}"}));
|
2
lib/dijit/_editor/nls/de/FontChoice.js
Normal file
2
lib/dijit/_editor/nls/de/FontChoice.js
Normal file
@ -0,0 +1,2 @@
|
||||
//>>built
|
||||
define("dijit/_editor/nls/de/FontChoice",({fontSize:"Größe",fontName:"Schriftart",formatBlock:"Format",serif:"Serife","sans-serif":"Serifenlos",monospace:"Monospaceschrift",cursive:"Kursiv",fantasy:"Fantasie",noFormat:"Keine Angabe",p:"Absatz",h1:"Überschrift",h2:"Unterüberschrift",h3:"Unterunterüberschrift",pre:"Vorformatiert",1:"XXS",2:"XS",3:"S",4:"M",5:"L",6:"XL",7:"XXL"}));
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user