This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new 2d678d0647 Added flex-grid styles
2d678d0647 is described below
commit 2d678d064739fb00067e93e62dbe38cf66e5ae59
Author: Harbs <[email protected]>
AuthorDate: Tue Feb 24 14:13:30 2026 +0200
Added flex-grid styles
---
.../style/stylebeads/flexgrid/AlignContent.as | 64 ++++++++++++++++++++
.../royale/style/stylebeads/flexgrid/AlignItems.as | 64 ++++++++++++++++++++
.../royale/style/stylebeads/flexgrid/AlignSelf.as | 64 ++++++++++++++++++++
.../royale/style/stylebeads/flexgrid/ColumnGap.as | 29 +++++++++
.../royale/style/stylebeads/flexgrid/Flex.as | 50 ++++++++++++++++
.../royale/style/stylebeads/flexgrid/FlexBasis.as | 44 ++++++++++++++
.../style/stylebeads/flexgrid/FlexDirection.as | 37 ++++++++++++
.../royale/style/stylebeads/flexgrid/FlexGrow.as | 39 ++++++++++++
.../royale/style/stylebeads/flexgrid/FlexShrink.as | 39 ++++++++++++
.../royale/style/stylebeads/flexgrid/FlexWrap.as | 38 ++++++++++++
.../{layout/InsetBase.as => flexgrid/Gap.as} | 47 +++++----------
.../style/stylebeads/flexgrid/GridAutoColumns.as | 66 +++++++++++++++++++++
.../style/stylebeads/flexgrid/GridAutoFlow.as | 41 +++++++++++++
.../style/stylebeads/flexgrid/GridAutoRows.as | 66 +++++++++++++++++++++
.../royale/style/stylebeads/flexgrid/GridColumn.as | 38 ++++++++++++
.../style/stylebeads/flexgrid/GridColumnEnd.as | 28 +++++++++
.../style/stylebeads/flexgrid/GridColumnStart.as | 28 +++++++++
.../royale/style/stylebeads/flexgrid/GridRow.as | 38 ++++++++++++
.../royale/style/stylebeads/flexgrid/GridRowEnd.as | 38 ++++++++++++
.../style/stylebeads/flexgrid/GridRowStart.as | 38 ++++++++++++
.../stylebeads/flexgrid/GridTemplateColumns.as | 48 +++++++++++++++
.../style/stylebeads/flexgrid/GridTemplateRows.as | 48 +++++++++++++++
.../style/stylebeads/flexgrid/JustifyContent.as | 64 ++++++++++++++++++++
.../style/stylebeads/flexgrid/JustifyItems.as | 56 ++++++++++++++++++
.../style/stylebeads/flexgrid/JustifySelf.as | 57 ++++++++++++++++++
.../royale/style/stylebeads/flexgrid/Order.as | 69 ++++++++++++++++++++++
.../style/stylebeads/flexgrid/PlaceContent.as | 55 +++++++++++++++++
.../royale/style/stylebeads/flexgrid/PlaceItems.as | 55 +++++++++++++++++
.../royale/style/stylebeads/flexgrid/PlaceSelf.as | 55 +++++++++++++++++
.../royale/style/stylebeads/flexgrid/RowGap.as | 29 +++++++++
.../royale/style/stylebeads/layout/InsetBase.as | 2 +-
31 files changed, 1401 insertions(+), 33 deletions(-)
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignContent.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignContent.as
new file mode 100644
index 0000000000..7b3f053685
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignContent.as
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class AlignContent extends SingleStyleBase
+ {
+ public function AlignContent()
+ {
+ super("content", "align-content");
+ }
+
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+ private function getAfterDash(value:String):String
+ {
+ var dashIndex:int = value.indexOf("-");
+ if(dashIndex >= 0)
+ return value.substring(dashIndex + 1);
+ return value;
+ }
+ override public function set value(value:*):void
+ {
+ assert(["normal","flex-start","flex-end","safe
flex-end","flex-end safe","center","safe center","center safe","baseline","last
baseline","stretch"].indexOf(value) >= 0, "Invalid value for align-items: " +
value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedRuleValue = vals[0];
+ calculatedSelector = getAfterDash(vals[0]);
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignItems.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignItems.as
new file mode 100644
index 0000000000..75423be76a
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignItems.as
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class AlignItems extends SingleStyleBase
+ {
+ public function AlignItems()
+ {
+ super("items", "align-items");
+ }
+
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+ private function getAfterDash(value:String):String
+ {
+ var dashIndex:int = value.indexOf("-");
+ if(dashIndex >= 0)
+ return value.substring(dashIndex + 1);
+ return value;
+ }
+ override public function set value(value:*):void
+ {
+ assert(["flex-start","flex-end","safe
flex-end","flex-end safe","center","safe center","center safe","baseline","last
baseline","stretch"].indexOf(value) >= 0, "Invalid value for align-items: " +
value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedRuleValue = vals[0];
+ calculatedSelector = getAfterDash(vals[0]);
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignSelf.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignSelf.as
new file mode 100644
index 0000000000..b3db717df8
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/AlignSelf.as
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class AlignSelf extends SingleStyleBase
+ {
+ public function AlignSelf()
+ {
+ super("self", "align-self");
+ }
+
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+ private function getAfterDash(value:String):String
+ {
+ var dashIndex:int = value.indexOf("-");
+ if(dashIndex >= 0)
+ return value.substring(dashIndex + 1);
+ return value;
+ }
+ override public function set value(value:*):void
+ {
+ assert(["auto","flex-start","flex-end","safe
flex-end","flex-end safe","center","safe center","center safe","baseline","last
baseline","stretch"].indexOf(value) >= 0, "Invalid value for align-items: " +
value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedRuleValue = vals[0];
+ calculatedSelector = getAfterDash(vals[0]);
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/ColumnGap.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/ColumnGap.as
new file mode 100644
index 0000000000..ab07511e8a
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/ColumnGap.as
@@ -0,0 +1,29 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+
+ public class ColumnGap extends Gap
+ {
+ public function ColumnGap()
+ {
+ super("gap-x", "column-gap");
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Flex.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Flex.as
new file mode 100644
index 0000000000..e4f2618f6b
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Flex.as
@@ -0,0 +1,50 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+
+ public class Flex extends SingleStyleBase
+ {
+ public function Flex()
+ {
+ super("flex", "flex");
+ }
+
+ override public function set value(value:*):void
+ {
+ COMPILE::JS
+ {
+ value = value.trim();
+ // TODO validate aspect before setting
+ calculatedRuleValue = calculatedSelector =
_value = value;
+ var isNum:Boolean = parseFloat(value) == value;
+ var isInt:Boolean = int(value) == value;
+ if(isNum && !isInt)
+ calculatedRuleValue = (value * 100) +
"%";
+
+ else if(value == "0 auto")
+ calculatedSelector = "initial";
+
+ //TODO css vars
+ }
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexBasis.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexBasis.as
new file mode 100644
index 0000000000..63f2addf07
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexBasis.as
@@ -0,0 +1,44 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+
+ public class FlexBasis extends SingleStyleBase
+ {
+ public function FlexBasis()
+ {
+ super("basis", "flex-basis");
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ var isNum:Boolean = parseFloat(value) == value;
+ var isInt:Boolean = int(value) == value;
+ if(isNum && !isInt)
+ calculatedRuleValue = (value * 100) +
"%";
+
+ else if(value == "0 auto")
+ calculatedSelector = "initial";
+
+ //TODO css vars
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexDirection.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexDirection.as
new file mode 100644
index 0000000000..7742cd1aa0
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexDirection.as
@@ -0,0 +1,37 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class FlexDirection extends SingleStyleBase
+ {
+ public function FlexDirection()
+ {
+ super("flex", "flex-direction");
+ }
+
+ override public function set value(value:*):void
+ {
+
assert(["row","row-reverse","column","column-reverse"].indexOf(value) >= 0,
"Invalid value for flex-direction: " + value);
+ calculatedRuleValue = calculatedSelector = _value =
value;
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexGrow.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexGrow.as
new file mode 100644
index 0000000000..be46188884
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexGrow.as
@@ -0,0 +1,39 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class FlexGrow extends SingleStyleBase
+ {
+ public function FlexGrow()
+ {
+ super("grow", "flex-grow");
+ }
+
+ override public function set value(value:*):void
+ {
+ // For now we're assuming that flex-grow is only a
number, but it can also be "initial" or "inherit"
+ assert(parseFloat(value) == value && parseInt(value,
10) >= 0, "Invalid value for flex-grow: " + value);
+ calculatedRuleValue = calculatedSelector = _value =
value;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexShrink.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexShrink.as
new file mode 100644
index 0000000000..6e5f26316b
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexShrink.as
@@ -0,0 +1,39 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class FlexShrink extends SingleStyleBase
+ {
+ public function FlexShrink()
+ {
+ super("shrink", "flex-shrink");
+ }
+
+ override public function set value(value:*):void
+ {
+ // For now we're assuming that flex-shrink is only a
number, but it can also be "initial" or "inherit"
+ assert(parseFloat(value) == value && parseInt(value,
10) >= 0, "Invalid value for flex-shrink: " + value);
+ calculatedRuleValue = calculatedSelector = _value =
value;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexWrap.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexWrap.as
new file mode 100644
index 0000000000..36bc4365ee
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/FlexWrap.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class FlexWrap extends SingleStyleBase
+ {
+ public function FlexWrap()
+ {
+ super("wrap", "flex-wrap");
+ }
+
+ override public function set value(value:*):void
+ {
+ assert(["nowrap","wrap","wrap-reverse"].indexOf(value)
>= 0, "Invalid value for flex-wrap: " + value);
+ calculatedRuleValue = calculatedSelector = _value =
value;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Gap.as
similarity index 50%
copy from
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
copy to
frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Gap.as
index 8eb3cfbdac..8d82ea2707 100644
---
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Gap.as
@@ -16,56 +16,39 @@
// limitations under the License.
//
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.style.stylebeads.layout
+package org.apache.royale.style.stylebeads.flexgrid
{
import org.apache.royale.style.stylebeads.SingleStyleBase;
import org.apache.royale.debugging.assert;
import org.apache.royale.style.util.ThemeManager;
import org.apache.royale.style.util.CSSUnit;
- public class InsetBase extends SingleStyleBase
+ public class Gap extends SingleStyleBase
{
- public function InsetBase(selectorPrefix:String,
rulePrefix:String)
+ public function Gap(selectorPrefix:String="gap",
rulePrefix:String="gap")
{
super(selectorPrefix, rulePrefix);
}
- public var unit:String = CSSUnit.PX;
- protected var pixelValue:Number;
- private var savedPrefix:String;
+
+ public var unit:String = "px";
+
override public function set value(value:*):void
{
- var isNum:Boolean = parseFloat(value) == value;
- var isInt:Boolean = parseInt(value, 10) == value;
- var parseNum:Number = parseFloat(value);
- var isNegative:Boolean = parseNum < 0;
- if(isNegative)
- {
- if(!savedPrefix)
- savedPrefix = _selectorPrefix;
- _selectorPrefix = "-" + savedPrefix;
- }
-
- if(isInt)
+ _value = value;
+ // TODO validate aspect before setting
+ var ruleProp:* = value;
+ if(parseInt(value, 10) == value)
{
- pixelValue =
ThemeManager.instance.activeTheme.spacing * value;
- calculatedSelector = "" + Math.abs(value);
+ assert(value >= 0, "Invalid value for gap: " +
value);
+ var pixelValue:Number =
ThemeManager.instance.activeTheme.spacing * value;
+ calculatedSelector = "" + value;
calculatedRuleValue =
CSSUnit.convert(pixelValue, CSSUnit.PX, unit) + unit;
}
- else if(isNum)
- {
- calculatedSelector = "p" + Math.abs(value);
- calculatedRuleValue = (value * 100) + "%";
- }
else
{
- calculatedSelector = sanitizeSelector(value);
- calculatedRuleValue = value;
+ calculatedRuleValue = calculatedSelector =
value;
}
- //
assert(["inline","block","inline-block","flow-root","flex","inline-flex","grid","inline-grid","contents","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","list-item","none"].indexOf(value)
>= 0, "Invalid value for display: " + value);
- _value = value;
- calculatedRuleValue = calculatedSelector = value;
- if(value == "none")
- calculatedSelector = "hidden";
+
}
}
}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoColumns.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoColumns.as
new file mode 100644
index 0000000000..7139c78c9d
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoColumns.as
@@ -0,0 +1,66 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class GridAutoColumns extends SingleStyleBase
+ {
+ public function GridAutoColumns()
+ {
+ super("auto-cols", "grid-auto-columns");
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ _value = value;
+ var ruleValue:String = value;
+ var selectorValue:String = value;
+ switch(value)
+ {
+ case "auto":
+ break;
+ case "min":
+ ruleValue = "min-content";
+ break;
+ case "min-content":
+ selectorValue = "min";
+ break;
+ case "max":
+ ruleValue = "max-content";
+ break;
+ case "max-content":
+ selectorValue = "max";
+ break;
+ case "fr":
+ ruleValue = "minmax(0, 1fr)";
+ break;
+ default:
+ break;
+ }
+ //TODO more validating and css vars
+ assert(selectorValue.indexOf("--") != 0, "css variables
for grid-auto-columns not yet supported: " + value);
+ calculatedRuleValue = ruleValue;
+ calculatedSelector = selectorValue;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoFlow.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoFlow.as
new file mode 100644
index 0000000000..1b4db3bfbd
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoFlow.as
@@ -0,0 +1,41 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class GridAutoFlow extends SingleStyleBase
+ {
+ public function GridAutoFlow()
+ {
+ super("grid-flow", "grid-auto-flow");
+ }
+ private function toSelector(value:String):String
+ {
+ return value.replace(" ", "-");
+ }
+ override public function set value(value:*):void
+ {
+ assert(["row","column","dense","row dense","column
dense"].indexOf(value) >= 0, "Invalid value for grid-auto-flow: " + value);
+ calculatedRuleValue = _value = value;
+ calculatedSelector = toSelector(value);
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoRows.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoRows.as
new file mode 100644
index 0000000000..9054ad1161
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridAutoRows.as
@@ -0,0 +1,66 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class GridAutoRows extends SingleStyleBase
+ {
+ public function GridAutoRows()
+ {
+ super("auto-rows", "grid-auto-rows");
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ _value = value;
+ var ruleValue:String = value;
+ var selectorValue:String = value;
+ switch(value)
+ {
+ case "auto":
+ break;
+ case "min":
+ ruleValue = "min-content";
+ break;
+ case "min-content":
+ selectorValue = "min";
+ break;
+ case "max":
+ ruleValue = "max-content";
+ break;
+ case "max-content":
+ selectorValue = "max";
+ break;
+ case "fr":
+ ruleValue = "minmax(0, 1fr)";
+ break;
+ default:
+ break;
+ }
+ //TODO more validating and css vars
+ assert(selectorValue.indexOf("--") != 0, "css variables
for grid-auto-rows not yet supported: " + value);
+ calculatedRuleValue = ruleValue;
+ calculatedSelector = selectorValue;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumn.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumn.as
new file mode 100644
index 0000000000..eb9b406a65
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumn.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+
+ public class GridColumn extends SingleStyleBase
+ {
+ public function GridColumn(selectorPrefix:String = "col",
rulePrefix:String = "grid-column")
+ {
+ super(selectorPrefix, rulePrefix);
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ // https://tailwindcss.com/docs/grid-column
+ calculatedRuleValue = calculatedSelector = _value =
value;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumnEnd.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumnEnd.as
new file mode 100644
index 0000000000..484e51a406
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumnEnd.as
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ public class GridColumnEnd extends GridColumn
+ {
+ public function GridColumnEnd()
+ {
+ super("col-end", "grid-column-end");
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumnStart.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumnStart.as
new file mode 100644
index 0000000000..c5f88e8942
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridColumnStart.as
@@ -0,0 +1,28 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ public class GridColumnStart extends GridColumn
+ {
+ public function GridColumnStart()
+ {
+ super("col-start", "grid-column-start");
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRow.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRow.as
new file mode 100644
index 0000000000..acf99d9131
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRow.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+
+ public class GridRow extends SingleStyleBase
+ {
+ public function GridRow(selectorPrefix:String = "row",
rulePrefix:String = "grid-row")
+ {
+ super(selectorPrefix, rulePrefix);
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ // https://tailwindcss.com/docs/grid-row
+ calculatedRuleValue = calculatedSelector = _value =
value;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRowEnd.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRowEnd.as
new file mode 100644
index 0000000000..5dbdac51f1
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRowEnd.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+
+ public class GridRowEnd extends GridRow
+ {
+ public function GridRowEnd()
+ {
+ super("row-end", "grid-row-end");
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ // https://tailwindcss.com/docs/grid-row
+ calculatedRuleValue = calculatedSelector = _value =
value;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRowStart.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRowStart.as
new file mode 100644
index 0000000000..12fc1f4e3b
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridRowStart.as
@@ -0,0 +1,38 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+
+ public class GridRowStart extends GridRow
+ {
+ public function GridRowStart()
+ {
+ super("row-start", "grid-row-start");
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ // https://tailwindcss.com/docs/grid-row
+ calculatedRuleValue = calculatedSelector = _value =
value;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridTemplateColumns.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridTemplateColumns.as
new file mode 100644
index 0000000000..d9f99ff8b3
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridTemplateColumns.as
@@ -0,0 +1,48 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class GridTemplateColumns extends SingleStyleBase
+ {
+ public function GridTemplateColumns()
+ {
+ super("grid-cols", "grid-template-columns");
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ var ruleValue:String = value;
+ var selectorValue:String = value;
+ var isInt:Boolean = int(value) == value;
+ if(isInt)
+ {
+ ruleValue = "repeat(" + value + ", minmax(0,
1fr))";
+ }
+ assert(selectorValue.indexOf("--") != 0, "css variables
for grid-template-columns not yet supported: " + value);
+ assert(selectorValue.indexOf(" ") == -1, "values with
spaces for grid-template-columns not yet supported: " + value);
+ calculatedRuleValue = ruleValue;
+ calculatedSelector = selectorValue;
+ _value = value;
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridTemplateRows.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridTemplateRows.as
new file mode 100644
index 0000000000..7db9fb182c
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/GridTemplateRows.as
@@ -0,0 +1,48 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class GridTemplateRows extends SingleStyleBase
+ {
+ public function GridTemplateRows()
+ {
+ super("grid-rows", "grid-template-rows");
+ }
+
+ override public function set value(value:*):void
+ {
+ // TODO validate aspect before setting
+ var ruleValue:String = value;
+ var selectorValue:String = value;
+ var isInt:Boolean = int(value) == value;
+ if(isInt)
+ {
+ ruleValue = "repeat(" + value + ", minmax(0,
1fr))";
+ }
+ assert(selectorValue.indexOf("--") != 0, "css variables
for grid-template-rows not yet supported: " + value);
+ assert(selectorValue.indexOf(" ") == -1, "values with
spaces for grid-template-rows not yet supported: " + value);
+ calculatedRuleValue = ruleValue;
+ calculatedSelector = selectorValue;
+ _value = value;
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifyContent.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifyContent.as
new file mode 100644
index 0000000000..3a1ce200dc
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifyContent.as
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class JustifyContent extends SingleStyleBase
+ {
+ public function JustifyContent()
+ {
+ super("justify", "justify-content");
+ }
+
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+ private function getAfterDash(value:String):String
+ {
+ var dashIndex:int = value.indexOf("-");
+ if(dashIndex >= 0)
+ return value.substring(dashIndex + 1);
+ return value;
+ }
+ override public function set value(value:*):void
+ {
+ assert(["center","center safe","safe
center","start","flex-end","flex-end safe","safe
flex-end","space-between","space-around","space-evenly","baseline","stretch","normal"].indexOf(value)
>= 0, "Invalid value for place-content: " + value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedRuleValue = vals[0];
+ calculatedSelector = getAfterDash(vals[0]);
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifyItems.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifyItems.as
new file mode 100644
index 0000000000..cd1cfda564
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifyItems.as
@@ -0,0 +1,56 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class JustifyItems extends SingleStyleBase
+ {
+ public function JustifyItems()
+ {
+ super("justify-items", "justify-items");
+ }
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+
+ override public function set value(value:*):void
+ {
+ assert(["start","end","safe end","end
safe","center","safe center","center safe","stretch","normal"].indexOf(value)
>= 0, "Invalid value for justify-items: " + value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedSelector = calculatedRuleValue = vals[0];
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifySelf.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifySelf.as
new file mode 100644
index 0000000000..5c4a2e5071
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/JustifySelf.as
@@ -0,0 +1,57 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class JustifySelf extends SingleStyleBase
+ {
+ public function JustifySelf()
+ {
+ super("justify-self", "justify-self");
+ }
+
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+
+ override public function set value(value:*):void
+ {
+ assert(["start","end","safe end","end
safe","center","safe center","center safe","stretch","auto"].indexOf(value) >=
0, "Invalid value for justify-self: " + value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedSelector = calculatedRuleValue = vals[0];
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Order.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Order.as
new file mode 100644
index 0000000000..7215f7807e
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/Order.as
@@ -0,0 +1,69 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class Order extends SingleStyleBase
+ {
+ public function Order()
+ {
+ super("order", "order");
+ }
+ private var savedPrefix:String;
+ override public function set value(value:*):void
+ {
+ var isNum:Boolean = parseFloat(value) == value;
+ assert(isNum || value.indexOf("--") != 0, "css
variables for order not yet supported: " + value);
+ assert(isNum || value == "first" || value == "last" ||
value == "none", "Invalid value for order: " + value);
+ _value = value;
+ var ruleValue:String = value;
+ var selectorValue:String = value;
+ var negative:Boolean = false;
+ if(isNum && value < 0)
+ {
+ negative = true;
+ if(!savedPrefix)
+ savedPrefix = _selectorPrefix;
+
+ _selectorPrefix = "-" + savedPrefix;
+ selectorValue = "" + (-value);
+ }
+ switch(value)
+ {
+ case "first":
+ ruleValue = "-9999";
+ break;
+ case "last":
+ ruleValue = "9999";
+ break;
+ case "none":
+ ruleValue = "0";
+ break;
+ default:
+ break;
+ }
+ // TODO validate aspect before setting
+ calculatedRuleValue = ruleValue;
+ calculatedSelector = selectorValue;
+
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceContent.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceContent.as
new file mode 100644
index 0000000000..ffe1d6c1cb
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceContent.as
@@ -0,0 +1,55 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class PlaceContent extends SingleStyleBase
+ {
+ public function PlaceContent()
+ {
+ super("place-content", "place-content");
+ }
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+ override public function set value(value:*):void
+ {
+ assert(["center","center safe","safe
center","start","end","end safe","safe
end","space-between","space-around","space-evenly","baseline","stretch"].indexOf(value)
>= 0, "Invalid value for place-content: " + value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedSelector = calculatedRuleValue = vals[0];
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceItems.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceItems.as
new file mode 100644
index 0000000000..2d3be36e1d
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceItems.as
@@ -0,0 +1,55 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class PlaceItems extends SingleStyleBase
+ {
+ public function PlaceItems()
+ {
+ super("place-items", "place-items");
+ }
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+ override public function set value(value:*):void
+ {
+ assert(["center","center safe","safe
center","start","end","end safe","safe
end","baseline","stretch"].indexOf(value) >= 0, "Invalid value for place-items:
" + value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedSelector = calculatedRuleValue = vals[0];
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceSelf.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceSelf.as
new file mode 100644
index 0000000000..266dc6b3b5
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/PlaceSelf.as
@@ -0,0 +1,55 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+ import org.apache.royale.style.stylebeads.SingleStyleBase;
+ import org.apache.royale.debugging.assert;
+
+ public class PlaceSelf extends SingleStyleBase
+ {
+ public function PlaceSelf()
+ {
+ super("place-self", "place-self");
+ }
+ private function normalizeSafeKeyword(value:String):Array
+ {
+ COMPILE::JS
+ {
+ if (value.indexOf("safe") >= 0)
+ {
+ value = value.replace("safe",
"").trim();
+ return [value,"safe"];
+ }
+ }
+ return [value];
+ }
+ override public function set value(value:*):void
+ {
+ assert(["auto","center","center safe","safe
center","start","end","end safe","safe
end","baseline","stretch"].indexOf(value) >= 0, "Invalid value for place-self:
" + value);
+ _value = value;
+ var vals:Array = normalizeSafeKeyword(value);
+ calculatedSelector = calculatedRuleValue = vals[0];
+ if(vals.length > 1)
+ {
+ calculatedRuleValue = vals[1] + " " + vals[0];
+ calculatedSelector += "-" + vals[1];
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/RowGap.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/RowGap.as
new file mode 100644
index 0000000000..aa27282750
--- /dev/null
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/flexgrid/RowGap.as
@@ -0,0 +1,29 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+// Licensed to the Apache Software Foundation (ASF) under one or more
+// contributor license agreements. See the NOTICE file distributed with
+// this work for additional information regarding copyright ownership.
+// The ASF licenses this file to You under the Apache License, Version 2.0
+// (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+package org.apache.royale.style.stylebeads.flexgrid
+{
+
+ public class RowGap extends Gap
+ {
+ public function RowGap()
+ {
+ super("gap-y", "row-gap");
+ }
+ }
+}
\ No newline at end of file
diff --git
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
index 8eb3cfbdac..09b06fba02 100644
---
a/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
+++
b/frameworks/projects/Style/src/main/royale/org/apache/royale/style/stylebeads/layout/InsetBase.as
@@ -35,7 +35,7 @@ package org.apache.royale.style.stylebeads.layout
override public function set value(value:*):void
{
var isNum:Boolean = parseFloat(value) == value;
- var isInt:Boolean = parseInt(value, 10) == value;
+ var isInt:Boolean = int(value) == value;
var parseNum:Number = parseFloat(value);
var isNegative:Boolean = parseNum < 0;
if(isNegative)