UNPKG

dcl-ui-toolkit

Version:

A collection of UI helpers to make it easier to build a Decentraland scene using the SDK 7.

59 lines 11.1 kB
import ReactEcs, { Label } from '@dcl/sdk/react-ecs'; import { Color4 } from '@dcl/sdk/math'; import { InPromptUIObject } from '../../InPromptUIObject'; import { defaultFont } from '../../../../../constants/font'; const promptTextInitialConfig = { startHidden: false, value: '', xPosition: 0, yPosition: 0, positionAbsolute: true, color: Color4.Black(), size: 15, }; function lineBreak(text, maxLineLength) { const words = text.split(' '); let currentLine = ''; const lines = []; for (const word of words) { if (currentLine.length + word.length + 1 <= maxLineLength) { currentLine += `${word} `; } else { lines.push(currentLine.trim()); currentLine = `${word} `; } } lines.push(currentLine.trim()); return lines.join('\n'); } export class PromptText extends InPromptUIObject { constructor({ color, parent, startHidden = promptTextInitialConfig.startHidden, value = promptTextInitialConfig.value, xPosition = promptTextInitialConfig.xPosition, yPosition = promptTextInitialConfig.yPosition, positionAbsolute = promptTextInitialConfig.positionAbsolute, size = promptTextInitialConfig.size, }) { super({ startHidden, parent, }); this.value = value; this.xPosition = xPosition; this.yPosition = yPosition; this.positionAbsolute = positionAbsolute; this.color = color; this.size = size; this.textElement = { textAlign: 'middle-center', font: defaultFont, }; } render(key) { return (ReactEcs.createElement(Label, { key: key, ...this.textElement, value: lineBreak(String(this.value), 50), color: this.color || (this.isDarkTheme ? Color4.White() : promptTextInitialConfig.color), fontSize: this.size, uiTransform: (!this.positionAbsolute) ? { display: this.visible ? 'flex' : 'none', margin: { top: 20, left: 20, right: 20 }, height: 'auto', alignSelf: 'center' } : { display: this.visible ? 'flex' : 'none', positionType: 'absolute', position: { top: '50%', left: '50%' }, margin: { left: this.xPosition, top: this.yPosition * -1 } } })); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvdWktZW50aXRpZXMvcHJvbXB0cy9Qcm9tcHQvY29tcG9uZW50cy9UZXh0L2luZGV4LnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUE7QUFJdEMsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLHdCQUF3QixDQUFBO0FBRWpGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQTtBQWdCM0QsTUFBTSx1QkFBdUIsR0FBK0M7SUFDMUUsV0FBVyxFQUFFLEtBQUs7SUFDbEIsS0FBSyxFQUFFLEVBQUU7SUFDVCxTQUFTLEVBQUUsQ0FBQztJQUNaLFNBQVMsRUFBRSxDQUFDO0lBQ1osZ0JBQWdCLEVBQUUsSUFBSTtJQUN0QixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRTtJQUNyQixJQUFJLEVBQUUsRUFBRTtDQUNBLENBQUE7QUFFVixTQUFTLFNBQVMsQ0FBQyxJQUFZLEVBQUUsYUFBcUI7SUFDcEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixJQUFJLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDckIsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBRWpCLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFO1FBQ3hCLElBQUksV0FBVyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxhQUFhLEVBQUU7WUFDekQsV0FBVyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUM7U0FDM0I7YUFBTTtZQUNMLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7WUFDL0IsV0FBVyxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUM7U0FDMUI7S0FDRjtJQUNELEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0IsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFjRCxNQUFNLE9BQU8sVUFBVyxTQUFRLGdCQUFnQjtJQVU5QyxZQUFZLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEdBQUcsdUJBQXVCLENBQUMsV0FBVyxFQUNqRCxLQUFLLEdBQUcsdUJBQXVCLENBQUMsS0FBSyxFQUNyQyxTQUFTLEdBQUcsdUJBQXVCLENBQUMsU0FBUyxFQUM3QyxTQUFTLEdBQUcsdUJBQXVCLENBQUMsU0FBUyxFQUM3QyxnQkFBZ0IsR0FBRyx1QkFBdUIsQ0FBQyxnQkFBZ0IsRUFDM0QsSUFBSSxHQUFHLHVCQUF1QixDQUFDLElBQUksR0FDbEI7UUFDakIsS0FBSyxDQUFDO1lBQ0osV0FBVztZQUNYLE1BQU07U0FDUCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQTtRQUNsQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQTtRQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUE7UUFDeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUE7UUFDbEIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUE7UUFFaEIsSUFBSSxDQUFDLFdBQVcsR0FBRztZQUNqQixTQUFTLEVBQUUsZUFBZTtZQUMxQixJQUFJLEVBQUUsV0FBVztTQUNsQixDQUFBO0lBQ0gsQ0FBQztJQUVNLE1BQU0sQ0FBQyxHQUFZO1FBQ3hCLE9BQU8sQ0FDTCx1QkFBQyxLQUFLLElBQ0osR0FBRyxFQUFFLEdBQUcsS0FDSixJQUFJLENBQUMsV0FBVyxFQUNwQixLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQ3hDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsRUFDeEYsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQ25CLFdBQVcsRUFDVCxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO2dCQUN0QixDQUFDLENBQUMsRUFBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNO29CQUN4QyxNQUFNLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRTtvQkFDeEMsTUFBTSxFQUFFLE1BQU07b0JBQ2QsU0FBUyxFQUFFLFFBQVEsRUFBQztnQkFDdEIsQ0FBQyxDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTTtvQkFDeEMsWUFBWSxFQUFFLFVBQVU7b0JBQ3hCLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRTtvQkFDckMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBQyxHQUVqRSxDQUNILENBQUE7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3RFY3MsIHsgTGFiZWwgfSBmcm9tICdAZGNsL3Nkay9yZWFjdC1lY3MnXG5pbXBvcnQgeyBDb2xvcjQgfSBmcm9tICdAZGNsL3Nkay9tYXRoJ1xuaW1wb3J0IHsgRW50aXR5UHJvcFR5cGVzIH0gZnJvbSAnQGRjbC9yZWFjdC1lY3MvZGlzdC9jb21wb25lbnRzL3R5cGVzJ1xuaW1wb3J0IHsgVWlMYWJlbFByb3BzIH0gZnJvbSAnQGRjbC9yZWFjdC1lY3MvZGlzdC9jb21wb25lbnRzL0xhYmVsL3R5cGVzJ1xuXG5pbXBvcnQgeyBJblByb21wdFVJT2JqZWN0LCBJblByb21wdFVJT2JqZWN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vSW5Qcm9tcHRVSU9iamVjdCdcblxuaW1wb3J0IHsgZGVmYXVsdEZvbnQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb25zdGFudHMvZm9udCdcblxuZXhwb3J0IHR5cGUgUHJvbXB0VGV4dFRleHRFbGVtZW50UHJvcHMgPSBPbWl0PFVpTGFiZWxQcm9wcywgJ3ZhbHVlJyB8ICdjb2xvcicgfCAnZm9udFNpemUnPiAmXG4gIE9taXQ8RW50aXR5UHJvcFR5cGVzLCAndWlUcmFuc2Zvcm0nPiAmIHtcbiAgICB1aVRyYW5zZm9ybT86IE9taXQ8Tm9uTnVsbGFibGU8RW50aXR5UHJvcFR5cGVzWyd1aVRyYW5zZm9ybSddPiwgJ2Rpc3BsYXknIHwgJ21hcmdpbic+XG4gIH1cblxuZXhwb3J0IHR5cGUgUHJvbXB0VGV4dENvbmZpZyA9IEluUHJvbXB0VUlPYmplY3RDb25maWcgJiB7XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXJcbiAgeFBvc2l0aW9uPzogbnVtYmVyXG4gIHlQb3NpdGlvbj86IG51bWJlclxuICBwb3NpdGlvbkFic29sdXRlPzogYm9vbGVhbixcbiAgY29sb3I/OiBDb2xvcjRcbiAgc2l6ZT86IG51bWJlclxufVxuXG5jb25zdCBwcm9tcHRUZXh0SW5pdGlhbENvbmZpZzogT21pdDxSZXF1aXJlZDxQcm9tcHRUZXh0Q29uZmlnPiwgJ3BhcmVudCc+ID0ge1xuICBzdGFydEhpZGRlbjogZmFsc2UsXG4gIHZhbHVlOiAnJyxcbiAgeFBvc2l0aW9uOiAwLFxuICB5UG9zaXRpb246IDAsXG4gIHBvc2l0aW9uQWJzb2x1dGU6IHRydWUsXG4gIGNvbG9yOiBDb2xvcjQuQmxhY2soKSxcbiAgc2l6ZTogMTUsXG59IGFzIGNvbnN0XG5cbmZ1bmN0aW9uIGxpbmVCcmVhayh0ZXh0OiBzdHJpbmcsIG1heExpbmVMZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gIGNvbnN0IHdvcmRzID0gdGV4dC5zcGxpdCgnICcpO1xuICBsZXQgY3VycmVudExpbmUgPSAnJztcbiAgY29uc3QgbGluZXMgPSBbXTtcblxuICBmb3IgKGNvbnN0IHdvcmQgb2Ygd29yZHMpIHtcbiAgICBpZiAoY3VycmVudExpbmUubGVuZ3RoICsgd29yZC5sZW5ndGggKyAxIDw9IG1heExpbmVMZW5ndGgpIHtcbiAgICAgIGN1cnJlbnRMaW5lICs9IGAke3dvcmR9IGA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGxpbmVzLnB1c2goY3VycmVudExpbmUudHJpbSgpKTtcbiAgICAgIGN1cnJlbnRMaW5lID0gYCR7d29yZH0gYDtcbiAgICB9XG4gIH1cbiAgbGluZXMucHVzaChjdXJyZW50TGluZS50cmltKCkpO1xuICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG59XG5cbi8qKlxuICogUHJvbXB0IHRleHRcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW3N0YXJ0SGlkZGVuPWZhbHNlXSBzdGFydGluZyBoaWRkZW5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgbnVtYmVyfSBbdmFsdWU9JyddIHN0YXJ0aW5nIHZhbHVlXG4gKiBAcGFyYW0ge251bWJlcn0gW3hQb3NpdGlvbj0wXSBQb3NpdGlvbiBvbiBYIG9uIHRoZSBwcm9tcHQsIGNvdW50aW5nIGZyb20gdGhlIGNlbnRlciBvZiB0aGUgcHJvbXB0XG4gKiBAcGFyYW0ge251bWJlcn0gW3lQb3NpdGlvbj0wXSBQb3NpdGlvbiBvbiBZIG9uIHRoZSBwcm9tcHQsIGNvdW50aW5nIGZyb20gdGhlIGNlbnRlciBvZiB0aGUgcHJvbXB0XG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtwb3NpdGlvbkFic29sdXRlPXRydWVdIFBvc2l0aW9uIGJ5IGFic29sdXRlXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtkYXJrVGhlbWU9ZmFsc2VdIHByb21wdCBjb2xvciBzdHlsZVxuICogQHBhcmFtIHtDb2xvcjR9IFtjb2xvcj1Db2xvcjQuQmxhY2soKV0gdGV4dCBjb2xvclxuICogQHBhcmFtIHtudW1iZXJ9IFtzaXplPTE1XSB0ZXh0IHNpemVcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBQcm9tcHRUZXh0IGV4dGVuZHMgSW5Qcm9tcHRVSU9iamVjdCB7XG4gIHB1YmxpYyB0ZXh0RWxlbWVudDogUHJvbXB0VGV4dFRleHRFbGVtZW50UHJvcHNcblxuICBwdWJsaWMgdmFsdWU6IHN0cmluZyB8IG51bWJlclxuICBwdWJsaWMgeFBvc2l0aW9uOiBudW1iZXJcbiAgcHVibGljIHlQb3NpdGlvbjogbnVtYmVyXG4gIHB1YmxpYyBwb3NpdGlvbkFic29sdXRlOiBib29sZWFuXG4gIHB1YmxpYyBjb2xvcjogQ29sb3I0IHwgdW5kZWZpbmVkXG4gIHB1YmxpYyBzaXplOiBudW1iZXJcblxuICBjb25zdHJ1Y3Rvcih7XG4gICAgY29sb3IsXG4gICAgcGFyZW50LFxuICAgIHN0YXJ0SGlkZGVuID0gcHJvbXB0VGV4dEluaXRpYWxDb25maWcuc3RhcnRIaWRkZW4sXG4gICAgdmFsdWUgPSBwcm9tcHRUZXh0SW5pdGlhbENvbmZpZy52YWx1ZSxcbiAgICB4UG9zaXRpb24gPSBwcm9tcHRUZXh0SW5pdGlhbENvbmZpZy54UG9zaXRpb24sXG4gICAgeVBvc2l0aW9uID0gcHJvbXB0VGV4dEluaXRpYWxDb25maWcueVBvc2l0aW9uLFxuICAgIHBvc2l0aW9uQWJzb2x1dGUgPSBwcm9tcHRUZXh0SW5pdGlhbENvbmZpZy5wb3NpdGlvbkFic29sdXRlLFxuICAgIHNpemUgPSBwcm9tcHRUZXh0SW5pdGlhbENvbmZpZy5zaXplLFxuICB9OiBQcm9tcHRUZXh0Q29uZmlnKSB7XG4gICAgc3VwZXIoe1xuICAgICAgc3RhcnRIaWRkZW4sXG4gICAgICBwYXJlbnQsXG4gICAgfSlcblxuICAgIHRoaXMudmFsdWUgPSB2YWx1ZVxuICAgIHRoaXMueFBvc2l0aW9uID0geFBvc2l0aW9uXG4gICAgdGhpcy55UG9zaXRpb24gPSB5UG9zaXRpb25cbiAgICB0aGlzLnBvc2l0aW9uQWJzb2x1dGUgPSBwb3NpdGlvbkFic29sdXRlXG4gICAgdGhpcy5jb2xvciA9IGNvbG9yXG4gICAgdGhpcy5zaXplID0gc2l6ZVxuXG4gICAgdGhpcy50ZXh0RWxlbWVudCA9IHtcbiAgICAgIHRleHRBbGlnbjogJ21pZGRsZS1jZW50ZXInLFxuICAgICAgZm9udDogZGVmYXVsdEZvbnQsXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHJlbmRlcihrZXk/OiBzdHJpbmcpOiBSZWFjdEVjcy5KU1guRWxlbWVudCB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxMYWJlbFxuICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgey4uLnRoaXMudGV4dEVsZW1lbnR9XG4gICAgICAgIHZhbHVlPXtsaW5lQnJlYWsoU3RyaW5nKHRoaXMudmFsdWUpLCA1MCl9XG4gICAgICAgIGNvbG9yPXt0aGlzLmNvbG9yIHx8ICh0aGlzLmlzRGFya1RoZW1lID8gQ29sb3I0LldoaXRlKCkgOiBwcm9tcHRUZXh0SW5pdGlhbENvbmZpZy5jb2xvcil9XG4gICAgICAgIGZvbnRTaXplPXt0aGlzLnNpemV9XG4gICAgICAgIHVpVHJhbnNmb3JtPXtcbiAgICAgICAgICAoIXRoaXMucG9zaXRpb25BYnNvbHV0ZSlcbiAgICAgICAgICAgID8ge2Rpc3BsYXk6IHRoaXMudmlzaWJsZSA/ICdmbGV4JyA6ICdub25lJyxcbiAgICAgICAgICAgICAgbWFyZ2luOiB7IHRvcDogMjAsIGxlZnQ6IDIwLCByaWdodDogMjAgfSwgXG4gICAgICAgICAgICAgIGhlaWdodDogJ2F1dG8nLFxuICAgICAgICAgICAgICBhbGlnblNlbGY6ICdjZW50ZXInfVxuICAgICAgICAgICAgOiB7ZGlzcGxheTogdGhpcy52aXNpYmxlID8gJ2ZsZXgnIDogJ25vbmUnLFxuICAgICAgICAgICAgICBwb3NpdGlvblR5cGU6ICdhYnNvbHV0ZScsXG4gICAgICAgICAgICAgIHBvc2l0aW9uOiB7IHRvcDogJzUwJScsIGxlZnQ6ICc1MCUnIH0sXG4gICAgICAgICAgICAgIG1hcmdpbjogeyBsZWZ0OiB0aGlzLnhQb3NpdGlvbiwgdG9wOiB0aGlzLnlQb3NpdGlvbiAqIC0xIH19XG4gICAgICAgIH1cbiAgICAgIC8+XG4gICAgKVxuICB9XG59XG4iXX0=