summaryrefslogtreecommitdiff
path: root/node_modules/autoprefixer/lib/hacks/order.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/autoprefixer/lib/hacks/order.js')
-rw-r--r--node_modules/autoprefixer/lib/hacks/order.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/node_modules/autoprefixer/lib/hacks/order.js b/node_modules/autoprefixer/lib/hacks/order.js
new file mode 100644
index 0000000..3150a94
--- /dev/null
+++ b/node_modules/autoprefixer/lib/hacks/order.js
@@ -0,0 +1,42 @@
+let flexSpec = require('./flex-spec')
+let Declaration = require('../declaration')
+
+class Order extends Declaration {
+ /**
+ * Return property name by final spec
+ */
+ normalize() {
+ return 'order'
+ }
+
+ /**
+ * Change property name for 2009 and 2012 specs
+ */
+ prefixed(prop, prefix) {
+ let spec
+ ;[spec, prefix] = flexSpec(prefix)
+ if (spec === 2009) {
+ return prefix + 'box-ordinal-group'
+ }
+ if (spec === 2012) {
+ return prefix + 'flex-order'
+ }
+ return super.prefixed(prop, prefix)
+ }
+
+ /**
+ * Fix value for 2009 spec
+ */
+ set(decl, prefix) {
+ let spec = flexSpec(prefix)[0]
+ if (spec === 2009 && /\d/.test(decl.value)) {
+ decl.value = (parseInt(decl.value) + 1).toString()
+ return super.set(decl, prefix)
+ }
+ return super.set(decl, prefix)
+ }
+}
+
+Order.names = ['order', 'flex-order', 'box-ordinal-group']
+
+module.exports = Order