counter-increment.js 1.2 KB

1234567891011121314151617181920212223242526272829303132
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var IPropertyDescriptor_1 = require("../IPropertyDescriptor");
  4. var parser_1 = require("../syntax/parser");
  5. var tokenizer_1 = require("../syntax/tokenizer");
  6. exports.counterIncrement = {
  7. name: 'counter-increment',
  8. initialValue: 'none',
  9. prefix: true,
  10. type: IPropertyDescriptor_1.PropertyDescriptorParsingType.LIST,
  11. parse: function (tokens) {
  12. if (tokens.length === 0) {
  13. return null;
  14. }
  15. var first = tokens[0];
  16. if (first.type === tokenizer_1.TokenType.IDENT_TOKEN && first.value === 'none') {
  17. return null;
  18. }
  19. var increments = [];
  20. var filtered = tokens.filter(parser_1.nonWhiteSpace);
  21. for (var i = 0; i < filtered.length; i++) {
  22. var counter = filtered[i];
  23. var next = filtered[i + 1];
  24. if (counter.type === tokenizer_1.TokenType.IDENT_TOKEN) {
  25. var increment = next && parser_1.isNumberToken(next) ? next.number : 1;
  26. increments.push({ counter: counter.value, increment: increment });
  27. }
  28. }
  29. return increments;
  30. }
  31. };
  32. //# sourceMappingURL=counter-increment.js.map