|
- "use strict";
-
- var _require = require('../constants/token-types'),
- TOKEN_ATTRIBUTE_KEY = _require.TOKEN_ATTRIBUTE_KEY,
- TOKEN_ATTRIBUTE_ASSIGNMENT = _require.TOKEN_ATTRIBUTE_ASSIGNMENT,
- TOKEN_OPEN_TAG_END = _require.TOKEN_OPEN_TAG_END,
- TOKEN_OPEN_TAG_END_SCRIPT = _require.TOKEN_OPEN_TAG_END_SCRIPT,
- TOKEN_OPEN_TAG_END_STYLE = _require.TOKEN_OPEN_TAG_END_STYLE;
-
- var _require2 = require('../constants/tree-constructor-contexts'),
- ATTRIBUTE_CONTEXT = _require2.ATTRIBUTE_CONTEXT;
-
- function handlerAttributeStart(state) {
- if (state.currentNode.content.attributes === undefined) {
- state.currentNode.content.attributes = [];
- } // new empty attribute
-
-
- state.currentNode.content.attributes.push({});
- state.currentContext = {
- parentRef: state.currentContext,
- type: ATTRIBUTE_CONTEXT
- };
- return state;
- }
-
- function handleOpenTagEnd(state) {
- state.currentContext = state.currentContext.parentRef;
- return state;
- }
-
- module.exports = function attributes(token, state) {
- var ATTRIBUTE_START_TOKENS = [TOKEN_ATTRIBUTE_KEY, TOKEN_ATTRIBUTE_ASSIGNMENT];
-
- if (ATTRIBUTE_START_TOKENS.indexOf(token.type) !== -1) {
- return handlerAttributeStart(state);
- }
-
- var ATTRIBUTES_END_TOKENS = [TOKEN_OPEN_TAG_END, TOKEN_OPEN_TAG_END_SCRIPT, TOKEN_OPEN_TAG_END_STYLE];
-
- if (ATTRIBUTES_END_TOKENS.indexOf(token.type) !== -1) {
- return handleOpenTagEnd(state);
- }
-
- state.caretPosition++;
- return state;
- };
|