private function handleInputValues(Action $action, ModelInterface $model, EnvironmentInterface $environment)
    {
        $editProperties = $this->getEditPropertiesByModelId($action, ModelId::fromModel($model), $environment);

        if (!$editProperties) {
            return [];
        }

        $inputProvider = $environment->getInputProvider();

        $inputValues = [];
        foreach (\array_keys($_POST) as $valueName) {
            $inputValues[$valueName] = $inputProvider->getValue($valueName, true);
            $inputProvider->unsetValue($valueName);

            switch ($valueName) {
                case 'FORM_SUBMIT':
                case 'REQUEST_TOKEN':
                    $inputProvider->setValue($valueName, $inputValues[$valueName]);

                    break;

                case 'FORM_INPUTS':
                    $inputProvider->setValue($valueName, \array_keys($editProperties));

                    foreach (\array_keys($editProperties) as $editPropertyName) {
                        $inputProvider->setValue($editPropertyName, $editProperties[$editPropertyName]);
                    }

                    break;

                default:
            }
        }

        return $inputValues;
    }