{"code":"import * as tslib_1 from \"tslib\";\r\nimport React, { PureComponent } from 'react';\r\nimport posed from 'react-pose';\r\nimport { invariant } from 'hey-listen';\r\nvar splitStyles = { display: 'inline-block' };\r\nvar parseText = function (text) {\r\n    invariant(typeof text === 'string', 'Child of SplitText must be a string');\r\n    return {\r\n        text: text,\r\n        numChars: text.length,\r\n        splitText: text.split(' ').map(function (word) { return word.split(''); })\r\n    };\r\n};\r\nvar getPoseProps = function (props) {\r\n    var wordPoses = props.wordPoses, charPoses = props.charPoses, children = props.children, poseProps = tslib_1.__rest(props, [\"wordPoses\", \"charPoses\", \"children\"]);\r\n    return poseProps;\r\n};\r\nvar SplitText = (function (_super) {\r\n    tslib_1.__extends(SplitText, _super);\r\n    function SplitText(props) {\r\n        var _this = _super.call(this, props) || this;\r\n        _this.state = {};\r\n        var wordPoses = props.wordPoses, charPoses = props.charPoses, children = props.children;\r\n        parseText(children);\r\n        if (wordPoses)\r\n            _this.Word = posed.div(wordPoses);\r\n        if (charPoses)\r\n            _this.Char = posed.div(charPoses);\r\n        return _this;\r\n    }\r\n    SplitText.getDerivedStateFromProps = function (_a, state) {\r\n        var children = _a.children;\r\n        return !state || children !== state.text ? parseText(children) : null;\r\n    };\r\n    SplitText.prototype.renderChars = function (word, wordIndex, numWords, baseCharCount) {\r\n        var _this = this;\r\n        var numChars = this.state.numChars;\r\n        var numCharsInWord = word.length;\r\n        var text = this.state.text;\r\n        return word.map(function (char, i) {\r\n            return _this.Char ? (React.createElement(_this.Char, tslib_1.__assign({ key: text + i, style: splitStyles, wordIndex: wordIndex, numWords: numWords, charIndex: baseCharCount + i, charInWordIndex: i, numChars: numChars, numCharsInWord: numCharsInWord }, getPoseProps(_this.props)), char)) : (char);\r\n        });\r\n    };\r\n    SplitText.prototype.renderWords = function () {\r\n        var _this = this;\r\n        var _a = this.state, text = _a.text, splitText = _a.splitText;\r\n        var numWords = splitText.length;\r\n        var charCount = 0;\r\n        return splitText.map(function (word, i) {\r\n            var chars = _this.renderChars(word, i, numWords, charCount).concat([\r\n                i !== numWords - 1 ? '\\u00A0' : null\r\n            ]);\r\n            charCount += word.length;\r\n            return _this.Word ? (React.createElement(_this.Word, tslib_1.__assign({ key: text + i, style: splitStyles, wordIndex: i, numWords: numWords }, getPoseProps(_this.props)), chars)) : (React.createElement(\"div\", { style: splitStyles, key: text + i }, chars));\r\n        });\r\n    };\r\n    SplitText.prototype.render = function () {\r\n        return this.renderWords();\r\n    };\r\n    return SplitText;\r\n}(PureComponent));\r\nexport default SplitText;\r\n//# sourceMappingURL=SplitText.js.map","map":"{\"version\":3,\"file\":\"SplitText.js\",\"sourceRoot\":\"\",\"sources\":[\"src/SplitText.tsx\"],\"names\":[],\"mappings\":\"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\"}","dts":{"name":"/Users/mattperry/Sites/popmotion/packages/react-pose-text/SplitText.d.ts","text":"import { PureComponent, ReactElement } from 'react';\r\nexport declare type PoseProps = {\r\n    [key: string]: any;\r\n};\r\nexport declare type Props = {\r\n    children?: string;\r\n    wordPoses?: PoseProps;\r\n    charPoses?: PoseProps;\r\n    pose?: string | string[];\r\n    initialPose?: string | string[];\r\n};\r\ndeclare type State = {\r\n    text?: string;\r\n    splitText?: string[][];\r\n    numChars?: number;\r\n};\r\ndeclare class SplitText extends PureComponent<Props, State> {\r\n    static getDerivedStateFromProps({ children }: Props, state: State): {\r\n        text: string;\r\n        numChars: number;\r\n        splitText: string[][];\r\n    };\r\n    props: Props;\r\n    Word: (props: PoseProps) => ReactElement<any>;\r\n    Char: (props: PoseProps) => ReactElement<any>;\r\n    constructor(props: Props);\r\n    renderChars(word: string[], wordIndex: number, numWords: number, baseCharCount: number): (string | JSX.Element)[];\r\n    renderWords(): JSX.Element[];\r\n    render(): JSX.Element[];\r\n}\r\nexport default SplitText;\r\n"}}
