cssstyle 1.1.0 → 1.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/.eslintignore +3 -0
  2. package/.eslintrc.js +50 -0
  3. package/.travis.yml +15 -0
  4. package/README.md +1 -1
  5. package/lib/CSSStyleDeclaration.js +224 -202
  6. package/lib/allExtraProperties.js +248 -0
  7. package/lib/allProperties.js +457 -0
  8. package/lib/constants.js +6 -0
  9. package/lib/implementedProperties.js +90 -0
  10. package/lib/named_colors.json +152 -0
  11. package/lib/parsers.js +560 -533
  12. package/lib/properties/azimuth.js +59 -57
  13. package/lib/properties/background.js +9 -14
  14. package/lib/properties/backgroundAttachment.js +17 -15
  15. package/lib/properties/backgroundColor.js +24 -21
  16. package/lib/properties/backgroundImage.js +20 -17
  17. package/lib/properties/backgroundPosition.js +40 -38
  18. package/lib/properties/backgroundRepeat.js +20 -13
  19. package/lib/properties/border.js +20 -36
  20. package/lib/properties/borderBottom.js +7 -13
  21. package/lib/properties/borderBottomColor.js +11 -11
  22. package/lib/properties/borderBottomStyle.js +14 -14
  23. package/lib/properties/borderBottomWidth.js +11 -11
  24. package/lib/properties/borderCollapse.js +17 -16
  25. package/lib/properties/borderColor.js +17 -15
  26. package/lib/properties/borderLeft.js +7 -13
  27. package/lib/properties/borderLeftColor.js +11 -11
  28. package/lib/properties/borderLeftStyle.js +14 -14
  29. package/lib/properties/borderLeftWidth.js +11 -11
  30. package/lib/properties/borderRight.js +7 -13
  31. package/lib/properties/borderRightColor.js +11 -11
  32. package/lib/properties/borderRightStyle.js +14 -14
  33. package/lib/properties/borderRightWidth.js +11 -11
  34. package/lib/properties/borderSpacing.js +26 -30
  35. package/lib/properties/borderStyle.js +24 -13
  36. package/lib/properties/borderTop.js +7 -12
  37. package/lib/properties/borderTopColor.js +11 -11
  38. package/lib/properties/borderTopStyle.js +14 -14
  39. package/lib/properties/borderTopWidth.js +10 -10
  40. package/lib/properties/borderWidth.js +29 -30
  41. package/lib/properties/bottom.js +8 -8
  42. package/lib/properties/clear.js +9 -9
  43. package/lib/properties/clip.js +37 -39
  44. package/lib/properties/color.js +8 -8
  45. package/lib/properties/cssFloat.js +8 -8
  46. package/lib/properties/flex.js +45 -0
  47. package/lib/properties/flexBasis.js +28 -0
  48. package/lib/properties/flexGrow.js +19 -0
  49. package/lib/properties/flexShrink.js +19 -0
  50. package/lib/properties/float.js +12 -0
  51. package/lib/properties/floodColor.js +8 -8
  52. package/lib/properties/font.js +27 -24
  53. package/lib/properties/fontFamily.js +21 -21
  54. package/lib/properties/fontSize.js +16 -13
  55. package/lib/properties/fontStyle.js +10 -10
  56. package/lib/properties/fontVariant.js +9 -9
  57. package/lib/properties/fontWeight.js +25 -10
  58. package/lib/properties/height.js +15 -15
  59. package/lib/properties/left.js +8 -8
  60. package/lib/properties/lightingColor.js +8 -8
  61. package/lib/properties/lineHeight.js +16 -11
  62. package/lib/properties/margin.js +49 -40
  63. package/lib/properties/marginBottom.js +6 -6
  64. package/lib/properties/marginLeft.js +6 -6
  65. package/lib/properties/marginRight.js +6 -6
  66. package/lib/properties/marginTop.js +6 -6
  67. package/lib/properties/opacity.js +8 -8
  68. package/lib/properties/outlineColor.js +8 -8
  69. package/lib/properties/padding.js +42 -33
  70. package/lib/properties/paddingBottom.js +6 -6
  71. package/lib/properties/paddingLeft.js +6 -6
  72. package/lib/properties/paddingRight.js +6 -6
  73. package/lib/properties/paddingTop.js +6 -6
  74. package/lib/properties/right.js +8 -8
  75. package/lib/properties/stopColor.js +8 -8
  76. package/lib/properties/textLineThroughColor.js +8 -8
  77. package/lib/properties/textOverlineColor.js +8 -8
  78. package/lib/properties/textUnderlineColor.js +8 -8
  79. package/lib/properties/top.js +8 -8
  80. package/lib/properties/webkitBorderAfterColor.js +8 -8
  81. package/lib/properties/webkitBorderBeforeColor.js +8 -8
  82. package/lib/properties/webkitBorderEndColor.js +8 -8
  83. package/lib/properties/webkitBorderStartColor.js +8 -8
  84. package/lib/properties/webkitColumnRuleColor.js +8 -8
  85. package/lib/properties/webkitMatchNearestMailBlockquoteColor.js +8 -8
  86. package/lib/properties/webkitTapHighlightColor.js +8 -8
  87. package/lib/properties/webkitTextEmphasisColor.js +8 -8
  88. package/lib/properties/webkitTextFillColor.js +8 -8
  89. package/lib/properties/webkitTextStrokeColor.js +8 -8
  90. package/lib/properties/width.js +15 -15
  91. package/lib/properties.js +216 -4342
  92. package/lib/utils/getBasicPropertyDescriptor.js +14 -0
  93. package/package.json +28 -10
  94. package/scripts/download_latest_properties.js +88 -0
  95. package/scripts/generate_implemented_properties.js +61 -0
  96. package/scripts/generate_properties.js +107 -117
  97. package/tests/tests.js +662 -439
  98. package/lib/properties/alignContent.js +0 -12
  99. package/lib/properties/alignItems.js +0 -12
  100. package/lib/properties/alignmentBaseline.js +0 -12
  101. package/lib/properties/backgroundClip.js +0 -12
  102. package/lib/properties/backgroundOrigin.js +0 -12
  103. package/lib/properties/backgroundPositionX.js +0 -12
  104. package/lib/properties/backgroundPositionY.js +0 -12
  105. package/lib/properties/backgroundRepeatX.js +0 -12
  106. package/lib/properties/backgroundRepeatY.js +0 -12
  107. package/lib/properties/backgroundSize.js +0 -12
  108. package/lib/properties/baselineShift.js +0 -12
  109. package/lib/properties/borderBottomLeftRadius.js +0 -12
  110. package/lib/properties/borderBottomRightRadius.js +0 -12
  111. package/lib/properties/borderImage.js +0 -12
  112. package/lib/properties/borderImageOutset.js +0 -12
  113. package/lib/properties/borderImageRepeat.js +0 -12
  114. package/lib/properties/borderImageSlice.js +0 -12
  115. package/lib/properties/borderImageSource.js +0 -12
  116. package/lib/properties/borderImageWidth.js +0 -12
  117. package/lib/properties/borderRadius.js +0 -12
  118. package/lib/properties/borderTopLeftRadius.js +0 -12
  119. package/lib/properties/borderTopRightRadius.js +0 -12
  120. package/lib/properties/boxShadow.js +0 -12
  121. package/lib/properties/boxSizing.js +0 -12
  122. package/lib/properties/captionSide.js +0 -12
  123. package/lib/properties/colorInterpolation.js +0 -12
  124. package/lib/properties/colorInterpolationFilters.js +0 -12
  125. package/lib/properties/colorProfile.js +0 -12
  126. package/lib/properties/colorRendering.js +0 -12
  127. package/lib/properties/content.js +0 -12
  128. package/lib/properties/counterIncrement.js +0 -12
  129. package/lib/properties/counterReset.js +0 -12
  130. package/lib/properties/cue.js +0 -12
  131. package/lib/properties/cueAfter.js +0 -12
  132. package/lib/properties/cueBefore.js +0 -12
  133. package/lib/properties/cursor.js +0 -12
  134. package/lib/properties/direction.js +0 -12
  135. package/lib/properties/display.js +0 -12
  136. package/lib/properties/dominantBaseline.js +0 -12
  137. package/lib/properties/elevation.js +0 -12
  138. package/lib/properties/emptyCells.js +0 -12
  139. package/lib/properties/enableBackground.js +0 -12
  140. package/lib/properties/fill.js +0 -12
  141. package/lib/properties/fillOpacity.js +0 -12
  142. package/lib/properties/fillRule.js +0 -12
  143. package/lib/properties/filter.js +0 -12
  144. package/lib/properties/flexDirection.js +0 -12
  145. package/lib/properties/flexFlow.js +0 -12
  146. package/lib/properties/flexWrap.js +0 -12
  147. package/lib/properties/floodOpacity.js +0 -12
  148. package/lib/properties/fontSizeAdjust.js +0 -12
  149. package/lib/properties/fontStretch.js +0 -12
  150. package/lib/properties/glyphOrientationHorizontal.js +0 -12
  151. package/lib/properties/glyphOrientationVertical.js +0 -12
  152. package/lib/properties/imageRendering.js +0 -12
  153. package/lib/properties/justifyContent.js +0 -12
  154. package/lib/properties/kerning.js +0 -12
  155. package/lib/properties/letterSpacing.js +0 -12
  156. package/lib/properties/listStyle.js +0 -12
  157. package/lib/properties/listStyleImage.js +0 -12
  158. package/lib/properties/listStylePosition.js +0 -12
  159. package/lib/properties/listStyleType.js +0 -12
  160. package/lib/properties/marker.js +0 -12
  161. package/lib/properties/markerEnd.js +0 -12
  162. package/lib/properties/markerMid.js +0 -12
  163. package/lib/properties/markerOffset.js +0 -12
  164. package/lib/properties/markerStart.js +0 -12
  165. package/lib/properties/marks.js +0 -12
  166. package/lib/properties/mask.js +0 -12
  167. package/lib/properties/maxHeight.js +0 -12
  168. package/lib/properties/maxWidth.js +0 -12
  169. package/lib/properties/minHeight.js +0 -12
  170. package/lib/properties/minWidth.js +0 -12
  171. package/lib/properties/orphans.js +0 -12
  172. package/lib/properties/outline.js +0 -12
  173. package/lib/properties/outlineOffset.js +0 -12
  174. package/lib/properties/outlineStyle.js +0 -12
  175. package/lib/properties/outlineWidth.js +0 -12
  176. package/lib/properties/overflow.js +0 -12
  177. package/lib/properties/overflowX.js +0 -12
  178. package/lib/properties/overflowY.js +0 -12
  179. package/lib/properties/page.js +0 -12
  180. package/lib/properties/pageBreakAfter.js +0 -12
  181. package/lib/properties/pageBreakBefore.js +0 -12
  182. package/lib/properties/pageBreakInside.js +0 -12
  183. package/lib/properties/pause.js +0 -12
  184. package/lib/properties/pauseAfter.js +0 -12
  185. package/lib/properties/pauseBefore.js +0 -12
  186. package/lib/properties/pitch.js +0 -12
  187. package/lib/properties/pitchRange.js +0 -12
  188. package/lib/properties/playDuring.js +0 -12
  189. package/lib/properties/pointerEvents.js +0 -12
  190. package/lib/properties/position.js +0 -12
  191. package/lib/properties/quotes.js +0 -12
  192. package/lib/properties/resize.js +0 -12
  193. package/lib/properties/richness.js +0 -12
  194. package/lib/properties/shapeRendering.js +0 -12
  195. package/lib/properties/size.js +0 -12
  196. package/lib/properties/speak.js +0 -12
  197. package/lib/properties/speakHeader.js +0 -12
  198. package/lib/properties/speakNumeral.js +0 -12
  199. package/lib/properties/speakPunctuation.js +0 -12
  200. package/lib/properties/speechRate.js +0 -12
  201. package/lib/properties/src.js +0 -12
  202. package/lib/properties/stopOpacity.js +0 -12
  203. package/lib/properties/stress.js +0 -12
  204. package/lib/properties/stroke.js +0 -12
  205. package/lib/properties/strokeDasharray.js +0 -12
  206. package/lib/properties/strokeDashoffset.js +0 -12
  207. package/lib/properties/strokeLinecap.js +0 -12
  208. package/lib/properties/strokeLinejoin.js +0 -12
  209. package/lib/properties/strokeMiterlimit.js +0 -12
  210. package/lib/properties/strokeOpacity.js +0 -12
  211. package/lib/properties/strokeWidth.js +0 -12
  212. package/lib/properties/tableLayout.js +0 -12
  213. package/lib/properties/textAlign.js +0 -12
  214. package/lib/properties/textAnchor.js +0 -12
  215. package/lib/properties/textDecoration.js +0 -12
  216. package/lib/properties/textIndent.js +0 -12
  217. package/lib/properties/textLineThrough.js +0 -12
  218. package/lib/properties/textLineThroughMode.js +0 -12
  219. package/lib/properties/textLineThroughStyle.js +0 -12
  220. package/lib/properties/textLineThroughWidth.js +0 -12
  221. package/lib/properties/textOverflow.js +0 -12
  222. package/lib/properties/textOverline.js +0 -12
  223. package/lib/properties/textOverlineMode.js +0 -12
  224. package/lib/properties/textOverlineStyle.js +0 -12
  225. package/lib/properties/textOverlineWidth.js +0 -12
  226. package/lib/properties/textRendering.js +0 -12
  227. package/lib/properties/textShadow.js +0 -12
  228. package/lib/properties/textTransform.js +0 -12
  229. package/lib/properties/textUnderline.js +0 -12
  230. package/lib/properties/textUnderlineMode.js +0 -12
  231. package/lib/properties/textUnderlineStyle.js +0 -12
  232. package/lib/properties/textUnderlineWidth.js +0 -12
  233. package/lib/properties/transform.js +0 -12
  234. package/lib/properties/unicodeBidi.js +0 -12
  235. package/lib/properties/unicodeRange.js +0 -12
  236. package/lib/properties/vectorEffect.js +0 -12
  237. package/lib/properties/verticalAlign.js +0 -12
  238. package/lib/properties/visibility.js +0 -12
  239. package/lib/properties/voiceFamily.js +0 -12
  240. package/lib/properties/volume.js +0 -12
  241. package/lib/properties/webkitAnimation.js +0 -12
  242. package/lib/properties/webkitAnimationDelay.js +0 -12
  243. package/lib/properties/webkitAnimationDirection.js +0 -12
  244. package/lib/properties/webkitAnimationDuration.js +0 -12
  245. package/lib/properties/webkitAnimationFillMode.js +0 -12
  246. package/lib/properties/webkitAnimationIterationCount.js +0 -12
  247. package/lib/properties/webkitAnimationName.js +0 -12
  248. package/lib/properties/webkitAnimationPlayState.js +0 -12
  249. package/lib/properties/webkitAnimationTimingFunction.js +0 -12
  250. package/lib/properties/webkitAppearance.js +0 -12
  251. package/lib/properties/webkitAspectRatio.js +0 -12
  252. package/lib/properties/webkitBackfaceVisibility.js +0 -12
  253. package/lib/properties/webkitBackgroundClip.js +0 -12
  254. package/lib/properties/webkitBackgroundComposite.js +0 -12
  255. package/lib/properties/webkitBackgroundOrigin.js +0 -12
  256. package/lib/properties/webkitBackgroundSize.js +0 -12
  257. package/lib/properties/webkitBorderAfter.js +0 -12
  258. package/lib/properties/webkitBorderAfterStyle.js +0 -12
  259. package/lib/properties/webkitBorderAfterWidth.js +0 -12
  260. package/lib/properties/webkitBorderBefore.js +0 -12
  261. package/lib/properties/webkitBorderBeforeStyle.js +0 -12
  262. package/lib/properties/webkitBorderBeforeWidth.js +0 -12
  263. package/lib/properties/webkitBorderEnd.js +0 -12
  264. package/lib/properties/webkitBorderEndStyle.js +0 -12
  265. package/lib/properties/webkitBorderEndWidth.js +0 -12
  266. package/lib/properties/webkitBorderFit.js +0 -12
  267. package/lib/properties/webkitBorderHorizontalSpacing.js +0 -12
  268. package/lib/properties/webkitBorderImage.js +0 -12
  269. package/lib/properties/webkitBorderRadius.js +0 -12
  270. package/lib/properties/webkitBorderStart.js +0 -12
  271. package/lib/properties/webkitBorderStartStyle.js +0 -12
  272. package/lib/properties/webkitBorderStartWidth.js +0 -12
  273. package/lib/properties/webkitBorderVerticalSpacing.js +0 -12
  274. package/lib/properties/webkitBoxAlign.js +0 -12
  275. package/lib/properties/webkitBoxDirection.js +0 -12
  276. package/lib/properties/webkitBoxFlex.js +0 -12
  277. package/lib/properties/webkitBoxFlexGroup.js +0 -12
  278. package/lib/properties/webkitBoxLines.js +0 -12
  279. package/lib/properties/webkitBoxOrdinalGroup.js +0 -12
  280. package/lib/properties/webkitBoxOrient.js +0 -12
  281. package/lib/properties/webkitBoxPack.js +0 -12
  282. package/lib/properties/webkitBoxReflect.js +0 -12
  283. package/lib/properties/webkitBoxShadow.js +0 -12
  284. package/lib/properties/webkitColorCorrection.js +0 -12
  285. package/lib/properties/webkitColumnAxis.js +0 -12
  286. package/lib/properties/webkitColumnBreakAfter.js +0 -12
  287. package/lib/properties/webkitColumnBreakBefore.js +0 -12
  288. package/lib/properties/webkitColumnBreakInside.js +0 -12
  289. package/lib/properties/webkitColumnCount.js +0 -12
  290. package/lib/properties/webkitColumnGap.js +0 -12
  291. package/lib/properties/webkitColumnRule.js +0 -12
  292. package/lib/properties/webkitColumnRuleStyle.js +0 -12
  293. package/lib/properties/webkitColumnRuleWidth.js +0 -12
  294. package/lib/properties/webkitColumnSpan.js +0 -12
  295. package/lib/properties/webkitColumnWidth.js +0 -12
  296. package/lib/properties/webkitColumns.js +0 -12
  297. package/lib/properties/webkitFilter.js +0 -12
  298. package/lib/properties/webkitFlexAlign.js +0 -12
  299. package/lib/properties/webkitFlexDirection.js +0 -12
  300. package/lib/properties/webkitFlexFlow.js +0 -12
  301. package/lib/properties/webkitFlexItemAlign.js +0 -12
  302. package/lib/properties/webkitFlexLinePack.js +0 -12
  303. package/lib/properties/webkitFlexOrder.js +0 -12
  304. package/lib/properties/webkitFlexPack.js +0 -12
  305. package/lib/properties/webkitFlexWrap.js +0 -12
  306. package/lib/properties/webkitFlowFrom.js +0 -12
  307. package/lib/properties/webkitFlowInto.js +0 -12
  308. package/lib/properties/webkitFontFeatureSettings.js +0 -12
  309. package/lib/properties/webkitFontKerning.js +0 -12
  310. package/lib/properties/webkitFontSizeDelta.js +0 -12
  311. package/lib/properties/webkitFontSmoothing.js +0 -12
  312. package/lib/properties/webkitFontVariantLigatures.js +0 -12
  313. package/lib/properties/webkitHighlight.js +0 -12
  314. package/lib/properties/webkitHyphenateCharacter.js +0 -12
  315. package/lib/properties/webkitHyphenateLimitAfter.js +0 -12
  316. package/lib/properties/webkitHyphenateLimitBefore.js +0 -12
  317. package/lib/properties/webkitHyphenateLimitLines.js +0 -12
  318. package/lib/properties/webkitHyphens.js +0 -12
  319. package/lib/properties/webkitLineAlign.js +0 -12
  320. package/lib/properties/webkitLineBoxContain.js +0 -12
  321. package/lib/properties/webkitLineBreak.js +0 -12
  322. package/lib/properties/webkitLineClamp.js +0 -12
  323. package/lib/properties/webkitLineGrid.js +0 -12
  324. package/lib/properties/webkitLineSnap.js +0 -12
  325. package/lib/properties/webkitLocale.js +0 -12
  326. package/lib/properties/webkitLogicalHeight.js +0 -12
  327. package/lib/properties/webkitLogicalWidth.js +0 -12
  328. package/lib/properties/webkitMarginAfter.js +0 -12
  329. package/lib/properties/webkitMarginAfterCollapse.js +0 -12
  330. package/lib/properties/webkitMarginBefore.js +0 -12
  331. package/lib/properties/webkitMarginBeforeCollapse.js +0 -12
  332. package/lib/properties/webkitMarginBottomCollapse.js +0 -12
  333. package/lib/properties/webkitMarginCollapse.js +0 -12
  334. package/lib/properties/webkitMarginEnd.js +0 -12
  335. package/lib/properties/webkitMarginStart.js +0 -12
  336. package/lib/properties/webkitMarginTopCollapse.js +0 -12
  337. package/lib/properties/webkitMarquee.js +0 -12
  338. package/lib/properties/webkitMarqueeDirection.js +0 -12
  339. package/lib/properties/webkitMarqueeIncrement.js +0 -12
  340. package/lib/properties/webkitMarqueeRepetition.js +0 -12
  341. package/lib/properties/webkitMarqueeSpeed.js +0 -12
  342. package/lib/properties/webkitMarqueeStyle.js +0 -12
  343. package/lib/properties/webkitMask.js +0 -12
  344. package/lib/properties/webkitMaskAttachment.js +0 -12
  345. package/lib/properties/webkitMaskBoxImage.js +0 -12
  346. package/lib/properties/webkitMaskBoxImageOutset.js +0 -12
  347. package/lib/properties/webkitMaskBoxImageRepeat.js +0 -12
  348. package/lib/properties/webkitMaskBoxImageSlice.js +0 -12
  349. package/lib/properties/webkitMaskBoxImageSource.js +0 -12
  350. package/lib/properties/webkitMaskBoxImageWidth.js +0 -12
  351. package/lib/properties/webkitMaskClip.js +0 -12
  352. package/lib/properties/webkitMaskComposite.js +0 -12
  353. package/lib/properties/webkitMaskImage.js +0 -12
  354. package/lib/properties/webkitMaskOrigin.js +0 -12
  355. package/lib/properties/webkitMaskPosition.js +0 -12
  356. package/lib/properties/webkitMaskPositionX.js +0 -12
  357. package/lib/properties/webkitMaskPositionY.js +0 -12
  358. package/lib/properties/webkitMaskRepeat.js +0 -12
  359. package/lib/properties/webkitMaskRepeatX.js +0 -12
  360. package/lib/properties/webkitMaskRepeatY.js +0 -12
  361. package/lib/properties/webkitMaskSize.js +0 -12
  362. package/lib/properties/webkitMaxLogicalHeight.js +0 -12
  363. package/lib/properties/webkitMaxLogicalWidth.js +0 -12
  364. package/lib/properties/webkitMinLogicalHeight.js +0 -12
  365. package/lib/properties/webkitMinLogicalWidth.js +0 -12
  366. package/lib/properties/webkitNbspMode.js +0 -12
  367. package/lib/properties/webkitOverflowScrolling.js +0 -12
  368. package/lib/properties/webkitPaddingAfter.js +0 -12
  369. package/lib/properties/webkitPaddingBefore.js +0 -12
  370. package/lib/properties/webkitPaddingEnd.js +0 -12
  371. package/lib/properties/webkitPaddingStart.js +0 -12
  372. package/lib/properties/webkitPerspective.js +0 -12
  373. package/lib/properties/webkitPerspectiveOrigin.js +0 -12
  374. package/lib/properties/webkitPerspectiveOriginX.js +0 -12
  375. package/lib/properties/webkitPerspectiveOriginY.js +0 -12
  376. package/lib/properties/webkitPrintColorAdjust.js +0 -12
  377. package/lib/properties/webkitRegionBreakAfter.js +0 -12
  378. package/lib/properties/webkitRegionBreakBefore.js +0 -12
  379. package/lib/properties/webkitRegionBreakInside.js +0 -12
  380. package/lib/properties/webkitRegionOverflow.js +0 -12
  381. package/lib/properties/webkitRtlOrdering.js +0 -12
  382. package/lib/properties/webkitSvgShadow.js +0 -12
  383. package/lib/properties/webkitTextCombine.js +0 -12
  384. package/lib/properties/webkitTextDecorationsInEffect.js +0 -12
  385. package/lib/properties/webkitTextEmphasis.js +0 -12
  386. package/lib/properties/webkitTextEmphasisPosition.js +0 -12
  387. package/lib/properties/webkitTextEmphasisStyle.js +0 -12
  388. package/lib/properties/webkitTextOrientation.js +0 -12
  389. package/lib/properties/webkitTextSecurity.js +0 -12
  390. package/lib/properties/webkitTextSizeAdjust.js +0 -12
  391. package/lib/properties/webkitTextStroke.js +0 -12
  392. package/lib/properties/webkitTextStrokeWidth.js +0 -12
  393. package/lib/properties/webkitTransform.js +0 -12
  394. package/lib/properties/webkitTransformOrigin.js +0 -12
  395. package/lib/properties/webkitTransformOriginX.js +0 -12
  396. package/lib/properties/webkitTransformOriginY.js +0 -12
  397. package/lib/properties/webkitTransformOriginZ.js +0 -12
  398. package/lib/properties/webkitTransformStyle.js +0 -12
  399. package/lib/properties/webkitTransition.js +0 -12
  400. package/lib/properties/webkitTransitionDelay.js +0 -12
  401. package/lib/properties/webkitTransitionDuration.js +0 -12
  402. package/lib/properties/webkitTransitionProperty.js +0 -12
  403. package/lib/properties/webkitTransitionTimingFunction.js +0 -12
  404. package/lib/properties/webkitUserDrag.js +0 -12
  405. package/lib/properties/webkitUserModify.js +0 -12
  406. package/lib/properties/webkitUserSelect.js +0 -12
  407. package/lib/properties/webkitWrap.js +0 -12
  408. package/lib/properties/webkitWrapFlow.js +0 -12
  409. package/lib/properties/webkitWrapMargin.js +0 -12
  410. package/lib/properties/webkitWrapPadding.js +0 -12
  411. package/lib/properties/webkitWrapShapeInside.js +0 -12
  412. package/lib/properties/webkitWrapShapeOutside.js +0 -12
  413. package/lib/properties/webkitWrapThrough.js +0 -12
  414. package/lib/properties/webkitWritingMode.js +0 -12
  415. package/lib/properties/whiteSpace.js +0 -12
  416. package/lib/properties/widows.js +0 -12
  417. package/lib/properties/wordBreak.js +0 -12
  418. package/lib/properties/wordSpacing.js +0 -12
  419. package/lib/properties/wordWrap.js +0 -12
  420. package/lib/properties/writingMode.js +0 -12
  421. package/lib/properties/zIndex.js +0 -12
  422. package/lib/properties/zoom.js +0 -12
  423. package/lib/validProperties.js +0 -410
  424. package/scripts/generate_valid_properties.js +0 -62
