_initVueInstanceDialogs () {
    const root = 'root';
    if (this.vueInstanceDialogs) {
      this.vueInstanceDialogs.$router.push({ name: root });
      this.vueInstanceDialogs.$destroy();
    }
    var self = this;
    const el = this.$el.context.getElementsByClassName('js-layer-dialog')[0];
    const router = new Router({
      base: window.location.origin + window.location.pathname,
      routes: [
        {
          path: '',
          component: Vue.component(root, {
            template: `
              <div style="font-family: 'Montserrat', 'Open Sans', Arial, sans-serif;">
                <router-view></router-view>
              </div>
            `
          }),
          name: 'root',
          children: routesToAddLayers('layer')
        }
      ]
    });
    this.vueInstanceDialogs = new Vue({
      el,
      router,
      store,
      i18n,
      provide () {
        const backboneViews = {
          backgroundPollingView: {
            getBackgroundPollingView: () => window.importerManager,
            backgroundPollingView: window.importerManager
          }
        };
        const addLayer = (layer, div) => {
          div.innerHTML = renderLoading({
            title: _t('components.modals.add-layer.adding-new-layer')
          });

          const tablesCollection = new TablesCollection([layer], {
            configModel: self._configModel
          });

          self._userActions.createLayerFromTable(tablesCollection.at(0).getTableModel(), {
            success: function (model) {
              self._userModel.updateTableCount();
              self.trigger('addLayerDone');
              MetricsTracker.track(MetricsTypes.CREATED_LAYER, {
                empty: false,
                layer_id: model.get('id')
              });
            },
            error: function (req, resp) {
              let error;
              if (resp.responseText.indexOf('You have reached your table quota') !== -1) {
                error = new ErrorDetailsView({
                  error: { errorCode: 8002 },
                  userModel: self._userModel,
                  configModel: self._configModel
                });
              } else {
                error = new ErrorView({
                  title: _t('components.modals.add-layer.add-layer-error')
                });
              }
              div.innerHTML = '';
              div.append(error.render().el);
            }
          });
        };
        return { backboneViews, addLayer };
      },
      template: '<div><router-view></router-view></div>'
    });
  }
View to render layer definitions list