UNPKG

1.54 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _removeAttribute = require('./removeAttribute');
8
9var _removeAttribute2 = _interopRequireDefault(_removeAttribute);
10
11var _isValidAttr = require('@f/is-valid-attr');
12
13var _isValidAttr2 = _interopRequireDefault(_isValidAttr);
14
15var _applyStyles = require('@f/apply-styles');
16
17var _applyStyles2 = _interopRequireDefault(_applyStyles);
18
19var _setAttribute = require('@f/set-attribute');
20
21var _setAttribute2 = _interopRequireDefault(_setAttribute);
22
23var _setValue = require('@f/set-value');
24
25var _setValue2 = _interopRequireDefault(_setValue);
26
27function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
28
29/**
30 * Set an attribute on an element
31 */
32
33function setAttribute(node, name, value, prevValue) {
34 if (typeof value === 'function') {
35 value = value(node, name);
36 }
37
38 if (name === 'style') {
39 (0, _applyStyles2.default)(node, value, prevValue);
40 } else if ((0, _isValidAttr2.default)(value)) {
41 switch (name) {
42 case 'nodeValue':
43 case 'checked':
44 case 'disabled':
45 case 'selected':
46 case 'innerHTML':
47 case 'textContent':
48 node[name] = value;
49 break;
50 case 'value':
51 (0, _setValue2.default)(node, value);
52 break;
53 default:
54 (0, _setAttribute2.default)(node, name, value);
55 break;
56 }
57 } else {
58 (0, _removeAttribute2.default)(node, name);
59 }
60}
61
62/**
63 * Exports
64 */
65
66/**
67 * Imports
68 */
69
70exports.default = setAttribute;
\No newline at end of file