structure = $structure; } public function serializeForJs(): array { $context = new WireContext(); $settingsToSerialize = iterator_to_array($this->structure->getAllReferencedSettings($context)); $settingsToSerialize = array_merge($settingsToSerialize, $this->extraSettingsToSerialize); return [ 'settingsPack' => AbstractSetting::serializeSettingsForRevisedJs($settingsToSerialize), 'interfaceStructure' => $this->structure->serializeForRevisedJs($context), ]; } public function enqueueDependencies() { $this->structure->enqueueRevisedComponentDependencies(); } public function addExtraSetting(AbstractSetting $setting) { $this->extraSettingsToSerialize[$setting->getId()] = $setting; } }