Automated build for v0.01
This commit is contained in:
		
						commit
						791b998489
					
				
					 2771 changed files with 222096 additions and 0 deletions
				
			
		
							
								
								
									
										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
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fmstrat
						Fmstrat