code: protected function city()
      {
          $pluginOptions = [
              'url' => Url::to(["/{$this->module->id}/city/list"])
              , 'depends' => [$this->fieldIds['country']]
          ];
          if (isset($this->fieldIds['state'])) {
              $pluginOptions['depends'][] = $this->fieldIds['state'];
              $pluginOptions['initDepends'] = [$this->fieldIds['country']];
          } else {
              $pluginOptions['depends'][] = null;
          }
  
          if (isset($this->fieldIds['region'])) {
              $pluginOptions['depends'][] = $this->fieldIds['region'];
              if (isset($this->fieldIds['state'])) {
                  $pluginOptions['initDepends'][] = $this->fieldIds['state'];
              }
          } else {
              $pluginOptions['depends'][] = null;
          }
  
          $this->parts['{city}'] = $this->form->field($this->model, $this->model->getCityPropertyName())->widget(DepDrop::className(), [
              'options' => [
                  'id' => $this->fieldIds['city']
                  , 'cityholder' => Yii::t('jlorente/location', 'Select city')
                  , 'name' => $this->getSubmitModelName($this->model->getCityPropertyName())
              ]
              , 'data' => ArrayHelper::map(City::find()->where(['region_id' => $this->model->region_id])->orderBy(['name' => SORT_ASC])->all(), 'id', 'name')
              , 'pluginOptions' => $pluginOptions
          ]);
      }
docs: Renders the city part.