function init( state ) {
	var svg = state.$.svg;

	debug( 'Initializing components...' );

	debug( 'Initializing canvas component...' );
	defineProperty( svg, 'canvas', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Canvas({
			'autoRender': false
		})
	});

	debug( 'Initializing definitions component...' );
	defineProperty( svg, 'defs', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Defs({
			'autoRender': false
		})
	});

	debug( 'Initializing clipping path component...' );
	defineProperty( svg, 'clipPath', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new ClipPath({
			'autoRender': false,
			'id': state._clipPathId // eslint-disable-line no-underscore-dangle
		})
	});

	debug( 'Initializing graph component...' );
	defineProperty( svg, 'graph', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Graph({
			'autoRender': false
		})
	});

	debug( 'Initializing annotations component...' );
	defineProperty( svg, 'annotations', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Annotations({
			'autoRender': false
		})
	});

	debug( 'Initializing title component...' );
	defineProperty( svg, 'title', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Title({
			'autoRender': false
		})
	});

	debug( 'Initializing background component...' );
	defineProperty( svg, 'bkgd', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Bkgd({
			'autoRender': false
		})
	});

	debug( 'Initializing marks component...' );
	defineProperty( svg, 'marks', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Marks({
			'autoRender': false,
			'clipPathId': state._clipPathId // eslint-disable-line no-underscore-dangle
		})
	});

	debug( 'Initializing path component...' );
	defineProperty( svg, 'path', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Path({
			'autoRender': false
		})
	});

	debug( 'Initializing symbols component...' );
	defineProperty( svg, 'symbols', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Symbols({
			'autoRender': false
		})
	});

	debug( 'Initializing x-axis rug component...' );
	defineProperty( svg, 'xRug', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Rug({
			'autoRender': false
		})
	});

	debug( 'Initializing y-axis rug component...' );
	defineProperty( svg, 'yRug', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Rug({
			'autoRender': false
		})
	});

	debug( 'Initializing x-axis component...' );
	defineProperty( svg, 'xAxis', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Axis({
			'autoRender': false
		})
	});

	debug( 'Initializing y-axis component...' );
	defineProperty( svg, 'yAxis', {
		'configurable': false,
		'enumerable': false,
		'writable': false,
		'value': new Axis({
			'autoRender': false
		})
	});

	debug( 'All components initialized.' );
}
Initializes SVG components.

@private
@param {Object} state - state