package/.eslintignore ADDED
@@ -0,0 +1,3 @@
1
+ node_modules
2
+ lib/implementedProperties.js
3
+ lib/properties.js
package/.eslintrc.js ADDED
@@ -0,0 +1,50 @@
1
+ 'use strict';
2
+
3
+ module.exports = {
4
+ root: true,
5
+ extends: ['eslint:recommended', 'prettier'],
6
+ parserOptions: {
7
+ ecmaVersion: 2018,
8
+ },
9
+ env: {
10
+ es6: true,
11
+ },
12
+ globals: {
13
+ exports: true,
14
+ module: true,
15
+ require: true,
16
+ window: true,
17
+ },
18
+ plugins: ['prettier'],
19
+ rules: {
20
+ 'prettier/prettier': [
21
+ 'warn',
22
+ {
23
+ printWidth: 100,
24
+ singleQuote: true,
25
+ trailingComma: 'es5',
26
+ },
27
+ ],
28
+ strict: ['warn', 'global'],
29
+ },
30
+ overrides: [
31
+ {
32
+ files: ['lib/implementedProperties.js', 'lib/properties.js'],
33
+ rules: {
34
+ 'prettier/prettier': 'off',
35
+ },
36
+ },
37
+ {
38
+ files: 'scripts/**/*',
39
+ rules: {
40
+ 'no-console': 'off',
41
+ },
42
+ },
43
+ {
44
+ files: ['scripts/**/*', 'tests/**/*'],
45
+ env: {
46
+ node: true,
47
+ },
48
+ },
49
+ ],
50
+ };
package/.travis.yml ADDED
@@ -0,0 +1,15 @@
1
+ sudo: false
2
+ language: node_js
3
+ cache:
4
+ directories:
5
+ - node_modules
6
+ notifications:
7
+ email: true
8
+ node_js:
9
+ - 6
10
+ - 8
11
+ - 10
12
+ - 11
13
+
14
+ script:
15
+ - npm run test-ci
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CSSStyleDeclaration
2
2
 
