From b6c50674c33a6e09908811d18884f3a23d6d259d Mon Sep 17 00:00:00 2001 From: Manuel Martin Date: Thu, 21 Oct 2021 09:58:24 +0200 Subject: [PATCH 1/3] Update optional properties to an array --- src/editor/nodes/EditorNodeMixin.js | 30 +++++++--- src/editor/nodes/SceneNode.js | 65 +++++++++++++++++++++- src/editor/objects/AudioParams.js | 18 +++--- src/ui/inputs/InputGroup.js | 13 ++--- src/ui/inputs/NumericInputGroup.js | 28 +++------- src/ui/inputs/PropertyLabel.js | 10 ++++ src/ui/properties/AudioParamsProperties.js | 12 +--- src/ui/properties/SceneNodeEditor.js | 15 +---- src/ui/properties/useOptionalParam.js | 27 ++++++--- 9 files changed, 138 insertions(+), 80 deletions(-) create mode 100644 src/ui/inputs/PropertyLabel.js diff --git a/src/editor/nodes/EditorNodeMixin.js b/src/editor/nodes/EditorNodeMixin.js index 66e5fd2f..20e88df5 100644 --- a/src/editor/nodes/EditorNodeMixin.js +++ b/src/editor/nodes/EditorNodeMixin.js @@ -64,7 +64,10 @@ export default function EditorNodeMixin(Object3DClass) { if (editorSettingsComponent) { node.enabled = editorSettingsComponent.props.enabled; - node.modifiedProperties = editorSettingsComponent.props.modifiedProperties; + node._modifiedProperties = + editorSettingsComponent.props.modifiedProperties === undefined + ? {} + : JSON.parse(JSON.stringify(editorSettingsComponent.props.modifiedProperties)); } } @@ -122,7 +125,8 @@ export default function EditorNodeMixin(Object3DClass) { this.issues = source.issues.slice(); this._visible = source._visible; this.enabled = source.enabled; - this._modifiedProperties = source.modifiedProperties; + this._modifiedProperties = + source._modifiedProperties === undefined ? {} : JSON.parse(JSON.stringify(source._modifiedProperties)); return this; } @@ -191,7 +195,8 @@ export default function EditorNodeMixin(Object3DClass) { name: "editor-settings", props: { enabled: this.enabled, - modifiedProperties: this.modifiedProperties + modifiedProperties: + this._modifiedProperties === undefined ? {} : JSON.parse(JSON.stringify(this._modifiedProperties)) } } ] @@ -463,17 +468,26 @@ export default function EditorNodeMixin(Object3DClass) { } optionalPropertyExportValue(componentName, propName) { - if (this.modifiedProperties[componentName]) { - return this.modifiedProperties[componentName][propName] ? this[propName] : undefined; + if (this._modifiedProperties[componentName]) { + return this._modifiedProperties[componentName].includes(propName) ? this[propName] : undefined; } return undefined; } set modifiedProperties(object) { if (object) { - const keys = Object.keys(object); - keys.forEach(key => { - this._modifiedProperties[key] = { ...this._modifiedProperties[key], ...object[key] }; + const compKeys = Object.keys(object); + compKeys.forEach(compKey => { + const modifiedProps = new Set(this._modifiedProperties[compKey]); + const propKeys = Object.keys(object[compKey]); + propKeys.forEach(propKey => { + if (object[compKey][propKey] === true) { + modifiedProps.add(propKey); + } else { + modifiedProps.delete(propKey); + } + }); + this._modifiedProperties[compKey] = Array.from(modifiedProps); }); } } diff --git a/src/editor/nodes/SceneNode.js b/src/editor/nodes/SceneNode.js index 915c19ba..7f24b03b 100644 --- a/src/editor/nodes/SceneNode.js +++ b/src/editor/nodes/SceneNode.js @@ -268,7 +268,7 @@ function migrateV6ToV7(json) { const audioParamsComponent = entity.components.find(c => c.name === "audio-params"); if (audioParamsComponent) { // Prior to V6 we didn't have dirty params so we need to enable all properties - // to make sure that the old settings are applied config is enabled. + // to make sure that the old settings are applied. let editorSettingsComponent = entity.components.find(c => c.name === "editor-settings"); if (!editorSettingsComponent) { editorSettingsComponent = { @@ -298,7 +298,7 @@ function migrateV6ToV7(json) { if (audioSettingsComponent) { const overriden = audioSettingsComponent.props && audioSettingsComponent.props.overrideAudioSettings; // Prior to V6 we didn't have dirty params so we need to enable all properties - // to make sure that the old settings are applied config is enabled. + // to make sure that the old settings are applied. if (overriden) { let editorSettingsComponent = entity.components.find(c => c.name === "editor-settings"); if (!editorSettingsComponent) { @@ -333,6 +333,61 @@ function migrateV6ToV7(json) { return json; } +function migrateV7ToV8(json) { + json.version = 8; + + for (const entityId in json.entities) { + if (!Object.prototype.hasOwnProperty.call(json.entities, entityId)) continue; + + const entity = json.entities[entityId]; + + if (!entity.components) { + continue; + } + + const updateModifiedProps = oldProps => { + const compKeys = Object.keys(oldProps["modifiedProperties"]); + compKeys.forEach(compKey => { + const newModifiedProps = []; + const propKeys = Object.keys(oldProps["modifiedProperties"][compKey]); + propKeys.forEach(propKey => { + if (oldProps["modifiedProperties"][compKey][propKey] === true) { + newModifiedProps.push(propKey); + } + }); + oldProps["modifiedProperties"][compKey] = newModifiedProps; + }); + }; + + const audioParamsComponent = entity.components.find(c => c.name === "audio-params"); + if (audioParamsComponent) { + // Migrate old modified params object to a set + const editorSettingsComponent = entity.components.find(c => c.name === "editor-settings"); + const modifiedProps = editorSettingsComponent.props["modifiedProperties"]; + if (modifiedProps) { + updateModifiedProps(editorSettingsComponent.props); + } + } + + const audioSettingsComponent = entity.components.find(c => c.name === "audio-settings"); + if (audioSettingsComponent) { + const overriden = audioSettingsComponent.props && audioSettingsComponent.props.overrideAudioSettings; + // Migrate old modified params object to a se + if (overriden) { + const editorSettingsComponent = entity.components.find(c => c.name === "editor-settings"); + if (editorSettingsComponent) { + const modifiedProps = editorSettingsComponent.props["modifiedProperties"]; + if (modifiedProps) { + updateModifiedProps(editorSettingsComponent.props); + } + } + } + } + } + + return json; +} + export const FogType = { Disabled: "disabled", Linear: "linear", @@ -373,6 +428,10 @@ export default class SceneNode extends EditorNodeMixin(Scene) { json = migrateV6ToV7(json); } + if (json.version === 7) { + json = migrateV7ToV8(json); + } + const { root, metadata, entities } = json; let scene = null; @@ -610,7 +669,7 @@ export default class SceneNode extends EditorNodeMixin(Scene) { serialize() { const sceneJson = { - version: 7, + version: 8, root: this.uuid, metadata: JSON.parse(JSON.stringify(this.metadata)), entities: { diff --git a/src/editor/objects/AudioParams.js b/src/editor/objects/AudioParams.js index 9efd7146..b815a423 100644 --- a/src/editor/objects/AudioParams.js +++ b/src/editor/objects/AudioParams.js @@ -97,7 +97,7 @@ export default class AudioParams extends Object3D { } get audioType() { - return this._audioType; + return this._audioType || Defaults[this.sourceType].audioType; } set audioType(type) { @@ -105,7 +105,7 @@ export default class AudioParams extends Object3D { } get gain() { - return this._gain; + return this._gain || Defaults[this.sourceType].gain; } set gain(value) { @@ -113,7 +113,7 @@ export default class AudioParams extends Object3D { } get distanceModel() { - return this._distanceModel; + return this._distanceModel || Defaults[this.sourceType].distanceModel; } set distanceModel(value) { @@ -121,7 +121,7 @@ export default class AudioParams extends Object3D { } get rolloffFactor() { - return this._rolloffFactor; + return this._rolloffFactor || Defaults[this.sourceType].rolloffFactor; } set rolloffFactor(value) { @@ -129,7 +129,7 @@ export default class AudioParams extends Object3D { } get refDistance() { - return this._refDistance; + return this._refDistance || Defaults[this.sourceType].refDistance; } set refDistance(value) { @@ -137,7 +137,7 @@ export default class AudioParams extends Object3D { } get maxDistance() { - return this._maxDistance; + return this._maxDistance || Defaults[this.sourceType].maxDistance; } set maxDistance(value) { @@ -145,7 +145,7 @@ export default class AudioParams extends Object3D { } get coneInnerAngle() { - return this._coneInnerAngle; + return this._coneInnerAngle || Defaults[this.sourceType].coneInnerAngle; } set coneInnerAngle(value) { @@ -153,7 +153,7 @@ export default class AudioParams extends Object3D { } get coneOuterAngle() { - return this._coneOuterAngle; + return this._coneOuterAngle || Defaults[this.sourceType].coneOuterAngle; } set coneOuterAngle(value) { @@ -161,7 +161,7 @@ export default class AudioParams extends Object3D { } get coneOuterGain() { - return this._coneOuterGain; + return this._coneOuterGain || Defaults[this.sourceType].coneOuterGain; } set coneOuterGain(value) { diff --git a/src/ui/inputs/InputGroup.js b/src/ui/inputs/InputGroup.js index d8d7e3e3..f8e26035 100644 --- a/src/ui/inputs/InputGroup.js +++ b/src/ui/inputs/InputGroup.js @@ -3,8 +3,8 @@ import PropTypes from "prop-types"; import styled from "styled-components"; import { QuestionCircle } from "styled-icons/fa-regular/QuestionCircle"; import { InfoTooltip } from "../layout/Tooltip"; -import BooleanInput from "./BooleanInput"; import ResetButton from "./ResetButton"; +import { PropertyLabel } from "./PropertyLabel"; export const InputGroupContainer = styled.div` display: flex; @@ -96,14 +96,15 @@ InputGroupInfo.propTypes = { info: PropTypes.string }; -export default function InputGroup({ name, children, disabled, info, optional, enabled, onEnable, reset, onReset }) { +export default function InputGroup({ name, children, disabled, info, optional, reset, onReset }) { return ( - {optional && } - {name && } + + {name && {name}:} + - + {children} {info && } {onReset && } @@ -119,8 +120,6 @@ InputGroup.propTypes = { className: PropTypes.string, info: PropTypes.string, optional: PropTypes.bool, - enabled: PropTypes.bool, - onEnable: PropTypes.func, onReset: PropTypes.func, reset: PropTypes.bool }; diff --git a/src/ui/inputs/NumericInputGroup.js b/src/ui/inputs/NumericInputGroup.js index 05ae4002..8c44f7ce 100644 --- a/src/ui/inputs/NumericInputGroup.js +++ b/src/ui/inputs/NumericInputGroup.js @@ -3,34 +3,24 @@ import PropTypes from "prop-types"; import { InputGroupHeader, InputGroupContainer, InputGroupContent, InputGroupInfo, OptionalGroup } from "./InputGroup"; import Scrubber from "./Scrubber"; import NumericInput from "./NumericInput"; -import BooleanInput from "./BooleanInput"; import ResetButton from "./ResetButton"; +import { PropertyLabel } from "./PropertyLabel"; -export default function NumericInputGroup({ - name, - className, - info, - optional, - children, - enabled, - onEnable, - reset, - onReset, - ...rest -}) { +export default function NumericInputGroup({ name, className, info, optional, children, reset, onReset, ...rest }) { const { displayPrecision, ...scrubberProps } = rest; return ( - {optional && } - - {name}: + + + {name}: + - + {children} - {info && } + {info && } {onReset && } @@ -43,8 +33,6 @@ NumericInputGroup.propTypes = { children: PropTypes.any, info: PropTypes.string, optional: PropTypes.bool, - enabled: PropTypes.bool, - onEnable: PropTypes.func, onReset: PropTypes.func, reset: PropTypes.bool }; diff --git a/src/ui/inputs/PropertyLabel.js b/src/ui/inputs/PropertyLabel.js new file mode 100644 index 00000000..48ef6384 --- /dev/null +++ b/src/ui/inputs/PropertyLabel.js @@ -0,0 +1,10 @@ +import styled from "styled-components"; + +export const PropertyLabel = styled.label` + ${props => + (props.modified && + ` + font-weight: normal; + `) || + `font-weight: bold;`} +`; diff --git a/src/ui/properties/AudioParamsProperties.js b/src/ui/properties/AudioParamsProperties.js index 6c7ffff6..db4a1475 100644 --- a/src/ui/properties/AudioParamsProperties.js +++ b/src/ui/properties/AudioParamsProperties.js @@ -68,10 +68,10 @@ export default function AudioParamsProperties({ node, editor, multiEdit, sourceT {node.overrideAudioSettings && ( <> - + - + {!multiEdit && node.audioType === AudioType.PannerNode && ( @@ -79,7 +79,6 @@ export default function AudioParamsProperties({ node, editor, multiEdit, sourceT @@ -129,7 +126,6 @@ export default function AudioParamsProperties({ node, editor, multiEdit, sourceT largeStep={10} value={node.refDistance} unit="m" - optional onChange={paramProps.refDistance.onChange} {...paramProps.refDistance} /> @@ -142,7 +138,6 @@ export default function AudioParamsProperties({ node, editor, multiEdit, sourceT largeStep={10} value={node.maxDistance} unit="m" - optional onChange={paramProps.maxDistance.onChange} {...paramProps.maxDistance} /> @@ -157,7 +152,6 @@ export default function AudioParamsProperties({ node, editor, multiEdit, sourceT value={node.coneInnerAngle} unit="°" disabled={multiEdit} - optional onChange={paramProps.coneInnerAngle.onChange} {...paramProps.coneInnerAngle} /> @@ -172,14 +166,12 @@ export default function AudioParamsProperties({ node, editor, multiEdit, sourceT value={node.coneOuterAngle} unit="°" disabled={multiEdit} - optional onChange={paramProps.coneOuterAngle.onChange} {...paramProps.coneOuterAngle} /> @@ -226,7 +223,6 @@ export default function SceneNodeEditor(props) { largeStep={10} value={node.avatarRefDistance} unit="m" - optional onChange={avatarParamProps.refDistance.onChange} {...avatarParamProps.refDistance} /> @@ -239,17 +235,15 @@ export default function SceneNodeEditor(props) { largeStep={10} value={node.avatarMaxDistance} unit="m" - optional onChange={avatarParamProps.maxDistance.onChange} {...avatarParamProps.maxDistance} /> - + @@ -299,7 +291,6 @@ export default function SceneNodeEditor(props) { largeStep={10} value={node.mediaRefDistance} unit="m" - optional onChange={mediaParamProps.refDistance.onChange} {...mediaParamProps.refDistance} /> @@ -312,7 +303,6 @@ export default function SceneNodeEditor(props) { largeStep={10} value={node.mediaMaxDistance} unit="m" - optional onChange={mediaParamProps.maxDistance.onChange} {...mediaParamProps.maxDistance} /> @@ -326,7 +316,6 @@ export default function SceneNodeEditor(props) { largeStep={10} value={node.mediaConeInnerAngle} unit="°" - optional onChange={mediaParamProps.coneInnerAngle.onChange} {...mediaParamProps.coneInnerAngle} /> @@ -340,14 +329,12 @@ export default function SceneNodeEditor(props) { largeStep={10} value={node.mediaConeOuterAngle} unit="°" - optional onChange={mediaParamProps.coneOuterAngle.onChange} {...mediaParamProps.coneOuterAngle} /> editor.setPropertySelected(propName, value), [editor, propName]), - onEnable: useCallback( - value => + onChange: useCallback( + value => { + editor.setPropertySelected(propName, value); editor.setPropertySelected("modifiedProperties", { [componentName]: { - [propName]: value + [propName]: true } - }), - [editor, componentName, propName] + }); + }, + [componentName, editor, propName] ), - enabled: node.modifiedProperties[componentName] ? node.modifiedProperties[componentName][propName] : false, - onReset: useCallback(() => editor.setPropertySelected(propName, defaultValue), [editor, propName, defaultValue]), - reset: node[propName] !== defaultValue + onReset: useCallback(() => { + editor.setPropertySelected(propName, defaultValue); + editor.setPropertySelected("modifiedProperties", { + [componentName]: { + [propName]: false + } + }); + }, [editor, propName, defaultValue, componentName]), + reset: + node[propName] !== defaultValue || + (node.modifiedProperties[componentName] ? node.modifiedProperties[componentName].includes(propName) : false) }; } From 51297f5af4c45a88a787fca66c5f4d3e92dbf3f7 Mon Sep 17 00:00:00 2001 From: Manuel Martin Date: Thu, 21 Oct 2021 10:00:44 +0200 Subject: [PATCH 2/3] Updated tests --- test/integration/snapshots/Editor.test.js.md | 230 +++++++++--------- .../integration/snapshots/Editor.test.js.snap | Bin 44181 -> 44987 bytes 2 files changed, 115 insertions(+), 115 deletions(-) diff --git a/test/integration/snapshots/Editor.test.js.md b/test/integration/snapshots/Editor.test.js.md index 69c7ab6f..538f47c5 100644 --- a/test/integration/snapshots/Editor.test.js.md +++ b/test/integration/snapshots/Editor.test.js.md @@ -230,17 +230,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -1012,17 +1012,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -1241,7 +1241,7 @@ Generated by [AVA](https://avajs.dev). }, metadata: {}, root: 'FC94D12B-39AB-493B-848F-5290FFD4ECF9', - version: 7, + version: 8, } ## Editor should load V4TestScene @@ -2078,17 +2078,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -2292,17 +2292,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -2619,7 +2619,7 @@ Generated by [AVA](https://avajs.dev). }, }, root: '2266BED7-6CC4-48A6-95DD-9BCD3CF9EAFC', - version: 7, + version: 8, } ## Editor should load V5TestScene @@ -3554,17 +3554,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -3768,17 +3768,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -4024,17 +4024,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -4246,7 +4246,7 @@ Generated by [AVA](https://avajs.dev). }, }, root: '2266BED7-6CC4-48A6-95DD-9BCD3CF9EAFC', - version: 7, + version: 8, } ## Editor should load V6TestScene @@ -5181,17 +5181,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -5395,17 +5395,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -5651,17 +5651,17 @@ Generated by [AVA](https://avajs.dev). props: { enabled: true, modifiedProperties: { - 'audio-params': { - audioType: true, - coneInnerAngle: true, - coneOuterAngle: true, - coneOuterGain: true, - distanceModel: true, - gain: true, - maxDistance: true, - refDistance: true, - rolloffFactor: true, - }, + 'audio-params': [ + 'audioType', + 'gain', + 'distanceModel', + 'rolloffFactor', + 'refDistance', + 'maxDistance', + 'coneInnerAngle', + 'coneOuterAngle', + 'coneOuterGain', + ], }, }, }, @@ -5873,7 +5873,7 @@ Generated by [AVA](https://avajs.dev). }, }, root: '2266BED7-6CC4-48A6-95DD-9BCD3CF9EAFC', - version: 7, + version: 8, } ## Editor should load new scene @@ -6207,5 +6207,5 @@ Generated by [AVA](https://avajs.dev). name: 'Crater', }, root: '2266BED7-6CC4-48A6-95DD-9BCD3CF9EAFC', - version: 7, + version: 8, } diff --git a/test/integration/snapshots/Editor.test.js.snap b/test/integration/snapshots/Editor.test.js.snap index 753c1e7011677db7499ce22253acdab5498b9d66..bfd540ee5b8f53ee1346c4a923c595d986f9adb4 100644 GIT binary patch literal 44987 zcmXtuN+c{DQ2|9YD0tNqqSIRU z9Gq3`X?VLDRSa;fJTRei`HGTiu$WiH(*1jJyDrE`-T&e(3|g>im`&N`qw*$m+^!l! zl78sdTWb+Qcef~VJrB|!j_N66{F=&x@J^0l4PtM@aaXfy)wGId6PY)_)2S#nS#5D* zD*uk4U7F9RQ*kFDtW<)hrFW{;zL8nSc5)qFSlgsd)1`5W?l&T07N2hq?jpSGwLydr z0ltuTy9*}&IdjdFPVP6uLdVOJZz9T3nYQ=hzr|>sw{jDb17-Vcm=5EYN4*JYrV?kQ zli+MT@?#+gLEhwO2tn+EU?r_^|3X)7Ld62+vK4v9mBu1X?*N(pPrUUHazmEtDqwAk z1wHBRfvr#II#~uy8L=|cN8Ih>L}k;(i-bk$0!N|r$;RhE`zGG$v#Dh%@U%HrjZT`% z-13DAYfitpn|_hHBz6(AOwQ`z0>4ya-iu`W>~-8cED1%I#j_ub<0R z?lB&ngD9|0c>B&PDD^#S=pyIF4YP|SOzZ*+2oF(N(hZL@OlF-VAYXBumle3&vW)Dk zI~0VJE)l_GCga&lW3xZBo)isQ%)eeUsdQ?!x;=pie(E~-y{r#DF;?lf^~PSRkj%s$KKWz5Ny4p6 z1$POH+rkTijZJ~M!dtf33492@fb2v{fU@9rQ!-sdokRrqLm^{CGp;s_HAFIMSYDzF z?ofP)=mqST3he6DUsyI? zgqH=Zsj^@MCFV#ZX4V9_pG*mG#?HvYv2WX$4EZJnpV-^gP<1s3&>*#ovVpPP;~T@Z zdebKFF)x{@TidG(KhAt+ctn@hxLW)!_gJ~(4aqlWF!inf1l0M)43k&J zx4pR9$271DPZJ%8SRn?!Lgz0;S9eR-hZ}&|Q{#!RxXx!r6e`z;%taIk!-|&K86XBBpaIZD-ix5nt#Mz`nE#Z@Rb@l0E4PBr$VxT z{|k+_EV~CviW`KrGS2)+Q!N*%SKWhIbJgopsEVnsY@v$fkrsU;Btt7_aPC%(H>9jW z5L|IC@rb-jrZT7Zr^Qh-NTrGiE_HhH-2%hq;bpQC9noGg7HL1tcVtfo5#EF6-!#eW zr(OEHxzuMk^I>9)XM08qp*|b>;n_ihGc+X7m6RVY^#~f02v5QHFLi>MJE{N%*S$xH z9*thU%>3O*yv+0pRP29Wr94T0uN?e@cV*U20CVr+0vIgO{~XLopdZ#!sEgA#M1Niw z^i)r<{0^cnrV@vik}j`kkoxG07rrP2wMkTCr1-r~lWZ~#Cz4iPr6BFe{_XVCQIphz zoZqMV?VuBuP{^M7#|QmPDbNrPCpo!Gd9pW0nb1xMj)`_inM>ejHP%U>IBerDr%>;_ z3MW;WCSTo_sx&sjXlHZ#RGe`8?=t`;>F%EjAgV#~)~_Y<-7D$AP}_5o3Q!=%4;$J? zvvo)H2g!r?RcUew$x3YAwL+&_Q~~P>@+}|E@WUBAIk-jEf(l~{kOo464CR+I$!ATr z&{wO)AR(La}a@-uDG(f5K`hp?J)w4=ktzk%AfG=OXm zwAc&i$(S!&=0GHG%<|6U6xjy5Bcu|97=#inv2f*C33?li8vM4F&_K;Zmq--W*ZDT)5({^ZZZkCjzG0tyJaSEAhxsz9u=dYCfJJ zq9?faOGFR#fMd&IqI5jT4wWcYiq5_WQ=!;RbcL&n@-V(Jfe<9UXk;P9mOJs>)$&Kj zFC4{`jLVA5n#%4=e9bVMaQp>cN1l{tiNx6OtK!Y7sX~$IymEc1IgDJN+&a30o3LNG znVjcs!*?m44yvO3|L)OHo|;qs6-L`pztx;?adCA^YL#$q03BDQhmKc#kq%qc#QVvX zN8Wy}7ON^1Po?&kR9o{e`iec{>*al|xgCv{zme|V3>b3yZx1=XmNsW8+p{@VhP%Lk zqyEx*KtXPS$sSK?+zvL#=+zSjF->1nLRM!8<_P0yq`PHU^mO-$CHA0-@X!5#TNlst zG``!46dz-C05LD)ibdzz*X`>cs*u4jK7!}WHhN!f?7bTVu2$Y)8YBaU>90TNdayr) zip(&1(RL-_GG0sZRwTu|Jly@z(#45>uR|HYpE>ho?B>}{+!*F9oilQZ%CMDIN59_O zzSmAG%|K7$UnVb)oqYM5)N@F!+Fr~0X>wj%v#@z2NQt_7N)sQ0zbo+Fa`SU7w~duT zAfYj>CiwU75f()yxH1uv9NNo>@K5Gw9b-Z?2UU0Bl}Wu`X3aLR2&$H_=q38Hcyr!+ zv6A11CFq%h?O$P4edK=kDEr7yMQ^J|c$h}9vA6w-_{h6d-FToxq*`Hnq0cA<9xTUU zF|Lti=KAX01|l z(mh8VK8|E8X z(d8W#S`tzg4nutA+f+KoL7PkkZk?7%o!@tU#zWOUNG}8#((r#+W&BDpL51)|;tcab z>;WHBN=)I~Vviz9*1J!}l1{}zX%HI<3oQAC*h5)~LySRCnAZ8kjYGi+LTBHq)_G#f zTo3bdyxfHWbyTEh6ty18tgK`POeI9464UzWzpsH87{B7Dyg_9mjZiRx33v^=sVbD( zjdLCKpEoK?f-nf?Nmo=?~{;towmN;2Kk<~#<6-`fgm zNG}MTS_p1+q8Ex64aO0{VSl1${=G5@rCPh2axQJBy~j;o+Ej)z7s><7li|q!3Ksn_ zpCR}lQzUP(K%{Ypn?=6VvXCBwSA=Ns8-yN~Qbfg>@&U1C*>cLkT|ar=aVCS9Nm_Ge z*to9x)6R@jc(_KJLtJiH>PG?UVB~^81Nq_Vcd$b0MOv?8-ODCsw@%NXscT~`2T-UQ zu}sGX|5hi^#PVp_kltZ9S82SMqdEV?kxh~ywv!li}sUhgf~ z3(|u!ywK#nk}bVpAGY*hazpgHkR4`mAV}I2|ABx+S{1Eqkzv?)JiY(fQ>sZQxdCTl zcrpD{CSt%Ei$yR;kDI^AdHSs7NV@xvQ@t&TV41N)RDe-7LCL%T2}bugr?NlW1LJt zE_Fx7$$C~iVHB3emIQ& z>+TLpmEznIx(ry^h0ETt{ysCEz^aZvR)5T4I_eJ&x-)#~Xvy?8dX8^wpL46gdOZ{U zM56Svk#+K@6?P75HYV;mTjx;m`oLVp6l&;n*rWG-j!_DXk+&bwd_9oc%`&e z8bKwUnpvy)o0?xV)v^d}tc<0`Q_-1^G;A8G8QUJ7wZRbmHg76r#K3{EMs((dAsnd3{a^@))E*v&}M=YDBS>X|k zKB#MN;!T^cuD++FBVrs=Z*ez*s`jm z62N`b_nSTfQL|Kbmf3gA6g*#zbLuK;CqEl~2r)G1kp39lPv=%7&bZz(iZ> z&`HF#+4HdVcM1}8!`->f7+LQzA0R87P@m?O1JN}bS&@(u7PBcTKYBGy*{O9`zlAaQ zn)d`9%jcs% z>{T2V!X+~HY{t;suMDJxU;_v-w>3<>KxHz;4NO0T85l^1ZL!TU+2=#(4?qKnw)fgUU8W%Kx>nG^Ht*<1(0?y1@VKf#~NR;AsDEH+Z?YF}4trax!h zR50PT7e970t9-Ru;EtL2GRk{(x3?(Q8uD zw_Ha?s_68K!XXN4g92L7x?}3{yW6#*vR|c}pXc~DH2k&qa%+6UsbO#QCKU%8p5B=| zJ0_>L(%vwp?z+d+8BOusJk@EBpwWc~;I+d^!q366`ku^o7K5GEaaNAk7P%AO2fW-x zk$C6j)z6<|BaO%KNq=nM{k$#STU3~gO7!CHSf86&rFO_Nu~J!yqxA>1xYww1_bzm~ zH@6TU*4%~JS9OWI9QzCN^cwqqj`JV?wBF-VL1e)fe7M=X%oog%UYfIm9!8huLzNb1 zX5)kB>J2eu$7DWc6q62KuQtaGQD@koZ&G+ zWqnMhV)E?KJ%3@5O~7D^#w?1aLt0G!SVZ@bDfAC8GVIw1+469%LtoO7twT_OM7kez zf_bjCV$c9jo>^vw@Xm1e!RypJM0l5QG2NzO{4jwOA6x4q#mp={hMK^v`CeW=zl)e9 z;QJB6!5pSUQQnEt-lkfhS%`TZNb1Dqql2j-#!p1P5I?!!_{`>fF*XorhxosI4lMa7 zAO?BBwY-DOL95}Lx=E1Tt30?6#S2G|frXC1gS-|#Q7RAlAfYKh7oImcGKBfF>%iRj z7Fiu}*O$-L%sc1==OFkkqzk$zg1*mJey9=#Q-B-9%-pNUiYw&97P_Ikn9aN5!ZP>O zj)m-7JL@fCGL^I|GnFjY(u~UVu#!2<$k&$$ zGTeP8%@}?z4vr^=TRAQXHuJ>>R*I6<8M6U|7qBjH(GScck=oETzD!X74DAxmW^R}R z13tc3+TO4#OUuwh935}q4sr68U==GySQB(i5UseplPaCkpD@<1;q;AJGxSq>sE-qH~8n?;Do6TaRCY1o?5E$L$$^vxPjm#pRxCL zre7@=2B};yp#mh0)zC+wXi>&qMXDwfVqbYxl|LEMfW0QI9e7-_U(f{?Sj^ass$as| zgeu`@T92J-d{eCvAHj*sT+G-jKSQIo03IqIQ7P8xh5cugPc(CYJC&2~4xlO@`5CN} z_o0NOy7&l13A)u5tc$2TL9n}hRuct8kgg6dPcYtoq1R{6sC)@jD3hoF99IZtRq%tLp}S^cNsE2XY^;C6zGiTSK;^3ODy7= z<$yoC&7oZgISwORY29P32J9x-mf4Z!c5lp&3BIrBOzcG3enCN8itNnj$9LKdS6ii0F~%;Ck)$3$mb4)bl4V9-vZwO2;J7 zi!z(5&+|xhXdP+$1QDtH8QTkh&&vRT!T)BW$Vs~$14DUq_V-MIKP|Yk;u+7&B)Ad( zMPc2meRYBbSvJ^W{r77^XY$q<%)Z*a#hG(xBkoD*8SGgP%Kj#WAHuiZ-Lq++FX-dk zYg{K?KLb*l+C9>lG15Nm1)N9F-kB^=6zNn3`=0OY4y*}BtNwM1PV#XJ0U~o`4ZP>& zzYlIL&l*@i-+F=Ti2LkJ<`oN!1GtqNjIH|s@xY{WPNVA)+rqFth0aK4*0Fe@aB7^H zZKUnTATGo?jeF#?pTTaFZ8;sXuJ?NUY#{RT)!0se1v?&OisScb-#P=(8Z+P~fm zJ9y7F;P)vn1Uz!q#`(puT*d#O{3gw?RQg2-4>w0TwEhpM z6XI7cl-v0Zx@LUH=tyoe5GL~zgRtke&9(_4PDs@ScW|}&ab$aJeLR}jJv#<&!1~}s z3T5T3Eob||du9P6?-5CADa2>|;3qT_%Imo6zA#sbZF74%r~>rl6v;&Ae)!L8upIKM z_q_)6*I(-o_}uO{f1U&aeB?AIv=Ss1QnGNVQNo)ox zHudQsCsaXXwAlPh^)e`VKF}Dk5)EdVk9JPRy)idFaWoB$SI06Y=*)r&{Rb6sxZi$& zn2U=hndB&s56=I4-gc4!Rq!Y}r#Jip=Tm61ads6&ST(*Ey<9>Qz6*n#)cI|;$nDhG zZM8O*>iMm(fjGuvcP>7|Fh%F$^*>bXgm2%{l8CT}24ta?k>ZEVX6BU-;|MW`Y>Q4> z1MK8f6>yP>t5jGaOpc{)q-43bn9E*zBif{S0pLQwG_41)FNGbFQI;siy zsobH$X8-ObU4}#TB9;gS=;AN>DY1GwT(h4~#FBQK*}p6zEMi%T#BN zC1W}n*e8IzAC2ce0SJecP#EMWvltek^1?hdQ}t3hRfIfH6S)rj!Npj>!7P;<%dZj0knn9-mL zeP{U~Ings*O81sf^}>Eqg%>b&;2Wj+K@~MJZ9|X~Pp7eN`We zmKCP^NC04jIKRyhD?C_l3;P1byDU4jacIoi^BPrxoSkIs20Ld1q?h`QDCJSh;@(`R z7ToZ0O;P*qH{Gp}nkdXNu9Q`L#&|Z26;U~WsY2zvuX4-{x4_lLVurKwn2FXTd!yCQxwKkVYy}fM`MhzuK^_XSaiGR;dcRp z=hh+XiOnD&+{HY$7f!7QARDd1%jyZw=^x8V*e96p@%2@=;eeRvp-Q*eK zi7)KmJNP*HT8UJU4N=bkE}*==X>sv7B>5K>elLq!l$UikC2utK-rBX<|t zK2<)($NRv&y_+y95Y885Lku!l^68}r?^ho)sH67;FPr|*>GR69oh{K_=JTq!l@0&1 z^sI4gJP3QjZA)>gM+IvTWDlJloGw795B21=zy4Dn11yy|!>!5QYy;Lr#++Y{>ZmpU zVz6w*Goo9xDCk;%J~tkhFdh8|__(hZ>Vv+*bs>)QT>+@~SN%JjgWZ^x;6)4HdLP|i zG3YEPFGY7|=h0Qjw~Ei`#>RhwG~pLQkRS#W79XRYV-`hWC%DznbTra{TTiHW#J9;0HuSd`Ww|f^RQ!`{D8rDlF&3uXWiMO1KTbH!9Z%3bO7qu-K-a|N z_T`+3PoY0e>C@5oz*!U2-vaau`|^MdKg^FY$6#zg4v^?AV&D>|;{&L{iu!BNM#S}& zA%Z7#$z;0{?SkDmIy&?we+w=WMH9ld`M8)6sFUFn#ac`N-?gQbd8TW;^bYw8ZhxQuEKj)!1-S0h01id5ZWy+`@*U@lXob<+K^vps}`^qHsdAU zoZF$c%P`2vCw8QA{cwC#R>o2TIlmpd=4}Pps^Kt2cA(%+`E^)Di1aDA^uKmw-Z3NE zQTu1PQo9R@&C3x41y;p{((LnzV%z3Qs5;dIZAa$Y7{Ao}IO@=d<~35k`A<}K%&0|) z1=|sr&+GDl`#02dZ$c$DfVRMlvK8VRIn~XWTZh@lil=5etKLAT^}t(`<+*{t-y>QB zlLi@;4^B)5%@5tm^tl^N{Cro{>nMSfzjhU+ob~c)Nj^MC{uvUtwp>;s%P=ASAhmFF zIdmp2|@ujJa`44z#nRKQIFJRYukn{xQx7CZ!-#>XDj5cESV{LS3sYmBh((PJ6_D{^N zxJIufexLbs`~c#2zg>B1#L{=o{ym~74!bar1F~&-z_mBy{_VWn1gPl<T%AHLGJ^w!G8vU1gd>%WMU)dR^w5)t~cmx5-ypQI5efUhmJP~hmw=I`@ z`CF+dfY$y9OzMcuuR^G+0IP=OhT}r5#($gmC7CQvY|it`oG&|rHfZZy7V$P^HHC_% zmX8iEmnZJA>A1fm6kqytMR_RxG_Kae43U}e(V1nYh?J84X`<-}74Ui+sMuTU#xKis zL(=z}@aQSN6p+nB?b{=H1@aer*jRAUKMC(HF*g{xmN(MRP}$w37$@1^Rku^mpZJ_4 z>EwuP@|fLC5y$cQ-AUmw@%nuaNEAUrYI(xBLvz(4t@BP-lBpSh+E+LFMav^(o|Aa; zPr^|cj_nz`F z4k?>4z#%(~%_h>@)YVr}*CO243&zYpnhD)#$mwqTKQEA$P@5CTwM^^{x0ID#HicbDHlQYK_4GF^yG0pH&nEHB(u1)iP!|*$o4(k1dE~Mo^ z{a6+KSep(0V!1W3k!U5U-F#z0mTu!*W~Xm;IVbt8*i<&zwX_9yW1*A}dLxueR?3x> z{JzRn7=6+XMC72L)_}>uxFwR6iM?>13hNmz2Ai3_g&g_UMPAY5C9391(8l)%G46&q zEhN0hmq1l{y?kFF{gqPq)RrA?h~ZIC9Sy=ZVABsWOmRH>;9dXraYk?2e~^ z{HC2i;Q#w;!SmCJx~xJiDc>+(cbP8cQ_Rl$sL%&@t7?UVjChzC)MrYH+E(^G5V~-2 zdpJ#A{K6jgKCZ{u!}D#6Yf@p)WFB%Oh@ibD-d6b&>lmA~vFaW%xjckUDyFZCm1VC7 zuqpF&mYJ+nHu?>ejFZ1rw3sEQre5g|-zjR|?lh-#4;wF5cC*(wyghaJ$j&ZPg%QP- zw!VDp>z(hrjbRi_OCmS2(Qha^cKrM0GUS$;2{X`8q{wOWhe+K-DaUe%hxV^uu2&se zXrt1{8Z6A1&1b)^v~lo$=w3=6YvPKz2UPAM*|$+g<(0B>xuj@v*=~ht);TT})0kO~oUuED(0P zlO%&@;~~1@7gs+@RoyVJy!%t;4a0uao0PUMMGe>{m+k~bFsmNV9v_Wx@u8!1BYW;Z zzqseSy!--<`=Dp}-H&JCINF*rV#AJx(yHw{SFYP9L0aB2Bd4N|$_F}1j$L~7*h#nF zGXd&ccZMh2o2H8IdJWQYb)QZUT&65ZGjbcnvA%zCVRwh0#RMsd94%1pJW10VzR3i==?W@_+%RKQe4TAXxqvnJi znxrg6KH<)nQV&77KiS|jVG!NMd zLl;IzGeBeIPQ~Vr=jT4wix1xMv_ct&NCht_ac$V652;dl{Wl-g2BB&w?Yt_~I!&YL zBtd~XsUi5b4eYaG;a7m+E(NT(j_(H^N_<}k;b`H-=J!ijZry*J7*e;v7{Z^?{o$P0 zStL0LyQY1>*ma?NTV6YdEhDcB$(R$Pd!^CczjmiA)GJKnO6b zgJ*xz>a|`o>ilX)IDv^*dlx)A2RD+xd{{A-d?7u|0^;=El!$43K|VI)4v>g{0_={j^1Jh5JQ~i-YEjw^RC?e5_V{SFzzejGXdiPeA)H+B+R96d~3a* zCUCbrFGy~Cl}*l6h1X@}E(O#~*pOw7RcBuN0z^od(vkh=-ZAgf`t)F1g8eGqZJu1Y z9;G?is0KtY(1+LMXK;bN#Mz>z1nDxb5@(AL6fhc8PQowgH7ylUy=T`DhP?yl*>x1P zZ{8t_^OK~&+@t?KA9+pQP62a4e2>Wc*?zYJCUWME2d;bI_R%j`hC34q>YqtF z-a0&!{4NXS_|TR4GN0S|&?Gnx;KSFIUO3kB5N&wN;qldj9G_h2N`oGEi}98IU=Ww@ zsFuA)_0+KseEcw9_=F#*n3X_Q618s;WJ3KaV&qf(U1n6XL^-|4zG^t_4Rb4FI*b`bApRWXt&_IdV z9Zi78N1t1^s=HnnV(fWk@p8n==6w}LnFZa#CM@V@Q;DePsP<(S2g4F?eibx{{4;z}O!KxX;uU+U zF*e8K3>|wCE7w8^lE0q_D)qI&oBj>EY;0i8?J%a3Y;416fR0xcm3y{b2#ayy17yXlW^lW5$S1;-5?f)wB0949MK7-!u;GA^!S1ZeBhE zUz~nmQTyxrEicr$dV3GJe+(i{ey_o)GHri|M z3{jnt*g$OJ(={N94aWDC)>efdG-AFrcE3Dzb#?@;Y@PH_omZyrvo+oUItDcqIW}IAC3hY7Kv5fVtR9#aA}34--E{GY{T`3 zKYkV?u-22jc;7aqMFtB2TywGC&*->3)95I-4P9K6m+*yfxm~{{Fm9*XyDVv*q4*ut zhnP}K0l{236P68~+1As$KmsZ7fHiiFOqpiW3aLtWzmv!E8b%TYovXx8cWs^BomxZf z{l?3QeQ-oyys2q8g*U`%%O_t44TOsT;l04KjcA4-0}RkD(lOW-*ZVtE?e?Y;l3u;_@RaQIwPVJpTKzd6t)H{-ndk%~!q)BZL*eWe zFx`l#X2SWKOp)&{6l7M?iI}j$9w%y*=WeTJo&L#pC>^U)yO>ET6TNH}E2FF&W3RtR zbsv%_eb~&(r14#)b(Mywnl{UJ+Ag+m;9m>z31aeW&8&2hbDFdOx=yT~4el)-7)PDA z)waK<+twp<%{q2Al2q4%`{?g)dXds~JFax8EaiCTHf}@&T@P=EGUa1-T_c@FAZ=7|ikCMs3SqElj7p`wLL}9cJI=LH=&=zfw#dff8 zj1c+HLDx&!IGM6v)0zGkj=^QWMBUJWgD_UnH zYSK~qYI$RhKkYQ9%S@ET!Q0!hM<=tK!`le|cev1FtJ@HfG?0r(Dq{SgfdE~nbJ;dd zMmb4Zpj!V#L|=;Q2dY+NpY6Am+d^U^uR{;#s@bjYGAybwu1oB+F$5CGkf0{s8r#M! zs+>i^6TBLg^SXh(tAHqVmFU4@kL8%pdxSp}{sZMdU$6e;vEc9UAc_#-_3cfPHp_6= zJ=LGicU$6^ZAzCY>!;1ER*98ykiDE(N}4I6pd7LKcGN6*vuasiL~Pw{&~!AVoIJbd zs(T|-(?@pv()63Yb>gUwpCg?FFPWwRaVqj*fZAM%*wHg~`po^eZ<_|5)tpeQGcyq) z9g!W7sHsr-7IzX<1hDI3u+m7i1BOh~3xz8;@}Z zMr38&!XHrc+{pW%;db#*C0y7G5~@e$-L-R@@kS7Vbl!w73X&`J&F@p6#eu;B(o&~` z4Yk3plx<|fC_QDA@OqIIx>#}WTwh3+w3H;OnRkuo$#G>{gTj8AS`uS(g2D`8ta#c` zgwddX*7PxRQYT1 zQEFm#^AjgPRYCCBy1S#criy<=nK;kaL=tC*b3wv(6N+Dk-M7AAen24cB#80}A5w~N z!-np-z<#zLf>6IKxB#_C0o%6h2xDhU2c&n6KS7P?!l-xP?0({Ii+}}New<+PY)t1u zj+e6wy-mm?N|Trb79#jimfJV&u9|7f5f(F;58}dIiWE<{Adi*3^$Ge3D!_@FzD}>* zdVyK-9Q;9&zR*7H=VRj(?1tM$-h~lZ!lCIsHpQw78!TYT(bj+##qf{gyzddAJpQ*c zC6HX+-2PD@V86dT-PfjcMW^>|I6T!dQ14}8kg}n0{AxbM@9%TZ30_r$O{X%-6C+c1 zpL0Fh)InNkbFS&H*yOCX90uHH>+9$e{P0mRPFktl<|QY`lW7o(rrpU84}dIB$qaX% z$qYC7VzE+#U8z@Ml9=YV;v1!bA2}Dg?epVoX=Ij(VlGppKBn%iD1mqD7nFFuR@Z1H ztsfI{^)0JdW7oQhcru@A_ZC+ujcUS@1Lm6pU0M&xPVQPAD}GInv+}&^tnUs>s&^_! zihOFOVVdXd)$laQ`K=%%BYQ*=Gj~C<4!2IyNw<3{Gg+L^!{-Fns}xvz$y_a|5^!_8 ziCSe@UU0}V`YeLLR8{xv9={nMXs;OKR{CteXNxc8%pziANzqoWE%@^7T1ct4Fl~O* z>^mR9O+HYTy`j#|f{)1QPx$@u%E|ZDve)4BEtK#8D_xPc%7AS=6Y(*}!1kLKud9gd zxXL@NmJ83pN+_n{QcqF)P5(r1nMLof#dvMvMvL}ahAAfV!5;F%D}8gA%_HVGTk5*E z+#U7afsKUX*X8|m>#y=I5VrSSBK&qtNj|Ts*_o_9u1piVZ!6n`-2kc41#k6h2c_r3 z71r%so0|HlTe<7wlKYudHWjKuugxguww8;N_vYo2($~=O-2V%Nj4tq(8#J!UPiCfK zPJgVI&26=erQ_?B@x}S_$hBAIhu3lvZhyiYrHFkrcKg&lU(e{Kt+%OSG8xLQeXB!9Rb_@H5UPS!$vr~Q9-pF+*2P;L-tAgI}< z!s*MJxn?+{TVWjdb0H;LaCKyk06tKse7KNpc=eE}FuF0~d9bSd??&bwKLVtX4*W`_ z9KSzQ8^s@&yG=j9AOeL6&`XobRhOT$;fmnqK(l?W*xwSQtHZw$E}=RjcqK=Y;AZ&} zsDjh_gtj!XrxRr?gE0S6sNE0FfhY36y7*|R-idLEfxziOsf8hSS|A_!MA1@o@ z2YB8TC(6C5I)2+J`f$c>Y+K zCSo`X{&W}>*k)6PHiR|U4HzVdIMCfhye=dP0uS0c>ACXK9hnI0Ly~}oZtOM>Dli{T z&0g^Io_7`}KlfTo1)VObM&@Eu13sMNW2UdFqUvs{qI#zw`cnc(rcF@m?$h8ZpOb?} zpNHT*p(x2b)|3wn3J@a_2>}X(eEpCBmzxi}DF-Wykpi~{UlKfvm=vrG{})!32LTFm z0BVkL)tvAy{pkxcI^G#-sBKj;dKWhp@?33WSXcTI)0_@c*uqVIV_aL{2lc@apQ5;q)Eq%&_lek@g|ZFp7D~vwm3&#r@XYIbwU}As7>^*|6o2VMSxlthu`0 zA;R8I3fiaXQm-U=RHiQt-esYFXSH8Cj(RO;t}u`S7l~KrJymEYp}Pldc0L7 z&WNp=q_!u#^liHuD~y-s{KOo7{t2L0eSTo>uD_lf5ROiFL|>{B#)$@{PjJ#Z$VO

={Cq9RzIrJq1c~8?rRFe(l%Fq^3 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 literal 44181 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 From 3814e82834ea9a2165c7057a5fdf8c8459263997 Mon Sep 17 00:00:00 2001 From: Manuel Martin Date: Thu, 21 Oct 2021 10:27:55 +0200 Subject: [PATCH 3/3] Update styles --- src/ui/inputs/InputGroup.js | 53 +++--------------------------- src/ui/inputs/NumericInputGroup.js | 17 ++++------ src/ui/inputs/PropertyLabel.js | 9 ++--- 3 files changed, 16 insertions(+), 63 deletions(-) diff --git a/src/ui/inputs/InputGroup.js b/src/ui/inputs/InputGroup.js index f8e26035..cac99396 100644 --- a/src/ui/inputs/InputGroup.js +++ b/src/ui/inputs/InputGroup.js @@ -12,7 +12,6 @@ export const InputGroupContainer = styled.div` padding: 4px 8px; flex: 1; min-height: 24px; - align-items: center; ${props => props.disabled && @@ -23,6 +22,7 @@ export const InputGroupContainer = styled.div` & > label { display: block; + width: 25%; color: ${props => props.theme.text2}; padding-bottom: 2px; padding-top: 4px; @@ -30,15 +30,9 @@ export const InputGroupContainer = styled.div` `; export const InputGroupContent = styled.div` - ${props => - props.disabled && - ` - pointer-events: none; - opacity: 0.3; - `} display: flex; flex-direction: row; - flex: 2; + flex: 1; padding-left: 8px; align-items: center; `; @@ -52,38 +46,6 @@ export const InputGroupInfoIcon = styled(QuestionCircle)` align-self: center; `; -export const InputGroupHeader = styled.div` - display: flex; - flex-direction: row; - flex: 1; - align-items: center; - - ${props => - props.disabled && - ` - pointer-events: none; - opacity: 0.3; - `} - - & > :first-child { - padding-right: 8px; - } -`; - -export const OptionalGroup = styled.div` - display: flex; - flex-direction: row; - flex: 1; - align-items: center; - - ${props => - props.disabled && - ` - pointer-events: none; - opacity: 0.3; - `} -`; - export function InputGroupInfo({ info }) { return ( @@ -96,15 +58,11 @@ InputGroupInfo.propTypes = { info: PropTypes.string }; -export default function InputGroup({ name, children, disabled, info, optional, reset, onReset }) { +export default function InputGroup({ name, children, disabled, info, reset, onReset }) { return ( - - - {name && {name}:} - - - + {name}: + {children} {info && } {onReset && } @@ -119,7 +77,6 @@ InputGroup.propTypes = { disabled: PropTypes.bool, className: PropTypes.string, info: PropTypes.string, - optional: PropTypes.bool, onReset: PropTypes.func, reset: PropTypes.bool }; diff --git a/src/ui/inputs/NumericInputGroup.js b/src/ui/inputs/NumericInputGroup.js index 8c44f7ce..cd904648 100644 --- a/src/ui/inputs/NumericInputGroup.js +++ b/src/ui/inputs/NumericInputGroup.js @@ -1,23 +1,19 @@ import React from "react"; import PropTypes from "prop-types"; -import { InputGroupHeader, InputGroupContainer, InputGroupContent, InputGroupInfo, OptionalGroup } from "./InputGroup"; +import { InputGroupContainer, InputGroupContent, InputGroupInfo } from "./InputGroup"; import Scrubber from "./Scrubber"; import NumericInput from "./NumericInput"; import ResetButton from "./ResetButton"; import { PropertyLabel } from "./PropertyLabel"; -export default function NumericInputGroup({ name, className, info, optional, children, reset, onReset, ...rest }) { +export default function NumericInputGroup({ name, className, info, children, reset, onReset, ...rest }) { const { displayPrecision, ...scrubberProps } = rest; return ( - - - - {name}: - - - - + + {name}: + + {children} {info && } @@ -32,7 +28,6 @@ NumericInputGroup.propTypes = { className: PropTypes.string, children: PropTypes.any, info: PropTypes.string, - optional: PropTypes.bool, onReset: PropTypes.func, reset: PropTypes.bool }; diff --git a/src/ui/inputs/PropertyLabel.js b/src/ui/inputs/PropertyLabel.js index 48ef6384..5285501e 100644 --- a/src/ui/inputs/PropertyLabel.js +++ b/src/ui/inputs/PropertyLabel.js @@ -3,8 +3,9 @@ import styled from "styled-components"; export const PropertyLabel = styled.label` ${props => (props.modified && - ` - font-weight: normal; - `) || - `font-weight: bold;`} + `font-weight: normal; + color: ${props.theme.text2};`) || + `font-weight: bold; + color: ${props.theme.text} + `} `;