Permalink
Browse files

Properly extend rules, parse each import sheet separately, widget fix…

…es, rendering fix
  • Loading branch information...
1 parent 0e919ad commit bb779b6161f4127b993250d4cf465f2d70df0709 @kriszyp committed Dec 13, 2012
Showing with 408 additions and 158 deletions.
  1. +190 −0 LICENSE
  2. +1 −0 elemental.js
  3. +1 −1 ext.css
  4. +26 −0 ext/event-delegate.js
  5. +1 −1 ext/generate.js
  6. +3 −1 ext/widget.js
  7. +2 −0 load-imports.js
  8. +16 −15 test/testDijit.css
  9. +168 −140 xstyle.js
View
@@ -0,0 +1,190 @@
+xstyle is available under *either* the terms of the modified BSD license *or* the
+Academic Free License version 2.1. As a recipient of xstyle, you may choose which
+license to receive this code under.
+
+The text of the AFL and BSD licenses is reproduced below.
+
+-------------------------------------------------------------------------------
+The "New" BSD License:
+**********************
+
+Copyright (c) 2010-2011, The Dojo 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 Dojo 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.
View
@@ -63,6 +63,7 @@ define([], function(){
for(var i = 0; i < renderQueue.length; i++){
var element = renderQueue[i];
var renderings = element.renderings, currentStyle = element.elementalStyle;
+ delete element.renderings;
for(var j = 0; j < renderings.length; j++){
var rendering = renderings[j];
var renderer = rendering.renderer;
View
@@ -10,6 +10,6 @@ x-property {
-x-widget: require(xstyle/ext/widget);
-x-content: require(xstyle/ext/generate);
bind: require(xstyle/ext/bind);
- to: require(xstyle/ext/bind);
+ from: require(xstyle/ext/bind);
onclick: require(xstyle/ext/event);
}
View
@@ -0,0 +1,26 @@
+define([], function(){
+ var module, hasAddEventListener = !!document.addEventListener,
+ div = document.createElement('div')
+ matchesSelector = div.matchesSelector || div.webkitMatchesSelector || div.msMatchesSelector || div.mozMatchesSelector;
+ return module = {
+ // TODO: do an onCall function version for adding events that don't get overriden?
+ onProperty: function(name, value, rule){
+ var selector;
+ // TODO: We could do a neat optimization of event handling with webkitMatchesRules, and delegating to the appropriate rule based on a hash map
+ // we use event delegation
+ this.on(document, name.slice(2), rule.fullSelector(), value);
+ },
+ on: function(target, event, selector, listener){
+ // this function can be overriden to provide better event handling
+ hasAddEventListener ?
+ target.addEventListener(event, select, false) :
+ target.attachEvent(event, select);
+ function select(event){
+ selector = selector || rule.fullSelector();
+ if(matchesSelector.call(event.target, selector)){
+ console.log("execute event", listener);
+ }
+ }
+ }
+ };
+});
View
@@ -1,4 +1,4 @@
-// TODO: eventually can probably get rid of put-selector dependency
+// TODO: eventually maybe we can probably get rid of put-selector dependency
define(['../elemental', 'put-selector/put'], function(elemental, put){
var nextId = 0;
return {
View
@@ -44,6 +44,8 @@ define(['../elemental'], function(elemental){
new Class(props, element);
});
}
+ }else{
+ console.error("No type defined for widget");
}
}else if(value.splice){
// an array
@@ -103,7 +105,7 @@ define(['../elemental'], function(elemental){
// }
return {
then: function(callback){
- parse(value.eachProperty ? value : rule, function(renderer){
+ parse(value[1].eachProperty ? value[1] : rule, function(renderer){
elemental.addRenderer(name, value, rule, renderer);
callback();
}, typeof value == "string" && value);
View
@@ -187,6 +187,8 @@ define([], function(){
sourceSheet.localSource = text;
finishedModule();
});
+ }else{
+ sheet.localSource = link.innerHTML;
}
var cssRules = sheet.rules || sheet.cssRules;
for(var i = 0; i < cssRules.length; i++){
View
@@ -25,28 +25,29 @@ button {
}
dijit-text {
width: 100px;
- -x-widget: dijit/form/TextBox;
+ widget: dijit/form/TextBox;
height: 30px;
display: block;
background-color: red;
}
red-dijit-text {
- =dijit-text(200px);
+ extends(dijit-text);/*dijit-text(200px)*/
height: 50px;
}
-form.edit-object { =>
- label 'Some label',
- input[type=number] {
- to: content.price;
- background-color: green;
- },
- input[type=number] {
- to: content.quantity;
- },
- div {
- to: content.price*content.quantity;
- },
- red-dijit-text;
+form.edit-object {
+ =>
+ label 'Some label',
+ input[type=number] {
+ from: content.price;
+ background-color: green;
+ },
+ input[type=number] {
+ from: content.quantity;
+ },
+ div {
+ from: content.price*content.quantity;
+ },
+ red-dijit-text 'red-dijit-text';
background-color: blue;
}
Oops, something went wrong. Retry.

0 comments on commit bb779b6

Please sign in to comment.