text: /*!
   * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.
   * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
   *
   * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
   * Unless required by applicable law or agreed to in writing, software
   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   *
   * See the License for the specific language governing permissions and limitations under the License.
   */
  
  import { _, loc, View } from 'okta';
  import hbs from 'handlebars-inline-precompile';
  import FormController from 'util/FormController';
  import FormType from 'util/FormType';
  import Footer from 'views/enroll-factors/Footer';
  
  const Model = {
    local: {
      factorType: 'string',
      provider: 'string',
    },
    save: function() {
      this.trigger('save');
      const factorOpt = this.pick('factorType', 'provider');
      return this.doTransaction(function(transaction) {
        const factor = _.findWhere(transaction.factors, factorOpt);
  
        return factor.enroll();
      });
    },
  };
  
  const Form = function() {
    return {
      title: _.partial(loc, 'email.enroll.title', 'login'),
      noButtonBar: false,
      autoSave: true,
      save: _.partial(loc, 'email.button.send', 'login'),
      formChildren: [
        FormType.View({
          View: View.extend({
            attributes: {
              'data-se': 'enroll-email-content',
            },
            template: hbs('{{i18n code="email.enroll.description" bundle="login"}}'),
          }),
        }),
      ],
    };
  };
  
  export default FormController.extend({
    className: 'enroll-email',
  
    Model: Model,
  
    Form: Form,
  
    Footer: Footer,
  
    initialize: function() {
      this.model.set(_.pick(this.options, 'factorType', 'provider'));
    },
  });
  