3
- [![NpmVersion](https://img.shields.io/npm/v/cssstyle.svg)](https://www.npmjs.com/package/cssstyle)
3
+ [![NpmVersion](https://img.shields.io/npm/v/cssstyle.svg)](https://www.npmjs.com/package/cssstyle) [![Build Status](https://travis-ci.org/jsakas/CSSStyleDeclaration.svg?branch=master)](https://travis-ci.org/jsakas/CSSStyleDeclaration)
4
4
 
5
5
  CSSStyleDeclaration is a work-a-like to the CSSStyleDeclaration class in Nikita Vasilyev's [CSSOM](https://github.com/NV/CSSOM). I made it so that when using [jQuery in node](https://github.com/tmtk75/node-jquery) setting css attributes via $.fn.css() would work. node-jquery uses [jsdom](https://github.com/tmpvar/jsdom) to create a DOM to use in node. jsdom uses CSSOM for styling, and CSSOM's implementation of the [CSSStyleDeclaration](http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration) doesn't support [CSS2Properties](http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSS2Properties), which is how jQuery's [$.fn.css()](http://api.jquery.com/css/) operates.
6
6
 
@@ -2,232 +2,254 @@
2
2
  * This is a fork from the CSS Style Declaration part of
3
3
  * https://github.com/NV/CSSOM
4
4
  ********************************************************************/
5
- "use strict";
5
+ 'use strict';
6
6
  var CSSOM = require('cssom');
7
- var validProperties = require('./validProperties');
7
+ var allProperties = require('./allProperties');
8
+ var allExtraProperties = require('./allExtraProperties');
9
+ var implementedProperties = require('./implementedProperties');
10
+ var { dashedToCamelCase } = require('./parsers');
11
+ var getBasicPropertyDescriptor = require('./utils/getBasicPropertyDescriptor');
8
12
 
9
13
  /**
10
14
  * @constructor
11
15
  * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration
12
16
  */
13
17
  var CSSStyleDeclaration = function CSSStyleDeclaration(onChangeCallback) {
14
- this._values = {};
15
- this._importants = {};
16
- this._length = 0;
17
- this._onChange = onChangeCallback || function () { return; };
18
+ this._values = {};
19
+ this._importants = {};
20
+ this._length = 0;
21
+ this._onChange =
22
+ onChangeCallback ||
23
+ function() {
24
+ return;
25
+ };
18
26
  };
19
27
  CSSStyleDeclaration.prototype = {
20
- constructor: CSSStyleDeclaration,
21
-
22
- /**
23
- *
24
- * @param {string} name
25
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue
26
- * @return {string} the value of the property if it has been explicitly set for this declaration block.
27
- * Returns the empty string if the property has not been set.
28
- */
29
- getPropertyValue: function (name) {
30
- if (!this._values.hasOwnProperty(name)) {
31
- return "";
32
- }
33
- return this._values[name].toString();
34
- },
28
+ constructor: CSSStyleDeclaration,
29
+
30
+ /**
31
+ *
32
+ * @param {string} name
33
+ * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-getPropertyValue
34
+ * @return {string} the value of the property if it has been explicitly set for this declaration block.
35
+ * Returns the empty string if the property has not been set.
36
+ */
37
+ getPropertyValue: function(name) {
38
+ if (!this._values.hasOwnProperty(name)) {
39
+ return '';
40
+ }
41
+ return this._values[name].toString();
42
+ },
43
+
44
+ /**
45
+ *
46
+ * @param {string} name
47
+ * @param {string} value
48
+ * @param {string} [priority=null] "important" or null
49
+ * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty
50
+ */
51
+ setProperty: function(name, value, priority) {
52
+ if (value === undefined) {
53
+ return;
54
+ }
55
+ if (value === null || value === '') {
56
+ this.removeProperty(name);
57
+ return;
58
+ }
59
+ var lowercaseName = name.toLowerCase();
60
+ if (!allProperties.has(lowercaseName) && !allExtraProperties.has(lowercaseName)) {
61
+ return;
62
+ }
35
63
 
36
- /**
37
- *
38
- * @param {string} name
39
- * @param {string} value
40
- * @param {string} [priority=null] "important" or null
41
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-setProperty
42
- */
43
- setProperty: function (name, value, priority) {
44
- if (value === undefined) {
45
- return;
46
- }
47
- if (value === null || value === '') {
48
- this.removeProperty(name);
49
- return;
50
- }
51
- var lowercaseName = name.toLowerCase();
52
- if (!validProperties.has(lowercaseName)) {
53
- return;
54
- }
64
+ this[lowercaseName] = value;
65
+ this._importants[lowercaseName] = priority;
66
+ },
67
+ _setProperty: function(name, value, priority) {
68
+ if (value === undefined) {
69
+ return;
70
+ }
71
+ if (value === null || value === '') {
72
+ this.removeProperty(name);
73
+ return;
74
+ }
75
+ if (this._values[name]) {
76
+ // Property already exist. Overwrite it.
77
+ var index = Array.prototype.indexOf.call(this, name);
78
+ if (index < 0) {
79
+ this[this._length] = name;
80
+ this._length++;
81
+ }
82
+ } else {
83
+ // New property.
84
+ this[this._length] = name;
85
+ this._length++;
86
+ }
87
+ this._values[name] = value;
88
+ this._importants[name] = priority;
89
+ this._onChange(this.cssText);
90
+ },
91
+
92
+ /**
93
+ *
94
+ * @param {string} name
95
+ * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty
96
+ * @return {string} the value of the property if it has been explicitly set for this declaration block.
97
+ * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.
98
+ */
99
+ removeProperty: function(name) {
100
+ if (!this._values.hasOwnProperty(name)) {
101
+ return '';
102
+ }
55
103
 
56
- this[lowercaseName] = value;
57
- this._importants[lowercaseName] = priority;
58
- },
59
- _setProperty: function (name, value, priority) {
60
- if (value === undefined) {
61
- return;
62
- }
63
- if (value === null || value === '') {
64
- this.removeProperty(name);
65
- return;
66
- }
67
- if (this._values[name]) {
68
- // Property already exist. Overwrite it.
69
- var index = Array.prototype.indexOf.call(this, name);
70
- if (index < 0) {
71
- this[this._length] = name;
72
- this._length++;
73
- }
74
- } else {
75
- // New property.
76
- this[this._length] = name;
77
- this._length++;
78
- }
79
- this._values[name] = value;
80
- this._importants[name] = priority;
81
- this._onChange(this.cssText);
82
- },
104
+ var prevValue = this._values[name];
105
+ delete this._values[name];
106
+ delete this._importants[name];
83
107
 
84
- /**
85
- *
86
- * @param {string} name
87
- * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-removeProperty
88
- * @return {string} the value of the property if it has been explicitly set for this declaration block.
89
- * Returns the empty string if the property has not been set or the property name does not correspond to a known CSS property.
90
- */
91
- removeProperty: function (name) {
92
- if (!this._values.hasOwnProperty(name)) {
93
- return "";
94
- }
108
+ var index = Array.prototype.indexOf.call(this, name);
109
+ if (index < 0) {
110
+ return prevValue;
111
+ }
95
112
 
96
- var prevValue = this._values[name];
97
- delete this._values[name];
98
- delete this._importants[name];
113
+ // That's what WebKit and Opera do
114
+ Array.prototype.splice.call(this, index, 1);
115
+
116
+ // That's what Firefox does
117
+ //this[index] = ""
118
+
119
+ this._onChange(this.cssText);
120
+ return prevValue;
121
+ },
122
+
123
+ /**
124
+ *
125
+ * @param {String} name
126
+ */
127
+ getPropertyPriority: function(name) {
128
+ return this._importants[name] || '';
129
+ },
130
+
131
+ getPropertyCSSValue: function() {
132
+ //FIXME
133
+ return;
134
+ },
135
+
136
+ /**
137
+ * element.style.overflow = "auto"
138
+ * element.style.getPropertyShorthand("overflow-x")
139
+ * -> "overflow"
140
+ */
141
+ getPropertyShorthand: function() {
142
+ //FIXME
143
+ return;
144
+ },
145
+
146
+ isPropertyImplicit: function() {
147
+ //FIXME
148
+ return;
149
+ },
150
+
151
+ /**
152
+ * http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-item
153
+ */
154
+ item: function(index) {
155
+ index = parseInt(index, 10);
156
+ if (index < 0 || index >= this._length) {
157
+ return '';
158
+ }
159
+ return this[index];
160
+ },
161
+ };
99
162
 
100
- var index = Array.prototype.indexOf.call(this, name);
101
- if (index < 0) {
102
- return prevValue;
163
+ Object.defineProperties(CSSStyleDeclaration.prototype, {
164
+ cssText: {
165
+ get: function() {
166
+ var properties = [];
167
+ var i;
168
+ var name;
169
+ var value;
170
+ var priority;
171
+ for (i = 0; i < this._length; i++) {
172
+ name = this[i];
173
+ value = this.getPropertyValue(name);
174
+ priority = this.getPropertyPriority(name);
175
+ if (priority !== '') {
176
+ priority = ' !' + priority;
103
177
  }
104
-
105
- // That's what WebKit and Opera do
106
- Array.prototype.splice.call(this, index, 1);
107
-
108
- // That's what Firefox does
109
- //this[index] = ""
110
-
111
- this._onChange(this.cssText);
112
- return prevValue;
113
- },
114
-
115
-
116
- /**
117
- *
118
- * @param {String} name
119
- */
120
- getPropertyPriority: function (name) {
121
- return this._importants[name] || "";
178
+ properties.push([name, ': ', value, priority, ';'].join(''));
179
+ }
180
+ return properties.join(' ');
122
181
  },
123
-
124
-
125
- getPropertyCSSValue: function () {
126
- //FIXME
182
+ set: function(value) {
183
+ var i;
184
+ this._values = {};
185
+ Array.prototype.splice.call(this, 0, this._length);
186
+ this._importants = {};
187
+ var dummyRule;
188
+ try {
189
+ dummyRule = CSSOM.parse('#bogus{' + value + '}').cssRules[0].style;
190
+ } catch (err) {
191
+ // malformed css, just return
127
192
  return;
193
+ }
194
+ var rule_length = dummyRule.length;
195
+ var name;
196
+ for (i = 0; i < rule_length; ++i) {
197
+ name = dummyRule[i];
198
+ this.setProperty(
199
+ dummyRule[i],
200
+ dummyRule.getPropertyValue(name),
201
+ dummyRule.getPropertyPriority(name)
202
+ );
203
+ }
204
+ this._onChange(this.cssText);
128
205
  },
129
-
130
- /**
131
- * element.style.overflow = "auto"
132
- * element.style.getPropertyShorthand("overflow-x")
133
- * -> "overflow"
134
- */
135
- getPropertyShorthand: function () {
136
- //FIXME
137
- return;
206
+ enumerable: true,
207
+ configurable: true,
208
+ },
209
+ parentRule: {
210
+ get: function() {
211
+ return null;
138
212
  },
139
-
140
- isPropertyImplicit: function () {
141
- //FIXME
142
- return;
213
+ enumerable: true,
214
+ configurable: true,
215
+ },
216
+ length: {
217
+ get: function() {
218
+ return this._length;
143
219
  },
144
-
145
220
  /**
146
- * http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleDeclaration-item
147
- */
148
- item: function (index) {
149
- index = parseInt(index, 10);
150
- if (index < 0 || index >= this._length) {
151
- return '';
152
- }
153
- return this[index];
154
- }
155
- };
156
-
157
- Object.defineProperties(CSSStyleDeclaration.prototype, {
158
- cssText: {
159
- get: function () {
160
- var properties = [];
161
- var i;
162
- var name;
163
- var value;
164
- var priority;
165
- for (i = 0; i < this._length; i++) {
166
- name = this[i];
167
- value = this.getPropertyValue(name);
168
- priority = this.getPropertyPriority(name);
169
- if (priority !== '') {
170
- priority = " !" + priority;
171
- }
172
- properties.push([name, ': ', value, priority, ';'].join(''));
173
- }
174
- return properties.join(' ');
175
- },
176
- set: function (value) {
177
- var i;
178
- this._values = {};
179
- Array.prototype.splice.call(this, 0, this._length);
180
- this._importants = {};
181
- var dummyRule;
182
- try {
183
- dummyRule = CSSOM.parse('#bogus{' + value + '}').cssRules[0].style;
184
- } catch (err) {
185
- // malformed css, just return
186
- return;
187
- }
188
- var rule_length = dummyRule.length;
189
- var name;
190
- for (i = 0; i < rule_length; ++i) {
191
- name = dummyRule[i];
192
- this.setProperty(dummyRule[i], dummyRule.getPropertyValue(name), dummyRule.getPropertyPriority(name));
193
- }
194
- this._onChange(this.cssText);
195
- },
196
- enumerable: true,
197
- configurable: true
198
- },
199
- parentRule: {
200
- get: function () { return null; },
201
- enumerable: true,
202
- configurable: true
221
+ * This deletes indices if the new length is less then the current
222
+ * length. If the new length is more, it does nothing, the new indices
223
+ * will be undefined until set.
224
+ **/
225
+ set: function(value) {
226
+ var i;
227
+ for (i = value; i < this._length; i++) {
228
+ delete this[i];
229
+ }
230
+ this._length = value;
203
231
  },
204
- length: {
205
- get: function () { return this._length; },
206
- /**
207
- * This deletes indices if the new length is less then the current
208
- * length. If the new length is more, it does nothing, the new indices
209
- * will be undefined until set.
210
- **/
211
- set: function (value) {
212
- var i;
213
- for (i = value; i < this._length; i++) {
214
- delete this[i];
215
- }
216
- this._length = value;
217
- },
218
- enumerable: true,
219
- configurable: true
220
- },
221
- 'float': {
222
- get: function () { return this.cssFloat; },
223
- set: function (value) {
224
- this.cssFloat = value;
225
- },
226
- enumerable: true,
227
- configurable: true
228
- }
232
+ enumerable: true,
233
+ configurable: true,
234
+ },
229
235
  });
230
236
 
231
237
  require('./properties')(CSSStyleDeclaration.prototype);
232
238
 
239
+ allProperties.forEach(function(property) {
240
+ if (!implementedProperties.has(property)) {
241
+ var declaration = getBasicPropertyDescriptor(property);
242
+ Object.defineProperty(CSSStyleDeclaration.prototype, property, declaration);
243
+ Object.defineProperty(CSSStyleDeclaration.prototype, dashedToCamelCase(property), declaration);
244
+ }
245
+ });
246
+
247
+ allExtraProperties.forEach(function(property) {
248
+ if (!implementedProperties.has(property)) {
249
+ var declaration = getBasicPropertyDescriptor(property);
250
+ Object.defineProperty(CSSStyleDeclaration.prototype, property, declaration);
251
+ Object.defineProperty(CSSStyleDeclaration.prototype, dashedToCamelCase(property), declaration);
252
+ }
253
+ });
254
+
233
255
  exports.CSSStyleDeclaration = CSSStyleDeclaration;