    import Tag from './Tag';

    /** @module svgObjects.Pattern */

    /**
     * pattern object in SVG
     * @extends Tag
     */
    export default class Pattern extends Tag {
        /**
         * @param {string} id     unique id of this pattern
         * @param {number} width  width of one pattern tile in SVG pixels
         * @param {number} height height of one pattern tile in SVG pixels
         */
        constructor(id, width, height) {
            super('pattern');

            this.addAttr({
                id: id,
                x: 0,
                y: 0,
                width: width,
                height: height,
                patternUnits: 'userSpaceOnUse',
                viewBox: '0 0 ' + width + ' ' + height
            });
        }

        /**
         * add a child to this pattern
         *
         * pattern behaves a little like {@link Group} - it contains child elements, which represent the content of one tile of the pattern
         * and the whole package of the child elements is repeated on each tile of the pattern
         * @param {SvgElement} el element that will be added to the pattern
         */
        addChild(el) {
            this.$el.append(el.$el);
            return el;
        }
    }